قراردادهای هوشمند اساساً قراردادهای خودکار بین سازنده قرارداد و گیرنده هستند. این توافقنامه که به صورت کد نوشته شده است در بلاکچین ایجاد می شود که این امر باعث غیر قابل تغییر و غیر قابل برگشت بودن آن می شود. قراردادهای هوشمند که توسط دومین بلاکچین محبوب در جهان(اتریوم) شهرت یافت، به مجموعهای از برنامه های غیرمتمرکز شبکه(Dapps) و موارد استفاده دیگر منجر شده است.
یکی از مزایای کلیدی شبکه های بلاکچین، اتوماسیون وظایفی است که به طور سنتی به یک واسطه شخص ثالث نیاز دارند. به عنوان مثال، به جای نیاز به یک بانک برای تایید انتقال وجه از مشتری به فریلنسر، این فرایند به لطف یک قرارداد هوشمند می تواند به طور خودکار اتفاق بیفتد. تنها نکته مهم، توافق دو طرف بر سر یک مفهوم است.
مثال دیگر می تواند یک گروه نظارتی و شهروندانی که باشد که در حال بحث درباره یک قانون هستند. اگر این دو طرف در یک سیستم مبتنی بر بلاکچین به توافق برسند، قانون از طریق یک قرارداد هوشمند اجرا می شود. شاید کاربران بتوانند از طریق یک DApp معتبر در مورد قانون جدید مطالعه کنند یا به روش دیگری مبتنی بر بلاکچین با آن تعامل داشته باشند.
تاریخچه قراردادهای هوشمند
قراردادهای هوشمند مدت ها پیش از فناوری بلاکچین پیش می رود. در حالی که اتریوم که در سال 2014 محبوبترین روش پیاده سازی این پروتکل را معرفی کرد، نیک سابو رمزنگار این ایده را در دهه 1990 پایه گذاری نمود.
در آن زمان، سابو ارز دیجیتالی به نام بیت گلد را مفهوم سازی کرد؛ در حالی که این دارایی هرگز راه اندازی نشد، اما استفاده از قرارداد هوشمند جهت انجام تراکنش های غیر قابل اعتماد در اینترنت را برجسته کرد.
بسیاری، از جمله خود وبسایت اتریوم، قراردادهای هوشمند را با یک ماشین فروش مقایسه می کنند. ماشین های فروش خودکار به این هدف خدمت می کنند که فروشنده محصولی را در اختیار کاربر قرار می دهد، بدون آنکه شخصی واقعی پول را بگیرد و کالا را تحویل دهد.
قراردادهای هوشمند نیز همان هدف قبلی را دنبال می کنند، اما بسیار متنوع تر و گسترده تر هستند.
قراردادهای هوشمند در طول زمان بسیار پیشرفت کردهاند. آنها با عبارات ساده if-then شروع کردند که یک برنامه نویس می تواند ایجاد و پیاده سازی کند. با این حال، کسانی که دانش برنامه نویسی دارند محدود هستند و این قراردادهای «بی اعتماد» را متمرکز می کند. خوشبختانه، همان توسعه دهندگان در حال کار برای حل مشکلات دسترسی هستند.
از زمان آغاز به کار، توسعه دهندگان آن را طوری ساختهاند که می توان قراردادهای هوشمند را بدون دانش کدنویسی انجام داد. آنها امنیت را با زبان های برنامه نویسی مختلف افزایش می دهند، جایگزین هایی مانند قراردادهای مخفی ایجاد می کنند و روش هایی برای ذخیره خودکار تاریخچه قراردادهای هوشمند در قالبی قابل خواندن برای انسان طراحی می کنند که بسیار ساده تر از استفاده از بلاکچین برای خواندن می باشد.
قراردادهای هوشمند چگونه کار می کنند؟
این قراردادها را به عنوان بیانیه های دیجیتال «if-then» بین دو (یا چند) طرف در نظر بگیرید. اگر نیازهای یک گروه برآورده شود، می توان توافق را رعایت کرد و قرارداد را کامل تلقی نمود. فرض کنید فردی از یک کشاورز 100 خوشه ذرت می خواهد. اولی وجوه را در یک قرارداد هوشمند قفل می کند که پس از تحویل می تواند تایید شود. هنگامی که کشاورز کار خود را تحویل می دهد، وجوه بلافاصله آزاد می شود. با این حال، اگر کشاورز نتواند در تاریخ مورد نظر کار خود را انجام دهد، قرارداد لغو می شود و وجوه به مشتری برگشت داده می شود.
البته موارد فوق یک نمونه کوچک است. قراردادهای هوشمند را می توان طوری برنامه ریزی کرد که برای عموم کار کند، از جمله مزایای دیگر آن، می توان به سیستم های خرده فروشی و جایگزینی دستورات دولتی اشاره کرد. علاوه بر این، قراردادهای هوشمند به طور بالقوه نیاز به آوردن برخی اختلافات به دادگاه را نیز برطرف می کند و باعث صرفه جویی در زمان و هزینه طرفین می شود.
این امنیت تا حد زیادی به دلیل نحوه کدنویسی قرارداد هوشمند است.
به عنوان مثال، در اتریوم قراردادها به زبان برنامه نویسی Solidity که Turing-complete است، نوشته می شود. این بدان معناست که قوانین و محدودیت های قراردادهای هوشمند در کد گنجانده شده است و هیچ فردی نمی تواند چنین قوانینی را دستکاری کند. در حالت ایدهآل ، این محدودیت ها باعث کاهش کلاهبرداری ها یا تغییرات پنهان قرارداد می شود. یک قرارداد هوشمند تنها در صورتی می تواند محقق شود که همه طرفین، توافق را قبول کرده و آن را امضا کنند.
به عبارت فنی تر، ایده یک قرارداد هوشمند را می توان به چند مرحله تقسیم کرد. اول، یک قرارداد هوشمند نیاز به توافق بین دو یا چند طرف دارد. پس از ایجاد، این دو می توانند در مورد شرایطی توافق کنند که قرارداد هوشمند را تکمیل می کند. این تصمیم در قرارداد هوشمند نوشته می شود؛ سپس رمزگذاری شده و در شبکه بلاکچین ذخیره می شود.
پس از تکمیل قرارداد، تراکنش بر روی بلاکچین مانند هر معامله دیگری ثبت می شود. سپس تمام گره ها با این تراکنش، نسخه بلاکچین خود را بروز رسانی می کنند و «وضعیت» جدید شبکه را بروزرسانی خواهند کرد.
اکنون، ممکن است این سوال برایتان پیش بیاید که آیا بیت کوین و سایر شبکه ها نیز می توانند از قراردادهای هوشمند استفاده کنند. تا حدی بله.
هر تراکنش بیت کوین(BTC) از نظر فنی نسخه ساده شده یک قرارداد هوشمند است و راه حل های لایه دو برای گسترش عملکرد شبکه در حال توسعه هستند. با این حال، استفاده اتریوم از قراردادهای هوشمند یک مورد خاص است.
برخلاف بسیاری از شبکه های بلاکچین که به عنوان دفتر کل توزیع شده توصیف می شوند، اتریوم چیزی است که به عنوان یک ماشین توزیع شده در نظر گرفته می شود که حاوی چیزی است که به عنوان ماشین مجازی اتریوم(EVM) شناخته می شود. این حالت ماشین که تمام گره های اتریوم موافقت می کنند که یک کپی از آن را نگه دارند، شامل کد قرارداد هوشمند و قوانینی که این قراردادها باید رعایت کنند می شود. از آنجایی که هر گره قوانینی را از طریق کد تنظیم می کند، همه قراردادهای هوشمند اتریوم محدودیت های یکسانی دارند.
قراردادهای هوشمند کجا اعمال می شوند؟
جدای از مثال بالا، پیاده سازی های مختلف و بالقوهای از قراردادهای هوشمند وجود دارد که می تواند جهان را خودکار کرده و آن را به مکانی آسان تر برای زندگی تبدیل کند. در ادامه چند نمونه برجسته از موارد استفاده قرارداد هوشمند را بررسی خواهیم کرد.
هویت دیجیتال
در اینترنت، اطلاعات یک نوع واحد پولی است. شرکت ها از دانستن علایق همه سود می برند و مردم همیشه کنترل نحوه به دست آوردن داده ها را ندارند و از آن سود نمی برند. با قراردادهای هوشمند، مردم کنترل را در دست خواهند داشت.
در آینده مبتنی بر بلاکچین، هویت ها توکنیزه خواهد شد. در حالت ایدهآل، این بدان معناست که هویت هر فرد در یک بلاکچین غیرمتمرکز به صورت ایمن وجود خواهد داشت. حال اسنادی را برای دریافت وام به بانک ارسال کند، می تواند روند تراکنش ها را دنبال و کنترل کند.
برای شبکه های اجتماعی، هیچ واسطهای یک شبکه را کنترل نمی کند. در عوض، کاربران انتخاب می کنند که کدام اطلاعات را عمومی و کدام را خصوصی نگه دارند. اگر بخواهند در تبادل اطلاعات شرکت کنند، مانند یک تایید می توانند یک قرارداد هوشمند ایجاد کنند و انتخاب کنند که کدام داده مورد معامله قرار می گیرد، نه اینکه صرفاً همه چیز کاربر را بگیرد. شخص ثالثی وجود ندارد تا برخی از داده ها را بگیرد یا مخفیانه آنها را ذخیره یا به فروش برساند.
همین امر در مورد معامله با بانک ها و سایر موسسات مالی نیز صدق می کند. ارتباط فقط شامل ارتباط ارسال مدارک مورد نیاز و اطلاعات حیاتی است.
مشاور املاک
در دنیای سنتی، دلالان املاک یک شر ضروری هستند. با توجه به اینکه فروش خانه، امری طولانی و پیچیده نیست؛ مالکان برای مدیریت موارد مختلف مانند کاغذ بازی و یافتن خریدار، یک دلال را استخدام می کنند. در حالی که این مسئله ممکن است برای فروشنده، ایدهآل به نظر برسد؛ اما به یاد داشته باشید که دلالان یا کارگزاران کمیسیون قابل توجهی از قیمت فروش خانه را می گیرند.
یک قرارداد هوشمند میتواند جای یک کارگزار را بگیرد و فرآیند انتقال مالکیت خانه را ساده تر کند و در عین حال اطمینان حاصل کند که این نقل و انتقال به اندازه روش سنتی آن، ایمن است.
تصور کنید سند خانه شما در بلاکچین اتریوم توکنیزه شده است. اگر آماده فروش آن هستید، باید یک قرارداد هوشمند با خریدار ایجاد کنید. آن قرارداد تا زمانی که وجوه خریدار به درستی ارسال نشود، سند را نگه می دارد و پس از انتقال کامل وجه، سند را به خریدار تحویل می دهد.
در این روش، همه برنده می شوند. فروشنده پول خود را به طور کامل دریافت می کند و دیگر نیازی به پرداخت کمیسیون به واسطه را ندارد؛ همچنین، خریدار نیز می تواند خانه را خیلی زودتر از گذشته تحویل بگیرد.
زنجیره تامین
مسلماً، یکی از محبوب ترین پیاده سازی های فناوری بلاکچین و قراردادهای هوشمند، به ویژه در زنجیره تامین است.
فروشگاه های مواد غذایی، انبارهای اداری، کشاورزان و غیره، همگی جایگاه ویژه خود را در زنجیره تامین دارند. اما، با پیچیدگی این شبکه ها، شرکت ها به طور فزایندهای برای پیگیری نگهداری محصول و پیگیری پرداخت ها با دشواری های مختلفی روبرو می شوند.
قراردادهای هوشمند می توانند تمام بخش های زنجیره تامین را خودکار کرده و انگیزه دهند تا مسئولیت پذیری آنها افزایش یابد.
معایب قراردادهای هوشمند
اگرچه قراردادهای هوشمند از نظر مفهومی عالی هستند، اما مطمئناً کامل نیستند. زیرا، قراردادهای هوشمند و شبکه های بلاکچین به صورت دستی برنامه ریزی می شوند. این امر، خطای انسانی را امکان پذیر می کند و این خطا می تواند منجر به سوء استفاده شود. این دقیقاً همان چیزی است که با حمله به سازمان غیرمتمرکز خودمختار اتریوم(DAO) در سال 2016 اتفاق افتاد. هکرها از یک آسیب پذیری در قرارداد هوشمند جمع آوری کمک مالی DAO سوء استفاده کردند و از آن برای مخفی کردن بودجه از پروژه استفاده کردند.
این به فقدان نظارت شفاف در مورد این توافق نامه های خودمختار اشاره نمی کند.
در حالی که ایده یک فرایند انتقال پول ایمن و کارامد روی از نظر تئوری و بر روی کاغذ عالی به نظر می رسد، هنوز مالیات و سایر دخالت های دولتی باید در نظر گرفته شوند. کاربران ممکن است بخواهند کنترل کاملی بر داده های خود داشته باشند، اما احزاب دولتی چگونه به آنچه نیاز دارند دست پیدا می کنند؟
همچنین، قراردادهای هوشمند(در وضعیت فعلی) نمی توانند اطلاعات را به خارج از شبکهای که در آن وجود دارند، ارسال کنند. به عبارت دیگر، شما نمی توانید داده ها را از یک وب سایت موجود در یک قرارداد هوشمند در اتریوم آپلود کنید. گفتنی است، یک راهحل در اوراکل ها وجود دارد، گره های خارج از زنجیره که اطلاعات را از اینترنت دریافت کرده و آن را با شبکه های بلاکچین سازگار می کنند. در نهایت، زمانی که پایگاه های داده به سمت بلاکچین حرکت می کنند، اوراکل ها می توانند به طور بالقوه وارد عمل شوند تا در تحقق آن نقش ایفا کنند.
علاوه بر این، یک مشکل مقیاس پذیری طولانی نیز وجود دارد. از زمان پیدایش، شبکه های بلاکچین تمایل دارند در مقیاس بزرگ با مشکل مواجه شوند، به این معنی که تراکنش ها بر اساس فعالیت ممکن است چند دقیقه(یا چندین ساعت) طول بکشد. اگرچه این می تواند در ابتدا یک مشکل باشد، اما پروژه های مانند اتریوم 2.0 به دنبال حل آن هستند. به علاوه، تراکنش هایی که چند ساعت طول می کشد همچنان بسیار سریع تر فرایند انتقال وجوه به صورت سنتی است.