بیتکوین شروع یک مسیر پرماجرا بود! اولین رمزارزی که بسیاری از موانع را در راه دیجیتالیزه کردن کامل زندگی بشر، از بین برد.
دور نخواهد بود زمانی که انجام همه کارها، از روی مبل نشیمن خانهتان ممکن شوند. همین حالا هم و مخصوصاً بعد از شیوع کرونا و قرنطینه جهانی، استفاده از اینترنت چندین برابر شد. خیلیها که از اینترنت استفاده زیادی نمیکردند، مجبور شدند تا برای رتقوفتق امور مختلف زندگیشان به این فضا روی بیاورند. خرید انواع مایحتاج، پرداخت قبوض مختلف، انجام فعالیتهای مختلف بانکی، برگزاری جلسات کاری و …، همهوهمه در اینترنت شکل گرفتند!
اما همانطور که بالاتر هم اشاره کردیم، این فقط شروع یک مسیر پرماجرا است! پیشبینی آینده غیرممکن است؛ اما به احتمال زیاد، بلاک چین و متعلاقتش مثل رمزارزها، متاورس، NFT و قرارداد هوشمند که موضوع همین مقاله است، نقش بسیار پررنگی در آن خواهد داشت. اگر دوست دارید اطلاعات کاملتری در این زمینه داشته باشید، به دسته دنیای بلاک چین و کریپتو بروید.
حالا برویم سراغ موضوع این مقاله، یعنی قرداد هوشمند یا Smart Contract.
قرارداد هوشمند یا اسمارکت کانترکت چیست؟
قراردادی که هوشمند است! واقعاً همینقدر ساده است و هیچگونه پیچیدگی در کار نیست. بیایید یک قرارداد معمولی را با هم مرور کنیم.
مثلاً اگر قرار باشد خودرویی معامله شود، مفاد آن روی کاغذ نوشته میشود و در حضور یک واسط معتبر و قانونی مثل محضر، طرفین پس از اجرای تعهدات خود، به خواستهشان میرسند. طرف A معامله که خریدار است، متعهد میشود مبلغ 1 میلیارد تومان را برای خودروی X که متعلق به طرف B است بپردازد. خب طرف B هم متعهد میشود پس از دریافت پول، خودرو را به نام خریدار بزند و مبارک باشد!
اما اینکه چطور دو طرف به یکدیگر اعتماد میکنند، مسئلهای است که با حضور در محضر و کمک گرفتن از قانون برطرف میشود. این سازوکار قراردادهای سنتی، همیشه مشکلاتی هم داشتهاند.
مسئله اول مربوط به مکان و فاصله است. مثلاً اگر یکی از طرفین در آمریکا باشد و دیگری در ایران، حتماً باید یکی از طرفین موکلی از طرف خود معرفی کند و به محل معامله بفرستد. در غیر اینصورت، امکان عقد قرارداد وجود ندارد.
مسئله دیگر مربوط به واسطه داستان است. همان محضر و محضردار! موردی که انقدر عادی بهنظر میرسد، شاید خیلیها به حذف آن هم فکر نکنند؛ اما اگر مشکل بیاعتمادی طور دیگری برطرف شود، چه نیازی به آنها (واسطهها) خواهد بود؟
قرارداد هوشمند یا Smart Contract حلال این دو مشکل است.
Smart Contractها، قراردادهای دیجیتالی هستند که روی بلاک چین تنظیم و نگهداری میشوند. تفاوت آنها نسبتبه قراردادهای معمولی، عدم نیازشان به هیچگونه واسطهای است. حتی اجرای آنها هم بهصورت خودکار خواهد بود. به این صورت که هنگام تهیه این نوع قراردادها، شروطی برای هریک از طرفین مشخص میشود؛ اگر همه طرفین وظایف خود را تماموکمال انجام دهند، قرارداد اجرا میشود و هرکس به خروجی مدنظرش میرسد؛ اما اگر حتی یکی از طرفین به تعهداتش پایبند نباشد، معامله لغو میشود و دیگران هم ضرر نخواهند کرد.
به همین سادگی، دو مشکل موقعیت مکانی و واسطه هم از بین خواهد رفت.
مقاله بلاک چین چیست را بخوانید تا بفهید چه کارهایی از این تکنولوژی بینظیر برمیآید.
در بخش بعدی، طرز کار این قراردادها را بررسی خواهیم کرد.
قرارداد هوشمند چگونه کار میکند؟
این نوع قراردادها، مجموعهای از کدها هستند که روی بلاک چینهای مختلف مثل اتریوم قرار گرفتهاند! در واقع، یک Smart Contract متشکل از کدهای مختلف و Statementهای if, when, for و … است.
اگر یادتان باشد، گفتیم قرارداد هوشمند، قراردادی است که بین دو یا چند نفر در قالب کدهای برنامهنویسیشده تنظیم گشته است. درست مثل هر برنامه دیگری، قراردادهای هوشمند هم از 3 بخش ورودی، منطق برنامه و خروجی تشکیل شدهاند. به طور کلی، منطق قراردادهای هوشمند به این صورت است که اگر شروط اجرا شدند، قرارداد هم اجرا شود.
همانطور که میدانید، Smart Contractها روی بلاکچین تعریف میشوند؛ این یعنی مزایای بلاک چین مثل غیرمتمرکز بودن شامل آنها هم میشود. همچنین این معنا را میرساند که تقلب در قرارداد و هک کردن آن تقریباً نشدنی است!
هرگاه ورودی برنامه، مطابق منطق نوشتهشده برای آن بود، مجموعهای از کامپیوترها (که هرکدام جزئی از بلاک چین هستند) دستبهکار میشوند تا خروجی برنامه اجرا شود. این خروجی میتواند انتقال پول، سندزدن یک خودرو، ایجاد یک تیکت ساده در سایت و … باشد. بعد از اجرای خروجی قرارداد، بلاک چین آپدیت میشود؛ یعنی دیگر احدی نمیتواند قرارداد را از بین ببرد یا حتی تغییر دهد. همچنین جزئیات معامله، فقط برای طرفهای درگیر قابل مشاهده خواهد بود.
هنگام تنظیم یک قرارداد هوشمند، میتوان هر تعداد شرطی را برای جلب اعتماد طرفین تعیین کرد. درست مثل هر برنامه دیگری! درضمن، برای اینکه قرارداد بدون مشکل اجرا شود، همه طرفین باید روی مفاد قرارداد توافق نظر داشته باشند؛ یعنی همه باید با شروطی که توسط if, when, then و … نوشته شده موافق باشند. سپس یک برنامهنویس بلدکار باید قرارداد را روی بلاک چین مدنظر بنویسد.
نکته: خیلی از ارگانها و کسبوکارهایی که در حال بهرهگیری از بلاک چین هستند، پیشنویس چنین قراردادهایی را بهصورت Template آماده دارند؛ یعنی لزوماً نیاز نیست هربار قرارداد از اول نوشته شود.
حالا بیایید راجعبه مزایای این نوع قراردادها صحبت کنیم.
قرارداد هوشمند چه مزایایی دارد؟
با استناد به مقالهای از سایت IBM که منبع اصلی ما برای این مقاله هم محسوب میشود، قراردادهای هوشمند میتوانند مزایای مختلفی داشته باشند. چه مزایایی؟!
1- سریع، کارآمد و دقیق
قرارداد هوشمند، بلافاصله پس از دستیابی به شروط مدنظر اجرا میشود! هیچ شکل دیگری از قرارداد در دنیا انقدر سریع اجرا نمیشود. دلیل این موضوع هم به ذات دیجیتال و خودکار بودن این نوع قراردادها بازمیگردد.
از آنجایی که هیچ کاغذی در کار نیست، هیچ زمانی هم صرف بررسی و تصحیح نوشتههای دستی نخواهد شد! همین موضوع عدم استفاده از کاغذ، باعث میشود قراردادهای هوشمند برای سلامت محیط زیست هم مفید باشند. فقط فرض کنید با همهگیر شدن Smart Contractها، چقدر در مصرف کاغذ در سطح جهانی صرفهجویی خواهد شد.
2- شفاف و قابلاعتماد
گفتیم در شکلهای سنتی عقد قرارداد، نیاز به یک واسطه خواهیم داشت که دو طرف به آن اعتماد داشته باشند. حال این واسطه میتواند یک شخص معتمد باشد یا یک نهاد که از مراجع قضایی مجوزهای لازم را اخذ کرده است. مشکلی که با استفاده از Smart Contract از بین میرود و دیگر نیازی به هیچگونه واسطه نخواهد بود.
همچنین، همانطور که بالاتر هم گفتیم، قراردادهای هوشمند روی بلاک چین قرار گرفته و اجرا میشوند. بنابراین، نگرانیای از بابت تغییر اطلاعات در جهت سوءاستفاده وجود ندارد.
3- امن و مطمئن
تمام اطلاعات مربوط به قرارداد، روی یک یا چند بلاک از بلاکچین ذخیره میشوند. تمام این بلاکها با استفاده از رمزنگاریهای پیچیده قفل شدهاند. همین مسئله، امنیت قراردادی که روی آنها قرار دارد را تا حد زیادی تأمین میکند.
در همه بلاک چینها، هر بلاک به بلاک قبل از خودش چسبیده است؛ یعنی علاوه بر اطلاعات موجود در خودش، اطلاعات بلاک قبلی را هم دارد. این موضوع ایجاد تغییر در بلاک چین را بسیار سخت میکند؛ چراکه آدم بد داستان برای اعمال تغییرات، باید تمام بلاکها را تا اولین بلاک ایجادشده دستکاری کند! بهخاطر غیرمتمرکز بودن کامپیوترهای ناظر بر بلاک چین، این کار تقریباً غیرممکن است. در نتیجه، خیالمان از امنیت قراردادهای هوشمند و عدم تغییرپذیری آنها راحتتر هم خواهد شد.
4- صرفهجویی در مخارج
چندین بار گفتیم که قراردادهای هوشمند، نیاز به هرگونه واسطهای را برای اجرای مفاد از بین میبرند. خب قاعدتاً همه آن پولی که قرار بود به حساب محضردار، بانک و وکیل واریز شود، در جیب خودتان میماند! جذاب نیست؟!
البته دستمزد برنامهنویسی که قرار است قرارداد را برای بار اول بنویسد فراموش نکنید.
با وجود تمام این نکات مثبت و مزایا، قراردادهای هوشمند ایراداتی هم دارند!
قرارداد هوشمند چه معایب و محدودیتهای دارد؟
شاید عبارت معایب خیلی مناسب نباشد؛ اما درست مثل هر برنامه دیگری، قرارداد هوشمند محدودیتهایی هم دارد.
درضمن، اگر بخواهیم دو طرف ماجرا را بگوییم، خیلیها مخالفت شدیدی با این نوع قراردادها دارند. البته که خب مقاومت در برابر تکنولوژی جدید و تغییر، از قدیمالایام یکی از خصوصیات بشر بوده است. محدودیتها مخصوصاً زمانی که Smart Contract روی بلاک چینهای داخلی شرکتها نوشته میشود، بیشتر خود را نشان میدهند؛ یعنی بلاک چینهای عمومی مثل اتریوم، بستر مناسبتری برای قرارداد هوشمند محسوب میشوند.
به هر حال، این شما و این محدودیتهای قراردادهای هوشمند:
1- غیرقابل تغییر بودن
یادتان هست بالاتر از این قابلیت بهعنوان مزیت یاد کردیم؟! بهتر است بگوییم غیرقابل تغییر بودن یک شمشیر دولبه است.
برنامهنویسها هم آدمیزاد هستند و ممکن است اشتباه کنند؛ مشکل این است که وقتی برنامه روی بلاکچین نوشته شده باشد، اعمال تغییر در نسخه نهایی آن آنقدر سخت است که خیلیها اصلاً سراغش هم نمیروند. همچنین، برای اعمال چنین تغییری، به مقدار زیادی زمان و پول نیاز خواهید داشت.
2- ناآشنا بودن برای عموم جامعه
چند سال پیش بود که ویتالیک بوترین قراردادهای هوشمند را به دنیا معرفی کرد؛ اما هنوز که هنوزه درصد خیلی زیادی از مردم، هیچ ایدهای از چیستی آن ندارند. به همین خاطر، شاید لزوماً نتوانید بهجای قراردادهای سنتی از انواع هوشمند استفاده کنید؛ چراکه شاید طرف مقابل شما هیچگونه آشناییای با این مفهوم و تواناییهایش نداشته باشد.
3- خطر عدم توقف اجرا
کافی است اشتباهی در کدنویسی رخ دهد. ممکن است در اثر همین تک اشتباه، برنامه تا قیامت بدون توقف اجرا شود. اگر در برنامهای معمولی و خارج از بلاک چین چنین مسئلهای رخ دهد، اصلاح آن کار خیلی سختی نخواهد بود؛ اما این در مورد قراردادهای هوشمند صدق نمیکند.
4- عدم حذف کامل واسطهها!
گیج نشوید. قراردادهای هوشمند همچنان یک راه ایدئال برای حذف هزینههای واسطهگری و البته خود واسطهها هستند؛ اما آیا مطلقاً به هیچگونه واسطهای نیاز نیست؟! نمیتوان انقدر با قطعیت صحبت کرد.
در حالت حداقلی، برنامهنویسی که قرار است قرارداد را تنظیم کند 1 واسطه خواهد بود. اگر بخواهید، میتوانید از وکیلتان بخواهید بر روند چگونگی تهیه برنامه توسط دولوپر نظارت داشته باشد. 1 واسطه دیگر.
با اینکه در همین حالت هم دست بسیاری از واسطهها کوتاه شده است، اما با آرمان اصلی که حذف تمام آنها و تحقق Web3.0 است فاصله زیادی داریم.
این هم از محدودیتها. در بخش بعدی، کمی به عمق ماجرا میرویم. میخواهیم راجعبه کاربردهای قراردادهای هوشمند بههمراه چند مثال صحبت کنیم.
در چه مواردی میتوان از قرارداد هوشمند استفاده کرد؟
با اینکه زمان زیادی از پیدایش قراردادهای هوشمند نمیگذرد، همین حالا هم این نوع قراردادها مصارف بسیاری دارند. از جمعآوری سرمایه برای پروژههای مختلف گرفته تا امور قانونی گوناگون. در ادامه، راجعبه برخی از مهمترین کاربردهای چنین قراردادهایی صحبت خواهیم کرد.
1- شرکتهای بیمه
با استناد به مقالهای در سایت BitDegree که اتفاقاً یکی از منابع ما برای تهیه این مطلب هم بود، دو شرکت شناختهشده بیمه با نامهای Atlas و Axa، از سال 2017 شروع به استفاده از Smart Contractها کردند.
مثلاً فرض کنید فردی خود را در مقابل تأخیر پرواز بیمه کرده باشد (شاید بهنظرتان مسخره بیاید، اما در کشورهایی که مردم دغدغه زیادی ندارند، این نوع از بیمهها هم رواج دارند). اگر شرکت بیمه، از فناوری بلاک چین و قراردادهای هوشمند استفاده کند، در صورت تأخیر داشتن پرواز، مبلغ خسارت بهصورت خودکار به حساب فرد متضرر واریز میشود. در غیر اینصورت، شرکت بیمه پول را نزد خود نگه میدارد.
2 نکته: توجه داشته باشید که همه مبالغ در قراردادهای هوشمند، توسط رمزارزها پرداخت میشوند. همچنین، بهخاطر خودکار بودن فرایند، هر دو طرف خیالشان راحت است که سرشان کلاه نرفته و قرارداد در شفافیت کامل انجام شده است.
2- سیستم سلامت
باز هم شما را به مقاله بلاک چین ارجاع میدهیم. در آن مقاله، از کاربرد بلاک چین برای سیستم سلامت صحبت کردیم. اینجا هم اصل مطلب همان است.
فرض کنید نظام سلامت بهگونهای تنظیم شود که تمام اطلاعات بیماران، روی یک پایگاه داده عمومی مثل بلاک چین ثبت شود. در این حالت، هم خیال همه از صحت اطلاعات راحت است و هم هر بیماری مالک اطلاعات خود خواهد بود.
مثلاً، اگر قرار باشد از اطلاعات بیماری برای امور تحقیقاتی استفاده کنند، باید اجازه او را داشته باشند. بیمار میتواند در ازای مبلغی پول این کار را انجام دهد؛ یا اصلاً میتواند کلاً اجازه چنین کاری را ندهد.
3- حکومتداری
یکی از مهمترین دستاوردهای بلاک چین و قراردادهای هوشمند، شفافیت است! از آنجایی که در همهجای دنیا، افرادی وجود دارند که نسبتبه عملکرد حاکمیت معترض باشند، استفاده از قراردادهای هوشمند در روند کشورداری، میتواند یک برگ برنده بزرگ برای حاکمین (آنهایی که ریگی به کفش ندارند!) و مردم باشد.
سادهترین دستاورد این نوع قراردادها در حکومتداری، برگزاری انتخابات شفاف و بدون امکان تقلب خواهد بود. هرکس نداند، ما ایرانیها میدانیم چنین قابلیتی چقدر کاربردی است!
به پایان مقاله رسیدیم. فقط باید در بخش آخر به یک نکته مهم اشاره کنیم.
قرارداد هوشمند هنوز ابتدای راه است!
ویتالیک بوترین بهعنوان اولین کسی که ایده استفاده از قرارداد هوشمند را مطرح کرد، چندی پیش گفت: شاید بهتر بود نام دیگری برای آن انتخاب میکردم!!
ویتالین این حرف را به این خاطر زد که این نوع قراردادها هنوز کاملاً بینقص نیستند. ایرادات گوناگونی وجود دارند که البته، با گذر زمان و پیشرفت تکنولوژی و دانش برنامهنویسی، یکی یکی در حال برطرف شدن هستند.
اگر دوستانتان هم مثل شما خوره تکنولوژی هستند، این مقاله را برایشان بفرستید تا با این مفهوم بسیار مهم آشنا شوند.