قرارداد هوشمند یک قرارداد دیجیتالی است که با استفاده از کد رایانه ای مشروط If-then برای تعریف توافق نامه بین دو یا چند طرف ، با قوانین و مجازات های خاص ، روی بلاکچین ثبت شده است. طرفین قرارداد ناشناس هستند ، با این حال خود قرارداد از طریق دفتر عمومی پخش می شود. یک رویداد محرک ، مانند ضربه زدن به قیمت اعتصاب یا رسیدن به یک تاریخ انقضا ، اجرای قرارداد را مطابق با شرایط توافق نامه کدگذاری شده در قرارداد هوشمند روشن می کند.
قراردادهای هوشمند وسیله ای برای تبادل پول ، سهام ، املاک یا هر نوع دارایی به روشی شفاف ، ایمن و بدون درگیری است در حالی که نیازی به واسطه گری توسط یک واسطه ندارد..
در طول این مقاله ، ما بیشترین سیستم عامل های قرارداد هوشمند را که اثبات شده اند در بین برنامه های مختلف تجاری کارآمد و قابل اعتماد هستند ، بررسی خواهیم کرد. اگر دوست دارید در مورد قراردادهای هوشمند اطلاعات کسب کنید و نحوه کار آنها ، ما یک کلاس آکادمی Cointelligence داریم که آنها را با جزئیات پوشش می دهد.
محبوب ترین سیستم عامل های قرارداد هوشمند
اتریوم (ETH)
Ethereum یک پلتفرم غیر متمرکز مبتنی بر بلاکچین است که قراردادهای هوشمندی را اجرا می کند ، این امر همچنین دریچه ای برای برنامه های غیرمتمرکز (DApps) باز کرده است. Ethereum Virtual Machine (EVM) یک ماشین مجازی است که کلیه قراردادهای هوشمند را اجرا می کند. EVM یک ماشین مجازی Turing Complete 256 بیتی است. قراردادهای هوشمند مبتنی بر Ethereum با استفاده از Solidity کدگذاری می شوند که یک زبان برنامه نویسی Turing Complete است و اجازه کد نویسی دستورات حلقه و شاخه را می دهد. جامدادی "کامل بودن تورینگ" Ethereum را برای رمزگذاری قراردادهای هوشمند با منطق پیچیده ایده آل می کند.
"گاز" سوخت قراردادهای هوشمند Ethereum است. این مقدار توان محاسباتی مورد نیاز برای اجرای قراردادهای هوشمند از طریق EVM را تعیین می کند. هنگامی که یک قرارداد هوشمند ارائه می دهید ، باید مقدار گاز آن را تعیین کنید. هر مرحله همراه با کد قرارداد هوشمند نیاز به یک مقدار از پیش تعیین شده گاز دارد تا اجرا شود.
قراردادهای هوشمند Ethereum می تواند:
– مانند "چند امضا" حسابهای ethereum ، به طوری که سکه ها فقط در صورت موافقت تعداد کاربران از پیش تعیین شده مصرف می شوند
– به سایر قراردادهای هوشمند موجود در بلاکچین اتریوم سودمندی ارائه دهید
– اطلاعات مربوط به مالکیت دارایی ، ثبت دامنه ، امتیازات عضویت ، حقوق برنامه و موارد دیگر را ثبت کنید
– توافق نامه های بین چندین طرف ، مانند اجاره ، همکاری تجاری و بیمه را مدیریت کنید
– برای صدور توکن هایی مانند ICO توکن هایی که برای بودجه جمعیت استفاده می شود ، کدگذاری شود. چندین استاندارد رمز برای صدور رمز در سیستم عامل Ethereum وجود دارد که شامل استانداردهای ERC-20 ، ERC223 و ERC77 است. ERC-20 ، با وجود اشکالات جدی که منجر به ضررهای میلیون دلاری در صنعت رمزنگاری شده است ، معمول ترین استاندارد برای صدور رمزها برای اهداف ICO است..
ERC-20 از طریق یکی از دو روش معامله رمز را انجام می دهد:
1- transfer (): این عملکرد باعث ارسال ارسال توکن ها به آدرس کاربر خاص می شود.
2- تأیید () + transferFrom (): این عملکرد سپردن نشانه ها را به یک قرارداد هوشمند از پیش تعریف شده روشن می کند.
با این حال ، اگر به طور تصادفی از عملکرد transfer () برای ارسال توکن به یک قرارداد هوشمند استفاده شود ، معامله با موفقیت انجام می شود ، با این وجود این تراکنش هرگز توسط آدرس قرارداد هوشمند گیرنده شناسایی نمی شود. این اشکال از توسعه دهندگان برای ایجاد استانداردهای ERC223 و ERC77 الهام گرفته است.
– ERC223: این استاندارد با تغییر در عملکرد انتقال () اشکال مهم ERC-20 را کاهش می دهد تا در پاسخ به انتقال نامعتبر خطایی ایجاد کند و معامله را لغو کند تا مبالغی از بین نرود..
– ERC777: این استاندارد مشکل ERC20 را در عدم انجام عملیات مدیریت معاملات برطرف می کند.
Ethereum یک انتخاب محبوب برای ایجاد قراردادهای هوشمند است ، اما مشکلات مقیاس پذیری این پلتفرم آن را برای بسیاری از برنامه های دنیای واقعی نامناسب می کند. جامدادی فاقد انعطاف پذیری کدگذاری است که توسط زبان های برنامه نویسی جدیدتر ارائه می شود. جامدادی فاقد پشتیبانی از آرایه های چند بعدی در پارامترهای ورودی و همچنین پارامترهای خروجی است. علاوه بر این ، Solidity تنها از 16 پارامتر در یک عملکرد قرارداد هوشمند پشتیبانی می کند.
با وجود این ، قراردادهای هوشمند مبتنی بر Ethereum در برنامه های مختلف مورد استفاده قرار می گیرد. مثلا, PCHAIN اولین پروژه بلاکچین برای ایجاد یک سیستم بومی و چند زنجیره ای بود که به طور کامل از ماشین مجازی Ethereum (EVM) پشتیبانی می کند – محیط زمان اجرا برای قراردادهای هوشمند Ethereum.
EOS
EOS به طور فزاینده ای به یکی از محبوب ترین سیستم عامل های قرارداد هوشمند تبدیل شده است. این پلت فرم به دلایل بی شماری مورد توجه جامعه رمزنگاری ها قرار گرفته است ، یعنی اینکه معاملات روی سیستم عامل تقریباً به صفر کارمزد احتیاج دارند و توانایی پلتفرم برای مدیریت میلیون ها تراکنش در ثانیه.
قراردادهای هوشمند با استفاده از C ++ برنامه ریزی می شوند ، که انعطاف پذیری برنامه را افزایش می دهد. قراردادهای هوشمند EOS بر روی بلاکچین به صورت Web Assembly (WASM) از قبل تدوین شده اجرا می شود که در مقایسه با قراردادهای هوشمند مبتنی بر Ethereum ، اجرای سریعتر قراردادها را ارتقا می بخشد. WASM با C / C ++ از طریق ابزارهای زنگ و LLVM کامپایل می شود. توسعه دهندگان برای اینکه بتوانند قراردادهای هوشمند را در بلاک چین EOS کدگذاری کنند ، باید از C / C ++ آگاهی داشته باشند. حتی اگر می توان از C برای ایجاد قراردادها استفاده کرد ، توصیه می شود از EOS.IO C ++ API استفاده کنید ، که ایمنی قرارداد را تقویت می کند و کد آن را به راحتی قابل خواندن می کند. EOS از مکانیسم اجماع اثبات سهام (dPoS) استفاده می کند ، که با ارزیابی جزئی و اجرای موازی برای ارائه یک بستر قرارداد هوشمند با مقیاس پذیری بالا و هزینه های معاملات نزدیک به صفر عمل می کند.
حتی اگر محبوبیت EOS بسیار کمتر از Ethereum است ، این سیستم را پایه گذاری کرده است "ریزش هوا" مدل به عنوان رقیبی برای مدل بودجه جمعیت ICO Ethereum.
Aion (AION):
Aion یک بستر قرارداد هوشمند است که امکان مسیریابی معاملات و پیام های بین بلاکچین های مختلف را از طریق ابتکاری خود فراهم می کند "پل زدن" پروتکل ها Aion یک شبکه چند لایه است که از اجزای زیر تشکیل شده است:
– پل ها
– اتصال شبکه ها
– معاملات بین زنجیره ای
– شبکه های مشارکت کننده
پل های Aion امکان معامله در چندین بلاکچین (معاملات بین زنجیره ای) از طریق اکوسیستم بلاکچین AION را فراهم می کند. تراکنش های بین زنجیره ای از طریق پل ها و شبکه های اتصال انجام می شود. شبکه های اتصال پروتکل هایی را نشان می دهند که از طریق آنها همه بلاک چین های خصوصی و عمومی می توانند با اکوسیستم زنجیره بلوک AION ارتباط برقرار کنند. شبکه های مشارکت کننده شبکه هایی هستند که مجموعه خاصی از شرایط را برای عضویت در اکوسیستم بلاکچین AION برآورده کرده اند. شبکه های مشارکت کننده باید از پخش معاملات اتمی پشتیبانی کرده و قفل زمانی را به کار بگیرند که به آنها امکان می دهد تراکنش هایی را که به حالت "اوه نگه دارید".
Aion Virtual Machine (AVM) اجرای قراردادهای هوشمند را امکان پذیر می کند. AVM یک اجرای JVM است که برای اجرای منطق زنجیره ای طراحی شده است. زبان Aion زبان اسکریپت نویسی است که برای برنامه ریزی قراردادهای هوشمند در AVM استفاده می شود. در حال حاضر ، هسته Aion از طریق جاوا اجرا می شود ، بنابراین توسعه دهندگان مجبورند از زبانهایی مانند Python یا Groovy برای رمزگذاری قراردادهای هوشمند در بلاکچین Aion استفاده کنند. با این حال ، این پلتفرم سرانجام برای نوشتن قراردادهای هوشمند به زبان Aion اعتماد خواهد کرد.
Aion-1 یک پلت فرم مستقل Aion است که اجازه اجرای قراردادهای هوشمند ایجاد شده در سایر بلاک چین ها را می دهد. در حال حاضر ، Aion به EVM اتریوم اعتماد می کند ، اما در نهایت Aion-1 فعال می شود و توسعه دهندگان را قادر می سازد قراردادهای هوشمند مبتنی بر Ethereum و DApps خود را بسیار ارزان تر و سریعتر از EVM اجرا کنند..
NEM
NEM یک بستر قرارداد هوشمند است که مقیاس پذیرتر از Ethereum است. جایی که Ethereum بتواند 15 تراکنش در ثانیه را مدیریت کند ، NEM صدها تراکنش را در ثانیه انجام می دهد. NEM سریعتر ، ایمن تر است و یک فناوری قرارداد هوشمند ساده را ارائه می دهد. NEM از کد خارج از بلاکچین برای برنامه نویسی قراردادهای هوشمند استفاده می کند ، که باعث می شود بلاکچین NEM کمتر از Ethereum غیرمتمرکز باشد ، با این وجود باعث افزایش سطح امنیت بالاتر ، تأیید سریع تر معاملات و کد برنامه نویسی سبک تر می شود. ویژگی های امنیتی موجود NEM مانند چندین امضا و دارایی های هوشمند این مشکل را برطرف می کند.
دارایی های هوشمند برنامه های منحصر به فردی برای مدیریت داده ها هستند که می توانند با استفاده از کد برنامه نویسی ساده ، سوابق داده ها ، نشانه ها ، سیستم های رأی گیری و سکه های جدید را ایجاد کنند. عملکرد فوق العاده بلاکچین NEM از طریق API قدرتمند آن فراهم می شود که به شما امکان می دهد از هر زبان برنامه نویسی (مانند JS ، Python و غیره) برای رمزگذاری قراردادهای هوشمند استفاده کنید. از API NEM برای توسعه استفاده می شود "قراردادهای خارج از زنجیره", که می تواند در هر زمان و بدون برقراری ارتباط با بلاک چین NEM به روز شود.
ستاره ای
Stellar یک بستر قرارداد هوشمند است که در آن معاملات از امنیت و سرعتی و ارزان تری نسبت به تراکنش های بلاک چین Ethereum برخوردار هستند. قراردادهای هوشمند Stellar (SSC) تورینگ کامل نیستند و در قالب توافقنامه های برنامه ریزی شده بین چندین طرف که توسط معاملات اجرا می شوند ، مستقر می شوند. در حالی که تأیید تراکنش در بلاکچین Ethereum حدود 3.5 دقیقه طول می کشد ، تأیید معامله در بلاکچین Stellar حدود 5 ثانیه طول می کشد. هزینه های معامله ناچیز است ، به طور متوسط در حدود (0.0001 XLM ~ = 0.0000002 $). SSC را می توان با استفاده از هر زبان برنامه نویسی مانند Python ، JS ، PHP ، Golang و غیره از طریق API Stellar کدگذاری کرد. SSC از معاملاتی تشکیل شده است که از طریق محدودیت های متعددی از جمله چند امضا ، دسته ای / اتمی ، توالی و محدوده زمانی به هم پیوسته و اجرا می شوند. بچینگ امکان درج چندین عملیات در یک معامله را فراهم می کند. اتمی تضمین می کند که با ارسال یک سری عملیات به شبکه Stellar ، در صورت عدم اجرای یک عملیات ، کلیه عملیات در یک معامله از کار می افتد. Sequence یک مفهوم منحصر به فرد است که در زنجیره بلوک Stellar از طریق "شماره ترتیب". در صورت اجرای موفقیت آمیز یک معامله جایگزین ، با شماره های توالی معاملات خاص از کار می افتند. محدودیت های زمانی نشان دهنده محدودیت هایی در دوره اعتبار یک معامله است. استفاده از محدودیت های زمانی اجازه نمایش دوره های زمانی در SSC را می دهد.
پارچه هایپرلجر (HLF)
Hyperledger Fabric (HLF) یک بلاک چین مجاز است که با انعطاف پذیری پیشرفته طراحی شده است. قراردادهای هوشمند HLF معروف به "کد زنجیره ای". HLF به زبان Go ، زبان برنامه نویسی منبع باز Google نوشته شده است ، بنابراین chaincode از این زبان نیز به خوبی پشتیبانی می کند.
کوردا
Corda یک بستر قرارداد هوشمند است که برای ایجاد توافقات مالی ایده آل است. قراردادهای هوشمند Corda معاملات معتبری هستند که باید توسط قرارداد هوشمند هر یک از کشورهای ورودی و خروجی آن پذیرفته شوند. قراردادهای هوشمند با استفاده از زبان برنامه نویسی JVM مانند جاوا یا کوتلین کدگذاری می شوند. اجرای یک قرارداد هوشمند قطعی است و پذیرش آن در معامله صرفاً به محتوای معامله متکی است. گاهی اوقات ، اعتبار یک معامله متکی به اطلاعات خارجی مانند قیمت توکن است. در چنین حالتی ، یک سخنرانی لازم است. یک واقعیت را می توان کدگذاری کرد تا بخشی از دستور معامله باشد. اوراکل نمایانگر سرویسی است که فقط در صورت صحت این دستور معامله را تأیید می کند.
DApps Corda یا CorDapps ، در سطح گره های شبکه نصب می شوند ، نه در خود شبکه بلاکچین. برنامه های CorDapp با استفاده از جاوا یا کوتلین کدگذاری می شوند. CorDapp ها برای اجرا در سیستم عامل Corda کدگذاری شده اند. این امر از طریق تعیین جریانهایی که اپراتورهای گره Corda می توانند از طریق تماسهای RPC فراخوانی شوند ، حاصل می شود.
NEO
NEO یک بستر قرارداد هوشمند است که دارای قراردادهای هوشمند کارآمد و کم هزینه است. قراردادهای هوشمند را می توان با استفاده از هزاران زبان برنامه نویسی از جمله C # ، F # ، Java ، Python ، VB.Net و Kotlin کدگذاری کرد. NEO برای همه این زبانها پلاگین و کامپایلر ارائه می دهد. در آینده ، پشتیبانی از JS ، Go language ، C و C ++ اجرا خواهد شد.
قراردادهای هوشمند NEO از طریق ماشین مجازی سبک NEO (NeoVM) انجام می شود. اجرای قرارداد هوشمند از طریق NeoVM حداقل منابع را مصرف می کند. تلفیق استاتیک قراردادهای هوشمند و ذخیره قراردادهای هوشمند hotspot می تواند از طریق کامپایلر JIT در زمان واقعی به میزان قابل توجهی افزایش یابد. در حال حاضر ، بلاکچین NEO دارای Smart Contract 2.0 است که از پشتیبانی از ساختار داده ها و آرایه های پیچیده پشتیبانی می کند. همچنین ، Smart Contract 2.0 از طریق پارتیشن بندی پویا و همزمانی بالا ، همراه با طراحی اتصال کم ، رویکردی مقیاس پذیر را ارائه می دهد. روش اتصال جفت اتصال قراردادهای هوشمند در NeoVM اجرا می شود و از طریق یک لایه سرویس تعاملی با سیستم های خارج از زنجیره ارتباط برقرار می کند. بدین ترتیب ، بسیاری از ارتقا عملکردهای قرارداد هوشمند را می توان از طریق API ویژه لایه سرویس تعاملی به دست آورد.
امواج
قراردادهای هوشمند Waves از طریق زبان برنامه نویسی RIDEON کدگذاری می شود. راه اندازی قراردادهای هوشمند Waves به دو مرحله تقسیم می شود. مرحله اول قبلاً در آوریل گذشته اجرا شده است که امکان توسعه قراردادهای هوشمند کامل غیر تورینگ را در testnet فراهم می کند. قراردادهای کامل کامل غیر تورینگ مرحله اول ، تعداد بی شماری از قابلیت های کنترل حساب را امکان پذیر می کند که موارد استفاده چندگانه از مبادله رمزها در بلاکچین های مختلف تا کنترل کنترل بودجه مشترک را پوشش می دهد. یکی از موارد متداول استفاده از قراردادهای هوشمند کامل غیر تورینگ Waves ، حساب های چند امضایی است. همچنین ، می توان از آنها برای اجرای انجماد رمز استفاده کرد ، که شامل ارسال رمز به یک آدرس و اطمینان از عدم هزینه آن ، یعنی غیرقابل انتقال ، برای مدت زمانی از پیش تعریف شده است. این پس از پایان فروش گسترده ، در اجرای واگذاری رمز برای سازندگان ICO کاملاً مفید خواهد بود.
پس از اینکه مرحله اول قراردادهای هوشمند کامل غیر تورینگ به طور گسترده در شبکه اصلی Waves آزمایش و فعال شد ، مرحله دوم قرارداد های هوشمند کامل تورینگ راه اندازی می شود.
استراتیس
Stratis از چارچوب محبوب محبوب دات نت استفاده می کند. قراردادهای هوشمند از طریق زبان برنامه نویسی C # کدگذاری می شوند. قراردادهای هوشمند باید به طور قطعی اجرا شوند ، بنابراین نمی توانند از تمام قابلیت های C # یا همه کتابخانه های اصلی .NET استفاده کنند. Stratis همچنین به "گاز" مفهوم ، که یکسان با مفهوم گاز اتریوم است.
کاردانو
Cardano یک بستر قرارداد هوشمند است که متمرکز بر ارائه تضمین هایی است که قرارداد هوشمند دقیقاً همانند کدگذاری شده و بدون آسیب پذیری پنهان عمل می کند. قراردادهای هوشمند را می توان با استفاده از Solidid یا Plutus کدگذاری کرد. Cardano دارای لایه محاسباتی Cardano (CCL) است که از دو لایه تشکیل شده است – یک چارچوب زبان و یک ماشین مجازی که به طور رسمی مشخص شده است. چارچوب زبان مجموعه ای از زبان های برنامه نویسی را که به طور رسمی مشخص شده اند ، ارائه می دهد که احراز هویت خودکار کد قرارداد هوشمند قابل خواندن انسان را تسهیل می کند.
تزوس
Tezos یک بستر قرارداد هوشمند است که از تأیید رسمی کد قرارداد هوشمند موجود پشتیبانی می کند. قراردادهای هوشمند با استفاده از یک زبان برنامه نویسی جدید ، معروف به Michelson ، کدگذاری می شود که امنیت را افزایش می دهد. برخلاف Solidity ، کد Michelson برای هیچ چیز کامپایل نمی شود. درعوض ، این یک زبان برنامه نویسی کامل تورینگ سطح پایین ، مبتنی بر سهام است که مستقیماً توسط ماشین مجازی Tezos تفسیر می شود. قراردادهای هوشمند برنامه ریزی شده Michelson امکان کدگذاری سازه های سطح بالا از جمله مجموعه ها ، نقشه ها ، مبانی رمزنگاری ، lambdas و عملیات خاص قرارداد را فراهم می کند که کد را برای انسان قابل خواندن می کند.
بعدی (NXT)
بعدی ارز رمزنگاری شده و یک بستر قرارداد هوشمند است. حتی اگر قراردادهای هوشمند Next غیر تورینگ کامل باشد ، این پلت فرم از یک لایه برنامه نویسی کامل تورینگ منحصر به فرد استفاده می کند که کاربران را قادر می سازد به راحتی قراردادهای هوشمند الگو ایجاد کنند. کاربران می توانند مناسب ترین الگو را برای نیازهای خود انتخاب کرده و پارامترهای آن را تغییر دهند تا قراردادهای هوشمندانه خود را ایجاد کنند. توسعه دهندگان پلت فرم Next معتقدند که این الگوهای قرارداد هوشمند تقریباً در همه برنامه های تجاری را پوشش می دهد ، علاوه بر این که کدگذاری و اجرای آن ساده است.
افکار نهایی
ارزهای رمزنگاری شده دیگری وجود دارد که امکان توسعه سیستم عامل های قرارداد هوشمند از جمله Quorum ، Wanchain ، Aeternity ، Zen ، Counterparty ، Rootstock ، RChain ، Qtum ، Ark ، Neblio ، DFINITY ، BOSCoin ، Agoras Tauchain ، Burst ، iOlite ، ByteBall ، XTRABYTES ، Radix ، Exonum ، Universa ، Urbit ، Soil ، Expanse ، Monax و احتمالاً دیگران. با این حال ، سیستم عامل های ارائه شده در این مقاله پرکاربردترین و مواردی هستند که ثابت شده اند در برنامه های مختلف قابل اعتماد هستند.