وایت پیپر اتریوم- قسمت ششم

در ادامه قسمت پنجم وایت پیپر اتریوم:

بلاک چین و ماینینگ اتریوم (Blockchain and Mining )

با وجود تفاوتهایی بین بلاکچین اتریوم و بیتکوین هنوز هم میتوان گفت این دو از بسیاری جهات شبیه به هم هستند. با توجه به ساختار اتریوم ، اصلی ترین تفاوت آنها این است که بلاک های اتریوم بر خلاف بیت کوین از لیستی از تراکنش ها و آخرین وضعیت تشکیل شده اند.

جدا از این مسأله، دو عدد دیگر یعنی شماره بلاک و سختی شبکه هم در بلاک ذخیره میشود.

در سیستم اتریوم ترتیب الگوی اعتبار سنجی بلاک به شرح زیر است:


Check if the previous block referenced exists and is valid

Check that the timestamp of the block is greater than that of the referenced previous block and less than 15 minutes into the future

Check that the block number, difficulty, transaction root, uncle root and gas limit (various low-level Ethereum-specific concepts) are valid

Check that the proof of work on the block is valid

Let S[0] be the STATE_ROOT of the previous block

Let TX be the block’s transaction list, with n transactions. For all in in 0…n-1, set S[i+1] = APPLY(S[i],TX[i]). If any applications returns an error, or if the total gas consumed in the block up until this point exceeds the GASLIMIT, return an error

Let S_FINAL be S[n], but adding the block reward paid to the miner

Check if S_FINAL is the same as the STATE_ROOT. If it is, the block is valid; otherwise, it is not valid

ترتیب الگوی اعتبار سنجی بلاک

  1. مطمئن شوید اطلاعات بلاک قبلی موجود و معتبر باشد.
  2. بر چسب زمان بلاک فعلی از قبلی بیشتر و 15 دقیقه عقبتر از بلاک بعدی باشد . یعنی هر بلاک در 15 دقیقه حل شود.
  3. از اعتبار اطلاعاتی مثل شماره بلاک ،سختی، ریشه تراکنش،ریشه درخت مرکل و حد سوخت ( مفاهیم اولیه و خاص اتریوم ) مطمئن شوید.
  4. گواهی اثبات کار بلاک معتبر باشد.
  5. S [0] را ریشه وضعیت بلاک قبلی در نظر بگیرید.
  6. TX را لیست تراکنش ها در نظر بگیرید که حاوی n تعداد تراکنش است.

setS[i+1] = APPLY(S[i], TX[i])

اگر تا این نقطه کل سوخت مصرفی در بلاک بیش از GASLIMIT باشد، برنامه خطا میدهد.
  1. S_FINAL را S[n] در نظر بگیرید، اما پاداش حل بلاک را به ماینر پرداخت کنید.
  2. اگر S_FINAL با STATE_ROOT یکی بود پس بلاک معتبر می باشد در غیر این صورت نا معتبر است.

در نگاه اول ممکن است این رویکرد بسیار ناکارآمد به نظر برسد، چون ضروری است در هر بلاک کل وضعیت ذخیره شود. اما در واقعیت کارایی آن باید با بیت کوین قابل قیاس باشد. دلیل این امر این است که” وضعیت” در ساختار درخت ذخیره می شود. و پس از اتمام هر بلاک فقط قسمت کوچکی از درخت است که تغییر میکند.

بنابراین، به طور کلی، بیشتر قسمتهای دو بلاکی که در کنار هم هستند بسیار شبیه میباشند. بنابراین داده ها می توانند یک بار ذخیره و با استفاده از اشاره گره ها دو بار ارجاع داده شوند.(یعنی هش زیر شاخه ها)

درخت پاتریشیا

برای انجام این عملیات از یک نوع درخت خاص به نام “پاتریشیا” استفاده میشود. این درخت نوع اصلاح شده درخت مرکل است. که شرایط را برای ورود و حذف نودها فراهم میکند. به علاوه، از آنجایی که همه اطلاعات” وضعیت” فقط قسمتی از آخرین بلاک هستند هیچ لزومی ندارد که همه سابقه بلاکچین ذخیره شود. اگراین استراتژی در مورد بیت کوین قابل استفاده باشد ، می تواند 5-20 برابر در فضا صرفه جویی کند.

برنامه های آینده شبکه اتریوم

کیف پول ذخیره سازی ( Savings wallets) فرض کنید آلیس بخواهد سرمایه اش را در جایی امن نگه دارد، اما همیشه نگران این باشد که یا خودش کلید خصوصی اش را گم کند یا شخصی آن را هک کند. او اتریوم خود را طی قراردادی با باب، در یک بانک سپرده گذاری میکند .شرایط قرارداد به شرح زیر میباشد:

  • آلیس به تنهایی روزانه میتواند حداکثر 1 درصد از اترش را برداشت کند
