گاهی مقاله ی اجباری، گاهی موضوعاتی حساس، صرفا تجربه من از آموختن.
امنیت Blockchain
- Proof of work و Proof of Stake
مکانیسمهای اجماع یا الگوریتمهایی هستند که به بلاکچین اجازه میدهند ایمن عمل کنند. این مکانیسمهای اجماعیبا حضور کاربران واقعی برای اضافه کردن تراکنشهای جدید، زنجیرههای بلوکی را ایمن نگه میدارند.
آنها با ثابت کردن کار شرکتکنندگان بالقوه که منابعی مانند پول یا انرژی را به بلاک چین اختصاص دادهاند، کار میکنند. این ویژگی به فیلتر کردن افرادی که ممکن است واقعی یا متعهد به شبکه نباشند کمک می کند. تفاوت اصلی بین اثبات کار و اثبات سهام این است که آنها چگونه انتخاب می کنند چه کسی می تواند تراکنش ها را به زنجیره اضافه کند.
اما قبل از رسیدن به تفاوتها بهتر است بدانیم چگونه کار میکنند .
و Proof of Work (اثبات کار) چیست؟
بر گرفته از ایده ”هال فینی”در سال 2004 (اثبات کار قابل استفاده مجدد) با استفاده از اگوریتم هش SHA-256 اثبات کار (PoW) سیستمی را توضیح میدهد که با به کار بردن مقدار زیاد اما قابل دسترسی از انرژی به منظور جلوگیری از استفاده بیهوده یا مخرب از قدرت محاسباتی , مانند ارسال ایمیل های هرزنامه یا راه اندازی حملات انکار سرویس است.
این توضیح بر اثبات کار در شبکه بیت کوین تمرکز خواهد کرد. همانطور که میدانید بیت کوین یک ارز دیجیتال است که زیربنای آن نوعی دفتر کل توزیع شده به نام بلاک چین است. این دفتر کل حاوی رکوردی از تمام تراکنشهای بیتکوین است که در بلوکهای متوالی مرتب شدهاند، به طوری که هیچ کاربری اجازه ندارد هر یک از داراییهای خود را دو بار خرج کند. به منظور جلوگیری از دستکاری، دفتر, عمومی یا توزیع شده است ونسخه تغییر یافته به سرعت توسط سایر کاربران رد می شود.
استخراج یک فرآیند رقابتی است، اما بیشتر یک قرعه کشی است تا یک مسابقه. به طور متوسط، یک نفر هر ده دقیقه یک مدرک قابل قبول از کار تولید می کند، اما اینکه چه کسی خواهد بود، حدس هر کسی است. ماینرها گرد هم میآیند و استخر هایی از ماینر بوجود می آورند تا شانس خود را برای استخراج بلاک ها افزایش دهند، که کارمزد تراکنش و برای مدت محدودی پاداش بیت کوین های تازه ایجاد شده را ایجاد می کند.
روشی که کاربران در عمل دستکاری را تشخیص میدهند از طریق هشها، رشتههای طولانی اعداد است که به عنوان اثبات کار عمل میکنند. مجموعه ای از داده ها را از طریق یک تابع هش قرار دهید (بیت کوین از SHA-256 استفاده می کند)، و تنها یک هش ایجاد می کند. با این حال، به دلیل "اثر آوالانچه"، حتی یک تغییر کوچک در هر بخشی از داده های اصلی منجر به یک هش کاملاً غیرقابل تشخیص می شود.
اندازه مجموعه داده اصلی هر چه باشد، هش تولید شده توسط یک تابع معین به همان طول خواهد بود. هش یک تابع یک طرفه است: نمی توان از آن برای به دست آوردن داده های اصلی استفاده کرد، فقط برای بررسی اینکه داده هایی که هش را ایجاد کرده اند با داده های اصلی مطابقت دارند یا خیر.
ایجاد هر هش برای مجموعهای از تراکنشهای بیتکوین برای یک کامپیوتر مدرن بیاهمیت است، بنابراین برای تبدیل این فرآیند به کار(Work)، شبکه بیتکوین سطح معینی از ”سختی” را تعیین میکند.این سختی با توجه به تعداد افراد شرکت کننده در مکانیسم و تعداد تراکنش ها تغییر میکند . این تنظیم به گونهای استکه تقریباً هر 10 دقیقه یک بلوک جدید - با ایجاد یک هش معتبر - به بلاک چین اضافه میشود. دشواری تنظیم با ایجاد یک "هدف" برای هش انجام می شود: هرچه هدف کمتر باشد، مجموعه هش های معتبر کوچکتر است و تولید آن دشوارتر است. در عمل، این به معنای هش است که با یک رشته بسیار طولانی از صفر شروع می شود.
ملاحظات خاص :
از آنجایی که یک مجموعه داده معین فقط می تواند یک هش تولید کند، استخراج کنندگان یا ماینر ها چگونه مطمئن می شوند که هش زیر هدف تولید می کنند؟
آنها ورودی را با افزودن یک عدد صحیح به نام nonce تغییر می دهند ("عدد یک بار استفاده شده"). هنگامی که یک هش معتبر پیدا شد، به شبکه پخش میشود و بلوک به بلاک چین اضافه میشود.
- همچنین اثبات کار، تغییر هر جنبه ای از بلاک چین را بسیار دشوار می کند، زیرا چنین تغییری مستلزم استخراج مجدد همه بلوک های بعدی است. همچنین انحصار قدرت محاسباتی شبکه را برای کاربر یا مجموعه ای از کاربران دشوار می کند، زیرا ماشین آلات و توان مورد نیاز برای تکمیل توابع هش گران هستند.
نکات کلیدی
- PoW روشی برای امنیت بلاکچین با استفاده از انرژی زیاد است.
- شرکت کنندگان در این روش با هم رقابت می کنند تا الگوریتمی را حدس بزنند, این الگوریتم به راحتی پیدا نمی شود ولی به سادگی راستی آزمایی می شود.
- و همانطور که در مقاله قبل گفتیم اگر بخشی از شبکه استخراج شروع به پذیرش یک اثبات کار جایگزین کند، به عنوان هارد فورک شناخته می شود.
- اثبات سهام (POS) یکی از چندین مکانیسم جدید اجماعی بود که به عنوان جایگزینی برای اثبات کار ایجاد شد.
- علاوه بر PoS مکانیسم های دیگری از قبیل Proof of Burn , Proof of Activity , Proof of Elapsed Time و Proof of Assignment ... وجود دارند که هرکدام به روشی مشکل امنیت حل کرده اند.
Proof of Stake :
در سیستم اثبات سهام، اعتبار سنج ها (معادل ماینرها) برای یافتن یک بلوک بر اساس تعداد توکن هایی که در اختیار دارند انتخاب می شوند تا اینکه رقابت دلخواه بین ماینرها تعیین کند که کدام Node می تواند یک بلوک را اضافه کند.
در این سیستم، مقدار «سهم» یا مقدار ارز دیجیتالی که کاربر در اختیار دارد، جایگزین کارهایی میشود که استخراجکنندگان در اثبات کار انجام میدهند. این ساختار سهام، شبکه را ایمن میکند، زیرا یک شرکتکننده بالقوه باید ارز دیجیتال را بخرد و آن را نگه دارد تا بلاکی تشکیل دهد و پاداش بگیرد.
شرکت کنندگان باید پول خرج کنند و منابع مالی را به شبکه اختصاص دهند، مشابه اینکه ماینرها باید برق را در یک سیستم اثبات کار خرج کنند. کسانی که برای به دست آوردن این جوایز پول روی سکه ها خرج کرده اند، در موفقیت مستمر این شبکه علاقه دارند.
اثبات سهام از حملات و سکه های تقلبی با مکانیزم مشابه اثبات کار جلوگیری می کند. به جای کنترل 51 درصد از هش ریت و Node های استخراج، مانند اثبات کار، مهاجمان یک سیستم اثبات سهام باید حداقل 51 درصد از عرضه سکه را در اختیار داشته باشند و حداقل 51 درصد از شبکه را کنترل کنند.
- اثبات سهام، میزان کار محاسباتی مورد نیاز برای تأیید بلوکها و تراکنشهایی را کاهش میدهد که بلاک چین و در نتیجه یک ارز دیجیتال را ایمن نگه میدارند. اثبات سهام روش تأیید بلوک ها را با استفاده از ماشین های صاحبان سکه تغییر می دهد. صاحبان سکه های خود را به عنوان وثیقه برای شانس اعتبارسنجی بلوک ها ارائه می دهند. صاحبان سکه با سکه های شرط بندی شده به "اعتبار کننده" تبدیل می شوند.
اعتبارسنجیها سپس بهطور تصادفی انتخاب میشوند تا «استخراج» یا اعتبار بلوک را تأیید کنند. این سیستم به جای استفاده از مکانیسم مبتنی بر رقابت مانند اثبات کار، افرادی را که به «استخراج» میرسند تصادفی میکند.
برای تبدیل شدن به یک اعتبار سنج، صاحب سکه باید مقدار مشخصی از سکه ها را "سهم" کند. به عنوان مثال، اتریوم به 32 اتریوم نیاز دارد تا قبل از اینکه کاربر بتواند اعتبار دهنده شود. 1 بلاک ها توسط بیش از یک اعتبار سنجی تایید می شوند و زمانی که تعداد خاصی از اعتبار سنجی ها صحت بلوک را تأیید کنند، نهایی شده و بسته می شود.
مکانیسمهای اثبات سهام مختلف ممکن است از روشهای متفاوتی برای اعتبارسنجی بلاکها استفاده کنند.
در جدول زیر به اختصار نکات قوت و ضعف اشاره شده است.
مبحث بلاکچین بسیار گسترده تر و پیچیده تر از مقاله های مختصر است. برای کسب اطلاعات بیشتر, از منابع زیر برای مطالعه استفاده کنید.
منابع :
investopedia.com
virgool.io
hinzanet.com
arztoday.com
techopedia.com
wikipedia.org
blockworks.co
کیارش یزدانی
درس پایگاه داده , دکتر مریم حاجی اسمعیلی. دکترای علوم کامپیوتر از دانشگاه کینگستون لندن
Dr.Maryam Hajiesmaeili. PhD of computer science from Kingston university of London https://ir.linkedin.com/in/dr-maryam-hajiesmaeili-90930743
مطلبی دیگر از این انتشارات
فایل کوین FILCOIN چیست و فضای ذخیره سازی غیرمتمرکز چطوری کار می کند ؟
مطلبی دیگر از این انتشارات
کیف پول ارز تتر چیست؟ آموزش ساخت کیف پول تتر
مطلبی دیگر از این انتشارات
بررسی Local Storage در جاوااسکریپت