قرارداد هوشمند یک کد برنامهنویسی است که بر روی یک شبکه غیرمتمرکز مانند بلاکچین اجرا میشود و شرایط یک معامله خاص را تعریف میکند، همچنین با دریافت ورودیهای مشخص، وظایف محوله و یک سری دستورات را بدون نیاز بهواسطه بین طرفین اجرا میکند.
قرارداد هوشمند (Smart Contracts) چیست و چگونه کار میکند؟
در واقع میتوان گفت قرارداد هوشمند یک کد برنامهنویسی است که بر روی یک شبکه غیرمتمرکز مانند بلاکچین اجرا میشود و شرایط یک معامله خاص را تعریف میکند همچنین با دریافت ورودیهای مشخص، وظایف محوله و یک سری دستورات را بدون نیاز بهواسطه بین طرفین اجرا میکند.
منطق قرارداد هوشمند قابلتغییر نیست و به همین دلیل از آنها بهعنوان قرارداد یاد میشود و دقیقاً مانند توافق بین طرفین عمل میکنند. همچنین زمانی که یک قرارداد هوشمند بر روی بلاکچین اجرا میشود دیگر امکان توقف و یا تغییر در آن وجود ندارد و حتی شخصی که کد آن را برنامهنویسی کرده هم نمیتواند آن را تغییر دهد.
به زبان ساده میتوان گفت قرارداد هوشمند یک پروتکل میان دو یا چند نفر است. در این قرارداد بر اساس توافقات از پیش تعیین شده میبایست سر موعد مقرر، عملیاتی بهصورت خودکار انجام شود. این قراردادها معمولاً اینگونه طراحی میشود که در صورت تحقق تعهدات یکی از طرفین، بهصورت خودکار تعهد طرف دیگر را انجام میدهد. در یک مثال کاربردی و ساده، در قرارداد هوشمند، میتوان تعیین کرد که اگر به مقدار دلخواه به حسابی (در شبکه زنجیرهبلوک) توکن واریز شود، توکنی دیگر که میتواند سهام یک شرکت، توکنی با پشتوانه یک دارائی یا هر چیز دیگر باشد، بهصورت خودکار و بدون دخالت منتشرکننده، ارسال شود. اساساً، بهمحض تحقق برخی شرایط خاص، قرارداد هوشمند، دو طرف توافق میکنند که ارز رمزنگاری شده مبادله کنند. آنها میتوانند انتقال بیتکوین، پول فیات و مانند آن را به طور خودکار انجام دهند، قرارداد هوشمند در واقع امکان ایجاد تراکنشهای معتبر بدون واسط را فراهم میکند.
برای مثال یک شرکت بیمه میتواند با استفاده از قراردادهای هوشمند، آزادسازی مطالبات خود را بر اساس حوادثی مانند سیل در مقیاس بزرگ، طوفان یا خشکسالی به طور خودکار انجام دهد، یا برای مثال قرارداد هوشمند میتواند برنامهریزی شود تا هرساله بودجهای را برای تولد شخص، آزاد کند. قرارداد هوشمند همچنین مبنایی برای انتقال ارز رمزنگاری شده و توکنهای دیجیتال است.
تضمین اجرایی شدن تعهدات
در مدلهای متمرکز طرفین قراردادها شخصاً ضامن انجام تعهدات خود هستند؛ بنابراین، برای هر معامله نیاز است که طرفین به یکدیگر اعتماد داشته باشند. چراکه ممکن است یکی از طرفین، معامله را آغاز کند. درحالیکه طرف دیگر از عهد خود سر باز زند. به همین دلیل تا زمانی که ضامن تحقق تعهدات، خود طرفین معامله باشند، قرارداد هوشمند کامپیوتری نیز دردی را دوا نخواهد کرد.
اینجا بود که فناوری زنجیرهبلوک توانست به ایده قرارداد هوشمند، معنا ببخشد. در شبکههای زنجیرهبلوکی برای هر بندِ یک قرارداد هوشمند یک تحریککننده و یک نتیجه تعیین میشود. تحریککننده میتواند پرداخت پول (توکن)، انجام خدمت یا هر کار دیگری باشد که در بند قرارداد نوشته میشود. اما مهمتر از آن نتیجه است. بلافاصله پس از تحقق تحریککننده با ضمانت شبکه زنجیرهبلوکی (درواقع اعضای شبکه زنجیرهبلوکی) نتیجه محقق میشود. بدون آنکه نیاز باشد طرف سمت متعهد دوم کاری انجام دهد.
درحالحاضر پرکاربردترین پلتفرم برای تعریف قراردادهای هوشمند اتریوم است. البته بایستی دانست به گفته بنیانگذار اتریوم، ویتالیک بوترین (vitalik buterin) این پلتفرم برای ایجاد قراردادهای هوشمند به وجود آمده است. به عقیده وی زنجیرهبلوکهایی که تا زمان راهاندازی اتریوم فعالیت میکردند، علیالخصوص بیتکوین، بسیار صلب و انعطافناپذیر بودند؛ بنابراین، بوترین با اضافهکردن قرارداد هوشمند، کاربردهای این فناوری را بهطور چشمگیری توسعه داد.
چگونه قراردادهای هوشمند از قوانین تجارت تقلید میکنند
در واقع قراردادهای هوشمند چیزی بیش از قوانین تجاری ترجمه شده در نرمافزار نیستند. قراردادهای هوشمند میتوانند از فرایندهای خودکار پشتیبانی کنند که شامل چندین سازمان هستند. روشهای موجود برای خودکار کردن قوانین تجاری نمیتواند این کار را بکند.
به عبارت دیگر، از آنجا که کد قراردادهای هوشمند بر بستر بلاکچین اجرا میشوند، قوانین میتوانند نه تنها در شرکتی که قرارداد هوشمند را رمزگذاری کرده است، بلکه برای سایر شرکای تجاری مجاز به حضور در بلاکچین نیز اعمال شوند.
به عبارت دیگر، قرارداد هوشمند کدهایی هستند که آنچه برای آن برنامهریزی شده باشند را انجام میدهند، در واقع کارکرد آن به طریقه برنامهنویسی آن بستگی دارد؛ بنابراین اگر قوانین تجارت بد تعریف شده باشد، یا برنامهنویس کار را به درستی انجام ندهد نتیجه آن مطلوب نخواهد شد.
پس میتوان گفت یک قرارداد هوشمند، در واقع هوشمند نیست، فقط همانطور که برنامهریزی شده عمل میکند.
تفاوت قرارداد هوشمند و قراردادهای حقوقی هوشمند
قراردادهای حقوقی هوشمند با قراردادهای هوشمند متفاوت است. در واقع یک قرارداد هوشمند لزوماً به عنوان یک قرارداد از نظر قانونی قابل اجرا نیست. از طرف دیگر، یک قرارداد حقوقی هوشمند دارای تمام عناصر یک قرارداد قابل اجرای قانونی در حوزه قضایی است که در آن میتوان اجرا کرد و میتواند توسط دادگاه اجرا شود؛ بنابراین، در حالی که هر قرارداد حقوقی هوشمند شامل برخی از عناصر یک قرارداد هوشمند است، اما هر قرارداد هوشمند یک قرارداد حقوقی هوشمند نخواهد بود.
اوراکل (Oracle) و قرارداد هوشمند
در رابطه با مبحث قرارداد هوشمند، برنامهنویسی با کیفیت و صحت دادههای موجود در یک قرارداد هوشمند، بسیار مهم است؛ زیرا قوانین قرارداد هوشمند، پس از وضع قانون، غیرقابلتغییر هستند و پس از نوشتن قرارداد، نه کاربر و نه برنامهنویس نمیتوانند آن را تغییر دهند، بنابراین اگر دادهها درست نباشند قرارداد هوشمند نمیتواند بهدرستی کار کند.
دادهها برای اجرا به زنجیرههای بلوک هدایت میشوند و برای اجرای قرارداد هوشمند از منابع خارجی وAPI ها استفاده میشود.
اوراکل اطلاعات خارجی را فراهم میکند و در اختیار قرارداد هوشمند قرار میدهد تا بتواند کار خود را انجام دهد. به عبارت دیگر میتوان گفت اوراکل در واقع یک منبع داده است که بهعنوان پل ارتباطی بین قراردادهای هوشمند و دیگر منابع خارجی مورد استفاده قرار میگیرد. اوراکلها دادههای منابع خارجی را از طریق API ها بازیابی و تأیید میکنند.
نوع دادههای موردنیاز قراردادهای هوشمند، میتواند شامل اطلاعاتی در مورد قیمت برخی تجهیزات، اطلاعات آبوهوا و یا غیره باشد؛ در نتیجه، قراردادهای هوشمند میتوانند بر اساس اطلاعات خاصی که از منبع اطلاعات در جریان است، اجرا شوند.
انواع اوراکل
• اوراکلهای نرمافزاری
• اوراکلهای سختافزاری
• اوراکلهای ورودی و خروجی
• اوراکلهای متمرکز و غیرمتمرکز
• اوراکلهای با قرارداد خاص
• اوراکلهای انسانی
اوراکل میتواند مبتنی بر سختافزار یا نرمافزار باشد. به عنوان مثال یک اوراکل سختافزاری، ممکن است یک سنسور RFID در یک کانتینر باشد که اطلاعات مربوط به مکان را به طرفین قرارداد هوشمند انتقال میدهد.