مقدمه: یک اسم گمراهکننده برای ایدهای بسیار قدرتمند
اسمش گمراهکننده است. قرارداد هوشمند یا (Smart Contract) نه واقعاً هوشمند است، و نه واقعاً یک قرارداد به آن معنایی که ما در زندگی روزمره میشناسیم. در واقع، قرارداد هوشمند فقط یک برنامهی کوچک کامپیوتری است که روی بلاکچین زندگی میکند و خودش، بدون دخالت هیچ انسانی، وقتی شرایطش برقرار شد، اجرا میشود. هیچ کسی نیست که آن را اجرا کند، و هیچ راهی هم برای لغو یا برگرداندنش وجود ندارد. فهمیدن همین یک ایدهی ساده، در عمل کلیدی است که تقریباً همهچیز در دنیای رمزارز را برایتان باز میکند.
قرارداد هوشمند مجموعهای از دستورالعملهاست که میگوید «اگر این اتفاق افتاد، آن کار را انجام بده»، و روی شبکهای اجرا میشود که هیچ نهاد واحدی کنترلش را در دست ندارد؛ به شکلی که نمیتوان آن را متوقف کرد، سانسور کرد یا برگرداند، وقتی یکبار به حرکت افتاد. تقریباً هرچیز جالبی که در دنیای رمزارز فراتر از ساده فرستادن سکه وجود دارد -دیفای، انافتیها، توکنها، اپلیکیشنهای غیرمتمرکز- روی قرارداد هوشمند ساخته شده است. به همین دلیل، فهمیدن آنها کلید فهمیدن این است که دنیای مدرن رمزارز واقعاً چطور کار میکند.
قرارداد هوشمند واقعاً چیست؟
اسمش بیشتر از خودِ مفهوم، باعث سردرگمی میشود؛ پس بهتر است اول آن را تکهتکه کنیم تا بعد دوباره بسازیمش. قرارداد هوشمند فقط از این جهت «هوشمند» نامیده میشود که خودکار اجرا میشود؛ این کلمه به هیچوجه به معنای داشتن نوعی هوش یا فکر کردن نیست، و حتی کسی که این اصطلاح را ابداع کرد هم بهصراحت گفته بود منظورش این نیست.
این برنامه فقط در همان معنای سست و کلیِ کلمه «قرارداد» است، یعنی مجموعهای از شرایط و اقداماتی که از آن شرایط نتیجه میشود را رمزگذاری میکند، اما اصلاً یک سند حقوقی نیست که در کشوی میز یک وکیل منتظر اجرا توسط دادگاه باشد.
روشنترین توصیف از آن این است: «منطق اجرا». یک برنامهی کامپیوتری کوچک که روی بلاکچین زندگی میکند و خودش، وقتی شرایط ازپیشتعیینشدهاش برقرار شد، اجرا میشود. این برنامه یک ورودی میگیرد، چک میکند که آیا شرایط برقرار است یا نه، و اگر برقرار باشد، همان کارهایی که برای آن برنامهریزی شده را انجام میدهد: جابهجا کردن پول، بهروزرسانی یک رکورد، انتقال مالکیت، یا صدور یک توکن – بدون اینکه هیچ انسانی وارد عمل شود.
این ایده از خودِ بلاکچین قدیمیتر است. یک دانشمند کامپیوتر و حقوقدان به نام نیک سابو (Nick Szabo) در دههی نود میلادی این مفهوم را پیشنهاد داد و قرارداد هوشمند را بهعنوان «مجموعهای از وعدهها که به شکل دیجیتال مشخص شدهاند، همراه با پروتکلهایی که طرفین در آنها به وعدههایشان عمل میکنند» تعریف کرد، و کاملاً صریح گفته بود کلمهی «هوشمند» به معنای باهوش بودن نیست.

