بیت کوین و اتریوم – جلسه هجدهم (+ویدئو)
مفهوم وضعیت (State) و ماشین مجازی اتریوم (EVM)
اکثر مطالبی که تاکنون درباره آنها بحث کردهایم اساساً حول موضوع بیت کوین بودهاند زیرا بیت کوین، طلیعه ظهور اولین بلاکچین های مشهور در سطح جهان بود.
اکنون قصد داریم بلاکچین نسل بعدی یعنی اتریوم را به شما معرفی کنیم.
بیت کوین در ابتدا به عنوان یک سیستم پول الکترونیکی همتا به همتا (peer-to-peer) ایجاد شد و نقش و وظیفه آن در آن زمان همین بود. در بیت کوین، هر ارز مابین آدرسها به صورت پیشرو و پسرو معامله میشود ولی چشمانداز اتریوم اینگونه نبود. ایده ایجاد اتریوم این نبود که یک سیستم پول همتا به همتا باشد بلکه یک پایگاه داده همتا به همتا و یک رایانه مجازی توزیعشده بود، رایانهای که چیزی به نام وضعیت (state) را مورد دستکاری قرار میداد.
یک «وضعیت»، بخشی از سایر بلاکچینها است ولی بیشتر به اتریوم مرتبط است. میتوان چنین تصور کرد که وضعیت، همان مقادیر کنونی تمام متغیرهای سیستم است، آنچنان که توسط همه گرهها از طریق توافق (Consensus) مورد پذیرش قرار گرفته است.
یک وضعیت در اتریوم، ماحصل تراکنشها و عملیات حاصل از ماشین مجازی اتریوم (EVM) میباشد. این یکی از ویژگیهای مهم اتریوم است.
وقتی بیت کوین به صحنه آمد همه از زبان برنامهنویسی نسبتاً ساده آن به عنوان مهمترین ویژگی فرعی آن صحبت میکردند ولی در مورد اتریوم چیزی که همه از آن صحبت میکردند همین EVM قدرتمند آن بود.
خصیصه مهم EVM از منظر فنی این است که یک ماشین Turing کامل میباشد، به این معنا که آنقدر پیچیده است که به لحاظ نظری میتواند هرکاری را که سایر رایانهها انجام میدهند انجام دهد.
تمام کدی که اتریوم اجرا میکند میتواند به عنوان بخشی از بلاکچین ذخیره شود.
شما میتوانید app های پیچیده را روی اتریوم برنامهنویسی کنید به طوری که منطق اصلی آنها روی بلاکچین اجرا گردد. به همین دلیل، جامعه توسعه دهندگان اتریوم بسیار وسیع است. آنها app تولید کرده و زیستبوم اتریوم را توسعه میدهند.
چرا اتریوم معضل مقیاس پذیری دارد؟
سیستم اتریوم در خصوص مقیاسپذیری دچار چالشهایی است! به عنوان مثال، کل سیستم در حال حاضر فقط میتواند حدود ۱۵ تراکنش را در هر ثانیه اجرا کند. کل شبکه باید هر محاسبات را روی تمام رایانهها اجرا کند. این بدین معنا است که کل سیستم دچار مشکل گلوگاه (Bottleneck) است یعنی سیستم اتریوم محدود به سرعت پردازش کندترین رایانه متصل به شبکه میباشد!
علاوه بر اینکه اندازه خود بلاکچین اتریوم در حال افزایش است مکانیزم توافق اثبات کار (Proof-of-work) نیز دچار نارسایی است.
روشهای رفع معضل مقیاس پذیری در اتریوم
جامعه اتریوم در حال تجویز راه حلهایی برای این مشکلات مقیاسپذیری است و روی سه روش اصلی تمرکز نموده است: روش توافق اثبات سهام (Proof-of-stake)، کانالهای وضعیت (State Channels) و تقسیمبندی (Sharding) که ما آن را شاردینگ میخوانیم.
راه حل اول: روش اثبات سهام
انتقال از روش توافق اثبات کار به روش اثبات سهام باعث مرتفع شدن بسیاری از مشکلات رایانشی شبکه خواهد شد. در این روش جدید، به جای اینکه بلوکها از طریق یافتن مقدار هش معتبر استخراج شوند، متناسب با سهم ارزی که توسط هر گره آورده شده است به آنها اجازه ایجاد داده میشود. این درحالی است که روش اثبات کار از مقدار قدرت محاسباتی هر گره به عنوان معیار ایجاد بلوک بهره میبرد.
راه حل دوم: کانالهای توزیع
کانالهای توزیع به نوعی خوشهبندی تراکنشها در یک مکان به صورت خارج از زنجیره (Off-chain) گفته میشود. با گشوده شدن کانال، بلوکها به صورت یک گروه به روی زنجیره بلاکچین منتقل میشوند. این کار سبب کاهش تعداد تراکنشهای منفرد میشود که شبکه باید به طور مستقل پردازش کند و در عوض، آنها را به صورت انبوه فراهم میکند.
راه حل سوم: شاردینگ
و بالاخره به روش شاردینگ میرسیم. در این روش، شبکه به بخشهای کوچکتری به نام شارد (Shard) تقسیم شده و هر یک به طور مستقل کار میکنند و بعداً به هم میپیوندند. موانع فنی زیادی بر سر راه شاردینگ وجود دارد ولی نویدهای بزرگی برای حل مشکل مقیاسپذیری در آینده ارائه میدهد.
فعلاً جامعه فنی اتریوم برای مقیاسپذیری آدرسدهی، از یک روش ابتکاری به نام Shasper استفاده میکند که تلفیقی از روشهای اثبات سهام و شاردینگ است.
اکنون که اتریوم را شناختید بیایید ببینیم چه چیزی اتریوم را اینقدر جالب کرده است: قراردادهای هوشمند و EVM
مقایسه بیت کوین در مقابل اتریوم
خیلیها اعتقاد دارند بیت کوین، خطشکن و جریانساز بوده و موقعیتی مشابه با آنچه شبکه اجتماعی MySpace داشت، البته این بار برای فناوری بلاکچین را دارد (توضیح مترجم: MySpace یکی از شبکههای اجتماعی پیشرو بود و نقش جریانساز را برای شبکههای اجتماعی امروزی داشت. این شبکه در حقیقت پدر شبکههای اجتماعی امروزی است). البته ما باید Satoshi Nakamoto را که نام مستعار خالق پروتکل بیت کوین است تحسین کنیم و قدردان وی باشیم. او اساساً مشکل هزینه دوبرابری را حل کرد و علوم کامپیوتر و ریاضیات را یک گام به جلو هدایت کرد.
این جمله منسوب به او است که گفت: «من بیت کوین را به یک چرتکه عظیم تشبیه میکنم که میتوانم به صورت همتا به همتا و بدون نیاز به هیچ بانک واسطهای، مهرهها را بر روی این چرتکه ارسال کنم و ما میتوانیم توکنها یا مهرههای چرتکه را در سراسر این دفترحساب توزیع شده جهانی جابجا کنیم».
پس از حدود نه سال کار دانشگاهی و پژوهش بر روی الگوریتمهای توافق (Consensus)، شبکهسازی همتا به همتا، توکنهای رمزنگارانه و از همه مهمتر ماشین مجازی، اتریوم قصد دارد همان مفهوم همتا به همتا را گرفته و آن را بر روی انواع و اقسام برنامههای نرمافزاری اعمال نماید.
اتریوم و بیتکوین هر دو ویژگیهای یکسانی را، که قلب بلاکچین هستند، به اشتراک گذاشتهاند. این ویژگیها عبارتند از: دارا بودن یک پایگاه داده بلاکچینی، یک زیرساخت شبکهسازی و معماری همتا به همتا، توکنهای رمزنگاری شده به منظور ایجاد انگیزش برای ایمنسازی شبکه و نهایتاً یک الگوریتم توافق.
تفاوت بنیادین بلاکچین با بیت کوین در ماشین مجازی است. ما بر روی ماشین مجازی اتریوم میتوانیم app ها را برنامهنویسی کنیم. در اتریوم، یک زبان برنامهنویسی به نام Solidity وجود دارد که اساساً یک رایانه جهانی ایجاد میکند، حال آنکه بیت کوین به اذعان خالق آن، منحصراً هدفش ایجاد یک چرتکه جهانی است.
زبان Solidity از زبان Java مشتق شده است و ما میتوانیم با آن app ها را برنامهنویسی کنیم.
لازم به ذکر است که هم بیت کوین و هم اتریوم از مکانیزم توافق اثبات کار (proof-of-work) استفاده میکنند.
حرکت اتریوم به سوی چهار روش جامع مقیاس پذیری
اتریوم در حال حرکت به سوی چهار ارتقای عمده در راستای مقیاسپذیری (Scalability) است. نخستین ارتقای اتریوم در جهت مقیاسپذیری، استقرار کانالهای وضعیت (State Channels) است. برای روشن شدن این مفهوم، مثالی میزنیم. اگر من تمام افرادی که در این اتاق هستند را به کافه دعوت کرده و به مدیر کافه یک کارت اعتباری بدهم آنگاه یک «کانال وضعیت» باز کردهام. اگر من برای همه افرادی که اینجا هستند نوشیدنی Shirley Temple بخرم و سپس برای هرکس یک همبرگر و سپس برای هرکس یک دسر بخرم در این صورت ما دستههایی (batches) از آن تراکنشها خواهیم داشت که میتوانند خارج از زنجیره بلاکچین یعنی اصطلاحاً off-chain اتفاق بیفتند. نهایتاً وقتی من صورتحسابم را میبندم تمام آن «دسته تراکنشها» بر روی بلاکچین بسته خواهند شد.
با این شیوه میتوان هزاران ریزتراکنش (Micro-transactions) را به صورت off-chain داشت و سپس باز کردن و بستن کانال را به صورت on-chain انجام داد.
ارتقای عمده بعدی اتریوم در راستای مقیاسپذیری، حرکت از مکانیزم توافق «اثبات کار» به سوی مکانیزم توافق «اثبات سهام» است. در این صورت از شر استخراج (ماین کردن) سختافزاری که در مکانیزم اثبات کار وجود دارد و خیلی هم انرژی را اتلاف میکند خلاص خواهیم شد و به جای آن از سپردهها برای توافق بر روی وضعیت شبکه استفاده خواهیم کرد.
ارتقای عمده بعدی اتریوم، قطعهبندی یا اصطلاحاً شاردینگ (Sharding) است. در این روش، شاردهای پایگاه داده در خصوص وضعیت شبکه با یکدیگر توافق میکنند و دیگر لازم نیست همه بازیگران شبکه، درگیر فرآیند توافق بشوند.
و سرانجام، به آخرین ارتقای عمده اتریوم که نامش پلاسما است میرسیم. ایده پلاسما از یک مقاله وایت پیپر (White Paper) برگرفته شده است که توسط دو محقق به نامهای Vital Puterin و Joseph Pune به رشته تحریر درآمد. در روش پلاسما اتریوم به عنوان لایه زیستگاه (settlement layer) در نظر گرفته میشود و بلاکچینهای فرزند و نوه به صورت عمودی بر روی آن سوار میشوند.
با توجه به مطالب گفته شده نتیجه میگیریم نوع طراحی اتریوم به گونهای است که به عنوان بستری برای ایجاد برنامههای توزیع شده عمل میکند.
به عقیده من، اتریوم نسبت به بیت کوین دارای قابلیتهای نامحدودی برای ایجاد برنامههای app است. طبق شواهد، در بیت کوین همه افراد به فکر قیمت هستند ولی در جوامع اتریوم، هزاران و صدها هزار توسعهدهنده به دنبال ساختن نرمافزار هستند.
معتقد هستم که بیت کوین به منزله یک جایگزین برای طلا و ذخیره نمودن ارزشها بوده و یک ابزار ضدتورم به منظور کنترل داراییهای جامعه محسوب میشود. از سوی دیگر، آنچه در اتریوم شاهدش هستیم نویدبخش ظهور اینترنت نسل آینده خواهد بود.