رادیو بازار

مقاله الگوریتم اجماع بلاکچین

محمد رضا بوالحسنی

محمد رضا بوالحسنی

اگر به حوزه ارزهای دیجیتال آشنایی داشته باشید، هر ارز دیجیتالی از پروتکل مخصوص خود برای استخراج بهره می برد. الگوریتم های مختلفی بر اساس نوع شبکه و ویژگی های ارزهای مختلف وجود دارد. یکی از این الگوریتم ها، اثبات کار PoW است.

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

الگوریتم اثبات انجام کار در درجه اول به منظور جلوگیری از حملات به شبکه پیاده سازی شده است، چراکه برای حمله به شبکه ارزهایی که از این الگوریتم استفاده میکنند باید بیش از 51 درصد از توانی که ماینرها در شبکه گذاشته اند را بدست آورد تا بتوان کنترل شبکه را برعهده گرفت که این کار عملا نمیتواند صورت بپذیرد. در مرحله بعد توافقی است برای تایید تراکنش ها و مبادلاتی که در شبکه آن ارز دیجیتال اتفاق می افتد که ماینرها وظیفه تایید این تراکنش ها را دارند.

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

فهرست موضوعات

1) الگوریتم اثبات کار POW

2) الگوریتم اثبات سهام PoS

3) الگوریتم سوزاندن PoB

4) الگوریتم اثبات انتقال PoX

5) الگوریتم اثبات زمان PoH

5.1) الگوریتم اجماع PPOS

6) الگوریتم اثبات اهمیت POI

7) الگوریتم اثبات قابلیت بازیابی PoR

8) الگوریتم هش گراف

9) الگوریتم هولوچین

10) الگوریتم بلاک-لاتیس (نانو)

11) الگوریتم اسپکتر

12) الگوریتم بایت بال

الگوریتم اثبات کار POW

در الگوریتم اثبات کار یا Proof of Work که در ارزهای مختلفی از جمله بیت کوین، لایت کوین، بیت کوین کش و … مورد استفاده قرار گرفته است، فرآیند استخراج به شرح زیر است:

تمامی تراکنش های تایید نشده در بلوک هایی کنار هم در بلاکچین قرار میگیرند.

ماینرها بر روی این تراکنش ها و قانونی بودن آنها نظارت میکنند، در واقع اینکار با حل معاملات سنگین ریاضی صورت میگیرد و مانند یک بازی سخت می باشد.

اولین ماینری که در شبکه قادر به حل آن معامله است، بلاک جدید را در بلاکچین ایجاد میکند و از طرف شبکه آن ارز، جایزه دریافت میکند و این جایزه به تمامی ماینرهایی که در شبکه حاضر هستند تقسیم میشود.

در نهایت بعد از تایید شدن، تراکنش های موجود در بلاک، در بلاکچین نوشته شده و تراکنش ها صورت میپذیرد.

هر شبکه ارز دیجیتال، از الگوریتم مخصوص به خود برای استخراج پیروی میکند و نیاز به دستگاه های ماینینگ مخصوص به خود است. به عنوان مثال برای ارز بیت کوین نیاز به دستگاه هایی با توان محاسباتی بالا است بنابراین دستگاه مناسب برای آن، ASIC، FPGA و … نام دارد که با توان عملیاتی بالا، توانایی استخراج بیت کوین را دارند.

الگوریتم اثبات کار باید شرایط زیر را در نظر بگیرید:

نیاز به خرید دستگاه های گران قیمت

هزینه نگهداری و استحلاک سخت افزار

هزینه های مربوط به برق و دریافت مجوزهای مربوطه

الگوریتم اثبات سهام PoS

در طرف مقابل الگوریتم اثبات کار، الگوریتم اثبات سهام یا Proof of Stake است که ارزهای بیشماری از این الگوریتم برای تایید تراکنش های خود استفاده میکنند. در این روش دیگر نیازی به خرید ماینرها و تامین برق و هزینه های مربوط به نگهداری نیست، در واقع شما میتوانید با قفل کردن دارایی خود در شبکه ارز مورد نظر و کمک به تامین امنیت و انجام تراکنش های موجود در شبکه، پاداش دریافت کنید. ارزهایی مانند بایننس کوین، کاردانو و به زودی اتریوم 2 از این روش برای تایید تراکنش های خود بهره میبرند.