برای سالهای زیادی، این ایده فقط روی کاغذ باقی ماند، چون هیچ پلتفرمی وجود نداشت که چنین توافقات خودکاری بتوانند روی آن، بدون نیاز به یک نهاد قابلاعتماد برای میزبانی، بهطور قابلاعتماد اجرا شوند. بیتکوین که در سال ۲۰۰۹ راهاندازی شد، نوع محدودی از برنامهپذیری را معرفی کرد، اما این راهاندازی اتریوم در سال ۲۰۱۵ بود که قرارداد هوشمندِ کاملاً کاربردی را به یک واقعیت عملی تبدیل کرد، با ارائهی بلاکچینی که از همان ابتدا برای اجرای برنامههای دلخواه طراحی شده بود.
اتریوم، ایدهی نظری سابو را به زیرساختی واقعی تبدیل کرد، و امروز اکثر قراردادهای هوشمند در حال استفاده، روی اتریوم یا شبکههایی که از همان مدل پیروی میکنند، اجرا میشوند. این ایده تقریباً دو دهه منتظر پلتفرمی ماند که بتواند آن را بدون هیچ مدیر یا رئیسی اجرا کند، و بلاکچین همان پلتفرم بود.
دستگاه فروش خودکار: مثالی که همهچیز را روشن میکند
بهترین راه برای فهمیدن قرارداد هوشمند، همان مثالی است که خودِ مبدع این مفهوم استفاده کرد، چون ایدهی اصلی را بهطور کامل نشان میدهد.
به یک دستگاه فروش خودکار فکر کنید (دستگاههایی که نوشیدنی یا تنقلات میفروشند). جلوی آن میروید، پول مناسب را داخلش میاندازید، دکمهی محصول مورد نظرتان را میفشارید، و دستگاه محصول را تحویل میدهد – همهی اینها بدون هیچ صندوقدار، فروشنده یا حتی یک انسان در کل این فرآیند. دستگاه بهطور خودکار توافق را اجرا میکند: اگر پول کافی بریزید و انتخاب درستی کنید، محصول را میگیرید؛ اگر پول کافی نریزید، هیچچیزی نمیگیرید.
قوانین در خودِ دستگاه تعبیه شدهاند، خودشان وقتی شرایط برقرار شد اجرا میشوند، و هیچ شخصی نیست که باید به او اعتماد کنید یا با او مذاکره کنید، چون دستگاه فقط همان کاری را میکند که برایش طراحی شده. قرارداد هوشمند دقیقاً همین است، اما به نسخهی دیجیتالِ مبتنی بر بلاکچینش: مکانیزمی که مجموعهای از قوانین را نگه میدارد، چک میکند آیا شرایط برقرار است یا نه، و خودکار نتیجه را تحویل میدهد، بدون نیاز به هیچ واسطهای.
این مثال، ویژگیهای کلیدی را روشن میکند. دستگاه فروش، خودکار است – بدون دخالت انسان عمل میکند؛ قطعی است – یک ورودی مشخص، همیشه همان خروجی مشخص را تولید میکند؛ و در معنایی، بدون نیاز به اعتماد است، چون لازم نیست به صاحب دستگاه اعتماد کنید که آدم درستی باشد، چرا که رفتار دستگاه با مکانیزمش تثبیتشده، نه با خوشنیتی کسی در آن لحظه. قرارداد هوشمند هر سه این ویژگی را با خود دارد و قدرتهای یک بلاکچین را هم به آن اضافه میکند: میتواند مقادیر بزرگی از ارزش را نگه دارد و جابهجا کند، روی شبکهای اجرا میشود که هیچ نهاد واحدی کنترلش را در دست ندارد – پس هیچکس نمیتواند مخفیانه قوانینش را تغییر دهد – و اقداماتش بهطور دائمی ثبت شده و برای همه قابل مشاهده است.
جایی که یک دستگاه فروش، یک آبنبات تحویل میدهد، یک قرارداد هوشمند میتواند هزاران دلار آزاد کند، مالکیت یک دارایی را منتقل کند، یا زنجیرهای از اقدامات بعدی را راهاندازی کند – همه روی همان اصل سادهی اجرای خودکار وقتی شرایط برقرار شود. دستگاه فروش، شهودِ ابتدایی است؛ قرارداد هوشمند، همان شهود است وقتی به اندازهی پول، مالکیت و توافقات پیچیده، بدون هیچ رئیسی، بزرگ شده باشد.
قرارداد هوشمند واقعاً چطور کار میکند؟
برای رفتن یک قدم عمیقتر، باید با مکانیزم درونی آن آشنا شویم، چون همین مکانیزم است که هم قدرت و هم خطرات قرارداد هوشمند را توضیح میدهد.
قرارداد هوشمند بهصورت کد نوشته میشود، معمولاً به یک زبان برنامهنویسی که دقیقاً برای همین هدف طراحی شده، و سپس روی یک بلاکچین «استقرار» (deploy) پیدا میکند، جایی که در یک آدرس مشخص ذخیره میشود، شبیه به اینکه یک کیفپول هم آدرس مخصوص خودش را دارد. بهمحض استقرار، قرارداد برای همیشه روی بلاکچین باقی میماند، کدش برای همه قابل مشاهده است و قوانینش ثابتاند، و آنجا منتظر میماند تا استفاده شود.
وقتی کسی بخواهد با آن تعامل کند، یک تراکنش به آدرس آن قرارداد ارسال میکند و هرچه ورودی لازم است را فراهم میکند، و کامپیوترهای شبکه – یعنی هزاران «نود» (گره) که بلاکچین را نگه میدارند – همه کد قرارداد را با همان ورودی اجرا میکنند. چون همهی نودها همان کد را روی همان ورودی اجرا میکنند، همه به همان نتیجه میرسند، و این دقیقاً همان روشی است که شبکه بدون هیچ نهاد مرکزی، روی نتیجه به توافق میرسد؛ و آن نتیجهی توافقشده – پول جابهجا شده، مالکیت منتقلشده، رکورد بهروزرسانیشده – برای همیشه روی بلاکچین نوشته میشود.
چند ویژگیِ این فرآیند ارزش فهمیدن دارند، چون شکلدهندهی همهچیز دربارهی رفتار قراردادهای هوشمند هستند:
- اجرا، پول میخواهد: اجرای کد یک قرارداد، منابع محاسباتی مصرف میکند، و کاربر باید کارمزدی -که معمولاً به آن «گس» (gas) میگویند- بپردازد تا هزینهی این کار را به شبکه بدهد؛ یعنی قراردادهایی که کارهای پیچیدهتری میکنند، اجرایشان گرانتر تمام میشود.
- اجرا، قطعی و قابلتایید است: چون همهی نودها همان کد را اجرا میکنند و به همان جواب میرسند، هر کسی میتواند تایید کند که قرارداد دقیقاً همان کاری را کرده که کدش مشخص میکند، بدون هیچ رفتار پنهانی.
- و مهمتر از همه: بعد از استقرار، کدِ یک قرارداد معمولاً قابل تغییر نیست: قوانین در لحظهی استقرار ثابت میشوند، و قرارداد دقیقاً همان کاری را که برایش برنامهریزی شده انجام میدهد، برای همیشه – که این موضوع وقتی کد درست باشد یک نقطهقوت است، اما وقتی کد عیب داشته باشد، یک فاجعه است.
این ترکیب -کدی که خودکار روی یک شبکهی غیرمتمرکز اجرا میشود، برای اجرا هزینه میگیرد، نتایج قابلتایید تولید میکند، و بعد از استقرار قابل تغییر نیست- همان چیزی است که قراردادهای هوشمند را هم بهشکل قابلتوجهی قدرتمند و هم بدونبخشش نسبت به خطا میکند. این ماشین دقیقاً همان کاری را میکند که برایش ساخته شده، فارغ از اینکه آن کار، همان چیزی است که سازندگانش میخواستند یا نه.
قراردادهای هوشمند کجا استفاده میشوند؟
این مفهوم انتزاعی، وقتی ببینید قراردادهای هوشمند واقعاً چه کارهایی میکنند، ملموس میشود، چون موتورِ پشتِ تقریباً هر اپلیکیشن رمزارزی فراتر از پرداختهای ساده هستند.
امور مالی غیرمتمرکز (دیفای) جایی است که قراردادهای هوشمند کاملترین نقشآفرینی خودشان را پیدا کردند. صرافیهای غیرمتمرکز مثل Uniswap بهطور کامل روی قراردادهای هوشمند اجرا میشوند: استخرهای سرمایهای که معامله را امکانپذیر میکنند را مدیریت میکنند و معاملات را خودکار از طریق کد، بهجای دفتر سفارش سنتی یا یک شرکت، تسویه میکنند.

