ساخت قراردادهای هوشمند اتریوم با Solidity
Blockchain یک پایگاه داده عمومی است که سوابق دائمی معاملات دیجیتالی را در خود نگه می دارد. این سیستم به عنوان یک سیستم معاملاتی بی اعتماد عمل می کند ، چارچوبی که در آن افراد می توانند بدون نیاز به اعتماد به شخص ثالث یا دیگری به معاملات نظیر به نظیر بپردازند.
بیایید ببینیم که چگونه می توان قراردادهای هوشمند را در Ethereum با Solidity ایجاد کرد:
اتریوم
Ethereum بستری است که به مردم امکان می دهد با استفاده از فناوری بلاکچین به طور کارآمد برنامه های غیرمتمرکز بنویسند.
یک برنامه غیرمتمرکز (Dapp) ابزاری برای افراد و سازمان های مختلف در تعامل است که بدون هیچ واسطه متمرکز در کنار هم قرار می گیرند. نمونه های اولیه Dapps شامل BitTorrent (اشتراک فایل) و Bitcoin (واحد پول) است.
ما می توانیم Ethereum را به عنوان یک بلاکچین با زبان برنامه نویسی داخلی توصیف کنیم.
Ethereum ماشین مجازی (EVM)
از نقطه نظر عملی ، EVM می تواند به عنوان یک سیستم بزرگ و غیرمتمرکز شامل میلیون ها شی به نام حساب در نظر گرفته شود ، که می تواند یک پایگاه داده داخلی را نگه داری کند ، کد را اجرا کند و با یکدیگر صحبت کند.
اولین نوع حساب ممکن است برای کاربر معمولی که از شبکه استفاده می کند آشنا ترین باشد. نام آن EOA (حساب متعلق به خارج از کشور) است. برای انتقال مقدار (مانند اتر) استفاده می شود و توسط یک کلید خصوصی کنترل می شود.
از طرف دیگر ، نوع دیگری از حساب نیز وجود دارد که همان قرارداد است. بیایید جلو برویم و ببینیم این در مورد چیست:
قرارداد هوشمند یا Smart Contract چیست؟
قرارداد هوشمند یک اسکریپت مستقل است که معمولاً با Solidity نوشته و در قالب باینری یا JSON کامپایل شده و در یک آدرس خاص در بلاکچین مستقر می شود. به همان روشی که می توان یکendpoint URL خاص از RESTful API فراخوانی کرد تا منطقی را از طریق HttpRequest انجام دهد ، می توانیم قرارداد هوشمند مستقر شده را با ارسال داده های صحیح همراه با Ethereum لازم برای فراخوانی، در یک آدرس خاص اجرا کنیم تا Solidity function کامپایل و مستقر شود.
از دیدگاه کسب و کار ، این بدان معناست که توابع قرارداد هوشمند می توانند ذاتاً درآمدزایی کنند (مشابه عملکرد AWS Lambda که به کاربران امکان می دهد در هر چرخه محاسبه به جای نمونه پرداخت کنند). نکته مهم ، عملکردهای قرارداد هوشمند برای اجرای آن نیازی به هزینه اتریوم ندارند.
به زبان ساده ، ما می توانیم یک قرارداد هوشمند را به عنوان مجموعه ای از کدهای ذخیره شده در شبکه بلاکچین ببینیم که شرایطی را تعریف می کند که همه طرف های قرارداد بر آن توافق می کنند.
این توسعه دهندگان را قادر می سازد چیزهایی را که هنوز اختراع نشده اند ، ایجاد کنند. یک لحظه به آن فکر کنید – نیازی به واسطه نیست و همچنین خطر طرف مقابل وجود ندارد. ما می توانیم بازارهای جدیدی ایجاد کنیم ، رجیستری از بدهی ها یا وعده ها را ذخیره کنیم و مطمئن باشیم که اجاره نامه شبکه ای را که معاملات را تأیید می کند ، داریم.
هر کسی می تواند با پرداخت هزینه متناسب با اندازه فضای کد ، یک قرارداد هوشمند در پایگاه داده غیرمتمرکز مستقر کند. node هایی که مایل به استفاده از قرارداد هوشمند هستند باید به نوعی نتیجه مشارکت خود را به بقیه شبکه نشان دهند.
Solidity
اصلی ترین زبان مورد استفاده در Ethereum ، جامدادی است – که یک زبان مشابه Javascript است که به طور خاص برای نوشتن قراردادهای هوشمند ساخته شده است. جامدادی بصورت ثابت تایپ می شود ، از ویژگی های ارثی ، کتابخانه ها و انواع پیچیده تعریف شده توسط کاربر پشتیبانی می کند.
کامپایلر solidity کد را به bytecode EVM تبدیل می کند ، سپس می تواند قرارداد اتریوم به عنوان یک تراکنش استقرار به شبکه Ethereum ارسال شود. چنین تراکنشی نسبت به تعاملات قرارداد هوشمند هزینه های معامله قابل توجه تری دارد و باید توسط مالک قرارداد پرداخت قرارداد اتریوم شود.
ایجاد یک قرارداد هوشمند با solidity
خط اول در یک قرارداد solidity نسخه کد منبع را تنظیم می کند. این امر برای اطمینان از این است که قرارداد به طور ناگهانی با نسخه کامپایلر جدید رفتار متفاوتی ندارد.
برای مثال ، نام قرارداد Greeting است و همانطور که می بینیم ایجاد آن مشابه کلاس در جاوا یا زبان برنامه نویسی شی گرا است:
در این مثال ، ما متغیرهای دو حالت را تعریف کردیم: creator و message. در Solidity ، ما از نوع داده با نام آدرس برای ذخیره آدرس حساب ها استفاده می کنیم.
بعد ، ما باید هر دو متغیر را در سازنده مقداردهی اولیه کنیم.
Constructor
ما یک constructor را با استفاده از کلمه کلیدی function و به دنبال آن نام قرارداد (دقیقاً مانند جاوا) تعریف می کنیم.
constructor یک function ویژه است که وقتی یک قرارداد برای اولین بار در بلاک چین Ethereum مستقر می شود ، فقط یک بار فراخوانی می شود. ما فقط می توانیم یک function را برای یک قرارداد تعریف کنیم:
ما همچنین رشته _message را به عنوان یک پارامتر به سازنده تزریق می کنیم قرارداد اتریوم و آن را روی حالت متغیر پیام قرار می دهیم.
در خط دوم سازنده ، متغیر Creator را در مقداری به نام msg.sender مقداردهی اولیه می کنیم. دلیل اینکه نیازی به تزریق msg به سازنده نیست ، به این دلیل است که msg یک متغیر global است که اطلاعات خاصی را در مورد پیام مانند آدرس حساب ارسال کننده آن ارائه می دهد.
ما به طور بالقوه می توانیم از این اطلاعات برای اجرای کنترل دسترسی برای توابع خاص استفاده کنیم.
تعامل با یک قرارداد هوشمند
برای تعامل با یک قرارداد هوشمند در شبکه غیرمتمرکز (بلاکچین) لازم است که به یکی از مشتریان دسترسی داشته باشیم.
برای انجام این کار دو روش وجود دارد:
- خودمان client را اجرا کنیم
- با استفاده از سرویسی مانند Infura به یک node از راه دور متصل شویم.
Infura ساده ترین گزینه است ، بنابراین ما یک رمز دسترسی رایگان درخواست خواهیم کرد. پس از ثبت نام ، باید URL Rinkeby test network را انتخاب کنیم: “https://rinkeby.infura.io/ ”.
برای اینکه بتوانیم با قرارداد هوشمند از جاوا معامله کنیم ، باید از کتابخانه ای به نام Web3j استفاده کنیم. در اینجا dependecy Maven وجود دارد:
ایجاد کیف پول یا Wallet
Web3j به ما اجازه می دهد تا از برخی از قابلیت های آن از خط فرمان استفاده کنیم:
- ایجاد کیف پول
- مدیریت رمز عبور کیف پول
- انتقال وجوه از یک کیف پول به کیف پول دیگر
- بسته بندی عملکرد قرارداد هوشمند Solidid ایجاد کنید
ابزارهای خط فرمان را می توان به عنوان یک فایل zip / tarball از صفحه انتشارات repository پروژه ، در بخش Downloads یا برای کاربران OS X از طریق homebrew تهیه کرد.
برای تولید یک کیف پول جدید Ethereum ، دستور زیر را در خط فرمان تایپ می کنیم:
از ما گذرواژه و آدرسی را می خواهد که بتوانیم کیف پول خود را ذخیره کنیم. این پرونده در قالب Json است و اصلی ترین چیزی که باید بخاطر بسپارید آدرس Ethereum است.
10,000,000 اتر اکنون به قرارداد اثبات سهام اتریوم سپرده شده است
قرارداد سپرده اثبات سهام اتریوم با نزدیک شدن به آخرین شبکه آزمایشی پیش از ادغام، نقطه عطف جدیدی را ثبت می کند.
10 میلیون ETH اکنون در قرارداد سپرده قفل شده است
در 10 مارس 2022(دیروز)، مشتاقان انجمن اتریوم (ETH) یک نقطه عطف شگفت انگیز در قرارداد سپرده اثبات سهام خود را جشن می گیرند.
اولین قرارداد سپرده گذاری اتریوم جدید (ETH) اکنون بیش از 10 میلیون اتر (ETH) در موجودی خود دارد. بنابراین، ارزش دلاری قرارداد از 26 میلیارد دلار فراتر می رود.
به این ترتیب، قسمت اعظم از کل عرضه در گردش دومین ارز دیجیتال در این قرارداد قفل شده است. با این حال، برخی از ردیابهای خودکار (به عنوان مثال، Beaconscan) نشان میدهند که این نقطه عطف هنوز در راه است.
در 23 نوامبر 2020(3 آذر 1399)، قرارداد سپرده گذاری اتریوم 2.0 به عنوان بلوک سازنده اکوسیستم آن راه اندازی شد.
آخرین شبکه آزمایشی پیش از ادغام، Kiln، فعال می شود
با توجه به این نقطه عطف، توسعه دهندگان اتریوم (ETH) آزمایش مکانیسم اثبات سهام اتریوم را تسریع کردند.
همانطور که توسط توسعه دهنده اتریوم، Marius van der Wijden گزارش شده است، Kiln، آخرین شبکه آزمایشی پیش از ادغام، راه اندازی شده است. پس از اتمام آزمایش، توسعه قرارداد اتریوم دهندگان اتریوم شروع به ادغام شبکه های آزمایشی عمومی «کاربردی» Ropsten، Rinkeby و Goerli خواهند کرد.
از علاقه مندان دعوت می شود تا فرصت های به دست آمده توسط شبکه آزمایشی جدید را امتحان کنند: آنها حتی می توانند dApps و DeFi را در Kiln بکار گیرند
این مطلب صرفاً ترجمه از منبع ذکر شده بوده و مسئولیت آن با آکادمی پرشیا بلاکچین نمی باشد.
حذف NFT های غیرفعال اتریوم با ارتقا قرارداد هوشمند OpenSea
حذف NFT های غیرفعال اتریوم با ارتقا قرارداد هوشمند OpenSea
به گزارش زوم ارز، یکی از محبوبترین بازار های NFT موسوم به OpenSea قرارداد هوشمند خود را ارتقا داده است، که منجر به حذف NFT های غیرفعال از پلتفرم میشود.
به عنوان بخشی از این ارتقا، تمام کاربران OpenSea باید NFT های خود را (که در حال حاضر در بلاکچین اتریوم قرار دارند) به قرارداد هوشمند جدید منتقل کنند.
بنا به اعلامیه ی OpenSea، لیست NFT هایی که قبل از 18 فوریه ایجاد شدهاند تا یک هفته بعد در روز 25 فوریه به شکل خودکار منقضی خواهند شد.
در صورت موفق بودن انتقال، لیست NFT تاریخ ایجاد شدن اولیه را نمایش خواهد داد. هرچند، پس از ددلاین، کاربران اجازه خواهند داشت تا NFT های حذف شده از لیست را بر روی قرارداد هوشمند جدید دوباره لیست کنند.
طی این مرحله، OpenSea برای این انتقال NFT هزینه ای را اعمال نخواهد کرد اما قرارداد هوشمند قدیمی بر اساس اتریوم را از اعتبار ساقط خواهد کرد. این بازار با بیشترین پیشروی در فضای NFT تبدیل به بزرگترین بازار برای معامله کنندگان NFT شد.
ضمن تایید پتانسیل مالی در هم گسیخته ی این فناوری، یک دانشجوی اندونزیایی به نام سلطان الغزلی با فروش سلفی های NFT خود در OpenSea به یک میلیونر تبدیل شد.
همانطور که پیشتر گزارش شد، در ماه دسامبر سال 2021 غزلی سلفی هایی را در حالت های نشسته یا قرارداد اتریوم ایستاده در جلوی کامپیوتر خود گرفت، که بعدا تبدیل به NFT شد و در OpenSea آپلود شد. مجموعه ی غزلی در نهایت به حجم معاملاتی کلی 317 اتریوم رسید، که معادل بیش از 1 میلیون دلار است.
برای اطلاع از تمامی اخبار دنیای دیجیتال به کانال تلگرامی ما به نشانی @Zoomarz98 بپیوندید.
چرا اتریوم به عنوان بزرگترین پلتفرم قرارداد هوشمند شناخته میشود؟
سروش کرمیان عضو تحریریه
۲۰ فروردین ۱۴۰۱
زمان مطالعه : 4 دقیقه
برای بوکمارک این نوشته وارد شوید
اتریوم به عنوان بزرگترین پلتفرم قرارداد هوشمند شناخته میشود. این پلتفرم تا به امروز بیشترین سطح پذیرش و استفاده در میان کاربران را به خود اختصاص داده است. در حالی که چشم انداز بلند مدت پلتفرمهای قرارداد هوشمند در حال تغییر است، تغییراتی که در اتریوم روی میدهد میتواند تاثیر بهسزایی بر کل اکوسیستم رمزارزها بگذارد. دنیای رمزارزها بوسیله اتریوم تاکنون پیشرفتهای زیادی را تجربه کرده است.
شبکه اتریوم روزانه انتقال رقمی بیش از ۵۰ میلیارد دلار را تسهیل میکند. انتقال این مقدار دارایی در این شبکه صرفا به واسطه توکن اتریوم اتفاق نمیافتد، قراردادهای هوشمند موجب انتقال این ارقام هستند. قراردادهای هوشمندی که باعث شکل گیری فضای مالی غیر متمرکزی شامل انواع خدمات از قبیل وامدهی، بیمه، تبادل غیرمتمرکز دارایی و پرداخت، میشوند. بلاکچین اتریوم برای پشتیبانی از این حجم تراکنش در بخش فنی، برای قرارداد اتریوم مقابله با بزرگترین چالش این شبکه یا همان مقیاسپذیری، از مجموعهای از راهحلها در حال توسعه استفاده میکند.
چالش مقیاس پذیری اتریوم
چالش مقیاسپذیری اتریوم پدیده جدیدی نیست. ظهور NFTهای بازی CryptoKitties و فعالیتهایی که در کنار آن شکل گرفت، در اوایل سال ۲۰۱۷ موجب شد تا توجه جامعه رمزارزی به محدودیتهای مقیاسپذیری این پلتفرم جلب شود. اما با انفجار فعالیتهای DeFi، افزایش چشمگیری در هزینه تراکنشها ایجاد شد و محدودیتهای اتریوم در مرکز توجهها قرار گرفت.
نمودار تغییرات کارمزد اتریوم
طیق دادههای Coin Metrics، متوسط کارمزدی که یک کاربر برای انجام تراکنش در اتریوم باید بپردازد در ابتدای سال ۲۰۲۰، حدود ۸ صدم دلار بود. رقم متوسط کارمزدهای این پلتفرم در روزهای خاصی در سال ۲۰۲۱ تا ۶۸ دلار هم بالا رفت. انجام تراکنش در اتریوم بسته به نوع قرارداد هوشمند ممکن است تا صدها دلار هم هزینهبر باشد.
بالا بودن هزینه تراکنشها در اتریوم به یک عامل بازدارنده و آزار دهنده برای کاربران تبدیل شده است. به همین دلیل برخی از کاربران به سمت برنامههایی که حجم کمتری از تراکنش دارند، سوق پیدا کردهاند. حجم کم تراکنشها در این قراردادهای هوشمند هزینه کمتری را به کاربران تحمیل میکند و این موضوع میتواند فضای رقابتی سالم شکل گرفته در اتریوم را تحت تاثیر قرار دهد. اما توسعه دهندگان برای مقابله با این چالش راهحلهایی را ارائه کردهاند.
لایه دوم شبکهای است که با استفاده از راهحلهای مقیاسپذیری، توسعه دهندگان میتوانند ضمن کم کردن هزینه تراکنشها، سرعت انتقال داراییها را نیز بالا برده و در عین حال این لایه از ویژگیهای غیرمتمرکز و امنیتی اتریوم، تا حد قابل توجهی بهرهمند میشود.
نقشه راه فنی اتریوم
توسعه دهندگان اتریوم برای غلبه بر چالشهای مقیاس پذیری و ارائه تجربه کاربری بهتربرای اینکه امنیت و غیرمتمرکز بودن شبکه را خطری تهدید نکند، دو راهحل اصلی را مد نظر قرار دادهاند.
نمودار نقشه راه اتریوم ۲.۰
نقشه راه فنی توسعه اتریوم به دو بخش تقسیم میشود:
- مقیاسپذیری با استفاده از لایه ۲، که نیازی به تغییر در لایه اصلی اتریوم ندارد.
- مقیاسپذیری در لایه یک، که حداقل شامل تغییر مکانیسم مقاومت سیبیل (sybil) شبکه از PoW به PoS و تغییر معماری آن از یک بلاکچین منفرد به یک شبکه چند زنجیرهای است و به آن اتریوم ۲.۰ گفته میشود.
با توجه به نمودار، فاز صفر شامل راهاندازی اولیه شبکه اتریوم ۲.۰ است. معماری اتریوم ۲.۰ از یک زنجیره به نام فانوس دریایی و ۶۴ زنجیره خرد، به نام shards شناخته می شود. زنجیره beacon یا فانوس دریایی، وظیفه مدیریت و سازماندهی اعتبارسنجی شبکه را به عهده دارد. همچنین زنجیره beacon به عنوان قرارداد اتریوم یک anchor point یا نقطه اجتماع برای ثبت وضعیت و تسهیل ارتباط شاردها (shard)، عمل میکند. زنجیره beacon رسما در دسامبر سال ۲۰۲۰ فعال شد و تعداد اعتبار سنجهای شبکه قرارداد اتریوم به ۱۶ هزارو ۳۸۴ رسید، مجموعا حدود ۵۴۲ هزارو ۲۸۸ اتریوم به عنوان سهام، قفل شد.
نمودار دارایهای قفل شده در اتریوم ۲.۰
اتریوم در فاز یک، دادههای شبکه قرارداد اتریوم را به اشتراک میگذارد. در این حین ۶۴ شارد یا همان زنجیرهای خرد تشکیل میشود. این زنجیرهها در ابتدای شکلگیری، در روند تراکنشها تاثیر خاصی ندارند اما این زنجیرهها با افزایش میزان ذخیرهسازی داده و افزایش عملکرد ارتباطی، به مقیاسپذیری راهحل لایه ۲ کمک میکنند.
فاز ۱.۵ با اسم ادغام شناخته میشود. در این فاز انتقال رسمی شبکه اتریوم از PoW به PoS روی خواهد داد. در این مرحله شبکه اتریوم وضعیت فعلی خود را به صورت یک شارد به اتریوم ۲.۰ منتقل میکند. براساس برآوردهای بنیاد اتریوم قرارداد اتریوم این فاز طی ۶ تا ۱۸ ماه انجام خواهد شد.
فاز ۲.۰ مرحله نهایی ارتقای شبکه اتریوم بهحساب میآید و اجرای تراکنشها را به قسمتهای مخلتف شبکه اتریوم ۲.۰ میبرد. هنوز مشخص نیست که فاز ۲.۰ اتفاق خواهد افتاد یا با دیگر روشها جایگزین می شود. اگر در آینده این فاز با روشهای دیگر جایگزین شود میتوان انتظار داشت شبکه اتریوم ۲.۰ صرفا برای امنیت و در دسترس بودن دادهها بهجای اجرای تراکنشها استفاده شود.
مقاله کنفرانس
قرارداد هوشمند اتریوم(مورد مطالعه : حقوق ایران)
نویسندگان: محمدسعید قرارداد اتریوم دلیری ، حسین علی احمدی جشفقانی ،
مقاله نشریه مطالعه تطبیقی قرارداد جانبی در حقوق انگلیس و ایران
مقاله کنفرانس آثار نقض قرارداد در حقوق ایران
مقاله کنفرانس اصل آزادی قرارداد در حقوق ایران
مقاله نشریه مبانی تجزیه قرارداد در حقوق ایران
مقاله نشریه حقوق کار در ایران (قرارداد کار)
مقاله نشریه مطالعه تطبیقی قرارداد پیش فروش آپارتمان در حقوق ایران و انگلیس
مقاله نشریه مطالعه تطبیقی معاذیر اجرای قرارداد در حقوق انگلیس، امریکا و ایران
مقاله نشریه بررسی ماهیت قرارداد استصناع در حقوق ایران
مقاله نشریه بررسی ماهیت قرارداد فرانچایز در حقوق ایران
مقاله نشریه مطالعه تطبیقی قانون حاکم بر قرارداد بیمه (حقوق ایران و اتحادیه اروپا)
مقاله نشریه مفهوم اشتباه در شخص طرف قرارداد و تاثیر آن بر قرارداد (مطالعه تطبیقی در حقوق ایران و فرانسه)
مقاله نشریه ماهیت و اوصاف قرارداد فرانچایز در حقوق ایران
مقاله نشریه تعدیل قرارداد در فقه امامیه و حقوق ایران
مقاله نشریه باهم فروشی در قرارداد فرانشیز از منظر حقوق رقابت: مطالعه تطبیقی در حقوق ایران و ایالات متحده
مقاله نشریه حقوق زمان ارزیابی اموال شرکت های تجاری طرف قرارداد ادغام (مطالعه تطبیقی در حقوق ایران و مصر)
مقاله نشریه مطالعه تطبیقی قرارداد سفارش ساخت در فقه و حقوق
کتاب اتریوم و قرارداد هوشمند
مقاله کنفرانس ارائه ساز و کاری برای نظارت مالک بر قرارداد هوشمند در اتریوم
مقاله کنفرانس نقش آتریوم در ساختمان هوشمند
پایاننامه مطالعه تطبیقی تفسیر قرارداد در اصول حقوق قرارداد های اروپا(PECL) و حقوق ایران
پایاننامه: وزارت علوم، تحقیقات و فناوری - دانشگاه تبریز - دانشکده علوم انسانی و اجتماعی - 1389 - [کارشناسی ارشد]
مقاله کنفرانس بررسی قرارداد هوشمند در حقوق ایران و نظام تجارت بین الملل
مقاله نشریه قرارداد اتریوم مطالعه تطبیقی قرارداد جانبی در حقوق انگلیس و ایران
کتاب آثار قرارداد ارفاقی در حقوق ایران با مطالعه تطبیقی
پایاننامه تعدیل قضایی قرارداد در حقوق ایران با مطالعه تطبیقی
پایاننامه: وزارت علوم، تحقیقات و فناوری - دانشگاه شهید بهشتی - دانشکده حقوق - 1387 - [پایان نامه دکترا]
پایاننامه مطالعه تطبیقی تفسیر قرارداد در حقوق ایران و افغانستان
پایاننامه: وزارت علوم، تحقیقات و فناوری - دانشگاه تبریز - پژوهشکده علوم اجتماعی - 1393 - [کارشناسی ارشد]
مقاله کنفرانس تعدیل قرارداد در حقوق ایران
پایاننامه بطلان قرارداد در حقوق ایران
پایاننامه: وزارت علوم، تحقیقات و فناوری - دانشگاه شیراز - دانشکده حقوق و علوم سیاسی - 1387 - [کارشناسی ارشد]
پایاننامه تعدیل قرارداد در حقوق ایران
پایاننامه: وزارت علوم، تحقیقات و فناوری - دانشگاه شهید بهشتی - دانشکده حقوق - 1384 - [کارشناسی ارشد]
پایاننامه تجزیه قرارداد در حقوق ایران
پایاننامه قابلیت استناد قرارداد در حقوق ایران با مطالعه تطبیقی در حقوق فرانسه
مقاله کنفرانس مساله قراردادهای هوشمند (مطالعه تطبیقی حقوق ایران و حقوق امریکا)
مقاله کنفرانس: ششمین کنفرانس بین المللی پژوهش در علوم و مهندسی و سومین کنگره بین المللی عمران، معماری و شهرسازی آسیا - 1400
دیدگاه شما