امنیت که بحث بسیار جدی در شبکه ارزهای دیجیتال به شمار میرود، در الگوریتم اثبات کار PoS به این صورت انجام میگیرد که شبکه تنها در صورتی میتواند هک شود که شخصی بیش از 51 درصد از کل ارزهای موجود در شبکه را در اختیار داشته باشد تا بتواند کنترل شبکه را به دست بگیرد که اینکار عملا صورت نمیپذیرد چراکه سرمایه شخص حمله کننده از بین خواهد رفت و این کار عملا شدنی نیست.

الگوریتم سوزاندن PoB

اثبات سوزاندن یا Proof of Burning یکی از روش های اجماع است و هدف از ایجاد این الگوریتم جلوگیری از مصرف انرژی که در الگوریتم اجماع اثبات کار PoW به آن اشاره شد.

اثبات سوزاندن (POB) ، یک الگوریتم اجماع است که توسط Ian Stewart پیشنهاد شده است در این الگوریتم اجماع، استخراج کنندگان برای شرکت در روند استخراج، باید سکه های خود را بسوزانند. سوزاندن سکه به معنای ارسال سکه به آدرس بدون کلید است که هرگز قابل استفاده نیست. بنابراین، سوزاندن سکه ایده مشابه سرمایه گذاری برای ساخت یک ریگ استخراج است. از معروف ترین ارزهایی که از این نوع الگوریتم برای اجماع بهره میبرد میتوان به بایننس کوین اشاره کرد که سالی 4 مرتبه و در هر فصل 90 درصد از سود حاصل از صرافی بایننس را برای سوزاندن توکن های بایننس کوین استفاده میکنند و تاکنون 15 مرتبه عملیات توکن سوزی روی آن انجام شده است.

الگوریتم اثبات انتقال PoX

نوع جدیدی از اجماع است که به الگوریتم اثبات کار یا PoW اجازه میدهد با روش های جدیدی گسترش پیدا کند. می‌توان گفت که گواه اثبات انتقال چکیده ای از گواه اثبات کار یا مکانیزم ماینینگ بر بستر بلاک چین استکز (Stacks) یا نسخه ای از بیت کوین یا حتی روشی برای امکان پذیر ساختن مالکیت دیجیتال واقعی در برنامه‌ها یا سرویس‌ها است.

الگوریتم اثبات زمان PoH

اگر به جای اعتماد به زمان سنج بتوانید ثابت کنید که پیام زمانی قبل و بعد از یک رویداد رخ داده است، چه می کنید؟ هنگامی که با جلد نیویورک تایمز عکاسی می کنید، در حال اثبات این هستید که عکس شما پس از انتشار آن روزنامه گرفته شده است، یا راهی برای تأثیرگذاری بر آنچه نیویورک تایمز منتشر می کند، دارید. با اثبات زمان، می توانید یک سابقه تاریخی ایجاد کنید که ثابت کند یک رویداد در یک لحظه خاص از زمان رخ داده است.

الگوریتم اثبات زمان یا Proof Of History به شما این امکان را میدهد که توالی انجام یک رویداد را بر روی بلاکچین ضبط کنید. به طوریکه هرکز امکان تغییر در توالی فریم ها و رویدادها وجود نداشته باشد. از این الگوریتم در ساختار ارز دیجیتال سولانا که یک ارز با ویژگی های دیفای است، استفاده شده است.

الگوریتم اجماع PPOS

Pure Proof of Stake امنیت را ارتقاء می دهد، زیرا دارندگان توکن به صورت تصادفی انتخاب می شوند و مسلما مهاجم نمی داند که فرد انتخابی چه کسی خواهد بود. همچنین تمرکززدایی افزایش می یابد، زیرا هر کسی می تواند در این فرایند مشارکت داشته باشد و نیازی به حل مسائل سخت و پیچیده مانند استخراج در الگوریتم اثبات کار که یکی از الگوریتم های اجماع است، نیست.

در این الگوریتم پردازش تراکنش ها به سرعت انجام می شود و بلاک ها در چند ثانیه بررسی و نهایی می شوند. سرعتی برابر با شبکه های بزرگ پرداخت. علاوه بر این کارمزد تراکنش ها بسیار پایین است.

