۳ اردیبهشت ۱۴۰۰
600 بازدید
مقالات تصادفی
- دومین نسخه بتا اندروید ۱۲ با قابلیت مدیریت اتصالات اینترنت منتشر میشود
- آموزش تلفظ نام مخاطبان به گوگل اسیستنت امکانپذیر میشود
- زبان اسمبلی چیست و چه ویژگی هایی دارد؟
- آموزش قدم به قدم و تصویری ساخت انیمیشن تایپ در پاورپوینت
- فناوری دیپ فیک (DeepFake) یا جعل عمیق چیست و چرا خطرناک است؟
- آموزش شناسایی نوع پردازنده گوشی اندرویدی
- چگونه فایلهای حذف شده در موبایل یا لپتاپ را بازیابی کنیم؟
- آشنایی با شبکه و انواع آن
- بیت کوین نام یکی از بزهای مارک زاکربرگ است
- مریخ نورد چین اولین عکسهای گرفته شده از سیاره سرخ را ارسال کرد

در این مطلب، به این پرسش پاسخ داده شده است که اتریوم چیست و چه ارتباطی با اتر دارد؟ همچنین، به طور جامع و کامل به بررسی ساختار پلتفرم اتریوم، قیمت، روش استخراج و چگونگی خرید و فروش رمزارز اتر پرداخته شده است. مطلب «اتریوم چیست ؟ | ساختار، قیمت، استخراج و خرید و فروش» کمک میکند تا افراد با پلتفرم اتریوم و کلیه مفاهیم مرتبط با آن به طور کامل، جامع و دقیق آشنا شوند. پس از معرفی کامل و جامع پلتفرم اتریوم، رمزارز بومی بستر اتریوم، یعنی اتر، از از جنبههای گوناگون مورد بررسی قرار گرفته و به پرسشهای متداول افراد پیرامون پلتفرم اتریوم و رمزارز بومی آن اتر، پاسخ داده شده است.
اتریوم چیست ؟
اتریوم یک رمزارز بسیار محبوب است که بعد از بیتکوین، از جهت محبوبیت و اندازه بازار، در جایگاه دوم قرار دارد و میتوان از آن برای سرمایهگذاری استفاده کرد. اتریوم را میتوان با خریدن یا ماین کردن به دست آورد. به بیان دقیقتر، اتریوم یک پلتفرم بلاکچین است که رمز ارز بومی آن، اتر (ETH) نام دارد. «اتریوم» (Ethereum) یک پلتفرم «بلاکچین» (Blockchain) جهانی، متنباز و «غیرمتمرکز» (Distributed) است که از «قراردادهای هوشمند» (Smart Contracts)، توسعه «نرمافزارهای کاربردی غیرمتمرکز» (Distributed Application | DApp) و امور مالی غیرمتمرکز (Decentralized Finance | DeFi) پشتیبانی میکند.
روی پلتفرم اتریوم میتوان به توسعه برنامههای کاربردی غیرمتمرکز (توزیع شده) پرداخت. توسعهدهندگان میتوانند روی پلتفرم اتریوم برنامههایی بنویسند که مقادیر دیجیتال را کنترل میکنند، دقیقا به صورتی که برنامهنویسی شدهاند اجرا میشوند و از هر نقطهای در جهان در دسترس هستند. همچون دیگر رمزارزها، از اتریوم نیز میتوان برای ارسال و دریافت جهانی ارزش (چیز ارزشمندی که در اینجا همان ارز رمزنگاری شده و در واقع، پول دیجیتال است) بدون نظارت شخص سوم یا مداخله غیرمنتظره افراد یا سازمانها، استفاده کرد.
اتریوم، دسترسی آزاد به پول دیجیتال و خدمات داده-پسند را برای کلیه افراد، صرفنظر از پیشینه آنها و یا موقعیت جغرافیایی که دارند، فراهم میکند. اتریوم یک فناوری توسعه یافته توسط جامعه کاربری است که بستری برای «رمزارز» (Cryptocurrency) «اِتِر» (Ether | ETh) ارائه کرده است. با توجه به آنچه بیان شد، اتریوم یک پلتفرم غیرمتمرکز و بلاکچینی است که رمزارز اتر بر بستر آن شکل گرفته است. این پلتفرم، قابلیتهای دیگری به جز پشتیبانی از رمزارز اتر دارد که از مهمترین آنها میتوان به فراهم آوردن بستری برای نوشتن «برنامههای کاربردی توزیع شده» (Distributed Application | DApp) اشاره کرد.
به بیان فنیتر، اتریوم یک ماشین مجازی تکثیری غیر متمرکز دارد که به آن «ماشین مجازی اتریوم» (Ethereum Virtual Machine | EVM) گفته میشود. این ماشین مجازی میتواند اسکریپتهای تورینگ کامل (Turing-Complete) و برنامههای کاربردی غیر متمرکز را اجرا کند. در ادامه این مطلب، به کلیه این مباحث به طور کامل پرداخته شده است. بنابراین، اگر در این وهله مخاطبان با مفهوم مباحث یاد شده آشنایی ندارند، جای نگرانی نیست. این موارد در ادامه این مطلب تشریح میشوند.
از اتریوم برای بسیاری از «عرضههای اولیه سکه» (Initial Coin Offering | ICO) استفاده میشود و در امور مالی غیرمتمرکز که به اختصار به آن دیفای نیز گفته میشود (Decentralized Finance | DeFi) به طور گسترده مورد استفاده قرار گرفته و میگیرد. باید توجه داشت که امروزه دلیل اصلی استفاده از بلاکچین اتریوم برای بسیاری از افراد، رمزارز بومی آن یعنی اتر است.
البته، این در حالی است که توسعهدهندگان زیادی به دلیل پتانسیل بلند مدت و چشمانداز جاهطلبانه مورد نظر توسعهدهندگان اتریوم برای این پلتفرم، مبنی بر آنکه به کاربران خود کنترل بیشتری روی امور مالیشان بدهند، با این پلتفرم و رمزارز اتر کار میکنند. ایده جاهطلبانه نهفته در پس اتریوم موجب شده است تا از این پلتفرم گاهی با عنوان «کامپیوتر جهانی» (World Computer) نیز یاد شود.
هرچند همین ایده موجب شده است تا به نوبه خود انتقادهایی نیز متوجه اتریوم شود و چنین پنداشته شود که پلتفرمی با این رویکرد و چشمانداز، به درستی کار نخواهد کرد. این در حالی است که با پیادهسازی موفق پلتفرم اتریوم و البته، گسترش همهگیری و استفاده عمومی از آن، همه روزه برنامههای کاربردی جدیدی منتشر میشوند که تفاوت زیادی با فیسبوک، گوگل و دیگر موارد مشابهی دارند که کاربران آنها، آگاهانه یا ناآگاهانه، دادههای خود را در اختیار این برنامهها قرار میدهند.
به طور کلی، هدف توسعهدهندگان اتریوم این بوده و هست که از فناوری بلاکچین که در پس رمزارز «بیتکوین» (Bitcoin) نیز قرار دارد برای حذف واسطهها در فعالیتهای گوناگون از امور مالی گرفته تا تولیدات نرمافزاری، شبکههای اجتماعی و دیگر موارد استفاده کنند. چهار ویژگی بسیار مهم پلتفرم اتریوم در ادامه بیان شدهاند و هر یک، به صورت موجز شرح داده شده است.
بانکداری برای همه
همه افراد در سراسر جهان، به راحتی به خدمات مالی دسترسی ندارند. این در حالی است که تنها چیزی که کلیه افراد برای دسترسی به اتریوم و محصولات بومی بستر آن شامل رمزارز، وام دادن، قرض گرفتن پول و ذخیرهسازی ارزش نیاز دارند، اتصال اینترنت است.
اینترنت خصوصیتر
افراد، ضمن دسترسی به پلتفرم اتریوم، نیازی به آن ندارند که همه اطلاعات شخصی خود را برای استفاده از یک برنامه کاربردی اتریوم، به سرویسدهنده ارائه کنند. اتریوم در حال ساخت اقتصادی بر پایه ارزش و نه بر مبنای نظارت است.
شبکه همتا به همتا
اتریوم به کاربر امکان انتقال پول و انجام توافق با دیگران را به صورت مستقیم میدهد. کاربر برای استفاده از قابلیتهای اتریوم نیازی به آن ندارد که از طریق شرکتهای واسطه اقدام کند و میتواند به طور مستقیم با افراد دیگر از سراسر جهان کار کند.
تضمین تجارت
اتریوم یک زمین بازی برابر برای نقشآفرینان فراهم میکند. مشتریان در پلتفرم اتریوم از تضمین امن و نهادینهشده به صورت داخلی و توکاری برخوردار میشوند که به آنها این اطمینان را میدهد که تغییرات حساب مالی کاربر تنها در صورت موافقت خود او انجام میشود. بر همین اساس، کاربران برای داشتن کسب و کار، نیازی به نفوذ شرکتهای بزرگ ندارند.
سازگاری
در پلتفرم اتریوم، همواره محصولات و تجربههای بهتری در حال ساخته شدن هستند. دلیل این امر آن است که محصولات اتریوم به صورت پیشفرض سازگار هستند. این یعنی شرکتها میتوانند با حضور و بهرهگیری از اینترنت، به موفقیت یکدیگر کمک کنند.
ریشهشناسی نام اتریوم
ویتالیک بوترین (Vitalik Buterin)، بنیانگذار پلتفرم اتریوم، نام اتریوم را پس از مطالعه مقالهای در ویکیپدیا پیرامون عناصر و ادبیات داستانی علمی، انتخاب کرد. او درباره انتخاب نام اتریوم چنین میگوید:
«فورا فهمیدم که این نام را از سایر اسامی موجود بیشتر دوست دارم. من فکر میکنم اتریوم حقیقتا تلفظ خوبی دارد و کلمه «اتر» را نیز در دل خود دارد که به یک مدیوم نامرئی فرضی اشاره دارد که به جهان نفوذ میکند و به نور امکان سفر میدهد.»
چرا از اتریوم با عنوان کامپیوتر جهانی یاد میشود؟
بسیاری از طرفداران پلتفرم اتریوم به آن به چشم یک «کامپیوتر جهانی» نگاه میکنند که میتواند اینترنت را غیرمتمرکز کنند. با اتریوم، سرورها با هزاران گره (Node) جایگزین میشوند که توسط داوطلبانی در سراسر جهان اجرا میشوند و بنابراین، این گرهها در کنار هم، یک «کامپیوتر جهانی» را شکل میدهند. انتظار میرود که یک روز، این اتفاق یعنی ظهور یک کامپیوتر جهانی در سراسر جهان به وقوع بپیوندد.
اگر واقعا همه چیز برای پلتفرم اتریوم همانگونه پیش برود که برای آن برنامهریزی شده، اتریوم به جایگزینی برای پلتفرمهایی مانند فیسبوک و گوگل مبدل میشود. اگرچه، این مورد، دستکم در حال حاضر، هزینههایی را در بر دارد. در واقع، هر عملیاتی در برنامههای کاربردی مبتنی بر پلتفرم اتریوم، حتی به کوچکی ارسال یک پیام کوتاه به یک پلتفرم میکروبلاگینگ، هزینهای را در بر دارد که فرد باید آن را با ارز بومی پلتفرم اتریوم یعنی همان اتر پرداخت کند. با در نظر گرفتن هزینههای دیگر کارمزدهای مرتبط با این پرداختها، کاربران میتوانند به راحتی به انواع گوناگونی از برنامههای غیرمتمرکز در پلتفرم اتریوم دسترسی داشته باشند.
تاریخچه اتریوم
ایده اتریوم در اواخر سال ۱۳۹۲ (۲۰۱۳ میلادی) توسط «ویتالیک بوترین» (Vitalik Buterin) ارائه شده است. بوترین، یک پژوهشگر حوزه رمزارزها، برنامهنویس و همبنیانگذار «مجله بیتکوین» (Bitcoin Magazine) است. در واقع، ایده اتریوم ابتدا در سال ۲۰۱۳ میلادی، در یک اوراق سفید (White Paper) توسط ویتالیک بوترین و با هدف ساخت برنامههای کاربردی غیر متمرکز معرفی شد.
ویتالیک بوترین بر این استدلال بود که بیتکوین نیاز به یک زبان اسکریپتنویسی برای توسعه برنامههای کاربردی دارد. پس از تلاشی ناموفق برای ایجاد یک توافق در این راستا، او توسعه یک پلتفرم جدید را با یک زبان اسکریپتنویسی عمومی آغاز کرد.
خبر ساخت اتریوم در ژانویه سال ۲۰۱۴، در کنفرانسی در آمریکای شمالی و در شهر میامی (Miami) اعلام شد. همزمان با این کنفرانس، گروهی از افراد شامل «گوین وود» (Gavin Wood)، «چارلیز هاسکینسون» (Charles Hoskinson) و «آنتونی دی لوریو» (Anthony Di Iorio) از اهالی تورنتو، یک خانه را در میامی اجاره کردند. این افراد تامینکنندگان مالی پروژه بودند. دیلوریو، دوست خود، «جوزف لوبین» (Joseph Lubin) را دعوت کرد و لوبین نیز متعاقبا «مورگان پِک» (Morgen Peck) خبرنگار را برای شاهد بودن بر آنچه در جلسات میگذرد، به آنجا دعوت کرد.
شش ماهد بعد از این جلسه، بنیانگذاران، مجددا در خانهای در زوگ در کشور سوئیس گرد هم آمدند. اینجا همان جایی بود که بوترین به بنیانگذاران اعلام کرد که این پروژه را به صورت ناسودبر ادامه خواهد داد. در این وهله و با شنیدن این خبر، هاسکینسون این پروژه را ترک کرد. اتریوم به طرز عجیبی دارای لیست بسیار بزرگی از بنیانگذاران است. آنتونی دی لوریو در این باره چنین مینویسد:
اتریوم توسط من، چارلز هاسکینسون، میهای آلیسیه (Mihai Alisie) و «امیر چتریت» (Amir Chetrit) در دسامبر سال ۲۰۱۳ بنیان گذارده شد. این پنج نفر، بنیانگذاران اصلی اتریوم هستند. «جوزف لوبین» (Joseph Lubin)، «گوین وود» (Gavin Wood) و «جفری ویلکه» (Jeffrey Wilke) در اوایل سال ۲۰۱۴ به عنوان بنیانگذار به این پروژه اضافه شدند.
توسعه رسمی پروژه نرمافزاری اتریوم در سال ۱۳۹۳ (اوایل ۲۰۱۴) از طریق یک شرکت سوئیسی به نام «Ethereum Switzerland GmbH» آغاز شد که به طور خلاصه به آن EthSuisse گفته میشود. ایده اصلی، یعنی قرار دادن قراردادهای هوشمند قابل اجرا در بلاکچین، باید پیش از پیادهسازی نرمافزار اتریوم به طور کامل مشخصهسازی میشد. این کار توسط گوین وود انجام و در اوراق زرد اتریوم (Ethereum Yellow Paper) ارائه شد. «ماشین مجازی اتریوم» (Ethereum Virtual Machine) نیز در همین اوراق زرد معرفی شده است.
متعاقبا، یک بنیاد سوئیسی غیر انتفاعی با عنوان «بنیاد اتریوم» (Ethereum Foundation) آغاز به کار کرد که به سوئیسی به آن «Stiftung Ethereum» گفته میشود. سرمایه لازم برای توسعه اتریوم طی یک سرمایهگذاری جمعی از تیر تا مرداد سال ۱۳۹۳ (جولای تا آگوست سال ۲۰۱۴) با خرید توکن ارزش اتریوم (اتر | Ether) انجام شد. خرید این توکن با استفاده از یک ارز دیجیتال دیگر (بیتکوین) صورت پذیرفت.
سرمایه لازم برای توسعه بلاکچین اتریوم با «سرمایهگذاری جمعی» (Crowdfunding) گردآوری شد. این سرمایهگذاری جمعی از تیر تا مرداد سال ۱۳۹۳ (جولای تا آگوست سال ۲۰۱۴) اتفاق افتاد و سیستم اتریوم، در مرداد سال ۱۳۹۴ (۳۰ جولای سال ۲۰۱۵) راهاندازی شد. در حالی که اتریوم در ابتدا به دلیل نوآوریهای خلاقانهای که داشت مورد توجه قرار گرفت، اما در گذر زمان پرسشها و انتقاداتی نیز پیرامون امنیت و مقیاسپذیری آن مطرح شد.
در خرداد سال ۱۳۹۵ (۱۷ ژوئن ۲۰۱۶)، در نتیجه بهرهبرداری از یک نقص موجود در نرمافزار قرارداد هوشمند پروژه «سازمان غیرمتمرکز مستقل» (The DAO Organization) و سرقت اتر به میزان ۵۰ میلیون دلار (بر اساس ارزش اتریوم در آن زمان)، پلتفرم اتریوم به دو بلاکچین مجزا مبدل شد. بلاکچین مورد سرقت واقع شده توسط دزدها یا همان بلاکچین اصلی با عنوان «اتریوم کلاسیک» (Ethereum Classic | ETC) و بلاکچین جدید با عنوان «اتریوم» (Ethereum | ETH) به فعالیت پرداختند. در حال حاضر، افراد با هر دو بلاکچین کار میکنند، ولی عموما گرایشها به سمت بلاکچین اتریوم و رمزارز بومی آن یعنی اتر (ETH) است.
اتریوم در حال حاضر در حال توسعه است و طبق برنامهریزیهای موجود، یک مجموعه ارتقا با عنوان «اتریوم ۲.۰» (Ethereum 2.0) از اواخر سال ۲۰۲۰ در آن انجام خواهد شد؛ این به روز رسانیها تا پایان سال ۲۰۲۱ ادامه دارند و طی چند فاز اجرایی میشوند که جزئیات دقیقتر آن در ادامه مورد بررسی قرار گرفته است. از جمله ویژگیهای اصلی این ارتقا میتوان به بهرهمندی از «اثبات سهم» (Proof of Stake) و افزایش توان معاملات با بهرهگیری از فناوری «خرد کردن» (Sharding) اشاره کرد. شایان توجه است که اتریوم ۲.۰ رسما در تاریخ ۱۱ آذر سال ۱۳۹۹ راهاندازی شد.
از جمله حواشی و رویدادهای پیرامون اتریوم در تاریخ این پلتفرم آن است که در سال ۱۳۹۸ (۲۰۱۹)، یکی از کارکنان بنیاد اتریوم به نام «ویرجیل گریفیت» (Virgil Griffith)، توسط دولت ایالات متحده آمریکا و به دلیل انجام ارائهای پیرامون بلاکچین در کنفرانسی در کره شمالی، دستگیر شد.
معاهده کسب و کار اتریوم
در اسفند سال ۱۳۹۵ (مارس سال ۲۰۱۷)، استارتاپهای بلاکچینی گوناگون، گروههای پژوهشی و شرکتهای فورچون ۵۰۰ (Fortune 500)، ساخت «معاهده کسب و کار اتریوم» (Enterprise Ethereum Alliance | EEA) را با ۳۰ عضو موسس اعلام کردند. در حدود دو ماه بعد و در ماه اردیبهشت سال ۱۳۹۶ (ماه می سال ۲۰۱۷)، این سازمان ناسودبر ۱۶ عضو کسب و کار داشت.
این اعضا شامل شرکت نرمافزاری «کانسنسیز» (ConsenSys)، «گروه بورس بازرگانی و کالای شیکاگو» (Chicago Mercantile Exchange | CME Group)، «دانشگاه کرنل» (Cornell University)، «گروه تویوتا» (Toyota Group)، «سامسونگ اسدیاس» (Samsung SDS)، مایکروسافت (Microsoft)، «اینتل» (Intel)، «جیپی مورگان» (J.P.Morgan)، «گروه مِرک» (Merck Group)، «دیلویت» (Deloitte)، «اکسنچر» (Accenture)، «گروه سانتاندر» (Banco Santander)، «بانک نیویورک ملون» (BNY Mellon)، «گروه آیانجی» (International Netherlands Group)، «بانک ملی کانادا» (National Bank of Canada) و شرکت سپردهگذاری و پاکسازی (Depository Trust & Clearing Corporation) میشدند.
در ماه تیر سال ۱۳۹۶ (جولای ۲۰۱۷)، بیش از ۱۵۰ عضو در الیانس (Alliance) حضور داشتند که از این جمله میتوان به نقشآفرینان کلیدی دنیای کسب و کار و اقتصاد مانند مسترکارت (MasterCard)، «سیسکو سیستمز» (Cisco Systems)، «اسبربانک» (Sberbank) و «اسکوشیابانک» (Scotiabank) اشاره کرد.
راهاندازی و نقاط عطف اتریوم
برای راهاندازی پلتفرم اتریوم، چندین پیشنمونه از پلتفرم اتریوم با کد نمونههای گوناگون توسط بنیاد اتریوم و به عنوان بخشی از مجموعه اثبات مفهوم (Proof of Concept) این بنیاد ارائه شد. «المپیک» (Olympic) آخرین پیشنمونه و پیشانتشار بتای عمومی اتریوم در ۱۹ اردیبهشت سال ۱۳۹۵ (نهم ماه می سال ۲۰۱۵) بود.
در گام بعدی، شبکه المپیک یک «برنامه باگ باونتی» (Bug Bounty Program) با ۲۵,۰۰۰ بیتکوین برگزار کرد. این کار با هدف تست استرس محدودیتهای بلاکچین اتریوم برگزار شد. در ماه تیر سال ۱۳۹۴ (جولای سال ۲۰۱۵)، «فرانتیر» (Frontier) انتشار نسخه آزمایشی پلتفرم اتریوم را اعلام کرد.
از زمان راهاندازی مقدماتی، طی چند مرحله، پروتکل اتریوم ارتقا پیدا کرده است و ضمن آن، تغییرات مهمی شامل تغییرات کارکردی و ساختار سازگاری (Incentive Compatibility) در این پلتفرم به وقوع پیوسته است. ارتقای پروتکلهای اتریوم با استفاده از «هارد فورک» (Hard Fork) انجام شده است. آخرین ارتقای Ethereum 1.0، اتریوم نسخه یک «Muir Glacier» نام داشت و در ۱۱ دی ۱۳۹۸ (۱ ژانویه ۲۰۲۰) اتفاق افتاد. پس از آن در 11 آذر سال ۱۳۹۹ (۱ دسامبر ۲۰۲۰) اولین فاز ارتقا به اتریوم ۲.۰ انجام شد.
بمب سختی و عصر یخبندان
بمب سختی اتریوم به مکانیزمی اشاره دارد که طی آن، سختی بلاکچین ماینینگ اتریوم در ۱۱ آبان سال ۱۳۹۵ (نوامبر سال ۲۰۱۶) , از بلوک 200,000 به بعد، افزایش یافت. شروع بمب سختی را با عنوان عصر یخبندان اتریوم (Ethereum’s Ice Age) میشناسند. عصر یخبندان اتریوم به عنوان مشوقی در شبکه اتریوم برای انتقال از مکانیزم اثبات کار (Proof of Work | Pow) به مکانیزم «اثبات سهم» (Proof of Stake | PoS) تعبیه شده است. یک بمب سختی دیگر نیز برای فوریه سال ۲۰۱۹ تعبیه شده بود که توسط توسعهدهندگان اتریوم به زمانی دیگر در آینده موکول شد.
رویداد دائو
در سال ۲۰۱۶، یک «سازمان غیرمتمرکز ناشناخته» که به اختصار به آن دائو (DAO) گفته میشود (سرنامی برای عبارت Decentralized Autonomous Organization)، یک مجموعه از قراردادهای هوشمند را در پلتفرم اتریوم توسعه داد. این دائو موفق به آن شد که رکورد جذب ۱۵۰ میلیون دلار سرمایهگذاری جمعی را برای انجام پروژهقراردادهای هوشمند خود، به ثبت برساند.
دائو در ماه ژوئن همان سال مورد رخنه قرار گرفت و به ارزش ۵۰ میلیون دلار آمریکا از توکنهای دائو، توسط یک هکر ناشناخته گرفته شد. این رویداد منجر به شکلگیری بحثی در جامعه رمزنگاری پیرامون آن شد که اتریوم باید یک هارد فورک مستمر برای مناسبسازی مجدد سرمایهگذاریهای آسیب دیده انجام دهد.
در نتیجه این بحث و وقوع اختلاف نظراتی پیرامون این موضوع، شبکه اتریوم به دو بخش تقسیم شد. اتریوم (پلتفرم فورک شده و جدید) روی بلاکچین فورک شده به فعالیت ادامه داد، در حالی که اتریوم کلاسیک یا همان پلتفرم اصلی که مورد رخنه قرار گرفته بود و داراییهای هکرها روی آن بود، روی بلاکچین اصلی باقی ماند. انجام این هارد فورک، منجر به ایجاد یک رقابت بین دو شبکه شد. پس از انجام هارد فورک مربوط به دائو، متعاقبا اتریوم دو بار در پاییز و زمستان سال ۱۳۹۵ (سه ماهه آخر سال ۲۰۱۶) فورک شد تا با دیگر حملات احتمالی نیز مقابله کند.
مشخصههای اتریوم چیست؟
همچون دیگر رمزارزها، اعتبار هر اتر (Ether) که رمز ارز بومی بلاکچین اتریوم است و در ادامه به طور کامل به آن پرداخته شده است، به وسیله یک بلاکچین تامین میشود. این بلاکچین به طور مستمر یک لیست از رکوردها را رشد میدهد که به آنها بلوک (Block) گفته میشود. این بلوکها با استفاده از «توابع هش» (Hash Functions) رمزنگاری امنسازی شدهاند. با توجه به نوع طراحی اتریوم، این بلاکچین به طور موروثی نسبت به ویرایش دادهها مقاوم است. بلاکچین اتریوم در واقع یک دفتر کل باز و توزیع شده است که تراکنشها را بین دو طرف معامله، به طور موثر، قابل اعتبارسنجی و دائمی، ثبت میکند.
برخلاف بیتکوین، اتریوم با استفاده از حسابها و ترازها به روشی با عنوان «انتقال وضعیت» (State Transfer | انتقال حالت) کار میکند. این روش بر خروجی معامله ارسال نشده (Unspent Transaction Output | UTXo) تمرکز ندارد. وضعیت (حالت | State)، تراز فعلی همه حسابها و دادههای اضافی را نمایش میدهد. وضعیت در بلاکچین ذخیره نمیشود، بلکه در یک «درخت درهم پاتریشیا» (Merkle Patricia Tree) ذخیره میشود.
یک «کیف پول رمزارز» (Cryptocurrency Wallet)، «کلیدهای عمومی» (Public Key) و «کلیدهای خصوصی» (Private Keys) یا آدرسها را ذخیره میکند که برای دریافت یا مصرف اتر قابل استفاده هستند. این مورد از طریق «نِمونیکهای استایل BIP 39» (یادیارهای قالب ظاهری | Style Mnemonics) برای «کیف پول اچدی BIP 32» تولید میشوند. در اتریوم، این مورد الزامی است زیرا در شمای UTXO کار نمیکند. با کلید خصوصی، این امکان وجود دارد که در بلاکچین نوشت و به طور موثری یک تراکنش اتر را انجام داد.
برای ارسال توکن ارزش اتریوم به یک حساب، نیاز به هش Keccak-256 از کلید عمومی آن حساب است. حسابهای اتریوم نامها مستعاری هستند که به شخص خاصی متصل نشدهاند، اما به یک یا تعداد بیشتری آدرس مشخص متصل هستند. مشخصههای اتریوم، در بخشهای بعد به طور جداگانه و کامل، مورد بررسی قرار گرفتهاند.
کارایی اتریوم در چه مواردی است؟
در اتریوم، همه «قراردادهای هوشمند» (Smart Contracts) به صورت عمومی در هر گره از بلاکچین ذخیره شدهاند؛ این مورد، هزینههایی را در پی دارد. بلاکچین بودن بدین معنا است که پلتفرم با توجه به نوع طراحی آن (یعنی همان ذات بلاکچین بودن و غیرمتمرکز بودن) امنسازی شده است و این پلتفرم، مثالی از یک سیستم کامپیوتری توزیع شده با «تحمل خطای بیزانس» (Byzantine Fault) بالا است.
نقطه ضعف این مورد، مشکلات کارایی است که در آن، هر گره همه قراردادهای هوشمند را در زمان واقعی محاسبه میکند و منجر به سرعت پایینتر میشود. در ۱۱ دی سال ۱۳۹۴ (ژانویه سال ۲۰۱۶)، پروتکل اتریوم میتوانست در حدود ۲۵ تراکنش در ثانیه را پردازش کند. در مقایسه با پلتفرم اتریوم، پلتفرم پرداخت ویزا (Visa) میتوانست ۴۵,۰۰۰ پرداخت در ثانیه را انجام دهد؛ همین اختلاف زیاد در توان پردازش دو پلتفرم و توان پردازشی ناچیز پلتفرم اتریوم، موجب شد تا پرسشهایی پیرامون مقیاسپذیری اتریوم مطرح شود. پس از به روز رسانیهای انجام شده در پلتفرم اتریوم، در ۲۹ آذر ۱۳۹۵ (۱۹ دسامبر سال ۲۰۱۶)، اتریوم برای اولین بار بیش از یک میلیون تراکنش را در یک روز پردازش کرد.
مهندسهای اتریوم روی خرد کردن (Sharding) محاسبات کار کردند و گام بعدی توسعه پلتفرم اتریوم (با عنوان اتریوم ۲) در Devcon 3 اتریوم در نوامبر سال ۲۰۱۷ معرفی شد. بلاکچین اتریوم از درخت مرکل به دلایل امنیتی استفاده میکند تا مقیاسپذیری را بهبود ببخشد و هشهای تراکنش را بهینه کند. همراه با هر پیادهسازی، درخت مرکل امکان صرفهجویی در فضا، تنظیم اثبات عضویت (که با عنوان اثبات مرکل kdc شناخته شده است) و همگام سازی «مخدوم سبک» (Light Client) را فراهم میکند. شبکه اتریوم در گذر زمان با مسئله تراکم مواجه شد. برای مثال، تراکمی که در اواخر سال ۲۰۱۷ به دلیل بازی «کریپتوکیتیز» (Cryptokitties) به وقوع پیوست فراتر از انتظار بود.
انتقادها پیرامون اتریوم
دبیر «افتی آفاویل» (FT Alphaville)، «ایزابل کامینسکا» (Izabella Kaminska) در سال ۱۳۹۶ (۲۰۱۷ میلادی) به این نکته اشاره کرد که کلاهبرداران از اتریوم برای راهاندازی «ترفند پانزی» (Ponzi schemes) و دیگر اشکال سرمایهگذاری کلاهبردارانه استفاده میکنند. مقاله او بر مبنای مقالهای از دانشگاه «دانشگاه کالیاری» (University of Cagliari) نوشته شده بود. در مقاله دانشگاه کالیاری، برخی از قراردادهای هوشمند که چیزی در حدود ٪۱۰ از 1384 قرارداد هوشمند بود را مورد بررسی قرار داده بودند.
این قراردادها کلاهبرداری پانزی را تسهیل میکردند. کامینسکا در مقاله خود تخمین زده بود که آن زمان چیزی در حدود ٪۰٫۰۵ از تراکنشها در شبکه بلاکچین اتریوم مرتبط با چنین قراردادهایی بودند. همین موضوع موجب شد تا انتقادهایی متوجه اتریوم شود. در عین حال، انتقادهایی نیز پیرامون مقیاسپذیری اتریوم مطرح بود که با به روز رسانی اتریوم، عمدتا مرتفع شدند.
توسعه حاکمیت و پیشنهاد بهبود اتریوم
در مهر ۱۳۹۴ (اکتبر سال ۲۰۱۵)، یک طرح بهبود حاکمیت اتریوم با عنوان «پیشنهاد بهبود اتریوم» (Ethereum Improvement Proposal | EIP) ارائه شد که روی EIP-1 استانداردسازی شده بود. گروه توسعه اصلی اتریوم و جامعه مرکزی آن قرار بود تا با بهرهگیری از فرایند رگولاتوری EIP به اجماع برسند. توسعهدهنده اتریوم، «ولاد زمیفیر» (Vlad Zamfir) در این رابطه چنین میگوید:
حاکمیت اتریوم ذاتا اجتماعی است، افرادی که بیشتر به جامعه متصل هستند، قدرت بیشتری دارند؛ چیزی شبیه به قدرت نرم.
کاربردهای اتریوم در چه مواردی است؟
برنامههای پلتفرم اتریوم به یکی از هفت زبان تورینگ کامل نوشته شدهاند. توسعهدهندگان از این زبانها برای ساخت و انتشار برنامههای کاربردی استفاده میکنند که درون اتریوم اجرا خواهند شد. «ارزهای پایدار» (Stablecoin) «تتر» (Tether) و DAI و پلفترم پیشبینی بازار Augur مثالهایی از برنامههای کاربردی هستند که روی اتریوم اجرا میشوند.
پیشنهادهای مورد کاربرد شامل مسائل مالی، اینترنت اشیا (Internet of Things | IoT | اینترنت چیزها | چیزنت)، تولید مزرعه به میز (Farm to Table) و پیشبینی نتایج فوتبال میشوند. برای مثال، شرکت «Breitling SA» گواهینامههای دیجیتالی احراز هویت در پلتفرم اتریوم را به مالکان ساعتهای خود میدهد و با این کار، امکان انتقال مالکیت ساعت از یک فرد به فرد دیگر فراهم میشود و البته، به اثبات سندیت آن کمک میکند. اتریوم تا زمان نگارش این مطلب، با بهرهگیری از ٪۵۰ سهم بازار، پلتفرم بلاکچین پیشرو برای پروژههای عرضه اولیه سکه بوده است. در ادامه، کاربردهای اساسی اتریوم مورد بررسی قرار گرفتهاند.
نرمافزارهای کسب و کار
نرمافزارها و شبکههای مبتنی بر اتریوم، مستقل از زنجیره اتریوم عمومی هستند و به وسیله شرکتهای نرمافزاری آزمایش شدهاند. شرکتهایی که به این حوزه علاقهمند هستند شامل مایکروسافت، IBM، جیپیمورگان چیس (JPMorgan Chase)، دلویته (Deloitte)، آرتری (R3)، اینویت یوکی (Innovate UK)، بارکلیز (Barclays)، یوبیاس (UBS)، کردیت سوئیس (Credit Suisse) و برخی از دیگر شرکتها میشوند که در حال انجام آزمایش با اتریوم نیز هستند.
امور مالی غیر متمرکز (DeFi)
«امور مالی غیرمتمرکز» (Decentralized Finance | DeFi)، یک مورد کاربرد اتریوم است. Defi یک ابزار مالی سنتی را در معماری غیرمتمرکز (توزیع شده)، خارج از کنترل شرکتها و سازمانها، ارائه میدهد. به عنوان مثالی از پلتفرمهای DeFi میتوان به MakerDAO و Compound اشاره کرد. Uniswap، یک صرافی غیر متمرکز برای توکنها در اتریوم است که از ۲۰ میلیون دلار نقدینگی به ۲٫۹ میلیارد دلار در سال ۲۰۲۰ رسیده است.
در آبان سال ۱۳۹۹ (اکتبر ۲۰۲۰)، بیش از ۱۱ میلیارد دلار در پروتکلهای مالی غیرمتمرکز (توزیع شده) گوناگون سرمایهگذاری شد. علاوه بر این موارد، از طریق فرایندی که «Wrapping» (پوششدهی) نامیده میشود، پروتکلهای DeFi مشخصی، نسخههای همگذاشت از داراییهای گوناگون (مانند بیتکوین، طلا و نفت) را برای در دسترس و قابل معامله بودن در پلتفرم اتریوم و همچنین، سازگاری با کیفپولهای اصلی و برنامههای کاربردی اتریوم، پذیرفتند.
دفترهای کل مجاز
انواع بلاکچین دارای مجوز مبتنی بر اتریوم، برای پروژههای گوناگون مورد استفاده و بررسی قرار میگیرند. از جمله این پروژهها میتوان به موارد زیر اشاره کرد:
- در سال ۲۰۱۷، «جیپیمورگان چیس» (JPMorgan Chase) یک رمزارز در حال توسعه به نام «جیپیام کوین» (JPM Coin) را معرفی کرد. جیپی مورگان در صدد ساخت این رمزارز روی نوع دارای مجوزی از بلاکچین اتریوم بود که با عنوان Quorum شناخته شده است. این کوین برای ترسیم مرزی بین خصوصی و عمومی بودن پرداختها و مشتقات آنها طراحی شده بود. ایده اصلی نهفته در پس این طرح، راضی کردن رگولاتورهایی که نیاز به دسترسی یکپارچه به امور مالی در جریان دارند، در شرایطی بود که از حریم خصوصی افرادی که تمایل ندارند هویت خود و جزئیات تراکنشهای آنها برای عموم آشکار شود، حفاظت شود.
- بانک رویال اسکاتلند، اعلام کرده بود که یک مکانیزم پاکسازی و توافق (Clearing and Settlement Mechanism | CSM) بر مبنای دفتر کل توزیع شده و پلتفرم قرارداد هوشمند اتریوم دارد.
برنامههای کاربردی غیرمتمرکز اتریوم
محصولات و خدماتی که روی پلتفرم اتریوم اجرا میشوند، «برنامههای کاربردی غیر متمرکز» (Distributed Applications | DApps) اتریوم هستند. این DAppها برای امور مالی، شبکههای اجتماعی و بسیاری از دیگر حوزههایی مورد استفاده قرار میگیرند که زندگی دیجیتال امروزی افراد را تشکیل میدهند. برنامههای کاربردی غیر متمرکز یک جنبش در حال رشد از برنامههای کاربردی هستند که از پلتفرم اتریوم برای متحول کردن مدلهای کسب و کار و ابداع مدلهای جدید استفاده میکنند.
چنانکه پیش از این نیز اشاره شد، برای کار با برنامههای کاربردی غیرمتمرکز اتریوم یا همان DAppها، نیاز به یک کیف پول و مقداری اتر (ETH) است. کیف پول به کاربر امکان اتصال یا ورود به برنامه کاربردی را میدهد. پاسخ دقیقتر پرسش برنامه کاربردی غیر متمرکز چیست، در ادامه این قسمت ارائه شده است.
اتریوم از این جهت منحصر به فرد است که تلاش میکند تا از بلاکچین به عنوان راهی برای تصحیح آنچه طراحان آن فکر میکنند بخش مسئلهساز اینترنت است، استفاده کنند. اتریوم مانند یک «فروشگاه برنامه غیرمتمرکز» است که در آن، هر کسی میتواند برنامههای کاربردی غیرمتمرکز خودش را اجرا کند که برخلاف برنامههای امروزی (مانند جیمیل یا اوبر) نیاز به یک واسطه (Middleman | مردمیانی) برای کار کردن یا مدیریت اطلاعات کابر ندارد. برنامههای کاربردی غیرمتمرکز (DApps)، کاربران و ارائهدهندگان را به صورت مستقیم به یکدیگر متصل میکنند.
یک مثال از این مورد، استفاده از اتریوم برای راهاندازی یک توییتر غیرمتمرکز است که در مقابل تغییر مقاوم خواهد بود. هنگامی که چیزی روی بلاکچین منتشر شد، امکان حذف آن وجود ندارد؛ حتی به واسطه شرکتی که آن سیستم میکروبلاگینگ را تولید کرده است. یک تعریف واحد از DApp وجود ندارد، زیرا که یک مفهوم جدید است. دو مورد از خصیصههای اصلی DApps عبارتند از اینکه متنباز است و یک نقطه شکست مرکزی ندارد.
سه نوع از برنامههای کاربردی غیرمتمرکز اتریوم
با بهرهگیری از فناوری بلاکچین، طرفداران اتریوم ممکن است با فکر کردن به برنامههای کاربردی غیرمتمرکز، هیجانزده شوند و فکر کنند که این همه آن چیزی است که به دنبال آن هستند. اما در حال حاضر انواع از برنامههای کاربردی غیر متمرکزی که کاربران میتوانند در بستر پلتفرم اتریوم بسازند، محدود است. اوراق سفید اتریوم، برنامههای کاربردی غیرمتمرکز برای این پلتفرم را به سه نوع تقسیم میکنند که عبارتند از:
- برنامههایی که پول را مدیریت میکنند.
- برنامههایی که پول در آنها وجود دارد (اما نیازمند بخش دیگری نیز هستند).
- برنامههایی در دسته «دیگر» که شامل رای دادن و سیستمهای دولتی میشوند.
در نوع اول از برنامههای کاربردی، کاربر ممکن است نیاز به تبدیل اتر به عنوان راهکاری برای تنظیم قرارداد با کاربر دیگر و با استفاده از گرههای کامپیوتری توزیع شده شبکه به عنوان راهکاری برای تسهیل توزیع این دادهها داشته باشد. نوع دوم از برنامههای کاربردی، پول را با اطلاعات خارج از بلاکچین ترکیب میکند.
به عنوان مثالی از این مورد میتوان به یک برنامه کاربردی بیمه محصولات کشاورزی اشاره کرد که وابسته به خوراک وضعیت آب و هوای خارجی است. (برای مثال، کشاورز یک اشتقاق میسازد که به طور خودکار در صورتی که خشکسالی محصولات او را تحت تاثیر قرار دهد، پرداخت را انجام میدهد.)
برای اجرا، این قراردادهای هوشمند بر «خطابههایی» (Oracles) تکیه دارند که بر اطلاعات به روز پیرامون جهان خارجی تاکید دارد (شایان ذکر است که برخی از توسعهدهندگان شک دارند که این بررسی موردی به صورت غیرمتمرکز قابل انجام باشد). اگر بیتکوین بتواند مقامات مالی را از بین ببرد، آیا میتواند همین کار را با دیگر انواع سازمانها و شرکتها نیز انجام دهد؟ سازمانهای ناشناس توزیع شده (Decentralized Autonomous Organizations | DAO) رویکرد بلندپروازانهتری نسبت به DAppها محسوب میشوند.
در بخشهای بعدی این مطلب، به طور دقیق به مبحث DAO پرداخته شده است. اما به طور کلی درباره دائو میتوان گفت که هدف در این نوع از سازمانها، شکل دادن یک شرکت بدون رئیس و در واقع، فاقد ساختار هرمی و سلسلهمراتی سازمانی است که در آن، برنامهها قوانین را پیرامون چگونگی رای دادن اعضا و صرف سرمایههای شرکت تعیین میکنند.
قراردادهای هوشمند
قراردادهای هوشمند اتریوم بر مبنای زبانهای برنامهنویسی متفاوتی نوشته شدهاند. زبانهایی که توسعهدهندگان برای برنامهنویسی کارکردهای خود از آنها استفاده میکنند. قراردادهای هوشمند، انتزاعات برنامهنویسی سطح بالایی هستند که رو به پایین به بایت کد ماشین مجازی اتریوم (EVM) کامپایل و برای اجرا در بلاکچین اتریوم مستقر میشوند. این قراردادهای هوشمند را میتوان در زبان «سولیدیتی» (Solidity) نوشت. سولیدیتی یک کتابخانه زبانی با شباهتهایی به زبانهای برنامهنویسی C و جاوا اسکریپت (Java Script) است.
همچنین، این قراردادهای هوشمند را میتوان به زبانهای «سرپنت» (Serpent) که زبانی مشابه به «زبان برنامهنویسی پایتون» (Python Programming Language) ولی منسوخ شده است، یول (Yul) که یک زبان میانی است که امکان کامپایل آن به بکاندهای گوناگون (EVM 1.5 ،EVM 1.0 و eWASM) وجود دارد، LLL (یک زبان سطح پایین شبیه به لیسپ) و موتان (Mutan) نوشت که یک زبان مبتنی بر Go اما منسوخ شده است. در عین حال، یک زبان پژوهش محور تحت توسعه به نام وایپر (Vyper) (یک زبان بازگشتی مشتق شده از پایتون با نوع قوی) نیز وجود دارد که میتوان قراردادهای هوشمند را با بهرهگیری از آن نوشت.
قراردادهای هوشمند میتوانند به صورت عمومی باشند و این امر امکان آن را فراهم میکند که کارکردها را اثبات کنند. یکی از مشکلات مرتبط با استفاده از قراردادهای هوشمند روی بلاکچین، باگها هستند که شامل حفرههای امنیتی میشوند و گاه برای همه مشهودند ولی امکان اصلاح سریع آنها وجود ندارد. یک مثال از این مورد، حمله انجام شده در ۲۸ خرداد ۱۳۹۵ (۱۷ ژوئن سال ۲۰۱۶) روی دائو است که امکان توقف سریع یا معکوس کردن آن وجود نداشت. در حال حاضر، پژوهشی در جریان است که طی آن به این موضوع پرداخته میشود که چگونه از اعتبارسنجیهای رسمی برای بیان و اثبات خصوصیات غیر بدیهی استفاده شود.
پژوهشی که توسط مایکروسافت انجام شده حاکی از آن است که نوشتن قراردادهای مستحکم در بلاکچین، در مقام عمل کاری بسیار دشوار است. در این پژوهش از هک دائو برای نمایش این مشکل استفاده شده است. این گزارشها ابزارهایی را مورد بررسی قرار دادهاند که مایکروسافت برای اعتبارسنجی قراردادها طراحی کرده است. همچنین، به این موضوع پرداخته است که تحلیل کلان مقیاس قراردادهای تاکنون منتشر شده، از آسیبپذیریهای زیاد این قراردادهای هوشمند پردهبرداری میکند. در عین حال، این گزارش بیان میکند که این امکان وجود دارد که برابری یک برنامه Solidity و کدهای EVM را سنجید و ارزیابی کرد.
قراردادهای هوشمند اتریوم چگونه کار میکنند؟
مانند بسیاری از ایدههای موجود در صنعت اتریوم، یکی از مباحثی که سردرگمی عمومی ایجاد کرده، مبحث قراردادهای هوشمند است. قراردادهای هوشمند یک فناوری جدید محسوب میشوند که توسط بلاکچین عمومی امکانپذیر شدهاند و درک آنها به این دلیل دشوار است که عنوان آن، توصیف مفهوم درونی آن را دچار سردرگمی میکند و به نوعی، ناسازگاری ظریفی میان عنوان و آنچه در عمل به وقوع میپیوندد وجود دارد.
در حالی که یک قرارداد استاندارد قواعد یک رابطه (معمولا قابل اجرا توسط قانون) را مشخص میکند، یک قرارداد هوشمند یک رابطه با کدهای رمزنگاری شده را مشخص میکند. در سال ۱۹۹۳، ایده اصلی توسعه قراردادهای هوشمند توسط دانشمند کامپیوتری و رمزنگار، نیک سابو (Nick Szabo) مطرح شد. در مثال معروف ارائه شده توسط او که طی آن یک قرارداد هوشمند با یک دستگاه فروش خودکار (Vending Machine) مقایسه شده، او به تشریح ساز و کار قرارداد هوشمند و این موضوع پرداخته است که کاربران چگونه میتوانند دادهها یا مقادیر را به عنوان ورودی بدهند و اقلام محدودی را از آن دریافت کنند. در دنیای واقعی و در دستگاه فروش خودکار، این اقلام، ساندویچ فوری یا نوشیدنی هستند.
در یک مثال ساده، کاربران اتریوم میتوانند ۱۰ اتر را به دوست خود در یک تاریخ مشخص با استفاده از یک قرارداد هوشمند ارسال کنند. در این شرایط، کاربر یک قرارداد میسازد و دادهها را در آن قرار میدهد تا قرارداد متناسب با نیاز، اجرایی شود. اتریوم پلتفرمی است که به طور خاص برای ساخت قراردادهای هوشمند ساخته شده است. اما این ابزارهای جدید برای استفاده شدن به صورت ایزوله، در نظر گرفته نشدهاند. باورها بر این است که آنها میتوانند بلوکهای سازنده «برنامههای کاربردی غیرمتمرکز» را تشکیل دهند و حتی، شرکتهای غیرمتمرکز ناشناس یا همان دائو نیز به کمک این قراردادهای هوشمند قابل شکلگیری هستند.
شایان توجه است که بیتکوین اولین رمزارزی بود که از قراردادهای هوشمند پایهای در مفهومی استفاده میکرد که شبکه میتواند ارزش را از یک فرد به فردی دیگر انتقال دهد. شبکه گرهها تنها در صورتی تراکنشها را اعتبارسنجی میکرد که شرایط خاصی به وقوع بپیوندد. اما قراردادهای هوشمند بیتکوین محدود به بحث رمزارز بیتکوین هستند. در مقابل، اتریوم جایگزین زبان محدودتر بیتکوین میشود که یک زبان اسکریپتنویسی از صدها اسکریپت یا چیزی در این حدود است و آن را با زبانی جایگزین میکند که به توسعهدهندگان امکان نوشتن برنامههای خودشان را میدهد.
اتریوم به توسعهدهندگان این امکان را میدهد تا قراردادهای هوشمند خود یا عاملهای هوشمند (از این اصطلاح در اوراق سفید اتریوم استفاده شده است) را بنویسند. این زبان، تورینگ کامل است و این بدان معنا است که از طیف گستردهتری از دستورالعاملهای محاسباتی پشتیبانی میکند. قراردادهای هوشمند میتوانند:
- به عنوان یک حساب کاربری چند امضایی عمل کنند، بناربراین سرمایهها تنها زمانی خرج میشود که بخش مشخصی از افراد با آن موافقت کنند.
- مدیریت توافقات بین کاربرها انجام میشود. مثلا، یک نفر از فرد دیگری بیمه خریداری میکند.
- ابزاری را برای دیگر قراردادها فراهم میکند (مشابه با چگونگی کار کردن یک کتابخانه نرمافزاری).
- اطلاعاتی را پیرامون یک برنامه کاربردی مانند اطلاعات ثبت دامنه یا رکوردهای عضویت، فراهم میکند.
قدرت تعدد قراردادهای هوشمند
با بررسی مورد آخر بیان شده در فهرست بالا، میتوان فهمید که قراردادهای هوشمند نیاز به کمک دیگر قراردادهای هوشمند دارند. هنگامی که کسی روی درجه حرارت هوا در یک روز گرم تابستانی شرطبندی میکند، یک مجموعه از قراردادها میتوانند این شرط را بسته به اطلاعاتی تنظیم کنند که از اولین قرارداد یا شرایط میگیرند.
یک قرارداد ممکن است از دادههای خارجی برای تعیین آب و هوا کمک بگیرد و قرارداد دیگر میتواند شرط را بر اساس اطلاعاتی که از قرارداد اول آمده است، وقتی که شرطها برآورده شد، حل و اجرایی کند. اجرای هر قرارداد نیاز به کارمزد تراکنشهای اتر دارد که بستگی به میزان قدرت محاسباتی مورد نیاز برای پردازش ان تراکنش تعیین میشود.
چنانکه در بخش «روش کار اتریوم» تشریح شده است، اتریوم کد قراردادهای هوشمند را زمانی اجرا میکند که یک کاربر یا قرارداد دیگر، پیامهای خود را با کارمزد تراکنشهای کافی ارسال میکند. سپس، ماشین مجازی اتریوم قراردادهای هوشمند را به صورت بایتکد یا یک مجموعه از صفر و یکها اجرا میکند. این بایتکدها قابل خواندن و تفسیر توسط شبکه هستند.
دائو چیست؟
ماشین بدون رانندهای متصور است که در جستجوی مسافر برای سوار کردن است. پس از پیاده کردن یک مسافر، ماشین از سودی که به دست آورده برای شارژ کردن خود در ایستگاه استفاده میکند. این اتومبیل خودران، به جز برنامهنویسی مقدماتی، نیازی به کمک خارجی برای تعیین این ندارد که چگونه ماموریت خود را انجام دهد. این یک آزمایش فکری است که توسط یکی از مشارکتکنندگان بیتکوین، «مایک هرن» (Mike Hearn)، ارائه شده است. با این مثال، این موضوع تشریح میشود که بیتکوین چگونه میتواند در ۳۰ سال آینده به قدرت گرفتن سازمانهای بدون رئیس کمک کند.
آنچه هِرن توصیف کرده، یک بررسی موردی رویایی برای سازمانهای غیرمتمرکز ناشناس یا DAO است. ایدهای که در این راستا مدتی پس از انتشار بیتکوین در سال ۲۰۰۹، در جامعه کاربری این رمز ارز پیچید آن است که اگر بیتکوین میتواند واسطه (مرد میانی) مبادلات مالی را از میان بردارد، بنابراین شرکتها و دیگر سازمانها نیز روزی میتوانند بدون مدیریت سلسله مراتبی کار کنند. به طور خلاصه، هدف DAO کدنویسی سخت قوانین خاصی است که یک شرکت ممکن است از سرآغاز داشته باشد. این کار ممکن است منجر به آن شود که درصد خاصی ار درآمدهای یک سازمان به یک موضوع خاص یا این امر تخصیص پیدا کند که چگونه میتوان قانون مربوط به آن پرداخت را تغییر داد.
به طور خلاصه، آنچه در دائو به وقوع میپیوندد مشابه با ساز و کاری است که یک شرکت معمولی دارد. تفاوت اصلی دائو با شرکتهای معمولی در آن است که شرکتهای عادی به صورت دیجیتالی طراحی و اجرا نشدهاند. شناخته شدهترین تلاش برای ساخت چنین سازمان غیرمتمرکزی، دائو (DAO) است. دائو در سال ۲۰۱۶ راهاندازی شد، هرچند که پروژه آن پس از چند ماه با شکست مواجه شد، اما دائو مثال خوبی از این است که افراد هنگام سخن گفتن از فناوری بلاکچین، پلتفرم اتریوم و کاربردهای آن، چه چیزی را در ذهن دارند.
طرح اولیه برای دائو این بود که مشارکتکنندگان، توکنهای DAO را دریافت کنند، سپس، رای بدهند که سرمایهگذاری روی چه پروژهای انجام شود. برای انتخاب پروژه به منظور انجام سرمایهگذاری، این روش بر خرد جمعی تکیه دارد. چندین راهکار برای دائو در نظر گرفته شده است تا به واسطه آن و طراحی شرکتهای دیجیتال، حاکمیت شرکتهای امروزی بهبود پیدا کند. برخی از این راهکارها عبارتند از؛
- هر کسی با دسترسی داشتن به اینترنت، میتواند توکنهای دائو را نگهداری کند یا بخرد.
- سازندگان دائو میتوانند قوانینی که روی آن رای دادهاند را برگزینند.
به طور خلاصه، کارکرد دائو نیز مشابه است. آنها بر قراردادهای هوشمند یا قوانین از پیش برنامهنیوسی شدهای تکیه دارند که در سیستم به وقوع میپیوندد. این قراردادهای هوشمند، برای انجام طیف وسیعی از وظایف مانند دلار کردن سرمایهها پس از تاریخ مشخص یا زمانی که جمعیت مشخصی از رایدهندگان موافق بودند، قابل برنامهنویسی هستند.
برخی از طرفداران میگویند که این مورد برای سازمانهایی پاسخگو است که نیاز به انجام تصمیمگیری دارند؛ نه صرفا سازمانهایی که به پول مربوط هستند. اساسا، آنها به دائو به چشم راهکاری برای تضمین رمزنگارانه دموکراسی نگاه میکنند که در آن، ذینفعان میتوانند روی اضافه کردن قوانین جدید رای بدهند، قوانین را تغییر بدهند یا یک عضو را اخراج کنند.
امنیت دائو
دیدن اینکه چرا یک کد غیر قابل توقف دارای مخاطرات امنیتی است، امری ساده محسوب میشود. امروزه، تغییر دادن دائو یا قراردادهای هوشمند زیربنایی آن، هنگامی که در بلاکچین اتریوم مستقر شد، کاری دشوار است. این ویژگی از این جهت خوب است که یک فرد یا موجودیت، نمیتواند قواعد را تغییر دهد. اما در عین حال، پتانسیل آن را دارد که یک عیب بسیار بزرگ باشد. اگر کسی یک عیب را در اجرای دائو کشف کند، توسعهدهندگان الزاما نمیتوانند کد را تغییر دهند.
این مشکل دائو است. مشاهدهکنندگان میدیدند که مهاجمان به آهستگی در حال تخلیه وجوه هستند، اما نمیتوانستند کاری را برای توقف این موضوع انجام دهند. (به بیان فنی، هکر از قوانینی پیروی میکرد که مستقر شده بودند.) توسعهدهندگان ارشد اتریوم تاریخچه تراکنشها را معکوس کردند تا سرمایهها را به مالکان آنها بازگردانند. بهترین راهکار برای مدیریت موقعیتهای مشابه، هنوز در میان توسعهدهندگان پلتفرم اتریوم و مدافعان دائو محل بحث است.
ماشین مجازی اتریوم چیست؟
ماشین مجازی اتریوم (Ethereum Virtual Machine | EVM) قادر به اجرای قراردادهای هوشمندی است که میتوانند توافقهای هوشمند مالی مانند «قرارداد اختیار معامله» (Option Contract)، «قرداد معاوضه» (Swaps | سوآپ) یا «اوراق قرضه کوپن» (Coupon-Paying Bonds) را نمایش دهند.
همچنین، از ماشین مجازی اتریوم میتوان برای برآورده کردن قراردادهای کاری، به عنوان وجهالضمان برای خرید اقلام بسیار با ارزش و دیگر موارد نیز استفاده کرد. آنچه بیان شد، تنها برخی از کارهایی هستند که امکان انجام آنها با استفاده از قراردادهای هوشمند و به کمک ماشین مجازی اتریوم وجود دارد. قراردادهای هوشمند پتانسیل جایگزینی انواع توافقهای قانونی، مالی و اجتماعی را دارند.
درون اکوسیستم اتریوم، اتر به عنوان یک رمزارز داخلی وجود دارد که برای حل خروجی قراردادهای هوشمند اجرا شده با این پروتکل مورد استفاده قرار میگیرد. اتر را میتوان استخراج (Mine | ماین) و یا در صرافیها خرید و فروش کرد. همچنین، اتر را میتوان در صرافیها با بیتکوین، دلار، ارزهای فیات مانند دلار مبادله کرد.
در ادامه این مطلب و پس از بررسی جامع و کامل پلتفرم اتریوم، مفهوم اتر، چگونگی خریداری و استخراج آن، کیف پول نگهداری اتر، آینده این رمزارز و روند رشد قیمت آن و دیگر مباحث مرتبط با ر مزارز اتر، به طور کامل و جامع مورد بررسی قرار خواهند گرفت.
ماشین مجازی اتریوم (EVM) یک محیط زمان اجرا برای قراردادهای هوشمند در اتریوم است. در واقع، ماشین مجازی اتریوم یک پشته ثبت ۲۵۶ بیتی است که برای اجرای کد به شیوهای که انتظار میرود، طراحی شده است. این ساز و کار مورد توافق عمومی برای اتریوم است. تعریف رسمی EVM در اوراق زرد اتریوم ارائه شده است شده است.
ماشینهای مجازی اتریوم در زبانهای «سیپلاسپلاس» (++C)، هسکل (Haskell)، گو (Go)، جاوا (Java)، سیشارپ (C#)، پایتون (Python)، روبی (Ruby)، الیکسیر (ٍElixir)، «ارلنگ» (Erlang) پیادهسازی شدهاند و به زودی در وباسمبلی (WebAssembly) نیز پیادهسازی میشود (در حال حاضر در دست توسعه است).
اتریوم ۱.۰ چیست ؟
همانطور که پیشتر اشاره شد، اتریوم فناوری است که به کاربر امکان ارسال رمزارزها به هر فردی را صرفا در ازای پرداخت کامزدی ناچیز میدهد. همچنین، به برنامههای کاربردی غیرمتمرکز قدرت میدهد و بنابراین همه افراد میتوانند از آنها استفاده کنند و امکان از کار انداختن آنها برای گروه خاصی از افراد وجود ندارد. پلتفرم اتریوم، در واقع بلاکچین قابل برنامهنویسی جهان است. اتریوم بر مبنای نوآوری بیتکوین که همان بلاکچین و رمزارز بیتکوین بود ساخته شده است؛ اما تفاوت بسیار مهم و اساسی با آن دارد که در ادامه به آن پرداخته شده است.
هم بلاکچین اتریوم و هم بلاکچین بیتکوین به کاربر امکان استفاده از پول دیجیتال را بدون وجود ارائهدهنده خدمات پرداخت یا بانکها میدهند. در عین حال، بلاکچین اتریوم قابل برنامهنویسی است؛ بنابراین افراد میتوانند از آن برای داراییهای دیجیتال متعدد، از جمله بیتکوین، استفاده کنند. همچنین، میتوانند به توسعه برنامههای کاربردی غیرمتمرکز بر فراز این بستر بپردازند. این یعنی بلاکچین اتریوم چیزی بیش از محلی برای انجام پرداختها است. اتریوم یک بازارگاه برای خدمات مالی، بازیها و برنامههای کاربردی است که نمیتوانند دادههای کاربر را به سرقت ببرند و یا محدودیتی در دسترسی افراد ایجاد کنند.
اتریوم ۱.۰ نسخه اولیه اتریوم و $$1.x$$ عنوان یک مجموعه از ارتقاها برای پروتکل اتریوم ۱.۰ است. هدفی که برای اتریوم ۱.۰ عنوان شده بود آن است که تا زمان توسعه و پیادهسازی اتریوم ۲.۰، ارتقا پیدا کند و به روز رسانی شود. شایان ذکر است که اتریوم ۲.۰ در تاریخ ۱۱ آذر سال ۱۳۹۹ به طور رسمی راهاندازی شد.
اتریوم ۱.۰ چگونه کار میکند؟
بسیاری از برنامههای کاربردی که افراد به صورت روزمره از آن ها استفاده میکنند، شرکتهایی را به صورت واسطه در میان دارند که کمک میکنند تا آن برنامه کار کند. یوتیوب، ویدئوهای افراد را پیش از نمایش دادن، ذخیره میکند. رابینهود (Robinhood) پولهای مردم را برای سرمایهگذاری در بازار بورس، نگه میدارد. فیسبوک، اطلاعات کاربران خود را همراه با جزئیات قابل توجهی ذخیره و تحلیل میکند.
این در حالی است که اتریوم، پلتفرمی محسوب میشود که هدف آن تسهیل ساختن برنامههای کاربردی است که توسط موجودیت دیگری مدیریت و کنترل نمیشوند. بلکه، برنامههای کاربردی غیرمتمرکز موجود در بستر اتریوم به وسیله کدها اداره میشوند. البته باید توجه داشت که زیرساخت جهانی موجود برای اتریوم یا همان کامپیوتر جهانی، به اجرای این برنامههای کاربردی کمک میکند.
اتریوم به طور گستردهای از پروتکل بیتکوین و فناوری بلاکچین آن الهام گرفته شده است؛ اما پلتفرم اتریوم با فناوری نویی تطبیق پیدا کرده تا از برنامههای کاربرد غیرمتمرکز نیز پشتیبانی کند. به زبان ساده، یک بلاکچین یک فهرست در حال رشد و غیرمتمرکز از رکوردهای تراکنشها است.
یک کپی از بلاکچین به وسیله هر کامپیوتر در شبکه و به وسیله داوطلبانی از هر کجای جهان نگهداری میشوند. این دستگاه جهانی، جایگزین واسطهها میشود. در سطح بالا، میتوان گفت که اتریوم ترکیبی از چندین بخش است که هر یک در ادامه عنوان و سپس تشریح شدهاند. آنچه در ادامه بیان میشود، ساز و کار به وقوع پیوسته بین این بخشها، برای شکل دادن آنچه است که در پلتفرم اتریوم به وقوع میپیوندد.
- قراردادهای هوشمند: قوانینی هستند که تعیین میکنند بر چه اساسی پول قابل دست به دست شدن است. مفهوم جامعتر و دقیقتر قراردادهای هوشمند، پیشتر توضیح داده شد.
- ماشین مجازی اتریوم: بخشی از اتریوم که که قوانین اتریوم را اجرا و اطمینان حاصل میکند که یک تراکنش یا قرارداد هوشمند، از قوانین تبعیت میکند.
- بلاکچین اتریوم: تاریخچه کل اتریوم، شامل هر تراکنش و فراخوانی قرارداد هوشمند، در بلاکچین ذخیره میشود.
- اتر: توکن اتریوم است که برای انجام تراکنشها و اجرای قراردادهای هوشمند در اتریوم کاربرد دارد.
- اثبات کار: این مدل اجماع اتریوم و به مثابه چسبی است که کل سیستم را کنار هم نگه میدارد و اطینان حاصل میکند که همه در شبکه از قوانین تبعیت میکنند.
البته، این موضوع را باید در نظر داشت که توسعهدهندگان اتریوم درسالهای اخیر قوانین متعددی را تصویب کردهاند. اتریوم ۲.۰ که در آذر سال ۱۳۹۹ راهاندازی شد، ساز و کار اتریوم و به طور خاص، ستون فقرات اثبات کار آن را دستخوش تغییر کرده است. در ادامه، ابتدا به ساز و کار اتریوم یک پرداخته شده و سپس، مفهوم اتریوم ۲.۰ و چگونگی کار کردن آن تشریح شده است. سپس، تفاوت اصلی اتریوم یک و دو مورد بررسی قرار گرفته است.
قراردادهای هوشمند اتریوم
در ادامه، قراردادهای هوشمند مورد بررسی قرار گرفتهاند؛ زیرا نقطه اساسی در اتریوم محسوب میشوند. قراردادهای هوشمند امکان رمزنگاری شرایطی که تحت آن پول را میتوان با خود پول انتقال داد امکانپذیر میسازند و نیاز به اعتماد به یک واسطه جهت انتقال پول را از میان میبرند. این موارد، بخشی از هر نوع رمزارزی هستند. برای مثال، بیتکوین، امکان پرداخت مستقیم بین الهام و مریم را بدون شخص ثالث، مثلا یک بانک، امکانپذیر و تسهیل میسازد. شایان توجه است که پیش از ظهور فناوری بلاکچین و رمزارزهای بومی موجود در بستر بلاکچین، امکان انجام این کار در تجارت الکترونیک وجود نداشت.
هدف از اتریوم، گسترش قراردادهای هوشمند با انتزاعیسازی طراحی بیتکوین است؛ بنابراین، توسعهدهندگان میتوانند از فناوری برای چیزی بیش از یک تراکنش ساده استفاده کنند و کاربردهای آن را به توافقهایی با گامهای افزوده و قوانین جدید مالکیت گسترش دهند. برای مثال، وامهای فلاش (Flash Loans) از قراردادهای هوشمند برای حصول اطمینان از اجرا کردن یک قانون که پول قابل قرض گرفته شدن نیست مگر اینکه قرض گیرنده آن را پس دهد، استفاده میکنند.
برخی از خدمات اتریوم، مانند Compound در حال آزمایش کردن آن هستند که افراد، کار وام یا قرض دادن پول را به جای شرکتها، مدیریت کنند. در حالی که این انعطافپذیری با قراردادهای هوشمند، نوآوری اصلی اتریوم نسبت به بیتکوین است، برخی از پژوهشگران و توسعهدهندگان این تصمیم طراحی را مورد انتقاد قرار داده اند و این بحث را مطرح کردهاند که این موضوع ممکن است آسیبپذیریهای امنیتی زیادی را در پی داشته باشد.
بلاکچین اتریوم
تاریخچه همه قراردادهای هوشمند در بلاکچین اتریوم ذخیره میشود. ساختار بلاکچین اتریوم شباهت بسیار زیادی به ساختار بلاکچین بیتکوین دارد. بلاکچین اتریوم یک رکورد به اشتراک گذاشته شده از کل قرارداد هوشمند و تاریخچه تراکنش است. صدها داوطلب از سراسر جهان، یک کپی از کل بلاکچین اتریوم را نزد خود ذخیره میکنند.
این مورد یکی از ویژگیهایی است که پلتفرم اتریوم را توزیع شده میکند. هر یک از این کپیها، یک گره (Node) در شبکه اتریوم نامیده میشوند. هر بار که یک قرارداد هوشمند اتریوم مورد استفاده قرار میگیرد، شبکهای از هزاران کامپیوتر آن را پردازش میکنند و اطمینان حاصل میکنند که کاربر از قوانین مربوطه تبعیت میکند.
همه این گرهها متصل هستند. علاوه بر ذخیرهسازی این دادهها، هر گره اتریوم از مجموعه مشابهی از قواعد برای پذیرش تراکنشها و اجرای قراردادهای هوشمند، پشتیبانی میکند. بر خلاف بیتکوین، گرههای اتریوم چیزی بیش از جزئیات تراکنش را ذخیره میکنند. شبکه نیاز به پیگیری (ردیابی) «وضعیت» (State) – یا اطلاعات کنونی – همه این برنامههای کاربردی شامل تراز هر کاربر و همه کدهای قرارداد هوشمند دارد و همه این موارد و هر تغیری که روی آنها انجام شود را ذخیره میکند. در ادامه، خلاصهای از آنچه در هر گره ذخیره شده است بیان میشود.
- حسابها: هر کاربر میتواند یک حساب داشته باشد که نشان میدهد هر کاربر چه میزان اتر دارد.
- کد قرارداد هوشمند: اتریوم قراردادهای هوشمندی را ذخیره میکند که قوانین مورد نیازی که باید برای قفلگشایی و انتقال پول رعایت شوند را توصیف میکند.
- وضعیت قرارداد هوشمند: وضعیت (State) قرارداد هوشمند را مشخص میکند.
ماشین مجازی اتریوم
هر گره اتریوم دارای یک ماشین مجازی اتریوم (EVM) است که قراردادهای هوشمند را اجرا میکند. همه این گرهها به صورت همگام اجرا میشوند. توسعهدهندگان قرارداد هوشمند، به زبان برنامهنویسی قابل خواندن برای انسان مینویسند که امکان خواندن آن توسط کامپیوتر وجود ندارد.
این قردادها باید به بایتکدها – یک زبان قابل درک برای کامپیوترها – مبدل شوند که البته برای انسانها به سادگی قابل درک و خواندن نیستند. سپس، ماشین مجازی اتریوم (EVM) زمام امور را به دست میگیرد. این ماشین مجازی میتواند دستکم ۱۴۰ کد دستور (آپکد | Opcodes) متفاوت را اجرا کند که هر یک توانایی اجرای وظیفهای مشخص مانند اضافه کردن و ذخیرهسازی دادهها را دارند.
تراکنشهای اتر و اتریوم
کاربر چطور با اتریوم تعامل میکند؟ استفاده از قراردادهای هوشمند و برنامههای کاربردی اتریوم، نیازمند پول به شکل اتر، توکن بومی اتریوم، است. اتر برای انجام هر کاری در اتریوم مناسب است و هنگامی که از آن برای قراردادهای هوشمند در شبکه استفاده میشود، معمولا از واحد پرداخت Gas (گاز) استفاده میشود. از اتر میتوان برای فراخوانی قراردادهای هوشمند استفاده کرد. از Gas نیز میتوان برای فراخوانی قرادادهای هوشمند استفاده کرد.
برای مثال، یک قرارداد میتواند یک پست در توییتر یا شبکه اجتماعی دیگر را منتشر کند و یا میتواند یک حساب کاربری را برای قرض گرفتن سکه در پلتفرم وامگیری مبتنی بر اتریوم راهاندازی کند. اتریوم از حسابهای کاربری برای ذخیرهسازی اتر استفاده میکند که مشابه با حساب بانکی هستند. دو نوع از حسابهای کاربری وجود دارد که در ادامه بیان شدهاند:
- حسابهای کاربری با مالکیت خارجی (EOA): حسابهای کاربری که کاربران نرمال برای برای نگهداری و ارسال اتر استفاده میکند.
- حسابهای قرارداد: این حسابهای کاربری جداگانه، مواردی هستند که قراردادهای هوشمند را نگه میدارند و امکان راهاندازی آنها با تراکنشهایی از حساب های کاربری با مالکیت خارجی (EOA) یا دیگر رویدادها وجود دارد.
فراخوانی قراردادهای هوشمند رایگان نیست. هر تراکنش مقداری اتر هزینه دارد که بستگی به میزان محاسبات مورد نیاز تراکنش دارد. همچنین، هنگامی که اتریوم متراکم میشود، کارمزدها افزایش پیدا میکنند.
اثبات کار اتریوم
باید به خاطر داشت که هر گره در شبکه یک کپی از تاریخچه تراکنش و قرارداد هوشمند شبکه را نگهداری میکند. هر بار که یک کاربر تراکنشهایی را انجام میدهد، همه گرهها در شبکه نیاز به آن دارند که در توافقی بیایند که این تغییر در آن به وقوع پیوسته است. الگوریتم اثبات کار (Proof of Work Algorithm)، برای اولین بار توسط بیتکوین مورد استفاده قرار گرفت.
این الگوریتم در واقع چیزی است که گرهها در شبکه را همگام نگه میدارد. ماینرها بازیگرانی هستند که از رفتار بد در شبکه جلوگیری میکنند؛ برای مثال، استخراجکنندگان از این موضوع اطمینان حاصل میکنند که هیچ کس پول خود را بیش از یکبار صرف تلاش برای بازی در سیستم نمیکند (یعنی یک پول، یک بار مصرف میشود و کلاهبرداری که طی آن فرد یک پول را دو بار خرج کند، اتفاق نمیافتد).
ماینرها هزاران دلار را روی تجهیزات استخراج و برق هزینه میکنند تا در رقابتی که برای به دست آوردن بیتکوین است، برنده شوند. آنها پاداش بیتکوینهای خود را در صورتی از دست میدهند که تراکنشهای دوبل را تسهیل کنند. بنابراین، همه توان خود را به کار میگیرند تا از وقوع چنین کاری در شبکه، جلوگیری کنند.
در پلتفرمهایی مانند اتریوم و بیتکوین، هدف استخراجکنندگان رمزارز در شبکه و گرهها، کسب مسئولیت تبادل تغییرات از یک وضعیت (State) به وضعیت دیگر، به جای واسطه قرار دادن قدرتهایی مانند پیپال (PayPal) یا بانکها است. استخراج کنندگان بیتکوین تغییر مالکیت بیتکوین از یک فرد به دیگری را تایید میکنند. ماشین مجازی اتریوم، یک قرارداد را با قوانینی که از ابتدا برنامهریزی شده است اجرا میکند.
اتریوم در نسخه ۱.۰ از الگوریتم اثبات کار استفاده کرده و در نسخه ۲.۰، از الگوریتم دیگری با عنوان اثبات سهم استفاده شده است که در ادامه این مطلب مورد بررسی قرار گرفته است. توسعهدهندگان اتریوم مدت زمان زیادی به دنبال این هدف بودهاند که به الگوریتم دیگری، یعنی اثبات سهم (Proof-Of-Stake)، جا به جا شوند. توسعهدهندگان اتریوم امید دارند که الگوریتم اثبات سهم از جهت مصرف انرژی بهرهورتر و نسبت به الگوریتم اثبات کار، امنتر باشد.
این الگوریتم از برخی جهات نیز بسیار بحث برانگیز شده است. منتقدان چنین میگویند که هنوز اثبات نشده است که الگوریتم اثبات سهم به درستی کار میکند یا امنیت آن به پای امنیت الگوریتم اثبات کار میرسد. به هر روی، این تغییر در آذر سال ۱۳۹۹ (دسامبر ۲۰۲۰) به وقوع پیوسته و پس از انجام شدن هر سه فاز پیادهسازی اتریوم ۲.۰، میتواند نتیجه گرفت که کدام یک از دو الگوریتم مفیدتر بوده است.
اتریوم ۲.۰ چیست؟
توسعه متنباز اتریوم برای انجام یک ارتقای کلی در پلتفرم اتریوم جریان داشته و دارد و نتیجه آن، اتریوم ۲.۰ یا Eth2 است. هدف اصلی از ارتقای پلتفرم اتریوم افزایش توان عملیاتی تراکنشها است. در ابتدای توسعه شبکه اتریوم ۱.۰ امکان پردازش چیزی در حدود ۱۵ تراکنش در ثانیه وجود داشت. بنابر آمارهای ارائه شده، در پاییز سال ۱۳۹۹ (سه ماهه سوم سال ۲۰۲۰) روزانه به طور میانگین ۱٫۱ میلیون تراکنش در پلتفرم اتریوم انجام شده است که این میزان چیزی در حدود ۳٫۵ برابر بیشتر از تعداد تراکنشهایی است که روزانه در پلتفرم بیتکوین انجام میشود.
در حال حاضر و با راهاندازی اتریوم ۲.۰، تعداد تراکنشهای قابل انجام، به بیش از ۱۰ هزار تراکنش در ثانیه میرسد. افزایش توان عملیاتی شبکه با تقسیم بار کاری روی تعداد زیادی تراکنش اتفاق میافتد که به طور موازی در حال اجرا هستند. این بلاکچینها اجماع مشترکی دارند، بنابراین دستکاری سواستفادهگرانه از شبکه مستلزم آن است که مهاجم به همه اجماع مشترک حمله کند و این برای فرد مهاجم هزینه بسیار زیادی دربر دارد.
این هزینه در مقایسه با هزینه عملیات مشابه در اتریوم نسخه ۱.۰، بسیار زیاد است. ارتقای اتریوم ۲.۰ (که با عنوان Serenity نیز شناخته شده است) به نوعی طراحی شده است تا در سه فاز راهاندازی شود. فاز صفر این طرح، در ۱۱ آذر سال ۱۳۹۹ (۱ دسامبر ۲۰۲۰) راهاندازی شد و تنها دو فاز دیگر برای اجرا باقی ماندهاند. این سه فاز در ادامه بیان و تشریح شدهاند.
- فاز ۰: Beacon Chain ساخته میشود که یک بلاکچین اثبات سهام (Proof of Stake) است و به عنوان مرکز هماهنگی و اجماع ETH2 کار خواهد کرد.
- فاز ۱: زنجیرههای پایگاه داده خُرد (Database Shard) ساخته میشود و آنها را به Beacon Chain متصل میکند.
- فاز ۲: اجرای وضعیت (حالت | States) در زنجیرههای شارد پیادهسازی میشود. زنجیره اتریوم ۱.۰ یکی از خُردهای (Shards) اتریوم ۲.۰ است.
اتریوم ۲.۰ چه زمانی منتشر شد؟
اولین فاز از انتشار اتریوم ۲.۰ با عنوان «زنجیره چراغ دریایی» (Beacon Chain)، در ساعت ۱۲:۰۰ به وقت جهانی در تاریخ ۱ دسامبر سال ۲۰۲۰ برابر با یکم آذر ۱۳۹۹ راهاندازی شد. «دنی ریان» (Danny Ryan) پژوهشگر هستهای در بنیاد اتریوم در برنامه پخش زندهای که به همین مناسبت برگزار شده بود، در این رابطه چنین میگوید:
نکته کلیدی پیرامون سلامت اتریوم ۲.۰ آن است که در آن شاهد مشارکت بیش از دو سوم افراد (اعضای پلتفرم) خواهیم بود.
پس از آنکه راهاندازی Beacon Chain تایید شد، بیش از ۲۱,۰۰۰ اعتبارسنج فعال در شبکه وجود داشتند و هر دوره دارای نرخ موفقیت ۸۰٪ بوده است. Beacon Chain از ابتدا مستقل از میننت (MainNet) کنونی اتریوم راهاندازی شده است؛ پیش از آنکه میننت به سیستم اثبات سهم متصل شود. اولین بلوک واجد شرایط، Slot 1 بود و اعتبارسنج آن، آن را با یک پیام رمزنگاری شده امضا کرد که محتوای آن «Mr F was Here.» بود.
راهاندازی موفقیتآمیز اتریوم ۲.۰ توسط مفاخر جامعه اتریوم جشن گرفته شد. از جمله افرادی که در این جشن مشارکت داشتند میتوان به ویتالیک بوترین و جوزف لوبین اشاره کرد. راهاندازی فاز اول اتریوم ۲.۰، نیازمند ۱۰ ماه آمادهسازی بود که طی آن، معیارهای خاصی باید برآورده میشدند. در ادامه، پس از انتشار قرارداد سپرده در ۱۴ آبان ۱۳۹۹ (۴ نوامبر سال ۲۰۲۰)، نیاز به ۱۶۳۸۴ اعتبارسنج در شبکه تا ۴ آذر ۱۳۹۹ (۴ نوامبر ۱۳۹۹) وجود داشت که هر یک ۳۲ اتریوم را تسهیم میکردند و در مجموع، ۵۲۴۲۸۸ اتریوم برای این کار وجود داشت.
در ابتدا، سرعت تسهیم کندتر از آنچه بود که انتظار میرفت. با انجام یک نظرسنجی در توییتر توسط «جاستین دراکه» (Justin Drake) پژوهشگر اتریوم، مشخص شد که نیمی از افراد، قصد ندارند که سپردهگذاری ETH 32 را تا ۴ آذر ۱۳۹۹ (۲۴ نوامبر) انجام دهند. تنها ۲۱٪ از افراد بیان کرده بودند که تسهیم را انجام دادهاند و یا قصد تسهیم 32 ETH را دارند. یکی از دلایلی که توسط شرکتکنندگان در نظرسنجی برای این موضوع بیان شده، هزینه بالای آن بود و در واقع، قیمت 32 ETH در زمان نگارش این مطلب برابر با ۱۹۰۰۰ دلار بوده است.
با اهدای ۳۲۰۰ اتر توسط ویتالیک بوترین، که در آن زمان ارزشی برابر با ۱٫۹ میلیون دلار داشت و تخصیص پنجاه میلیون از داراییهای اتریوم DARMA Capital جامعه کاربری تقویت شد و بنابراین، موسسات و افراد میتوانند از اتریوم ۲.۰ با نقدینگی سیال پشتیبانی کنند.
با وجود تاخیری که در راهاندازی فاز اول اتریوم ۲.۰ به وقوع پیوست، در یازدهمین ساعت، جمعیت زیادی از اعتبارسنجها اضافه شدند که در تسهیم مشارکت داشتند. تنها ۲۴ ساعت پیش از ضربالاجلها، ۵۰ درصد از هدف برآورده شد. خوشبختانه برای اتریوم ۲.۰، تا ۴ آذر ۹۹ (۲۴ نوامبر ۲۰۲۰)، تعداد کافی از اعتبارسنجها برای راهاندازی Bacon Chain مشارکت داشتند.
آینده اتریوم 2.0 چگونه است؟
همبنیانگذار اتریوم، ویتالیک بوترین، نقشه راهی را از آینده پنج تا ده ساله اتریوم ۲.۰ ارائه کرده است. او میگوید:
در طول دو سال گذشته، یک تغییر سفت و سخت از پژوهش «BlueSky» اتفاق افتاد و تلاش شد تا درک شود که پژوهش و توسعه چطور میتوانند همافزایی داشته باشند و تلاش شد تا اولویتهای خاصی بهینهسازی شوند که قابل پیادهسازی هستند و آنها را پیادهسازی کنیم.
او درباره حجم عظیمی از تغییرات صحبت میکند که در حال حاضر در حال وقوع در اطراف برنامهنویسهای اتریوم است و این توسعهها همواره در طول زمان ادامه خواهد داشت. در ۱۰ تیر ۱۳۹۹ (ژوئن ۲۰۲۰)، بوترین بیان کرد که اتریوم ۲.۰ نیاز به استفاده از روشهای مقیاسدهی کنونی مانند ZK-rollups دستکم برای دو سال پیش از پیادهسازی زنجیرههای تقسیم (Shar Chains) دارد.
اتریوم ۲.۰ چه تاثیری بر قیمت اتریوم خواهد داشت؟
از برخی جهات میتوان گفت که اتریوم ۲.۰ همه آن چیزی است که دنیای رمزارزها به آن نیاز خواهد داشت. «جیمی انسون» (Jamie Anson)، بنیانگذار «نیفتی اورکاد» (Nifty Orchard) و سازماندهنده «اتریوم لندن» (Ethereum London) در گفتگو با رسانه Decrypt در این باره میگوید:
هنگامی که اتریوم مقیاسپذیری را با استفاده از فناوری لایه ۲ یا ETH 2.0 را داشته باشد، همه پرسشها پاسخ داده خواهد شد.
به عبارت دیگر، مقیاسپذیری بیشتر به معنای استفاده بیشتر است که متعاقبا به معنای تقاضای بیشتر است. این موضوع دستکم در تئوری، موجب افزایش قیمت اتریوم در سطوح جدیدی خواهد شد.
ارتقای اتریوم ۱.۰ به اتریوم ۲.۰ چگونه انجام میشود؟
با دنبال کردن یک مجموعه از تستنتها (Testnet) شامل «توپاز» (Topaz)، «مدالا» (Medalla)، «اسپادینا» (Spadina) و «زینکن» (Zinken)، نسخه نهایی اتریوم ۲ در سه فاز اجرایی خواهد شد. هر یک از این سه فاز، در ادامه بیان شدهاند. فاز ۰ برای پیادهسازی «Beacon Chain» است. این زنجیره، ثبتنام اعتبارسنجها را ذخیرهسازی و مدیریت میکند و مکانیزم اجماع اثبات سهم (Proof of Stake | PoS) برای اتریوم ۲.۰ است. زنجیره اصلی اثبات کار اتریوم (PoW) نیز در کنار این مورد کار میکند، بنابراین هیچ نقصان و شکستی در استمرار داده نخواهد بود.
در سال ۲۰۲۱، فاز ۱ پیادهسازی انجام میشود که یکپارچهسازی زنجیرههای تقسیم (Sharding Chains) اثبات سهم است. انتظار میرود که شبکه با ۶۴ تقسیم (Shard) (توان عملیاتی ۶۴ بار بیشتر از اتریوم ۱.۰ را فراهم میکند) راهاندازی شود؛ هرچند که این مورد در زمان راهاندازی، از حسابهای کاربری یا قراردادهای هوشمند پشتیبانی نخواهد کرد. فاز ۱٫۵، یک به روز رسانی موقت در سال ۲۰۲۱ است و پس از آن، میننت (MainNet) اتریوم به طور رسمی به یک تقسیم (Shard) مبدل میشود و به اثبات سهم انتقال پیدا میکند.
فاز ۲ طی دو مرحله در سالهای ۲۰۲۱ و ۲۰۲۲ راهاندازی خواهد شد و در آن هنگام، تقسیمها (Shards) به طور کامل کارکردی و با قراردادهای هوشمند سازگار میشوند. این مورد، همچنین شامل افزودن حساب های اتر و فراهم کردن انتقال و برداشت، پیادهسازی انتقالهای چند تقسیمی (Cross Shard) و فراخوانی قرارداد میشود. در این فاز، یک محیط اجرایی برای برنامههای مقیاسپذیری ساخته میشود که بر فراز اتریوم ۲ ساخته شدهاند.
اتریوم ۲.۰ چگونه کار میکند؟
اتریوم ۲.۰ که به طور خلاصه به آن Eth2 نیز گفته میشود، یک ارتقا در بلاکچین اتریوم است. هدف از اینن ارتقا، بهبود بخشیدن سرعت، کارایی و مقیاسپذیری شبکه اتریوم است تا بتواند تراکنشهای بیشتری را پردازش و کار را تسهیل کند.
اثبات سهم چگونه کار میکند؟
در حالی که اتریوم ۱.۰ از یک مکانیزم اجماع که با عنوان اثبات کار (Proof of Work | PoW) ساخته شده است، اتریوم ۲ از اثبات سهم (Proof of Stake | PoS) استفاده میکند.
اثبات سهم چه تفاوتی با اثبات کار دارد؟
با بلاکچینهایی مانند اتریوم، نیازی به اعتبارسنجی تراکنشها به صورت غیرمتمرکز وجود ندارد. اتریوم، مانند دیگر رمزارزها، در حال حاضر از یک مکانیزم اجماع با عنوان اثبات کار (PoW) استفاده میکند. در این سیستم، استخراجکنندگان از قدرت سختافزارهای کامپیوتری برای حل پازلهای ریاضی و اعتبارسنجی تراکنشهای جدید استفاده میکنند. اولین استخراجکننده برای حل پازل، یک تراکنش جدید را به رکورد همه تراکنشهایی اضافه میکند که بلاکچین را میسازند. سپس، به آنها با رمزارزها پاداش داده میشود. اگرچه، این فرایند میتواند از جهت مصرف انرژی، بسیار پرمصرف باشد.
اثبات سهم (Proof of Stake) از این جهت با اثبات کار تفاوت دارد که به جای استخراجکنندگان، اعتبارسنجهای تراکنشها، به دلیل حق اعتبارسنجی تراکنش، سهم را رمزنگاری میکنند. این اعتبارسنجها برای برای پیشنهاد یک بلوک بر مبنای این انتخاب میشوند که چه میزان ارز را برای چه مدت نگهداری کردهاند. دیگر اعتبارسنجها نیز میتوانند تصدیق کنند که یک بلوک را دیدهاند. هنگامی که به اندازه کافی گواهیها وجود داشته باشند، یک بلوک میتواند به بلاکچین اضافه شود. سپس، به اعتبارسنجها بابت گزاره بلوک موفق، پاداش میدهند. این فرایند را «جعل» (Forging) یا «ضرب» (Minting) میگویند.
مزیت اصلی اثبات سهم آن است که نسبت به روش اثبات کار، در مصرف انرژی به شدت صرفهجویی میکند. دلیل این امر آن است که پردازش کامپیوتری که مصرف انرژی زیادی دارد را از الگوریتم اجماع جدا میکند. همچنین، این بدین معنا است که نیاز به قدرت محاسباتی خیلی زیاد برای امنسازی بلاکچین نیست.
مقایسه اتریوم ۱.۰ و اتریوم ۲.۰
در ادامه، اتریوم ۱.۰ و اتریوم ۲.۰ به صورت کلی با یکدیگر مقایسه میشوند.
چرا گفته میشود که اتریوم ۲.۰ بهتر از اتریوم ۱.۰ مقیاسپذیر است؟
مزیت اصلی برای ارتقای اتریوم ۱.۰ به اتریوم ۲.۰ مقیاسپذیری آن است. با اتریوم ۱.۰، شبکه میتواند در حدود ۳۰ تراکنش در ثانیه را پشتیبانی کند. این امر موجب تاخیر و تراکم در شبکه میشود. اتریوم ۲ میتواند تا ۱۰۰۰۰۰ تراکنش در ثانیه را پردازش کند. این قابلیت با پیادهسازی زنجیرههای تقسیم (Shard Chains) فراهم میشود.
راهاندازی اتریوم ۱.۰ یک بلاکچین شامل یک زنجیره یکتا با بلوکهای پی در پی است. این مورد امن اما بسیار کند و غیر کارآمد است. با مقدمهای بر زنجیرههای شارد، این بلاکچین از هم جدا شده و امکان آن را فراهم میکند که تراکنشهای بلاکچین در زنجیرههای موازی به جای زنجیرههای پی در پی، مدیریت شوند. این امرموجب سرعت گرفتن شبکه میشود و مقیاسپذیری آن افزایش پیدا میکند.
چرا اتریوم ۲.۰ امنتر است؟
اتریوم ۲.۰ با در نظر داشتن امنیت ابداع شده است. اغلب شبکههای اثبات سهم، مجموعه کوچکی از اعتبارسنجها را دارند که برای یک سیستم متمرکز شدهتر طراحی شدهاند و امنیت شبکه را کاهش میدهد. اتریوم ۲.۰ حداقل ۱۶۳۸۴ اعتبارسنج دارد که موجب غیرمتمرکزتر شدن آن میشوند و بنابراین، امن است. اگرچه، نظر «لیور یافه» (Lior Yaffe)، بنیانگدار «Jelurida» و از توسعهدهندگان ارشد بلاکچینهای Ardor و Nxt در این رابطه این است که یک آسیبپذیری بالقوه که مبتنی بر نرخ مشارکت است در این شبکه وجود دارد.
ممیزیهای امنیتی کد اتریوم ۲.۰ توسط سازمانهایی شامل شرکت امنیت بلاکچین به نام « Least Authority» انجام شده است. بنیاد اتریوم یک تیم امنیتی اختصاصی برای اتریوم 2.0 را شکل داده است تا پیرامون نواقص امنیتی احتمالی موجود در این پلتفرم به پژوهش بپردازند. پژوهشگر اتریوم ۲.۰، «جاستیک دراکه» (Justin Drake) اذعان میکند که این پژوهشها شامل «فازی، شکارچی جایزهبگیر، وظیفه پیجر، مدلسازی رمزنگاری اقتصادی، تحلیل رمزارز کاربردی و اعتبارسنجی» رسمی میشود.
اتریوم چگونه مقیاس میپذیرد؟
مانند بلاکچینهای عمومی، اتریوم نیز به پشتیبانی از تعداد زیادی ماینر، تا جای ممکن، گرایش دارد. به دلیل محدودیت کدنویسی سخت در محاسبات به ازای بلوک، بلاکچین اتریوم ۱.۰ تنها از ۱۵ تراکنش در ثانیه پشتیبانی میکرد که این میزان با ۴۵,۰۰۰ تراکنش پردازش شده در روز توسط ویزا در حدود سال ۲۰۱۶، قابل مقایسه است. محدودیت اتریوم ۱.۰ و دیگر سیستمهای بلاکچینی مدتها محل بحث توسعهدهندگان و فعالان آکادمیک بوده است. دراتریوم ۲.۰ تلاش شده است تا محدودیتهای اتریوم ۱.۰ رفع و تعداد تراکنشهای قابل انجام در هر ثانیه به شدت افزایش پیدا کند. اما اکنون مسئله آن است که محدودیت پلتفرم اتریوم ۲.۰ هنوز به طور شفاف مشخص نیست.
چرا مقیاس دادن پلتفرم اتریوم کار دشواری است؟
اتریوم و بیتکوین ترکیبی از ترفندهای فنی و مشوقها را مورد استفاده قرار میدهند تا اطمینان حاصل کنند که به طور اساسی ثبت میکنند که چه کسی مالک چه چیزی است، بدون آنکه از یک مرجع مرکزی بهرهمند شوند. مسئله آن است که حفظ این تراز در حالی که در عین حال، تعداد کاربران نیز گسترش پیدا میکنند، کاری نیازمند هوشمندی است. این امر به طور خاص، با در نظر داشتن این موضوع صدق میکند که میانگین افراد میتوانند از سیستم برای خرید قهوه یا اجرای برنامههای کاربردی استفاده کنند.
به همین دلیل است که اتریوم بستگی به یک شبکه از گرهها دارد که هر یک از آنها، کل تاریخچه تراکنش اتریوم و وضعیت تراز حساب، قراردادها و انبارهها را ذخیره میکنند. این قطعا کار دشواری است، به ویژه از آنجا که تعداد کل تراکنشها هر ۱۰ الی ۱۲ ثانیه با هر بلوک جدید، در حال افزایش است. نگرانی آن است که اگر توسعهدهندگان سایز هر بلوک را برای متناسب شدن برای تعداد بیشتری از تراکنشها افزایش دهند، دادههایی که یک گره باید ذخیره کند بزرگتر شوند و در نتیجه، افراد از شبکه بیرون انداخته شوند. اگر هر گره به اندازه کافی بزرگ شود، تنها برخی از شرکتهای بزرگ میتوانند منابع لازم برای اجرای آنها را داشته باشند.
علارغم سختی موجود، اجرای یک گره کامل، بهترین راه برای کاربران برای استفاده از مزایای حریم خصوصی و امنیت است. پیچیدهتر کردن گرههای کامل برای اجرا، متعاقبا تعداد افرادی که میتوانند خودشان تراکنشها را تایید کنند نیز محدود میکند. به عبارت دیگر، غیرمتمرکزسازی و مقیاسپذیری در حال حاضر در تضاد با یکدیگر هستند، اما توسعهدهندگان اتریوم به دنبال راهکاری هستند تا این موضوع را حل کنند. این راهکار در پلتفرم اتریوم نسخه ۲.۰ تعبیه شده است و عنوان آن «تقسیمسازی» (Sharding) است.
تقسیمسازی
چندین پروژه مقیاسدهی اتریوم در جریان هستند که هر یک، با یک مسئله مقیاسپذیری خاص سر و کله میزنند. چنانکه پیش از این نیز بیان شد، یک مسئله آن است که هر گره نیاز به ذخیرهسازی حالت به روز رسانی شده هر حساب در شبکه دارد. «تقسیمسازی» (Sharding) از یک روش مقیاسدهی سنتی استفاده میکند که به آن، «تقسیم پایگاهداده» (Database Sharding) گفته میشود. این روش به طور موثری یک پایگاهداده را به بخشهای مختلف میشکند و هر بخش را روی سرور متفاوتی قرار میدهد.
هدف از تقسیمسازی حذف نیاز به «گره کامل» (Full Node) است. گرههای کامل گرههایی هستند که وضعیت کل شبکه و هر تراکنشی که در آن به وقوع میپیوندد را ذخیرهسازی میکنند. در عوض، هر گره یک زیرمجموعه از این دادهها را ذخیره میکند و تنها آن تراکنشها را اعتبارسنجی میکند. اگر یک گره نیاز به دانستن پیرامون تراکنشها یا بلوکهایی داشته باشد که ذخیره نمیکند، گره دیگری را با اطلاعاتی که به آن نیاز دارد ذخیره میکند. در عوض، هر گره یک زیر مجموعه از این دادهها است و تنها آن تراکنشها را اعتبارسنجی میکند. اگر یک گره نیاز به کسب آگاهی پیرامون تراکنشها یا بلوکهایی داشته باشد که ذخیره نشدهاند، گره دیگری را با اطلاعاتی که نیاز دارد پیدا میکند.
مسئله در اینجا این است که فرایند مشخصا قابل اعتماد نیست؛ زیرا در این مدل، گرهها نیاز به تکیه کردن به گرهای دیگر دارند. اتریوم میخواهد این مسئله را با استفاده از «مشوقهای اقتصادی رمزنگاری» (Cryptoeconomic Incentives) استفاده کند که بازیگران شبکه را به شکل خاصی هدایت میکند. در این شرایط، اطمینان حاصل میشود که گرهها در حال پاس داده شدن روی اطلاعات معتبر در دیگر گرهها هستند.
تراکنشهای خارج از زنجیره
یک فناوری احتمالا جاهطلبانهتر برای گسترش ظرفیت، از شبکه لایتنینگ بیتکوین (Bitcoin’s Lightning Network) الهام گرفته شده است. این فناوری، در واقع یک لایه بالایی پیشنهادی برای بلاکچین است که شبکه اینترنت چند لایه را آینه میکند. تراکنشهای در قالب لایتنینگ خارج از زنجیره میتوانند قابلیتهای فناوری را به طور مشهودتری در اختیار کاربر قرار دهند. این فناوری سریع است و میتوان گفت که تقریبا محدودیتی در تامین آن وجود ندارد؛ این در حالی است که با وجود این توانمندیها، همچنان نیازی به آن ندارد که کاربران به هیچ شخص میانی اعتماد کنند.
مطابق با این چشمانداز، اغلب تراکنشها خارج از زنجیره کانالهای پرداختهای خرد (Micropayment) اتفاق میافتد که باری اساسی را از دوش بلاکچین برمیدارد. دلیل این که این مورد به درسی کار میکند، در حالت نظری، آن است که طرفین میتوانند هر زمان که تمایل داشتند، تراکنش را به بلاکچین بازگردانند؛ این مورد به طرفین این مورد توانایی پایان دادن تعاملات را میدهد. با داشتن این افزونه، محدودیت محاسباتی اتریوم نیاز به افزایش خیلی زیاد ندارد و امید آن است که برای علاقهمندان اتریوم، اجرای یک گره کامل، همچنان مقرون به صرفه باشد.
مقیاس بخشیدن به اتریوم چه میزان زمان میبرد؟
این پرسش که مقیاس بخشیدن به اتریوم ۱.۰ چقدر زمان میبرد از زمانی که این پلتفرم به طور رسمی وارد بهرهبرداری شد مطرح بوده است. پاسخگویی به این پرسش در آن زمان کمی پیچیده به نظر میرسید؛ زیرا که آزمایشات زیادی برای مقیاس بخشیدن به آن در جریان بود. به بیان ویتالیک بوترین، سازنده اتریوم، توسعه بخشیدن به پلتفرم اتریوم یک هدف بلند مدت است و هدف آن است که پلتفرم اتریوم (منظور اتریوم ۱.۰ است، زیرا در آن هنگام هنوز بحث اتریوم ۲.۰ مطرح نشده بود) قادر به آن باشد که تراکنشها را در مقیاس ویزاکارت یا حتی بیشتر انجام دهد. پس از طرحریزی اتریوم ۲.۰، فرایند توسعه اتریوم شکل بسیار جدیتری به خود گرفت و اکنون با بهرهبرداری از فاز اول اتریوم ۲.۰، فرایند پیشرفت رسمی اتریوم و رسیدن به اهدافی که بوترین برای آن تعریف کرده، رسما در جریان است.
اتریوم به چه زبان برنامه نویسی نوشته شده است ؟
در سال ۱۳۹۴ (و ۱۳۹۵ مصادف با سال ۲۰۱۶ میلادی)، چهار انتشار رسمی از اتریوم موجود بود. همه این انتشارهای رسمی، مستقل از یکدیگر بودند و آنچه در اوراق زرد اتریوم آمده است را به طور کامل پیادهسازی کرده بودند. تعداد انتشارهای اتریوم در گذر زمان افزایش پیدا کرد و نسخه های غیررسمی زیادی نیز برای آن نوشته شد. در حال حاضر، برخی از این انتشارها فعال و سایر موارد غیر فعال هستند. معمولا، استفاده از انتشارهای رسمی اتریوم توصیه میشود، مگر در شرایطی که انتشارهای غیررسمی توسط توسعهدهندگان شناخته شده و معتبری عرضه شود. در ادامه، برخی از پیادهسازیهای فعال و غیرفعال اتریوم که برخی رسمی و برخی دیگر غیر رسمی هستند، معرفی شدهاند.
پیادهسازیهای فعال
Go-Ethereum: این پیادهسازی، در واقع پیادهسازی اتریوم با زبان برنامهنویسی Go است. پیادهسازی Go-Ethereum، از پیادهسازیهای رسمی اتریوم است که در حال حاضر نیز «فعال» است.
Py-EVM: پیادهسازی غیر رسمی از ماشین مجازی اتریوم است که به زبان برنامهنویسی پایتون نوشته شده است. اهداف این پروژه به صورت زیر بیان شده است:
- پشتیبانی از اتریوم ۱.۰ و اتریوم ۲.۰
- مستندسازی قوی
- درک آسان
- داشتن API واضح
- اجرای سریع و کاربرپسند
- انعطافپذیری بالا برای پشتیبانی از:
- بلاکچینهای عمومی (Public Chains)
- زنجیرههای خصوصی (Private Chains)
- زنحیرههای کنسرسیوم (Consortium Chains)
- پژوهشهای پیشرفته
پیادهسازیهای غیر فعال
CPP-Ethereum: این نسخه، پیادهسازی اتریوم با زبان برنامهنویسی C++ بود. مخزن این پیادهسازی، در واقع یک مخزن «چتری» بود که محلی برای پروژههای گوناگون C++ اکتبر سال ۲۰۱۵ (مهر و آبان ۱۳۹۴) و آگوست ۲۰۱۶ (مرداد ۱۳۹۵) محسوب میشود. در آن زمان، همه پیادهسازیها در یک مخزن واحد (مخزن گیت CPP-Ethereum) انجام میشدند و بعدها، Solidity به عنوان مخزن مستقل در این راستا، به فعالیت پراخت. در ادامه، سرنوشت مخزن CPP-Ethereum به طور خلاصه بررسی شده است.
- AlethOne ،AlethZero و AlethFive در حال حاضر بازنشسته شدهاند.
- Mix در حال حاضر بازنشسته شده است.
- Solidity اکنون مستقل شده است و توسعه آن در مخزن مستقل ادامه دارد.
- مخزن CPP-Ethereum ترمیم شده، خط اصلی برای مخدوم زمان اجرای C++ است.
- این مورد، ادغامگر مخزنهای webthree ،libweb3core ،libethereum و webthree-helpers است.
شایان توجه است که مخزن CPP-Ethereum دیگر مورد استفاده نیست و در صفحه آن، به طور رسمی اعلام شده است که دیگر pull-request برای آن انجام نشود.
pyethapp: این پیادهسازی، در واقع پیادهسازی اتریوم با زبان برنامهنویسی پایتون بود. این پیادهسازی منسوخ شده و در صفحه رسمی آن، به کاربران توصیه شده است که در صورت اجرای یک Mainnet، از Geth یا Parity استفاده کنند. به کاربرانی که تمایل به استفاده از پایتون برای توسعه ابزارها یا تعامل با اکوسیستم اتریوم دارند، توصیه شده است که توجه خود را به «ترینتی» (Trinty) معطوف کنند که بر مبنای Py-EVM است. Pyethapp دیگر به روز رسانی نمیشود.
PyEthereum: پیادهسازی غیر رسمی اتریوم با زبان برنامهنویسی پایتون است که در حدود سال ۲۰۱۷ راهاندازی شد و آخرین به روز رسانی صفحه گیت آن مربوط به سال ۲۰۱۸ است. در صفحه گیتهاب این پروژه، منسوخ شدن آن به طور رسمی اعلام شده است.
ethereumj: این نسخه، پیادهسازی اتریوم با زبان برنامهنویسی جاوا در مخزن گیت بود که در حال حاضر منسوخ شده است. پیادهسازی فعال اتریوم با جاوا در حاضر حاضر در GITTER وجود دارد و دنبال میشود.
پیادهسازیهای غیررسمی
چندین انتشار غیررسمی از اتریوم نیز در سال ۲۰۱۶ وجود داشت که هر یک از این پیادهسازیها و وضعیت فعلی آنها، در ادامه مورد بررسی قرار گرفته است.
Parity: این پیادهسازی غیر رسمی، در واقع پیادهسازی اتریوم با زبان برنامهنویسی Rust بود که بعدها با عنوان Parity-Ethereum به فعالیت ادامه داد. پیادهسازی parity-ethereum در حال حاضر فعال است و امکان استفاده از آن وجود دارد. هر چند نباید فراموش کرد که این پیادهسازی، یک پیادهسازی غیررسمی از اتریوم است.
Ruby-Ethereum: پیادهسازی اتریوم در زبان برنامهنویسی روبی است که از سال ۲۰۱۶ تاکنون هیچ به روز رسانی دریافت نکرده است. این پیادهسازی غیر رسمی است و به نظر میرسد در حال حاضر نیز غیرفعال است. هر چند که در صفحه رسمی پروژه، فعال نبودن آن به طور رسمی اعلام نشده است.
node-blockchain-server: پیادهسازی غیر رسمی از اتریوم با زبان برنامهنویسی جاوا بود که در حال حاضر غیر فعال است و انقضای آن به صورت رسمی، در صفحه گیتهاب پروژه اعلام شده است.
EthereumH: یک پیادهسازی غیر رسمی از از اتریوم با زبان برنامهنویسی هسکل (Haskell) است. در مخزن گیت این پروژه اعلام شده بود که یک مخزن چتری برای بررسی و ساخت کلاینت اتریوم هسکل است. این مخزن از سال ۲۰۱۵ تاکنون هیچ به روز رسانی دریافت نکرده و غیر فعال است.
Ethereum-Haskell: یک بازپیادهسازی مستقل و غیروابسته از اتریوم در هسکل است. این پروژه از سال ۲۰۱۵ تاکنون هیچ به روز رسانی دریافت نکرده و به نظر منسوخ شده است. هر چند که عدم فعالیت آن به طور رسمی اعلام نشده است.
Ethereumjs-vm: پیادهسازی اتریوم در جاوااسکریپت است. این پیادهسازی غیررسمی در حال حاضر فعال است و به روز رسانیهایی را دریافت میکند.
Nethereum: پیادهسازی غیر رسمی اتریوم با فناوری Net. است. بنابر آنچه در صفحه رسمی این پروژه آمده است، این پروژه دسترسی و تعاملات قراردادهای هوشمند را با گرههای عمومی یا مجاز مانند Geth، Parity یا Quorum تسهیل میکند. این پروژه در حال حاضر فعال است و به روز رسانیهایی را دریافت میکند.
زبان برنامهنویسی Solidity و ارتباط آن با اتریوم
Solidity یک زبان برنامهنویسی شیگرا برای نوشتن «قراردادهای هوشمند» است. از این زبان برای پیادهسازی قراردادهای هوشمند در پلتفرمهای بلاکچین گوناگون و به طور خاص اتریوم استفاده شده است. این زبان برنامهنویسی شیگرا توسط «کریستین ریتویزنر» (Christian Reitwiessner)، «الکس برگساسازی» (Alex Beregszaszi) و چندین نفر از دیگر مشارکتکنندگان سابق در توسعه هسته اتریوم برای نوشتن قراردادهای هوشمند در پلتفرمهای بلاکچین مانند اتریوم توسعه پیدا کرده است.
تاریخچه زبان Solidity
Solidity ابتدا در ماه آگوست سال ۲۰۱۴ توسط «گوین وود» (Gavin Wood) ارائه شد. این زبان بعدها توسط تیم Solidity اتریوم که توسط کریستین ریتویزنر هدایت میشد، توسعه پیدا کرد. در حال حاضر، Solidity زبان اولیه در اتریوم و دیگر بلاکچینهای خصوصی است که روی پلتفرمهای گوناگون برای رقابت با اتریوم اجرا میشوند.
از جمله این موارد میتوان به بلاکچینهای «موناکس» (Monax) و «هایپبرلجر بارو» (Hyperledger Burrow) اشاره کرد که از «تندرمینت» (Tendermint) برای اجماع استفاده میکنند. «جامعهٔ جهانی ارتباطات مالی بین بانکی» یا به اختصار سوئیفت (Society for Worldwide Interbank Financial Telecommunication | SWIFT) اثبات مفهوم را با استفاده از Solidity که در Burrow اجرا میشود، مستقر کرد. یک پژوهشگر دانشگاه کرونل (Cornell University)، زبان برنامهنویسی Solidity را در حمله هک دائو که در سال ۲۰۱۶ به وقوع پیوست مقصر میداند. او در این رابطه چنین میگوید:
این یک نقص یا رخنه در خود قرارداد دائو نیست. به طور فنی، ماشین مجازی اتریوم (EVM) همانطور که انتظار میرفت کار کرد، اما Solidity نقصهای امنیتی را در قراردادها داشت که نه تنها توسط جامعه کاربری کشف نشدند، بلکه از چشمهای طراحان خود این زبان نیز دور ماندند.
معرفی زبان Solidity
Solidity یک زبان برنامهنویسی با «نوع ایستا» (Statistically Typed) است که برای توسعه قراردادهای هوشمندی که روی ماشین مجازی اتریوم اجرا میشوند طراحی شده است. توسعهدهندگان Solidity قادر به نوشتن برنامههایی هستند که منطق کسب و کارها را در قراردادهای هوشمند را پیادهسازی میکنند و رکوردهای تراکنش غیرقابل استناد و معتبر را برای معاملات ثبت میکنند. گفته میشود که نوشتن قراردادهای هوشمند به زبانهای اختصاصی مانند Solidity آسان است (البته ظاهرا برای افرادی که از پیش مهارتهای برنامهنویسی را دارند و با Solidity آشنا هستند آسان است).
چنانکه توسط Wood بیان شده است، این زبان حول محور محور «اکما اسکریپت» (ECMAScript) نوشته شده است تا این زبان را به زبانی آشنا برای توسعهدهندگان وب مبدل کنند. البته، برخلاف اکما اسکریپت، این زبان دارای تایپ ایستا و انواع بازگشتی متغیر است. در مقایسه با دیگر زبانهای هدفگذاری ماشین مجازی اتریوم مانند «سرپنت» (Serpent) و «موتان» (Mutan)، زبان برنامهنویسی Solidity دارای تفاوتهای بسیار مهمی هستند. در زبان Solidity متغیرهای عضو پیچیده برای قراردادها شامل نگاشت سلسلهمراتبی خودسرانه و ساختارها (Structs) پشتیبانی میشوند.
قراردادها از ارثبری، شامل ارثبری چندگانه با خطیسازی C3، پشتیبانی میکنند. یک «رابط دودویی برنامه کاربردی» (Application Binary Interface | ABI) که کارکردهای «ایمنی نوع» (Type-Face) چندگانه را در یک قرارداد تسهیل میکند نیز معرفی شد و سپس، توسط سرپنت از آن پشتیبانی شد. یک سیستم مستندسازی برای تعیین توصیفات کاربر محور از انشعابات از یک فراخوانی متد (Method Call) نیز در این پیشنهاد وجود دارد که با عنوان «مشخصهسازی زبان طبیعی» (Natural Language Specification) از آن یاد میشود. مثالی از برنامه Solidity در ادامه آمده است.