همه چیز درباره قرارداد هوشمند بیت کوین

قبل از اینکه درباره قرارداد هوشمند بیت کوین صحبت کنیم، بهتر است ابتدا به طور کلی با چیستی قرارداد هوشمند، ویژگیها و تفاوتهای آن با قرارداد سنتی آشنا شویم و سپس به جزئیات بیشتری درباره قرارداد هوشمند بیت کوین بپردازیم.
قرارداد هوشمند یک کد برنامه نویسی شده روی بلاکچین است تا در صورت اتفاق افتادن برخی رخدادها، دستورات خاصی را که برنامهنویس به آن داده، اجرا کند. یکی از مزیتهای قراردادهای هوشمند این است که تراکنشها بدون نیاز به شخص ثالث یا واسطه انجام میشوند. در این مقاله در صرافی ارز دیجیتال او ام پی فینکس علاوه بر توضیح درباره قرارداد هوشمند، به طور اختصاصی به قراردادهای هوشمند بیت کوین خواهیم پرداخت.
پادکست قرارداد هوشمند بیت کوین
تفاوت قرارداد هوشمند با قرارداد سنتی
درباره تفاوت قراردادهای سنتی و هوشمند باید گفت که در قراردادهای سنتی که در حال حاضر در جهان رایج هستند، همیشه به وجود یک واسطه برای تنظیم قرارداد نیاز است که این واسطه یا شخص سوم برای تنظیم قرارداد مبلغی را به عنوان کمیسیون دریافت میکند. یکی دیگر از تفاوتها این است که در قراردادهای سنتی امکان تغییر یا لغو قرارداد وجود دارد و به عبارتی، هر یک از طرفین معامله میتواند زیر قولش بزند.
افزون بر آن، در قرارداد سنتی امکان تقلب همیشه وجود دارد اما در نوع هوشمند اینگونه نیست. قراردادهای هوشمند نیاز به واسطه ندارند و مانند دیگر تراکنشهای رمزارزی که در بستر بلاکچین انجام میشوند، به صورت همتا به همتا (P2P) میان طرفین معامله انجام میگیرد. همچنین غیر قابل تغییر بودن مفاد و شرایط قرارداد پس از تنظیم و انتشار آن، عملا امکان فسخ یک طرفه و تقلب را از بین بردهاست.