الگوریتم اثبات اهمیت POI

اثبات اهمیت(PoI) یکی از الگوریتم های اجماع بلاکچین است که برای اولین بار توسط NEM معرفی شد. اثبات اهمیت سازوکاری است ، برای تعیین اینکه کدام شرکت کنندگان شبکه (گره ها) واجد شرایط افزودن بلوک به بلاکچین هستند. فرایند ایجاد بلاک در اثبات کار ماینینگ یا استخراج نام دارد.اما فرایند تایید بلاک در NEM برداشت یا هاروست (harvest) نامیده می شود. به کسی که عمل هاروست را انجام می دهد هاروستر (harvester ) گفته می شود.

اثبات اهمیت را می توان به عنوان یک الگوریتم اجماع جدید در نظر گرفت زیرا بر خلاف مکانیزم های اجماع موجود مانند اثبات سهام، تلاش می کند پشتیبانی کلی شبکه را انجام دهد.

الگوریتم اثبات قابلیت بازیابی PoR

الگوریتم اثبات قابلیت بازیابی یا Proof of Retrivability که به طور خلاصه به آن PoR نیز می گویند، یک اثبات فشرده با استفاده از یک سیستم فایل یا همان اثبات کننده به یک کلاینت و یا دریافت کننده است. در این الگوریتم فایل هدف (برای مثال فایل F) دست نخورده باقی می ماند. به این معنی که کلاینت این امکان را دارد تا آن را به طور کامل بازیابی کند.

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

الگوریتم هش گراف

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

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

الگوریتم هولوچین

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

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

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

الگوریتم بلاک-لاتیس (نانو)

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

در این الگوریتم هر تراکنش به دو بلاک ارسال در زنجیره ی فرستنده و یک بلاک دریافت در زنجیره دریافت کننده تقسیم می شود. اگر از دور به این الگوریتم نگاه کنید، نحوه کار و فعالیت آن بسیار ساده است و هیچ قسمت پیچیده ای در آن وجود ندارد.

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

الگوریتم اسپکتر

در رابطه با این الگوریتم باید سریالی کردن رویداد های اثبات کار را برای شما توضیح دهیم. در این الگوریتم تایید تراکنش ها از طریق انتخابات بازگشتی انجام می شود. این روش بازگشتی به نام اسپکتر شناخته می شود. اسپکتر در اصل یک راه کار برای مقیاس پذیری در شبکه ی بیت کوین است که از ترکیب اثبات کار و DAG برای رسیدن به یک اجماع استفاده می کند. در الگوریتم اسپکتر، بلاک ها فقط به یک منبع اشاره نمی کنند و برای استخراج به چندین بلاک اشاره می کنند. با استفاده از این روش، شبکه این امکان را دارد که در هر ثانیه بتواند چندین بلاک را مدیریت کند.

ماین کردن یک بلاک با استفاده از اشاره کردن به چندین منبع باعث ایجاد حمایت از اعتبار آن بلاک می شود. اسپکتر برای فعالیت خود از بلاک هایی با بیشترین برد استفاده می کند. البته این بلاک چین هنوز در دنیای واقعی و با شرایط واقعی امتحان نشده است و امکان دارد در آن مشکلاتی وجود داشته باشد و راه حمله ای برای خرابکار ها در آن باز باشد. اما در هر حال این الگوریتم یک راه کار برای ترمیم شبکه بیت کوین به شمار می رود.

الگوریتم بایت بال

این الگوریتم برای فعالیت خود از DAG استفاده می کند. در این الگوریتم یک ترکیب ناقص در میان تراکنش ها ایجاد می شود و سپس زنجیره اصلی به DAG اضافه می شود.

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

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

فرآیند انجام کار

در این الگوریتم زنجیره اصلی به این صورت مسیر را درون DAG دنبال می کند:

لیست شاهد ها در تراکنش های مجاور در زنجیره باید یکسان باشد و یا تنها می تواند با یک تغییر متفاوت باشد.

زنجیره در اکثر تراکنش های نوشته شده توسط شاهدین می چرخد و آن ها را با زنجیره های جایگزین مقایسه می کند.

اشتراک گذاری:
Facebook
Twitter
LinkedIn
Telegram
WhatsApp
Email
Skype
Pinterest
Reddit

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *