آرشام آریا
آرشام آریا
خواندن ۴ دقیقه·۳ سال پیش

قرارداد هوشمند! آینده هوشمند. (به بیان ساده، قسمت بدون کد))

قرارداد هوشمند
قرارداد هوشمند

این روزا تب و تاب ارز های دیجیتال دنیارو گرفته، دومین ارز بزرگ دنیای ارز های دیجیتال، اتریوم، ارزی بود که اولین بار ایده قرارداد هوشمند رو ارائه داد، اما این قرارداد هوشمند چیه؟

قرارداد های سنتی

بزارید برای شروع زیاد پیچیده اش نکنیم و از قرارداد های عادی که تو جامعه وجود دارن شروع کنیم.

قرارداد، یک قول مکتوب بین دو یا چند شخص یا گروه، که دولت (قانون) افراد رو ملزم به رعایت اون قول مکتوب میکنه، مثال هایی زیادی ازش تو دنیای ما وجود داره.

  • قرارداد کار، بین شما و شرکتی که توش کار میکنید.
  • قرارداد بیمه ای که پرداخت میکنید و شرکت بیمه در قبال پرداختی شما، یک سری تعهدات مالی داره.
  • قرارداد وامی که دریافت میکنید.
  • اجاره مسکن، ماشین و...

مثال زیاده، تو دنیای ما بدون این قرارداد های سنتی هیچی پیش نمیره،

  • اما آیا این قرارداد ها بدون نقصن؟
  • آیا یک طرف میتونه زیر قولش بزنه؟

در صورت اختلاف بین طرفین قرارداد

  • آیا ممکنه قانون رای ناعادلانه صادر کنه؟
  • اگر حتی رای به نفع شما صادر بشه، به چقدر پیگیری نیاز دارید؟

اگر مطلب بیت کوین من رو خونده باشید، یه جاییش به این اشاره کردم که گریزناپذیر ترین قانون، کد برنامه نویسی غیر قابل تغییره (این به معنی بهترین نیست! در ادامه توضیح میدم)

یه تیکه کد!

قرارداد هوشمند یک تکه کد برنامه نویسیه که روی شبکه بلاکچین قرار میگیره و به کمک اون میشه یک سری عملیات مالی (و غیر مالی) از پیش تعیین شده (توسط کد) رو انجام داد.
از اونجایی که این کد روی بلاکچین قرار میگیره، غیر قابل تغییره! و بعد از اینکه میفرستنش روی شبکه (اصطلاحا deploy میشه) فقط از کد پیروی میکنه، دیگه نه از سازنده اش پیروی میکنه و نه ویتالیک بوترین!
البته دقت کنید سازنده میتونه توی کد برای خودش دسترسی تعیین کنه، دسترسی هایی که برای هر شخصی قابل مشاهده است، ولی غیر از اونا هیچ کار دیگه ای نمیتونه انجام بده. (کد قانونه، سازنده میتونه قانون رو به نفع خودش بنویسه اما هیچکس نمیتونه قانون گریزی کنه)

تاریخچه!؟

قرارداد هوشمند شروعی بود بر DeFi (decentralized finance)، با اینکه این حوزه سن زیادی نداره اما اونقدر به سرعت در حال رشده که میشه براش یه تاریخچه طولانی نوشت.
ایده قرارداد هوشمند اولین بار توسط نیک سازبو (Nick Szabo) ارائه شد، این شخص کسیه که قبل از بیت کوین، ارز دیجیتال بیت گولد رو معرفی کرد، اما متاسفانه با شکست مواجه شد.
بعد از ایشون، تیم اتریوم به قرارداد های هوشمند جلوه عمل پوشید! (البته قبل اتریوم بیت کوین هم پروتکل هایی برای قرارداد هوشمند در نظر گرفته بود و نتیجه اش هم ارز هایی مثله تتر امنی هست)
به اتریوم خاطر اجرای درست ایده قرارداد های هوشمند، ارز نسل دوم بلاکچین میگن، و بعد از این ارز، تقریبا تمام ارز ها (نسل دو و سه) سعی بر این داشتن که قرارداد های هوشمند رو پیاده سازی کنن، کاردانو، ترون، بی اس سی، سولانا و...

شبیه اتریوم باشیم!

یه سری از ارز ها، برای پیاده سازی قرارداد هوشمند، دقیقا از رو اتریوم کپی کردن و چند تا مزیت اضافه کردن، مثلا بی اس سی دقیقا شبیه به اتریومه ولی کارمزد کمتر و سرعت بیشتری داره، ترون در کنار کارمزد کمتر و سرعت بیشتر، امکانات بیشتری هم در اختیار برنامه نویس قرارداد هوشمند میزاره.
خب این هم خوبه هم بد، خوبه چون

  • عملا کدی که روی اتریوم میزارید رو میتونید روی ترون و بی اس سی هم استفاده کنید. (یه بار کد میزنید)
  • یه زبان رو یاد میگیرید و برای سه شبکه کد میزنید. (یه بار یاد میگیرید)

البته در نظر داشته باشید، با زبان های زیادی میشه برای این شبکه ها اسمارت کانتکرت نوشت، معروف ترین هاش Solidity و Vyper هستن، ولی یکی از این دوتا، برای هر سه شبکه کافیه.
در ادامه مفصل راجع به زبان برنامه نویسی صحبت میکنیم.

خلاق تر باشیم! (شبیه اتریوم نباشیم!)

یه سری دیگه از ارز ها، اومدن زبان ها و روش های خودشون رو پیاده کردن، مثلا کاردانو برای قرارداد هوشمند از Haskell و سولانا از Rust استفاده میکنه.

ولی این ها به اندازه اون ها جا نیوفتادن!
در واقع الان که من دارم این متن رو مینویسم، کادانو هنوز به طور کامل از قرارداد هوشمند پشتیبانی نمیکنه.
سولانا هم رتبه پایینی داره و از اونجایی که یادگیریش چندان به صرفه نیست، طرفدارای زیادی نداره.
میشه گفت شما Rust رو به عنوان یک زبان سخت یاد میگیرید و باهاش فقط میتونید برای سولانا کد بزنید، یا Haskell رو یاد میگیرید فقط برای کاردانو.
البته که یادگیریشون میتونه ارزشمند باشه ولی در حال حاضر solidity پیشتازه.

تو جزوی از وجود منی!

شما وقتی یه نرم افزار رو کامپیوتر یا موبایلتون نصب میکنید، اون نرم افزار دسترسی های متفاوتی داره، ولی در مجموع، جزوی از دستگاه شماست!
قرارداد های هوشمند هم دقیقا همینن، بعد از دیپلوی شدن روی شبکه، با تمام آدرس ها و بقیه قرارداد های هوشمند میتونن در ارتباط باشن.

ادامه دارد...

اگه دوست دارید به محتوا های بیشتری از من ببینید، خوشحال میشم چنل یوتیوب من (Norotech) رو دنبال کنید. ??



مهندس نرم افزار
شاید از این پست‌ها خوشتان بیاید