الگوریتم اجماع در بلاکچین | یکی از ویژگیهای مهم بلاکچین و انواع دیگر دفترهای توزیع شده، غیرمتمرکز بودن است. غیرمتمرکز بودن در دنیای کامپیتر به زبان ساده به این معناست که هر نوع اطلاعات یا ارزشی در یک سرور مرکزی ذخیره و پردازش نمیشود، بلکه تمامی آنها در چندین کامپیوتر ذخیره و نگه داری می شود. به سرورهایی که این اطلاعات را ذخیره می کنند و به نوعی سرویس دهنده شبکه هستند، گره یا نود میگوییم.
الگوریتم های اجماع در بلاک چین
الگوریتم اجماع یک روش است که از طریق آن، تمام افراد فعال در شبکه بلاک چین به یک توافق مشترک درباره وضعیت حال حاضر دفترکل توزیع شده دست مییابند. بدین ترتیب، الگوریتم های اجماع، اعتبار (reliability) را در شبکه بلاک چین و اعتماد را بین نودها یا همتایان ناشناس در محیط محاسباتی توزیع شده ایجاد میکنند. اساسا پروتکل اجماع اطمینان حاصل میکند هر بلاک جدید که به بلاک چین اضافه میشود، تنها نسخه واقعی است توسط تمام نودها مورد توافق واقع شده است.
پروتکل اجماع بلاک چین شامل اهداف خاصی نظیر دستیابی به توافق، همکاری، حق مساوی هر نود و حضور اجباری هر نود در فرایند اجماع است. در نتیجه، الگوریتم اجماع در صدد دستیابی به توافق مشترکی است که توسط کل شبکه حاصل شده باشد.
کاربردهای الگوریتم اجماع
به طور کلی الگوریتم های اجماع کاربردهای دیگری هم دارند، مانند:
- تصمیم گیری در مورد اینکه آیا یک تراکنش صلاحیت تایید و ذخیره روی دفتر کل توزیع شده را دارد یا خیر
- انتخاب گرهها برای مدیریت امور روی دفتر کل توزیع شده
- تضمین یکدست سازی اطلاعات روی سیستم های سرویس دهنده به شبکه
در مثال شرکت، اگر کارمندان بر سر یک موضوع اتفاق نظر نداشته باشند، مدیر شرکت تصمیم نهایی را خواهد گرفت. با استفاده از الگوریتم اجماع، به توافق رسیدن بین گره ها از طریق یک سیستم رای گیری انجام خواهد شد. به این صورت که اگر یک کاربر تراکنشی (هر نوع اطلاعاتی را شامل میشود) را به شبکه ارسال کند، داده فرستاده شده توسط همه گره ها مورد بررسی قرار میگیرد، اگر با توجه به اطلاعات قبلی، تراکنش ارسال شده درست باشد، گره یک تاییدیه مبنی بر صحت آن به شبکه میفرستد. مجموعهای از تراکنشها یک بلاک را میسازند. اگر بیش از ۵۱ درصد گره ها اضافه شدن این بلاک را به بلاکچین تایید کنند، گره ها بلاک جدید را به سیستم خود اضافه خواهند کرد و تراکنش های داخل آن موفق و نهایی خواهد شد.
اولین و معروف ترین استفاده از بلاکچین، رمز ارز بیت کوین است. در بلاکچین بیت کوین، هر بلاک شامل اطلاعات تراکنش (فرستنده و گیرنده و مبلغ ارسالی)، هش بلاک قبلی و هش بلاک فعلی است. گره ها در شبکه بیت کوین با استفاده از یک الگوریتم اجماع تراکنش ها را تایید و بلاک های جدید را تولید میکنند.
الگوریتم اجماع اثبات کار (PoW) در بلاک چین
اثبات کار فرایندی برای حفاظت از حملات اسپم در ایمیلها و DDOS و یا فرستادن دستورات زیاد در شبکه با هدف زیر فشار قرار دادن شبکه طراحی شده بود.
ساتوشی ناکاماتو توانست با ابتکار خود فرایند اثبات کار را در الگوریتم اجماع برای به توافق رسیدن چندین نفر بر سر یک مسئله که شناختی از هم ندارند به کار گیرد.
توافق بر روی یک موضوع بین افرادی که همدیگر را میشناسند چندان ساده نیست، حالا سوال اینجاست که در شبکه غیرمتمرکز بلاک چین که افراد همدیگر را نمیشناسند، چطور قرار است بر سر یک مسئله به توافق برسند؟
از طرف دیگر باید صحت و اعتبار مطلب منتشر شده نیز تایید میشد.
راهکار جالب ساتوشی ناکاماتو این بود که دادههایی که باید در بلاکها نوشته شود، با کمک الگوریتمی وابسته به هش SHA-256 هش شوند. در میان افراد حاضر در شبکه، کسی که هش درست را پیدا کرده باشد، باید برای گرفتن تایید، آن را به همه شبکه ارسال کند.
افراد دیگر در شبکه به تایید یا رد هش ارسال شده میپردازند و در صورتی که بیش از ۵۰ درصد (۱+۵۰) آن را تایید کنند، بلاک به عنوان یک بلاک معتبر بسته میشود. در این روش گرهای که موفق به حل مسئله شود پاداش دریافت میکند.
معایب الگوریتم اثبات کار
درست است که الگوریتمهای اجماع برای کارکردن شبکه بلاک چین ضروری هستند ولی هر کدام از انواع الگوریتمهای اجماع مزایا و معایب خود را دارند. در ادامه به برخی از مهمترین آنها میپردازیم.
-
مصرف بسیار بالای برق
ماینرها برای حل مسئله بیتکوین و در نتیجه دریافت پاداش باید ۲۴ ساعته و در هفت روز هفته دستگاههای خود را روشن نگه دارند. با توجه به وجود استخراجکنندههای بیشتر، افراد به دستگاههای قویتری نیز احتیاج پیدا میکنند و این دستگاههای قویتر برق بیشتری مصرف میکنند.
-
حملات ۵۱درصدی
یکی دیگر از معایب الگوریتم اثبات کار این است که در صورتی که شخص، شرکت یا سازمانی توانایی تصاحب ۵۱ درصد از قدرت محاسباتی شبکه را داشته باشد، عملا الگوریتم اجماع برای تامین امنیت کارساز نخواهد بود و آن شخص یا موسسه میتواند با اضافه کردن یک بلاک نامعتبر به شبکه، امنیت شبکه را به خظر بیندازد.
شاید تصور چنین مشکلی برای شبکه بیت کوین با هش بالایی که دارد خیلی منطقی نباشد، اما دیگر رمزارزها که وسعت شبکه آنها به اندازه بیت کوین نیست، همواره در معرض چنین تهدیدهایی هستند.
الگوریتم اجماع اثبات سهام (PoS) در بلاک چین
یکی دیگر از روشهای موجود برای اجماع افراد مستقل حاضر در شبکه استفاده از الگوریتم اثبات سهام (Proof of stake) است. در این روش بر خلاف روش اثبات کار به دستگاه سختافزاری نیازی نیستT بلکه افراد حاضر در شبکه با توجه به تعداد سهامی که دارند میتوانند شانس خود را برای بستن بلاک معتبر آزمایش کنند.
در واقع شما با داشتن ارز مورد نظر و اختصاص آن به شبکه در یک مسابقه شرکت داده خواهید شد که با توجه به میزان دارایی شما از آن ارز، شانس دریافت موقعیت هش بلاک را خواهید داشت. درست مانند قرعهکشی بانک که به عنوان مثال هر ۲۰ هزار تومان یک امتیاز برای شما محاسبه میشود و هرچه امتیاز شما بیشتر باشد قاعدتا شانس بیشتری هم برای برنده شدن خواهید داشت.
مزایای الگوریتم اثبات سهام
-
انرژی مصرف نمیشود
بر خلاف الگوریتم اثبات کار در الگوریتم اثبات سهام هیچ انرژی مصرف نمیشود و کار اصلی بر عهده الگوریتمهایی است که به صورت اتوماتیک کار میکنند.
-
غیرممکن بودن حمله ۵۱ درصدی
شخص یا شرکتی که بخواهد این الگوریتم را منحرف کند باید بیش از ۵۱ درصد از کل ارز موجود را خریده باشد، یعنی باید ۵۱ درصد از ارزهای موجود موردنظر را خریده باشد. در این صورت آن شخص میتواند اقدام به نابودی آن شبکه کند، ولی آیا به نظر شما منطقی است کسی چنین کاری در راه نابودی دارایی خود کند؟
معایب الگوریتم اثبات سهام
آن چیزی که در الگوریتم اثبات سهام به برنده تعلق پیدا میکند، تنها کارمزدهای موجود در بلاک بسته شده است، در صورتی که در الگوریتم اثبات کار، شخصی که قادر به حل مسئله شود پاداش دریافت میکند.
الگوریتمهای اثبات سهام و اثبات کار شناخته شدهترین الگوریتمهای اجماع به شمار میآیند، اما در کنار این دو الگوریتم از چند نوع الگوریتم دیگر نیز در شبکههای مختلف استفاده میشود که در ادامه به معرفی آنها میپردازیم.
الگوریتم اجماع اثبات سهام وکالتی (DPoS)
دنیل لاریمر فردی شناخته شده در دنیای کامپیوتر و همچنین رمزارزها با هدف رفع مشکلات الگوریتمهای گواه اثبات کار و اثبات سهام اقدام به طراحی و توسعه الگوریتم گواه اثبات سهام وکالتی کرد.
از نظر لاریمر، هر دو الگوریتم قبلی در زمینه مصرف بیش از حد انرژی و ناامنی در برابر اهداف مخرب مشکلاتی دارند، پس با طراحی الگوریتم گواه اثبات سهام وکالتی سعی در برطرف کردن این ایرادات داشت.
الگوریتم گواه اثبات سهام وکالتی را میتوان شکلی از دموکراسی دیجیتال در نظر گرفت. این الگوریتم از روش رایگیری برای انتخاب یک گروه متشکل از حدودا ۲۱ تا ۱۰۰ نماینده با هدف محافظت از شبکه بلاک چین در برابر اهداف مخرب، کمک میگیرد.
درواقع افرادی محدود از طرف دارندگان توکن برای اعتبارسنجی و تایید بلوکها انتخاب میشوند، در این الگوریتم نمایندگان انتخاب شده برخلاف الگوریتمهای اثبات کار و اثبات سهام با هم دیگر رقابتی برای تایید بلوکها ندارند و درعوض در این راستا به یکدیگر کمک میکنند.
رمزارزهایی همچون BitShares (که دنیل لاریمر موسس آن است)، استیم، EOS، لیسک از این روش اجماع در شبکه خود استفاده میکنند.
مزایای الگوریتم اجماع اثبات سهام وکالتی
مقیاسپذیری بالا
توان محاسباتی بالایی برای استخراج کوینهایی که مبتنی بر گواه اثبات سهام وکالتی هستند نیاز نیست و حتی کاربرانی با تجهیزات ضعیفتر نیز میتوانند از آن بهرهمند شوند، در نتیجه میتوان گفت کوینهای DPoS از کوینهای استخراج شده مبتنی بر اثبات کار مقیاس پدیرتر هستند.
دوست با محیط زیست
انرژی کمتری برای اجماع توسط این الگوریتم موردنیاز است، همین موضوع باعث میشود که بتوان DPos را به عنوان یک الگوریتم دوست با محیط زیست معرفی کرد.
جامعتر از رقبا
استفاده از این الگوریتم در مقایسه با الگوریتم اثبات کار توان محاسباتی کمتری را میطلبد، از طرف دیگر در مقایسه با الگوریتم اثبات سهام به کاربرانی که سهام کمتری دارند قدرت نظارت بیشتری میدهد. با توجه به آنچه گفته شد میتوان الگوریتم اثبات سهام وکالتی را جامعتر از الگوریتم اثبات کار و الگوریتم اثبات سهام معرفی کرد.
سرعت بالا
سرعت شبکه بلاک چین مبتنی بر اثبات سهام وکالتی از رقبایش بیشتر است.
معایب الگوریتم اجماع اثبات سهام وکالتی
شرط حضور افراد
برای انجام رایگیری نیاز به حضور افرادی در شبکه است تا بتوان نظارتی دقیق بر شبکه داشت، و این موضوع باعث میشود شبکه تا حدودی متمرکز شود.
در این روش همه گرههای شبکه در اعتبارسنجی و تایید تراکنشها دخالت ندارند، بلکه آنها افرادی را به نمایندگی انتخاب میکنند و نمایندگان انتخاب شده کار اعتبارسنجی و تایید بلوکها را بر عهده میگیرند. به همین دلیل استفاده از این روش اجماع کمی با غیرمتمرکز بودن رمزارزها در تضاد است.
آسیبپذیر در رابطه با متمرکزسازی
از آنجایی که تعداد شاهدان که از در شبکههای مبتنی بر الگوریتم اثبات سهام وکالتی بسیار کمتر از افراد حاضر در شبکههای مبتنی بر الگوریتمهای اثبات کار و اثبات سهام است، میتوان گفت این شبکهها همیشه در معرض مشکل متمرکزسازی هستند.
الگوریتم اجماع Proof-of-Burn
در الگوریتم اجماع سوزاندن کوین، شما میتوانید به جای تهیه ابزار ماینینگ که بسیار هزینه بالایی را میطلبد، کوینهای خود را بسوزانید یا به زبان ساده به آدرسهایی بفرستید که دیگر قابل بازیابی نباشند.
با توجه به میزان کوینهایی که سوزاندهاید، برای انتخاب شدن به عنوان استخراج کننده بلوک بعدی امتیاز متفاوتی کسب میکنید و تعداد کوین سوخته بیشتر به معنای داشتن امتیاز بیشتر است. به این صورت شما به صورت تدریجی با سوزاندن کوین بر امتیاز خود میافزایید و امتیاز حاصل از سوزاندن کوینهای پیشین را تا ابد برای خود خواهید داشت.
اگر بخواهیم شانس پیروزی در استخراج کوین را در الگوریتمهای اثبات کار و اثبات سوزاندن کوین باهم مقایسه کنیم، میتوان داشتن دستگاههای ماینر با توان بالا را در حکم داشتن امتیاز بالا حاصل از سوزاندن کوینهای بیشتر در نظر گرفت.
از جمله معایب این روش اجماع، میتوان به شانس بالای کسانی که کوینهای بیشتری را سوزاندهاند اشاره کرد. پس از مدتی رقابت با این افراد بسیار سخت میشود.
از دیگر معایب مکانیزم اجماع اثبات سوزاندن، از بین رفتن مقادیر زیادی انرژی است.
الگوریتم اجماع Proof-of-Authority
در الگوریتم اثبات اعتبار، گرههای موجود در شبکه به افرادی که سیستمهای کامپیوتری برای قرار دادن تراکنش در بلوکها استفاده میکنند، اعتماد میکنند. البته این افراد صرفا مسئولیت جلوگیری از رخ دادن دستکاریهای احتمالی را بر عهده دارند و نرمافزارهای اجرا شده در سیستم به صورت خودکار تراکنش را در بلوک قرار میدهد.
این روش را نیز میتوان تا حدودی متمرکز دانست، بیشتر در بلاک چینهای خصوصی از این روش اجماع استفاده میشود.
از آنجایی که شخصی که مسئولیت نظارت بر صحت و جلوگیری از دستکاری شبکه را بر عهده دارد در صورت ارتکاب به جرمی تغییر خواهد کرد، میتوان امیدوار بود که این شخص به اصول پایبند بماند و سعی کند در جایگاه خود باقی بماند.
الگوریتم اجماع Proof-of-Weight
اگوریتم اثبات وزن خود به چند الگوریتم دیگر تقسیم میشود. در هر الگوریتم، وزن معنای خاص خود را پیدا میکند.
همانطور که میدانید در گواه اثبات سهام (PoS) داشتن کوینهای بیشتر به منزله داشتن شانس بیشتر برای کشف بلاک بعدی است، الگوریتمهای اثبات شهرت (Proof of Reputation) و اثبات فضا-زمان (Proof-of-Spacetime) جز الگوریتمهای زیرمجموعه الگوریتم اثبات وزن به حساب میآیند که به عنوان مثال در الکوریتم اثبات فضا-زمان مربوط به فایل کوین، میزان وزن را، اطلاعات IPFS ذخیره شده مشخص میکند.
الگوریتم اثبات شهرت (Proof of Reputation)
این الگوریتم برای تایید تراکنشها از افراد یا شرکتهای مشهور کمک میگیرد، به این صورت که این اشخاص یا شرکتها برای اینکه در بیزنس و اعتبارشان خدشهای وارد نشود هیچ تقلبی را در سیستم تایید انجام نمیدهند؛ زیرا در صورتی که تقلب آنها فاش شود شهرت و تجارت آنها تلفات جبران ناپذیری را متحمل خواهد شد.
زمانی که مراحل اثبات شهرت تکمیل و تایید شد، آنها میتوانند به عنوان تاییدکننده بلوکها کار خود را شروع کنند.
الگوریتم اثبات فضا-زمان (Proof-of-Spacetime)
در این روش اجماع گرهها باید ثابت کنند دادههایی که برای ذخیره دریافت کرده بودند، همچنان دارند. این روند اثبات مکررا انجام خواهد شد.
الگوریتم اجماع Proof-of-Activity
در همه الگوریتمهای اجماع درواقع هدف اثبات یک موضوع و صحت اطلاعات بود. در الگوریتم اثبات فعالیت که درواقع ترکیبی از الگوریتم اجماع اثبات کار و اثبات سهام است، مرحله ابتدایی که استخراج است، از الگوریتمی مشابه گواه اثبات کار استفاده میشود و سپس با رفتن به بلوک بعدی از الگوریتمی شبیه به الگوریتم گواه اثبات سهام کمک میگیرد.
ارز دیجیتال Decred از این الگوریتم در شبکه بلاکچین خود استفاده میکند.
الگوریتم اجماع Byzantine Fault Tolerance
الگوریتم تحمل خطای بیزانس به مسئله فرماندهان بیزانس برای حمله به یک هدف پس از محاصره مربوط است. قضیه از این قرار است که فرماندهان در فاصله از هم قرار گرفته و یک هدف را محاصره کردهاند، حال برای تشخیص زمان درست حملهای که مورد اتفاق همه فرماندهان باشد باید راهحلی را پیدا میکردند؛ زیرا اگر یکی از فرماندهان به هدف حمله میکرد و بقیه فرماندهان اطلاع نداشته و حمله را شروع نمیکردند، عملا در جنگ با شکست مواجه میشدند.
در زمینه ارزهای دیجیتال نیز از روش اجماع تحمل خطای بیزانس استفاده میشود.
از جمله مزایای این روش میتوان به کارمزد پایین تراکنش و مقیاسپذیری بالای آن اشاره کرد، اما این روش را میتوان متمرکز دانست و این یک مشکل برای این روش اجماع در ارزهای دیجیتال به شمار میآید.
(Federated Byzantine Agreement)
از الگوریتم توافق یکپارچه بیزانس در رمزارزهای ریپل و استلار برای اجماع استفاده میشود. در مسئله تحمل خطای بیزانس، صحت و اعتبار خبرهای دریافتی یک معضل به حساب میآید، در روش FBA مسئول گره پیامهای دریافتی را به همان ترتیبی که دریافت کرده ارسال میکند.
در برخی سیستمها این گرههای تاییدکننده از پیش انتخاب شدهاند (ریپل) و در یک سری سیستم دیگر (استلار) هر گره خودش میتواند یک تاییدکننده باشد و گره تاییدکننده بعدی را انتخاب کند.
(Practical Byzantine Fault Tolerance)
الگوریتم اجماع تحمل خطای بیزانس کاربردی، با انتخاب فرماندهانی که از پیش تعیین شده بودند اجرا میشود.
هایپرلجر فابریک یک رمزارز است که از این روش اجماع استفاده میکند.
الگوریتم اجماع Directed Acyclic Graphs
گراف جهتدار غیر مدور یا DAG بر خلاف دیگر شبکهها خطی نیست. به عبارت دیگر در این شبکه یک بلوک توانایی تایید چند بلوک قبل از خود را دارد، این موضوع مقیاسپذیری را بالا برده و سرعت شبکه نیز بالا میرود، درواقع در شبکههای مبتنی بر دگ (DAG) تعداد زیادی تراکنش در کسری از ثانیه انجام میشود.
هشگراف، آیوتا و نانو را میتوان به عنوان رمزارزهایی که شبکه آنها مبتنی بر دگ (DAG) است، معرفی کرد.
دگ را میتوان به عنوان یک راه حل برای مشکل مقیاسپذیری به شمار آورد.
الگوریتم اجماع proof of elapsed time
انتخاب گرهها در این روش اجماع به صورت قرعهکشی انجام میشود. برای اینکه فرایند قرعهکشی و انتخاب در این روش به درستی و به دور از تقلب انجام شود، پلتفرم TEE به عنوان یک فضایی برای انجام این فرایند در نظر گرفته شده است.
انجام فرایند قرعهکشی به سختافزار اینتل نیاز دارد، انتخاب تاییدکننده بلوک در مدت زمانی کوتاه و با روشی مطمئن انجام میشود.
چرا اجماع ضروری است؟
اطلاعات ثبت شده در زنجیره بلوک می تواند به هر شکلی باشد . اعم از انتقال پول ، مالکیت ، معامله ، هویت شخص ، توافق بین دو طرف یا حتی میزان برق مصرفی.
با این حال ، برای ثبت اطلاعات در زنجیره بلوک نیاز به تأیید چندین دستگاه مانند رایانه در شبکه است. در این محیط چالش برانگیز ، باید یک مشکل اساسی را حل کنید تا پول دیجیتال کار کند:
همه گره ها باید در مورد یک تاریخ واحد از معاملات به توافق برسند. بدون اتفاق نظر در مورد اینکه چه کسی مالک چه چیزی است ، شبکه بی ارزش خواهد بود.
سازوکار اجماع در بلاکچین به شبکه اجازه می دهد تا روی یک نسخه واحد از اطلاعات به توافق برسند. وقتی یک شرکت کننده در شبکه یک تراکنش ایجاد می کند ، تراکنش به کل شبکه پخش می شود.
هر گره تراکنش را ثبت می کند و آن را به نسخه دفتر خود اضافه می کند. نسخه های مختلفی که توسط گره های مختلف نگهداری می شوند کمی متفاوت به نظر می رسند. اگر در ایالات متحده هستید و تراکنشی را پخش می كنید ، گره هایی كه به شما نزدیك هستند زودتر از گره مستقر در آسیا آن را دریافت می كنند.
آنچه دریافت می کنید مجموعه ای از نسخه های یکسان از معاملات اما با تایخ متفاوت است. در نهایت ، همه شرکت کنندگان در شبکه باید در مورد یک داده توافق کنند و این همان کاری است که سازوکار اجماع انجام می دهد.
ویژگی های یک الگوریتم اجماع بهینه:
یک پروتکل اجماع دارای سه ویژگی کلیدی است که بر اساس آن می توان کاربرد و کارایی آن را تعیین کرد:
ایمنی
تحمل خطا
liveness بودن
در حالی که تمام سه ویژگی فوق مهم هستند ، اما هیچ پروتکل اجماع قطعی نمی تواند ایمنی ، liveness و تحمل خطا را در یک سیستم ناهمزمان تضمین کند.
جمع بندی
در دنیای مدرن امروزی که همه چیز به سمت دیجیتالی شدن حرکت میکند، غیرمتمرکز سازی یکی از عوامل مهم برای جوامع خواهد بود. کنترل و مدیریت زندگی بدون وجود نهاد مرکزی مزیت های زیادی به همراه خواهد داشت. البته باید این نکته را در نظر بگیریم که امروز دنیای غیرمتمرکز کمی کند تر و آهسته تر از مدیریت های مرکزی پیش میرود. با وجود اینکه عمر زیادی از تکنولوژی بلاکچین نمی گذرد، انتظار میرود در زمانی نه چندان دور جایگزین سیستم های متمرکز شود. الگوریتم اجماع نیز کمک میکند تا سیستم های غیرمتمرکز بتوانند با نظرسنجی از اعضای شبکه، اداره شده و به راه خود ادامه دهند.