پروتکلهای وامدهی مثل Aave از قراردادهای هوشمند استفاده میکنند تا افراد بدون هیچ تایید دستی و بدون هیچ کارمندِ بانکی، بتوانند با وثیقهگذاری رمزارز وام بگیرند، در حالی که قرارداد بهطور خودکار شرایط وام را اجرا میکند، وثیقه را نگه میدارد، و اگر وضعیت وامگیرنده پایینتر از حد لازم برود، خودش وثیقه را نقد میکند. استیبلکوینها هم برای مدیریت صدور و بازخریدِ توکن و برای نگهداشتن قیمتشان روی یک دلار، به قراردادهای هوشمند متکیاند.
در همهی این موارد، قرارداد هوشمند جایگزین بانک، کارگزار یا کلیرینگهاوس میشود؛ کاری که یک نهاد سنتی انجام میداد را، اما این بار خودکار، از طریق کدی که هر کسی میتواند بررسیاش کند، انجام میدهد.
فراتر از دیفای، قراردادهای هوشمند بخش بزرگی از باقیِ دنیای رمزارز را هم اداره میکنند:
- هر انافتی (توکنی که نشاندهندهی مالکیتِ یک آیتم دیجیتالی منحصربهفرد است) توسط یک قرارداد هوشمند کنترل میشود که خودِ توکن را تعریف میکند، مالکیت آن را ردیابی میکند، و انتقال آن را در زمان خرید و فروش در یک مارکتپلیس مدیریت میکند.
- انواع توکنها -هزاران داراییای که روی شبکههایی مثل اتریوم اجرا میشوند- خودشان قرارداد هوشمندی هستند که عرضه و قوانین آن توکن را تعریف میکنند.
- اپلیکیشنهای غیرمتمرکز (dApps) از قراردادهای هوشمند بهعنوان منطق پشتیبان خودشان ساخته شدهاند، که باعث میشود همهچیز از بازی تا پلتفرم اجتماعی، بدون نیاز به سرور مرکزی اجرا شود.
- سازمانهای خودگردانِ غیرمتمرکز (DAO) از قراردادهای هوشمند برای مدیریت وجوه مشترک و اجرای خودکار نتایج رایگیریِ اعضا استفاده میکنند.
نقطهی مشترک همهی اینها این است: هرجا که رمزارز یک واسطهی قابلاعتماد -یک بانک، یک صرافی، یک نهاد ثبت، یک مرجع رایگیری- را با کدِ خودکار و شفاف جایگزین کند، یک قرارداد هوشمند دارد آن کار را انجام میدهد. اینها در واقع آن قطعاتی هستند که از روی هم چیده شدنشان، کل اکوسیستم پولِ برنامهپذیر ساخته شده است.
مزایا: چرا قراردادهای هوشمند اهمیت دارند؟
دلایل اینکه قراردادهای هوشمند پایهی این صنعت شدند، به مجموعهای از مزایای واقعی نسبت به روشِ سنتیِ ساخت و اجرای توافقات برمیگردد.
مزیت اول: حذف واسطهها. توافقات سنتی معمولاً به نهادهای ثالث قابلاعتماد نیاز دارند: بانکها برای نگهداری و انتقال پول، کارگزاران برای اجرای معاملات، وکلا و دادگاهها برای اجرای شرایط – و هر واسطه، هزینه، تاخیر، و نیاز به اعتماد به آن طرف را به ماجرا اضافه میکند. قرارداد هوشمند خودش اجرا را انجام میدهد، خودکار و بدون واسطه، که میتواند تراکنشها را سریعتر و ارزانتر کند و وابستگی به هر یک طرفِ قابلاعتماد را حذف کند.
مزیت دوم: شفافیت و قابلیت تایید. کدِ یک قرارداد هوشمند روی بلاکچین قابل مشاهده است، پس هر کسی میتواند دقیقاً بررسی کند که چه کاری انجام خواهد داد، و اجرای آن قابل تایید است، پس هر کسی میتواند تایید کند که قرارداد همان کاری را کرده که قرار بود انجام دهد – سطحی از شفافیت که توافقات سنتی بهندرت آن را ارائه میدهند. لازم نیست به یک قول اعتماد کنید؛ میتوانید کدی را بخوانید که آن قول را اجرا خواهد کرد.
مزیت سوم: خودکارسازی و قابلیت اعتماد. قرارداد هوشمند دقیقاً همانطور که نوشته شده اجرا میشود، هر بار، بدون تاخیرها، خطاها، یا اختیار عمل پردازشهای انسانی، که یعنی توافقی که در یک قرارداد هوشمند رمزگذاری شده، بهمحض برقرار شدن شرایطش، خودش را اجرا میکند، بدون انتظار و بدون امکان اینکه یک طرف فقط از انجام آن سر باز بزند.
این ترکیب -بدون واسطه، شفافیت کامل، و اجرای خودکار و قابلاعتماد- همان چیزی است که قراردادهای هوشمند را قدرتمند میکند، چون به افراد اجازه میدهد بدون نیاز به اعتماد به همدیگر یا یک مرجع مرکزی، با هم معامله و همکاری کنند، و بهجایش روی کدی تکیه کنند که هر کسی میتواند تایید کند و خودش اجرا میشود. برای اولین بار، توافقات میتوانند خودشان را در یک شبکهی جهانی، بدون هیچ مدیری، اجرا کنند، و همین قابلیت پایهی کل دنیای اپلیکیشنهای غیرمتمرکز است.
ریسکها: چرا «کد، قانون است» دو رو دارد
اینجاست که صادق بودن از همهچیز مهمتر است، چون همان ویژگیهایی که قراردادهای هوشمند را قدرتمند میکنند، آنها را واقعاً خطرناک هم میکنند، و هر کسی که از آنها استفاده میکند باید ریسکها را بههمان روشنی مزایا بفهمد.