بیشتر بخوانید : وایت پیپر تتر-قسمت اول

● باب به تنهایی روزانه می تواند حداکثر 1٪ از پولش را برداشت کند ، اما آلیس با کمک کلید خود میتواند این دسترسی را ببندد و یک تراکنش انجام دهد.

  • آلیس و باب هر دو باهم هرچقدر که بخواهند میتوانند از آن پول برداشت کنند.

در شرایط عادی 1 درصد برداشت روزانه برای آلیس کافی است. ولی اگر به مشکل بر بخورد میتواند از باب کمک بگیرید. اگر کلید خصوصی آلیس هک شود، او به باب میگوید تا قرارداد جدیدی منعقد کنند. اگر کلیدش را گم کند باب سرمایه را دریافت میکند. اگر آلیس به باب شک کرد میتواند با بستن دسترسی باب ،جلوی برداشت او را بگیرد.

Crop insurance در شبکه اتریوم

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

A decentralized data feed

منبع داده غیرمتمرکز: برای قراردادهای مالی میتوان از طریق پروتکل “SchellingCoin” منبع داده را غیرمتمرکز کرد. نحوه کار این پروتکل به شرح زیر است: همه شرکا یک داده ای را وارد سیستم میکنند( مثلا قیمت اتریوم/دلار). داده ها مرتب شده و هرکس بین صدگی 25 تا 75 قرار بگیرد، یک توکن به عنوان پاداش دریافت میکند. همه مشتاقند پاسخهای همدیگر را ارائه بدهند و تنها داده ای که تعداد زیادی از شرکت کنندگان می توانند واقعاً در مورد آن به توافق برسند ، همان پیش فرض خواهد بود: حقیقت. این یک پروتکل غیرمتمرکز است که می تواند از نظر تئوری هر تعداد داده از جمله قیمت جفت ارز اتریوم/دلار ، دمای برلین یا حتی نتیجه یک محاسبه سخت خاص را ارائه دهد.

Smart multi-signature escrow

توافق نامه هوشمند چند امضایی : بیتکوین از قابلیت تراکنش های چند امضایی برخوردار است.برای مثال، از 5 نفری که کلید را در اختیار دارند 3 نفر از آنها اجازه استفاده از آن پول را دارند. اما اتریوم مقیاسش بیشتر است. مثلا از 5 نفر 4 نفر از آنها میتوانند پول را خرج کنند . 3 نفر از آنها میتوانند تا سقف روزانه 10 درصد از آن پول برداشت کنند .و دو نفر از آن 5 نفر روزانه میتوانند 5 درصد برداشت داشته باشند. علاوه بر این، اتریوم چند امضایی، آسنکرون (غیرهمزمان) است. دو نفر در زمان های مختلف میتوانند امضاهایشان را در بلاکچین ثبت کنند، اما امضای آخر تراکنش را ارسال میکند.

Cloud computing

پردازش ابری : از فناوری EVM میتوان برای ایجاد یک محیط محاسباتی قابل بازبینی استفاده کرد. این محیط به کاربران اجازه میدهد تا از دیگران بخواهند محاسباتی انجام دهند و سپس مدرک برای صحت این محاسبات ارائه کنند. این فناوری شرایطی را برای ساخت یک بازار رایانش ابری فراهم میکند که هر کاربر می تواند با دسک تاپ ، لپ تاپ یا سرور تخصصی خود در آنجا شرکت کند و برای اطمینان از قابل اعتماد بودن سیستم می توان از بررسی نقطه ای (spot-checking ) همراه با سپرده های امنیتی استفاده کند( یعنی نودها نمیتوانند به نفع خود تقلب کنند).

چنین سیستمی برای همه فعالیت ها مناسب نیست ، فعالیت هایی که به سطح بالایی از ارتباطات داخلی نیاز دارند در ابر بزرگی از نودها قابل اجرا نیستند. پروژه هایی مثل SETI@home, folding@home و الگوریتم های ژنتیک به راحتی بر روی این پلتفرم ها اجرا میشوند.

  1. بازارهای پیش بینی ( Prediction markets ) با ارائه اوراکل یا SchellingCoin اجرای بازارهای پیش بینی هم آسان میشود. ترکیب بازارهای پیش بینی با SchellingCoin احتمالاً اولین کاربرد futarchy به عنوان پروتکل نظارتی برای سازمانهای غیرمتمرکز خواهد بود.
  2. بازارهای غیرمتمرکز زنجیره ای. بر روی سیستم  اعتباردهی بنا شده اند.

منبع: factcoins.com