قرارداد هوشمند بیت کوین چیست؟
قرارداد هوشمند بیت کوین یک قرارداد دیجیتالی است که به صورت خودکار و بر اساس معیارهای از پیش تعریف شده اجرا میشود. به عنوان مثال، یک قرارداد هوشمند ممکن است مشخص کند که بیت کوین باید به طور خودکار از یک کاربر به کاربر دیگر پس از یک تاخیر زمانی خاص ارسال شود. قراردادهای هوشمند میتوانند بسیار پیچیده باشند و چندین معیار مشروط را شامل شوند، یا اینکه به راحتی یک امضای دیجیتال برای خرج کردن پول تنظیم شده باشند. قرارداد هوشمند بیتکوین میتواند زندگی را برای کسانی که مشغول معامله و تجارت هستند، آسان کند. این امر به دلیل توانایی بیت کوین در ارائه ترکیبی کامل از قرارداد هوشمند است.
بیت کوین چگونه قراردادهای هوشمند را انجام میدهد؟
شبکه بیتکوین از طیف گستردهای از قراردادهای هوشمند با استفاده از زبان برنامهنویسی قدرتمند خود به نام اسکریپت پشتیبانی میکند. اسکریپت به کاربران اجازه میدهد تا معیارهایی را برای بیت کوین خود تعیین کنند و تراکنشهای بیت کوین مقادیر خاصی از این رمزارز را روی این اسکریپتها قفل میکند. کاربر در قرارداد هوشمند باید این معیارها را برآورده کند تا بیت کوین را در اسکریپت قفل شده خرج کند. به این ترتیب، تمام تراکنشهای بیت کوین قراردادهای هوشمند هستند.
اسکریپت همان قفل کردن است که حاوی یک هش کلید عمومی است که به آن آدرس بیت کوین نیز گفته میشود. برخی از اسکریپتهای بیت کوین به چندین امضا یعنی اجازه چندین کاربر برای انجام تراکنش نیاز دارند. در این حالت، اسکریپت پیچیدهتر است. در واقع، زمانبندی تراکنشهای بیت کوین در این قسمت از اسکریپت ذخیره شدهاست.
اسکریپت بیت کوین و تورینگ کامل
اسکریپت بیش از یک دهه برای تامین انرژی شبکه بیت کوین مفید بوده است؛ اما مثل تورینگ کامل (Turing Complete) نیست. به این معنی که اجازه لوپهای منطقی را نمیدهد. این ویژگی شبکه بیتکوین را از محرومسازی از سرویس (DoS) که سایر شبکههای ارزهای دیجیتال را تحت تاثیر قرار دادهاست، مصون نگه میدارد.
تورینگ کامل (Turing Complete) به ماشینی گفته میشود که با در نظر گرفتن زمان و حافظه کافی همراه با دستورالعملهای لازم، هر مسئله پیچیدهای را بتواند حل کند. این اصطلاح به طور معمول برای توصیف زبانهای برنامه نویسی مدرن استفاده میشود زیرا بیشتر آنها Turing Complete C ++ ، Python و… هستند.
انواع قراردادهای هوشمند بیت کوین
محبوبترین نوع اسکریپت بیت کوین آدرس P2PKH یا (Pay-to-Public-Key-Hash) است که متداولترین نوع آدرس بوده و جزو آدرسهایی است که ما معمولا برای انجام تراکنشها در ارزهای رمزپایه استفاده میکنیم. اسکریپتهای P2PKH به بیت کوین این امکان را میدهد که تنها صاحب کلید خصوصی بتواند بیت کوین را خرج کند.
در نظر فنی، اسکریپتهای P2PKH شرایط خاصی را ایجاد میکنند که برای خرج بیتکوین، کاربر باید امضای ECDSA را ارائه کند که با کلید عمومی که هش آن توسط اسکریپت مشخص شده مطابقت داشتهباشد. از آنجایی که یک امضای معتبر فقط میتواند توسط صاحب کلید خصوصی مربوط به هش کلید عمومی ایجاد شود، بیت کوین منحصرا به صاحب کلید خصوصی تعلق دارد.
بنابراین، نمونه یاد شده یکی از سادهترین قراردادهای هوشمند بیتکوین محسوب میشود اما کاربرد زیاد و سادگی آن باعث محبوبیت این نوع قرارداد شدهاست. ایجاد قراردادهای هوشمند پیچیدهتر نیز با استفاده از بیت کوین اسکریپت امکانپذیر است و تعداد بینهایت زیادی در لایههای اضافی میتوان ایجاد کرد.
اسکریپتهای چند امضایی
در حالی که اسکریپتهای P2PKH فقط به یک امضا نیاز دارند، اسکریپتهای Multisig میتوانند به هر تعداد امضا نیاز داشته باشند که به صورت اختیاری متعلق به هر تعداد کاربر باشد. اسکریپتهای چند امضایی به شرح زیر عمل میکنند. لیستی از n کلید عمومی و یک عدد m کوچکتر یا مساوی n، مشخص میشود. بیت کوین قفل شده روی این اسکریپت تنها در صورتی میتواند خرج شود که m امضا ارائه شود که هر کدام از آنها با یکی از n کلید عمومی فهرست شده مطابقت دارد. این طرح m-of-n multisig نامیده میشود.