ریسک اصلی، مستقیماً از یک نقطهقوت اصلی نتیجه میشود: قراردادهای هوشمند تغییرناپذیر و خودکار-اجرا هستند، یعنی اگر کدشان یک باگ یا یک نقطهضعف داشته باشد، آن نقص هم خودکار اجرا میشود، و معمولاً هیچ راهی برای متوقف کردن یا برگرداندنِ خسارت وجود ندارد. یک قرارداد سنتی با اشتباه قابل مذاکرهی دوباره است، و گاهی یک تراکنش بانکی متقلبانه قابل برگشت است، اما یک قرارداد هوشمند دقیقاً همان کاری را میکند که کدش میگوید؛ و اگر کدش بگوید همهی پولها را به یک هکری که حفرهای پیدا کرده بفرست، آن پولها را میفرستد، بهطور غیرقابلبرگشت.
تاریخچهی دنیای رمزارز پر است از نمونههای گزافِ این موضوع: صدها میلیون دلار بهخاطر باگها و سوءاستفاده از قراردادهای هوشمند از دست رفتهاند، جایی که حملهکنندگان نقصی در کد پیدا کردند و قراردادها، عین وظیفهشناسی، خواستهی حملهکننده را اجرا کردند، چون این دقیقاً همان چیزی بود که کد، آنطور که نوشته شده بود، اجازه میداد. عبارت «کد، قانون است» همین را نشان میدهد: کد، مرجع نهایی است، و دقیقاً همان چیزی که واقعاً میگوید را اجرا میکند، نه آن چیزی که سازندگانش قصدش را داشتند.
چند ریسک مشخص از این موضوع نتیجه میشود:
- باگهای قرارداد هوشمند: نقصهایی در کد که حملهکنندگان میتوانند از آن سوءاستفاده کنند، و چون کد بعد از استقرار بهسختی قابل تغییر است، این نقصها میتوانند فاجعهبار و دائمی باشند.
- ورودیهای نادرست و دادهی بیرونیِ معیوب: چون بسیاری از قراردادها به اطلاعاتِ بیرونیای که از طریق چیزی به نام «اوراکل» (oracle) تامین میشود متکیاند، اگر آن داده اشتباه یا دستکاریشده باشد، قرارداد روی یک پیشفرضِ نادرست اجرا میشود، که میتواند زنجیرهای از نقدسازیهای ناخواسته یا آسیبهای دیگر را راهاندازی کند.
- پیچیدگی: هر چه قرارداد کارهای بیشتری انجام دهد، جای بیشتری برای پنهان شدن یک نقص وجود دارد، و سختتر میشود تایید کرد که کد امن است.
- کلاهبرداریها: از اعتمادی که افراد به کد دارند سوءاستفاده میکنند، با قراردادهای مخربی که طراحی شدهاند تا قانونی بهنظر برسند، در حالی که رفتاری پنهان دارند که پول هر کسی که با آن تعامل کند را خالی میکند.
درس این بخش این نیست که قراردادهای هوشمند بد هستند، بلکه این است که «بدون نیاز به اعتماد» به معنای «بدون ریسک» نیست: دیگر لازم نیست به یک شخص اعتماد کنید، اما باید به این اعتماد کنید که کد درست است، و کدی که توسط انسان نوشته شده، بهاندازهی خطاهای همان انسان، خطا دارد. آدیت کردن، احتیاط، و استفاده از قراردادهای آزمایششده و امتحانشده بهجای قراردادهای ناشناخته، دفاعهای عملی این مشکل هستند، اما حقیقت پایه همچنان برقرار است: یک قرارداد هوشمند دقیقاً همان کاری را میکند که برایش نوشته شده، و درست نوشتن آن، کار سختی است.
محدودیتهایی که باید بدانید
فراتر از ریسکها، قراردادهای هوشمند محدودیتهای ذاتی هم دارند که شکلدهندهی این هستند که چه کارهایی میتوانند و نمیتوانند انجام دهند، و فهمیدن این محدودیتها مانع از این میشود که توقعمان از آنها بیش از حد بالا برود.