آدرسهای چند امضایی از روشهای مختلفی استفاده میکنند؛ مثلا یک آدرس ممکن است از سیستم ۲ از ۳ امضا استفاده کند که رایجترین نوع است. در این روش، حداقل ۲ امضا از ۳ امضای تولید شده، برای انتقال مبالغ مورد نیاز است. این به سه فرد اجازه میدهد تا پول را به صورت مشارکتی نگهداری کنند.
معاملات بیت کوین قفل شده بر اساس زمان
تراکنشهای بیتکوین میتوانند بر اساس زمان قفل شوند، به این معنی که فقط پس از یک زمان خاص معتبر هستند. قفلشدن با زمان، همچنین میتواند به عنوان بخشی از اسکریپتهای قفل برای تغییر نیازهای خرج کردن بیت کوین استفاده شود. به عنوان مثال، یک اسکریپت در ابتدا میتواند به ۳ امضا نیاز داشتهباشد تا بیت کوین را قبل از زمان مشخصی خرج کند و پس از آن زمان، فقط ۱ امضا لازم است. این گزینهها به طور ایدهآل از هدر رفتن سرمایه جلوگیری میکند.
هش اسکریپت (P2SH
ساختار آدرس های P2SH مشابه با آدرس های P2PKH است با این تفاوت که به جای عدد ۱ با عدد ۳ شروع میشوند. عنوان P2SH مخفف عبارت پرداخت برای هش اسکریپت (Pay to Script Hash) است و عملکرد بیشتری نسبت به آدرسهای لگسی ارائه میدهند. تابع اسکریپت P2SH اغلب برای آدرسهای چندامضایی (Multi Signature) استفاده میشوند که میتوانند مشخص کنند به چندین امضای دیجیتال برای تایید تراکنش نیاز است. این فرمت آدرس همچنین برای امکانپذیر ساختن تراکنشهای سگویت غیراصلی که از فرآیند P2WSH به P2SH استفاده میکنند به کار گرفته میشود. فرد عادی که فقط به ارسال و دریافت کوینها میپردازد نیازی ندارد خود را درگیر عملکردهای پیچیده تر P2SH کند.
قراردادهای هوشمند تپروت بیت کوین
تپروت (Taproot) بیت کوین یک به روزرسانی فنی در بلاک چین بیت کوین است که به افزایش مقیاسپذیری و بهبود وضعیت حریم خصوصی کاربران کمک خواهد کرد. از مزایای تپروت بیتکوین میتوان به کاهش مبلغ کارمزدها، افزایش انعطافپذیری و کارایی شبکه و انطباقپذیری بهتر راهکار لایتنینگ (lightning) اشاره کرد.
در توضیح بیشتر باید گفت که P2WSH یک نوع اسکریپت جدید به نام تپروت را معرفی کرد که عملکرد اسکریپتهای P2PKH و P2SH را یکپارچه کرده و به بیتکوین اجازه میدهد هم به کلید عمومی و هم به اسکریپتهای دلخواه ارسال شود. با این حال، در حالی که P2SH و P2WSH به بیتکوین اجازه میدادند به یک اسکریپت واحد ارسال شود، P2TR از درختهای اسکریپت جایگزین Merkelized (MAST) استفاده میکند تا امکان ارسال بیتکوین به حداکثر ۲^۱۲۸ اسکریپت دلخواه را فراهم کند.

ارتقای تپروت بیت کوین به کاربران بیت کوین انعطاف قابل توجهی در ساخت قراردادهای هوشمند پیچیده در زنجیره بیت کوین را ارائه میدهد. همچنین بهرهوری و حفظ حریم خصوصی را برای کانالهای لایتنینگ، که خود نوعی قرارداد هوشمند هستند، ممکن میسازد.
شبکه لایتنینگ
شبکه لایتنینگ (Lightning Network) یا شبکه صاعقه، یک تکنولوژی لایه دوم است که در بیت کوین معرفی شده و برای پرداختهای خرد استفاده میشود. این شبکه کمک میکند که معاملات کوچک، سریعتر و موثرتر انجام شوند. معاملات انجام شده در این شبکه کارمزد کمتری دارند و تایید آنها نیز سادهتر است. در لایتنینگ نتورک، معاملات از بلاکچین اصلی بیت کوین خارج شده و خارج از زنجیره انجام میشوند. این شبکه برای کاهش هزینهها و افزایش سرعت معاملات در یک معامله خارج از زنجیره (Off chain) طراحی شدهاست.
پیشنهاد شبکه لایتنینگ اولینبار توسط جوزف پون (Jospeh Pown) و تائودوس دریا (Taoudeus Derya) در سال ۲۰۱۵ مطرح شد. از آن زمان تاکنون این طرح درحالتوسعه است.
لایه های دیگر بیت کوین
شبکه لایتنینگ تنها یکی از پروتکلهایی است که امکان انتقال بیتکوین به خارج از زنجیره را فراهم میکند. سایرین، مانند شبکه لیکوئید (Liquid Network)، زنجیرههای جانبی (side chains)، و استیتچین (state chains) نیز به توانایی قرارداد هوشمند بیتکوین برای فعال کردن موارد استفاده بیشتر متکی هستند. با ادامه توسعه بیت کوین، شاهد تعداد فزایندهای از روشهای استفاده از بیت کوین در شبکههایی غیر از شبکه بلاکچین بیت کوین خواهیم بود. با این حال، همه این راهحلها به امنیت بلاکچین بیتکوین وابسته خواهد ماند و بیشتر آنها همچنان به شدت به زبان برنامهنویسی قدرتمند بیتکوین تکیه میکنند.
سوالات متداول
- ساختار قرارداد هوشمند چگونه است؟
ساخت قرارداد هوشمند، تثبیت اطلاعات، اجراسازی دستورالعملها و نهاییسازی چهار مرحله اصلی برای ایجاد یک قرارداد هوشمند بر روی شبکه بلاک چین هستند.
- قرارداد هوشمند چیست؟
قرارداد هوشمند یک کد برنامه نویسی شده روی بلاکچین است تا در صورت اتفاق افتادن برخی رخدادها، دستورات خاصی را که برنامهنویس به آن داده، اجرا کند.
- قرارداد هوشمند بیت کوین چیست؟
قرارداد هوشمند بیت کوین یک قرارداد دیجیتالی است که به صورت خودکار و بر اساس معیارهای از پیش تعریف شده اجرا میشود. به عنوان مثال، یک قرارداد هوشمند ممکن است مشخص کند که بیت کوین باید به طور خودکار از یک کاربر به کاربر دیگر پس از یک تاخیر زمانی خاص ارسال شود.