یک قرارداد هوشمند فقط میتواند اطلاعاتی که روی خودِ آن بلاکچین وجود دارد را ببیند و روی آن عمل کند. این قرارداد بهطور طبیعی هیچ چیزی دربارهی دنیای بیرون -یک قیمت، یک دادهی آبوهوایی، نتیجهی یک اتفاق- نمیداند، چون داخل بلاکچین «بسته» مانده است؛ و دقیقاً به همین دلیل است که چیزی به نام «اوراکل» وجود دارد تا دادهی بیرونی را به آن وارد کند، و همین وابستگی به اوراکل، خودش منبعی از ریسک و محدودیت است.
یک قرارداد هوشمند همچنین نمیتواند به دنیای فیزیکی دست دراز کند یا در آن عمل کند؛ میتواند داراییهای دیجیتالی را جابهجا کند و رکوردهای دیجیتالی را بهروزرسانی کند، اما نمیتواند یک تحویل فیزیکی انجام دهد یا یک نتیجهی واقعی-جهانی را بهتنهایی اجرا کند. و یک قرارداد هوشمند فقط بهاندازهی کدش خوب است: هیچ قضاوتی ندارد، هیچ تواناییای برای تفسیر نیت ندارد، و هیچ ظرفیتی برای مدیریتِ شرایطی که برنامهنویسانش پیشبینی نکردهاند ندارد، پس دقیقاً متنِ کدش را اجرا میکند، بدون هیچ درکی از روحِ پشتِ آن، که همین موضوع باعث میشود یک حالت پیشبینینشده بتواند نتیجهای ایجاد کند که هیچکس نمیخواست.
این محدودیتها اهمیت دارند چون مرز میان جایی که قراردادهای هوشمند واقعاً خوب کار میکنند و جایی که ضعیف عمل میکنند را تعریف میکنند. این قراردادها در خودکارسازیِ توافقاتِ روشن، خوشتعریف و درون-زنجیرهای، که شرایط و نتایجش بهدقت در کد قابل تعیین است، عالی عمل میکنند – و دقیقاً همین است که چرا آنها در اپلیکیشنهای مالی مثل معامله، وامدهی، و انتقال توکن اینقدر خوب کار میکنند.
اما در هرچیزی که به قضاوت، تفسیر، اجرای واقعی-جهانی، یا اطلاعاتِ بیرونیِ قابلاعتماد نیاز داشته باشد، با مشکل مواجه میشوند، چون اینها به قابلیتهایی نیاز دارند که یک قطعه کدِ خوداحاطهشده ندارد. فهمیدن این محدودیتها این فناوری را در پرسپکتیو درست خودش نگه میدارد: یک قرارداد هوشمند ابزاری قدرتمند برای خودکارسازیِ توافقات دیجیتالِ دقیق بدون واسطه است، نه یک جایگزینِ جادویی برای همهی توافقاتِ انسانی.
بیشتر بخوانید: هوش مصنوعی، امنیت کریپتو را ارزانتر، سریعتر و غیرقابلچشمپوشی میکند: قرارداد هوشمند چیست؟ کدی که موتور دنیای رمزارز را میچرخاندجمعبندی: کدی که دنیای رمزارز را تغییر داد
در نهایت، قرارداد هوشمند یک ایدهی ساده با نتایجی عمیق است: یک برنامهی کوچک که روی بلاکچین زندگی میکند و خودش، وقتی شرایطش برقرار شد، اجرا میشود؛ توافقی را خودکار اجرا میکند، بدون نیاز به هیچ انسان، شرکت یا دادگاهی. دستگاه فروش خودکار، شهودِ اصلی را نشان میدهد: پول داخل، محصول خارج، بدون صندوقدار؛ و بلاکچین، همان شهود را به اندازهای بزرگ میکند که بتواند پول، مالکیت، و توافقات پیچیده را در یک شبکهی جهانی که هیچکس کنترلش را در دست ندارد، اداره کند.
از همین یک مفهوم، تقریباً همهچیز در دنیای رمزارز، فراتر از پرداختهای ساده، نتیجه شده است: صرافیهای غیرمتمرکز، پروتکلهای وامدهی، استیبلکوینها، انافتیها، توکنها، اپلیکیشنهای غیرمتمرکز – همهی اینها از قراردادهای هوشمند ساخته شدهاند که خودکار همان کاری را میکنند که نهادهای سنتی قبلاً انجام میدادند.
قدرت و خطر، از همان منبع میآیند. چون یک قرارداد هوشمند دقیقاً همانطور که نوشته شده اجرا میشود، خودکار و غیرقابلبرگشت، میتواند واسطههای قابلاعتماد را با کدِ قابلتایید جایگزین کند – که همان پیشرفتی است که دیفای و بقیهی این اکوسیستم را ممکن کرد. اما همین سرسختی به این معناست که یک نقص در کد، با همان وفاداری یک ویژگی اجرا میشود، بدون هیچکس که آن را متوقف کند و بدون هیچ راهی برای برگرداندنش – که دقیقاً به همین دلیل صدها میلیون دلار بهخاطر باگها و سوءاستفادهها از دست رفته است، و چرا «کد، قانون است» بههماناندازه یک هشدار است که یک وعده.
قراردادهای هوشمند، نیازِ اعتماد به انسانها را حذف کردند و بهجایش نیازِ اعتماد به کد را گذاشتند؛ و کد، که توسط انسان نوشته شده، فقط بهاندازهی همان انسانهایی که آن را نوشتهاند خوب است.
پرسشهای پرتکرار
قرارداد هوشمند به زبان ساده چیست؟ یک برنامه که روی بلاکچین ذخیره میشود و وقتی شرایط معینی برقرار شد، خودکار اجرا میشود، بدون نیاز به هیچ انسان یا واسطهای برای اجرایش. مانند یک دستگاه فروش خودکار کار میکند: ورودی درست را بدهید، و کد خودکار نتیجه را تحویل میدهد – پول جابهجا میشود، مالکیت منتقل میشود، یا رکورد بهروزرسانی میشود. این برنامه فقط از این جهت «هوشمند» است که خودکار اجرا میشود، نه به این معنا که هوش دارد، و در واقع «کد است، نه یک سند حقوقی»، که خودش را روی یک شبکهی غیرمتمرکز اجرا میکند.
چه کسی قرارداد هوشمند را اختراع کرد؟ این مفهوم توسط نیک سابو، دانشمند کامپیوتر و حقوقدان، در دههی نود میلادی پیشنهاد شد. او قرارداد هوشمند را بهعنوان مجموعهای از وعدهها بهشکل دیجیتال تعریف کرد و صریح گفت که «هوشمند» به معنای باهوش بودن نیست. این ایده تا زمانی که پلتفرمی برای اجرایش وجود نداشت، صرفاً نظری ماند. بیتکوین در سال ۲۰۰۹ برنامهپذیریِ محدودی را معرفی کرد، اما اتریوم در سال ۲۰۱۵، قرارداد هوشمند کاملاً کاربردی را به واقعیت تبدیل کرد، و امروز اکثر قراردادهای هوشمند روی اتریوم یا شبکههای مشابه اجرا میشوند.
قرارداد هوشمند واقعاً چطور کار میکند؟ بهشکل کد نوشته میشود و روی یک بلاکچین، در یک آدرس مشخص، مستقر میشود، جایی که برای همیشه با قوانینِ ثابتشدهاش زندگی میکند. وقتی کسی برای تعامل با آن یک تراکنش بفرستد، تعداد زیادی از کامپیوترهای شبکه همگی کد قرارداد را روی همان ورودی اجرا میکنند و روی نتیجه به توافق میرسند، که برای همیشه روی بلاکچین نوشته میشود. اجرا، کارمزدی به نام «گس» میگیرد، نتیجه برای هر کسی قابل تایید است، و بعد از استقرار معمولاً کد قابل تغییر نیست.
قراردادهای هوشمند برای چه استفاده میشوند؟ موتورِ پشتِ تقریباً همهچیز در دنیای رمزارز، فراتر از پرداختهای ساده، هستند. در دیفای، صرافیهایی مثل Uniswap و پروتکلهای وامدهی مثل Aave را اجرا میکنند و جایگزین کارگزار و بانک میشوند. هر انافتی و اکثر توکنها خودشان قرارداد هوشمندی هستند که مالکیت و قوانین را تعریف میکنند. اپلیکیشنهای غیرمتمرکز از آنها برای منطق پشتیبان استفاده میکنند، و سازمانهای خودگردانِ غیرمتمرکز از آنها برای مدیریت وجوه و اجرای رایگیری استفاده میکنند.
ریسکهای قراردادهای هوشمند چیست؟ چون قراردادهای هوشمند تغییرناپذیر و خودکار-اجرا هستند، یک باگ یا نقطهضعف در کدشان هم خودکار اجرا میشود، اغلب بدون هیچ راهی برای متوقف کردن یا برگرداندنش، و صدها میلیون دلار بهخاطر این نوع سوءاستفادهها از دست رفته است. ریسکها شامل باگهای کد، دادهی دستکاریشدهی اوراکل، پیچیدگیای که نقصها را پنهان میکند، و قراردادهای مخربی که شبیه قانونی بهنظر میرسند، میشود. «بدون نیاز به اعتماد» به معنای «بدون ریسک» نیست: دیگر به یک انسان اعتماد نمیکنید، اما باید به درست بودنِ کد اعتماد کنید، و کد هم خطاهای انسانی دارد.
«کد، قانون است» به چه معناست؟ یعنی در یک قرارداد هوشمند، کد مرجع نهایی است و دقیقاً همان چیزی که واقعاً میگوید را اجرا میکند، نه آن چیزی که سازندگانش قصدش را داشتند. یک قرارداد سنتی با اشتباه قابل مذاکرهی دوباره است و گاهی تراکنشهای بانکی متقلبانه قابل برگشتاند، اما یک قرارداد هوشمند دقیقاً همان کاری که کدش میگوید را، بهطور غیرقابلبرگشت، انجام میدهد. اگر کد نقصی داشته باشد که اجازه دهد یک حملهکننده پولها را خالی کند، قرارداد آن نقص را با وفاداری کامل اجرا میکند. «کد، قانون است» هم وعدهی خودکارسازیِ قابلاعتماد است و هم خطرِ دقتِ بدونبخشش.