فناوری بلاکچین (Blockchain) شبکهای غیرمتمرکز و شفاف در ارائه اطلاعات است که هیچ نهاد مرکزی در آن، مسئولیت مدیریت و اعتبارسنجی تراکنشها را بر عهده ندارد. بلاک چین یک دفترکل یا پایگاه داده دیجیتالی بوده که تراکنشهای شبکه را ثبت میکند؛ این تراکنشها مطمئن و غیرقابل تغییر بوده و هیچ هَکری قادر به دستکاری اطلاعات آنها نیست و تمامی فعالیتهای درون شبکه بلاکچین برای عموم قابل دسترسی است.
بهدلیل این که شبکه بلاکچین خودمختار و غیرمتمرکز (Decentralized) است، پروتکلهایی خودکار لازم دارد تا نودهای شبکه فقط در مورد تراکنشهای معتبر به توافق برسند. این پروتکلها برای جلوگیری از فعالیتهای مخرب مانند حملات دابل اِسپندینگ (دوبار خرج کردن / Double Spending) بهکار گرفته شدهاند تا عملکرد یک شبکه بلاک چین دچار مشکل نشود.
الگوریتم اجماع (Consensus Algorithm) در بلاکچین این اطمینان را ایجاد میکند که هر بلوک اضافهشده به آن معتبر و حقیقی است و تمام نودهای شبکه بر سر آن بلوک به توافق جمعی رسیدهاند.
الگوریتم اجماع چیست؟
الگوریتم اجماع یک مکانیزم در علوم کامپیوتری است که جهت برقراری توافق روی یک مقدار از داده در فرآیندها و سیستمهای توزیعشده استفاده میشود و بهطور کل، وظیفه برقراری امنیت در یک شبکه بلاک چین را بر عهده دارد.
الگوریتم اجماع یا مکانیزم اجماع (Consensus Mechanism) پروتکلی است که از طریق آن تمامی اعضای بلاکچین (نودها) به یک توافق مشترک (اجماع) در رابطه با وضعیت دادههای دفترکل میرسند و میتوانند به کاربران ناشناس در یک محیط کامپیوتری توزیعشده اعتماد کنند.
الگوریتم اجماع برای یک شبکه بلاک چین عنصری ضروری است، چرا که باعث شده یکپارچگی و امنیت در این سیستمهای محاسباتی برقرار باشد. آنها اهداف و رویههای مشخصی دارند که از میان آنها میتوان برقراری توافق، تعامل، همکاری، حقوق برابر برای هر نود، و مشارکت اجباری هر نود در فرآیند اجماع را نام برد. بنابراین، هدف اصلی در یک الگوریتم اجماع رسیدن به توافق مشترکی است که به نفع تمام عناصر در شبکه است.
بهتر است بدانید با این که ممکن است شبکههای بلاکچین از الگوریتم اجماع مشابهی استفاده کنند، هرکدام پیادهسازی و نحوه اجرای خاص خود را دارند. برای مثال ریپل (XRP)، از نسخه تحمل خطای بیزانس (BFT) ویژه خود استفاده میکند. اکنون در اینجا به رایجترین الگوریتمهای اجماع در شبکههای بلاکچین نگاهی میاندازیم.
الگوریتم اجماع اثبات کار (Proof of Work / PoW)
الگوریتم اجماع اثبات کار شاید بهدلیل پیدایش بیت کوین (BTC)، شناختهشدهترین شیوه تایید تراکنشها باشد. فرآیند کلی در این الگوریتم به این صورت است که اعضای شبکه بلاکچین با تایید یک تراکنش و استفاده از الگوریتم، عملیات کامپیوتری پیچیدهای را انجام میدهند و نتیجه بهدست آمده را برای بررسی و تایید دیگر نودهای شبکه، در اختیار آنها قرار میدهند.
اثبات کار فرآیند تولید یک هش (Hash) رمزنگاریشده است و مفهوم آن برای اولین بار در سال ۱۹۹۳، توسط سینتیا دورک و مونی نائور معرفی شد که چندین سال بعد ساتوشی ناکاموتو آن را در وایتپیپر (Whitepaper) بیت کوین دوباره ارائه داد. تاریخچه اثبات کار به استفاده از آن در سیستم «هَشکَش» (Hashcash) بر میگردد که آدام بَک آن را بهعنوان یک سیستم برای مقابله با ایمیلهای اِسپم و حملات منع سرویس (Denial of Service) تعریف کرد.
در یک سیستم اثبات کار، اعتبارسنجهای بلاکچین باید داده را از هِدِر بلوک (Block Header) بهعنوان ورودی گرفته و بهطور مکرر آن را در یک تابع هش رمزنگاریشده اجرا کنند. اعتبارسنجها داده ورودی را با کمی تغییرات، هش کرده و هر مرتبه که داده ورودی در تابع هش رمزنگاریشده اجرا میشود، یک عدد مطلق بهنام تکبار (Nonce) به آن اضافه میکنند.
اثبات کار میزان زیادی برق و نیروی پردازش نیاز دارد تا بتواند تصمیم بگیرد که چه دادهای به بلوک بعدی در بلاکچین اضافه شود. برای محاسبه و حل معادلات ریاضی پیچیده در سیستمهای PoW، از کامپیوترهای مخصوصی تحت عنوان اسیک (ASIC) استفاده میشود.
در یک شبکه بلاکچین، اثبات کار بهعنوان یک الگوریتم اجماع جهت تایید تراکنشها و تولید بلوکهای جدید بهکار گرفته میشود. با استفاده از اثبات کار، نودهای مخصوص در شبکه بلاکچین بهنام ماینر (Miner)، با یکدیگر در حل معادلات پیچیده ریاضی رقابت میکنند و این کار را با اجرای پیدرپی الگوریتم تولید هش انجام داده تا به پاسخ موردنظر برسند.
سپس این پاسخ توسط دیگر نودهای شبکه بررسی شده تا اعتبار آن مورد تایید قرار گیرد. با تایید داده، ماینری که به این پاسخ رسیده میتواند بلوک بعدی را ایجاد کند که تمام تراکنشهای جدید در آن ذخیره میشود و بابت تکمیل این عملیات، پاداش دریافت میکند.
الگوریتم اجماع PoW برای توسعهدهندهای کاربرد دارد که هدف او، تولید اپلیکیشنهایی با محوریت امنیت و مدیریت هویت نودها است که طبق آن، کاربران پیش از دسترسی به خدمات و سیستم باید شناسایی، تایید و احراز هویت شوند. بیت کوین که یکی از بزرگترین شبکههای بلاکچین است از این پروتکل استفاده میکند.
یکی از مزایای اثبات کار مقیاسپذیری بالای آن است؛ یعنی کاربردهای زیادی همچون استخراج رمزارزها و توکنهای جدید و اعتبارسنجی تراکنشها دارد. یک از معایب آن هم امکان ایجاد حملات ۵۱ درصدی است. در این نوع حمله، یک مهاجم میتواند با تامین بیش از نیمی از نیروی محاسباتی شبکه، کنترل امور را بهدست گیرد و فعالیت غیرمتمرکز شبکه را بهطور کل بی اثر کند.
الگوریتم اجماع اثبات سهام (Proof of Stake / PoS)
الگوریتم اجماع اثبات سهام بهعنوان یک جایگزین برای اثبات کار در سال ۲۰۱۱ معرفی شد. با وجود اهداف مشابه در این دو الگوریتم، ویژگیها و عملکرد متفاوتی خصوصاً در مورد نحوه تایید بلوکهای جدید در شبکه دارند.
تفاوت الگوریتم اجماع اثبات سهام با اثبات کار در مکانیزمی است که طبق آن، بلوکها بر اساس میزان سهام یا سپردهگذاری (اِستیکینگ / Staking) اعضای شبکه اعتبارسنجی میشوند. در اینجا بر خلاف اجرای توابع هَش، اعتبارسنجها سهام را در قالب پول یا توکنهای دیجیتال بهعنوان مرجع ذخیره میکنند. اعتبارسنجهای هر بلوک بهصورت تصادفی از بین سهامداران و بر اساس میزان نیروی محاسباتی اختصاص دادهشده آنها انتخاب میشوند.
سیستمهای PoS ممکن است این الگوریتم را بهشکلی متفاوت اجرا کنند اما بهطور کل، بلاکچین توسط فرآیندهای انتخابی شبهتصادفی و بر اساس میزان نیروی اختصاص داده شده یک نود ایمن شده که میزان تعهد یک عضو برای برقراری امنیت در شبکه را نشان میدهد.
بلاکچین اتریوم که بزرگترین شبکه بلاکچین از نظر سطح فعالیت توسعهدهنگان در آن است، برای اولین بار این تغییر را از اثبات کار به اثبات سهام انجام داد تا مقیاسپذیری شبکه را افزایش و مصرف برق را کاهش دهد.
ایده اصلی در این سیستم به اینگونه است که برقرار بودن امنیت و اعتبار شبکه بلاک چین، به نفع هر عضوی است که در توکنهای شبکه سرمایهگذاری بزرگی انجام داده است.
اعتبارسنجها (سرمایهگذاران) در کوینهای سیستم سرمایهگذاری کرده و بخشی از آنها را بهعنوان سپرده (Stake) یا سهام بلوکه میکنند. سپس تمامی اعتبارسنجها شروع به تایید بلوکها میکنند. چنانچه بلوکی از نظر آنها مورد تایید باشد، روی آن سپردهگذاری را شرط میگذارند.
بر اساس تعداد بلوکهای موجود در بلاکچین، اعتبارسنجها طبق میزان شرط و سهامشان پاداش دریافت میکنند. در نهایت، یک اعتبارسنج برای تولید بلوک جدید بر اساس سهام مالی آن در شبکه انتخاب میشود.
بنابراین، PoS اعتبارسنجها را طبق یک مکانیزم انگیزشی و پاداشدهنده به توافق مشترک میرساند. از جایی که این الگوریتم از نیروی محاسباتی برای ماینینگ (استخراج ارز دیجیتال) استفاده نمیکند، از لحاظ مصرف برق با محیط زیست سازگارتر است. از اثبات سهام برای بهبود امنیت، اعتبارسنجی تراکنشها و افزایش سطح عملکرد شبکه استفاده میشود. برخی ارزهای دیجیتال مانند اتریوم (Ethereum)، تزوس (Tezos)، اِستیم (Steem) و گریدکوین (Gridcoin) از پروتکل اثبات سهام استفاده میکنند.
از مزایای پروتکل اجماع اثبات سهام میتوان گفت که این پروتکل نیازی به حل مسائل پیچیده یا رمزنگاریشده کامپیوتری ندارد. همچنین، مصرف انرژی یک سیستم اثبات سهام نسبت به اثبات کار بهینه تر است. از معایب آن میتوان گفت که یک مهاجم قادر است تراکنشهای قربانی خود را برگرداند و به اعتبارسنجها برای تایید آن پاداش (رشوه) دهد.
علاوهبر این، الگوریتم اجماع PoS برای افراد ثروتمند مناسب است؛ قدرت ماینینگ در اثبات سهام از طریق تعداد کوینهای سپردهگذاری شده هر اعتبارسنج مشخص میشود. اعضایی که کوینهای بیشتری را سپرده گذاشتهاند شانس بیشتری برای انتخاب شدن و اضافه کردن بلوکهای جدید دارند. برای مثال، جهت تبدیل شدن به یک اعتبارسنج در شبکه اتریوم، حداقل ۳۲ واحد اتریوم (ETH) برای استیک کردن (سپردهگذاری و بلوکه کردن) لازم است.
الگوریتم اجماع اثبات سهام نمایندگیشده (Delegated Proof of Stake / DPoS)
اثبات سهام نمایندگیشده یکی از گونههای اثبات سهام است که در آن بلوکها توسط یک سری نماینده منتخب امضا میشوند. مالکان سنگینترین حسابها نمایندگان خود را انتخاب کرده و هرکدام حق امضای بلوکهای شبکه بلاکچین را دریافت میکنند.
هر نمایندهای که یک درصد یا بیشتر از آن حق رأی دارد، وارد یک انجمن یا شورا میشود و هر نمایندهای که بلوک بعدی را امضا میکند از آن انجمن انتخاب میشود.
در صورتی که یک نماینده به هر دلیلی نوبت امضای بلوک خود را از دست دهد، از سِمت رأیدهی محروم شده و از انجمن خارج میشود؛ سپس یک کاندید بهتر بهجای آن انتخاب میشود. صاحب حساب در صورت از دست دادن حق رأی، کنترل حساب خود را از دست نداده و میتوانند هر زمان که میخواهد آن را از نماینده خود بگیرد.
بسیاری از متخصصان این شیوه را یک نسخه دموکراسی از سیستم اجماع اثبات سهام میدانند، زیرا بهجای استفاده از نودهای مستقل در شبکه، طبق یک فرآیند رأیدهی و انتخاب نماینده عمل میکند. طبقه عقیده آنها، الگوریتم DPoS ظرفیت تراکنشهای بیشتر و زمان تایید کمتری را نسبت به مکانیزمهای اجماع PoW و PoS دارد، چرا که جهت تایید دادههای یک بلوک جدید در بلاکچین از نودهای شبکه یا شاهدان کمتری استفاده میکند.
سیستم رأیدهی در الگوریتم اثبات سهام نمایندگیشده دارای شفافیت کامل است. اگر کاربران متوجه فعالیتی مخرب شوند، میتوانند برای حذف نماینده مربوطه سریعاً رأیگیری کنند. میتوان گفت الگوریتم DPoS تا حدی متمرکز است و افرادی که کوینهای بیشتری سپردهگذاری کرده، قدرت بیشتری در شبکه دارند. همچنین، در برابر حملات آسیبپذیر بوده چون افراد کمی مسئول برقراری عملکرد صحیح در شبکه هستند.
سیستم تحمل خطای بیزانس (Byzantine Fault Tolerant / BFT)
تحمل خطای بیزانس تعریفی برای یک سیستم توزیعشده است که حتی در صورت خروج برخی اعضای شبکه یا ارسال سیگنالهای متناقض در شبکه، میتواند به عملکرد خود ادامه دهد.
با این که BFT اساساً مخصوص اجماع تا اجرای الگوریتم در یک سیستم است، تا کنون استفاده از آن بهعنوان یک مکانیزم اجماع در شبکههای بلاک چین موفقیتآمیز بوده است. نام این پروتکل از یک تئوری بهنام مسئله فرماندهان بیزانسی (Byzantine Generals’ Problem) میآید.
در این مسئله، هر فرمانده در منطقهای لشکر خود را دارد و باید برای حمله یا عقبنشینی یک تصمیم بهصورت گروهی بگیرند. چنانچه تمام آنها تصمیمی مشابه بگیرند، موفق میشوند و در صورت برقراری ارتباطی اشتباه یا خیانت کردن، برخی از فرماندهان حمله و بقیه عقبنشینی میکنند و نبرد با شکست مواجه میشود. به اینگونه موارد خطاهای بیزانسی میگویند.
نودها در سیستمهای کامپیوتری حکم همان فرماندهان را دارند. بهدلیل ماهیت غیرمتمرکز ارزهای دیجیتال، هرکدام از آنها با یک نسخه عظیمتر از مسئله فرماندهان بیزانسی مواجه است. بلاکچین باید در صورت اشتباه برخی نودها، بتواند عملکرد خود را حفظ کند. در اینجا شرحی ساده از عملکرد این پروتکل را آوردهایم:
- کاربر درخواست خود را به اولین نود ارسال میکند.
- نود اول آن درخواست را به نودهای بعدی میفرستد.
- نودها درخواست را پردازش کرده و خدمات لازمه را ارائه میدهند و پاسخ را برای کاربر ارسال میکنند.
- کاربر منتظر میماند تا تعداد m+1 نود همان پاسخ را برایش بفرستند، که در اینجا m حداکثر تعداد نودهای خطاکار در سیستم است.
در یک سیستم تحمل خطای بیزانسی حداکثر تعداد نودهای خطاکار نباید برابر یا بیشتر از یک سوم مجموع نودهای سیستم باشد.
در سادهترین حالت، BFT به رأی موافق اکثریت وابسته است. چنانچه بیش از دو سوم نودهای شبکه بر سر یک وضعیت به توافق برسند، آن وضعیت بهعنوان حقیقت و یک وضعیت معتبر در شبکه اعمال میشود. طبق گزارشات، پروتکل BFT بهدلیل ارتباط زیاد نودهای شرکتکننده در رابطه با مقیاسپذیری مشکلاتی دارد.
البته برخی پیادهسازیهای متفاوت از آن بهنظر این شرایط را در BFT بهبود بخشیدهاند که از بین آنها میتوان تحمل خطای بیزانس متحد (Federated BFT) در الگوریتم اجماع استلار (Stellar / XLM) و تحمل خطای بیزانس نمایندگیشده (Delegated BFT) در شبکه NEO را نام برد.
یکی از مزایای BFT نمایندگیشده عملکرد پرسرعت آن است و تولید بلوک در چنین بلاکچینی بین ۱۵ تا ۲۰ ثانیه زمان میبرد. این پروتکل دارای فورک نیست و اجازه اعمال تغییرات بزرگ در پروتکل شبکه را نمیدهد تا بتوان بلوکها و تراکنشهای غیرمعتبر را به معتبر تبدیل کرد.
یکی دیگر از مزایای آن تکمیل قطعی تراکنشها پس از تایید است، یعنی این که یک بلوک را نمیتوان تفکیک کرد و تراکنشهای آن را باطل کرد و یا برگشت داد. از معایب این پروتکل عدم ناشناس بودن است، زیرا نمایندگان باید برای انتخاب شدن تحت هویت واقعی خود فعالیت کنند. همچنین، این مکانیزم کاملاً غیرمتمرکز نیست و وجود یک بلاکچین قانونگذاریشده در بستر این پروتکل ضروری است.
الگوریتم اجماع اثبات سوزاندن (Proof of Burn / PoB)
با استفاده از الگوریتم اجماع اثبات سوزاندن، اعتبارسنجها بهجای سرمایهگذاری در تجهیزات سختافزاری گرانقیمت، با ارسال کوینها به یک آدرس غیرقابل بازیابی آنها را در اصطلاح میسوزانند. اعتبارسنجها با ارسال کوینها به یک آدرس غیرقابل دسترس، طبق یک فرآیند انتخاب تصادفی واجد شرایط ماینینگ در سیستم میشوند. اصطلاح فنی این فرآیند توکنسوزی یا Burn نام دارد.
بنابراین، سوزاندن کوینها در اینجا به معنی یک ضرر کوتاهمدت در قبال یک تعهد بلندمدت برای اعتبارسنجها است. با توجه به نحوه پیادهسازی الگوریتم اثبات سوزاندن، ماینرها ممکن است ارز بومی یک بلاکچین یا ارزی جایگزین آن، مثلاً بیت کوین، را بسوزانند. هر چه کوین بیشتری سوزانده شود، اعتبارسنجها شانس بیشتری در انتخابشدن برای استخراج بلوک بعدی پیدا میکنند.
نکته جالب اینجا است که این روش برای انتقال از یک رمزارز قدیمی به یک نسخه جدید بسیار کارآمد است. مثلا وقتی یک ارز قدیمی در مراحل پایانی استخراج خود قرار دارد، میتوان از سیستم PoB برای سوزاندن ارز قدیمی و انتقال به ارز جدید استفاده کرد. این الگوریتم در پلتفرم اِسلیم کوین (Silmcoin) مورد استفاده قرار گرفت.
اثبات سوزاندن در مقایسه با اثبات کار جهت پخش عادلانه کوینها موثرتر است و مانند ماینینگ در اثبات کار نیست که نیازمند سختافزارهای مخصوص باشد که ممکن است منجر به متمرکزشدن در ماینینگ شود. بهعلاوه، ماینرها به سرمایهگذاری بلدمدت در پروژهها تشویق میشوند. احتمال فروش یا خرج کوینها از سوی سرمایهگذاران بلندمدت پایین است و این موجب شده قیمت آن کوین ثبات بیشتری پیدا کند.
الگوریتم اجماع اثبات سوزاندن برای تراکنشهایی که هش مربوط به سوزاندن تولید کرده بسیار مناسب است و شبیه به مقادیر هشی است که برای تعیین رهبرهای بلوک در اثبات کار استفاده میشود. همچنین برای کاهش سکههای در گردش نیز مکانیزم مناسبی است.
یکی از معایب این پروتکل این است که عملیات سوزاندن همیشه بهصورت شفاف انجام نمیشود و کاربران عادی نیز میتوانند آنها را تایید کنند که یعنی در تایید عملکرد ماینرها تاخیر ایجاد میشود. با اینکه PoB انتخاب جذابتری نسبت به اثبات کار است، این پروتکل بیجهت منابع را هدر میدهد و همیشه این مسئله وجود دارد که قدرت ماینینگ به افرادی تعلق میگیرد که میخواهند پول بیشتری بسوزانند.
الگوریتم اجماع اثبات زمان سپریشده (Proof of Elapsed Time / PoET)
سیستم اجماع اثبات زمان سپریشده توسط شرکت Intel جهت مقابله با چالشهای انتخاب تصادفی یک رهبر طراحی شده است. این پروتکل در بخشی از کتاب راهنمای نرمافزاری “Software Guard Extensions (SGX)” منتشر شده است.
الگوریتم اجماع اثبات زمان سپریشده در بسیاری از بلاکچینهای خصوصی (Private Blockchain) مانند هایپرلِجِر ساتوث (Hyperledger Sawtooth) بهکار گرفته شده است، زیرا بهجای استفاده از سختافزارهای ماینینگ از یک سیستم زمانبندی تصادفی برای اعضای شبکه استفاده میکند.
شبکههای بلاکچین داری مجوز (Permissioned)، برای هر شرکتکنندهای که قصد عضویت دارد احراز هویت انجام میدهند. PoET برای تعداد زیادی از اعضا به یک میزان شانس برندهشدن ارائه میدهد و از یک شیوه انتخاب تصادفی شبیه به قرعهکشی استفاده کرده تا از بین نودها، برنده بلوک جدید را مشخص کند.
الگوریتم PoET یک زمان انتظار تصادفی برای هر نود در شبکه تعیین میکند و طی این زمان، نودها فعالیتی انجام نمیدهند. نودی که کمترین زمان به آن اختصاص داده شده از بقیه نودها به اصطلاح سریعتر بیدار شده و بهعنوان نود برنده، به تولید بلوک جدید در شبکه میپردازد.
یکی از مزایای PoET قابلیت مشاهده و تایید نتایج توسط اعضا و نهادهای خارجی است که موجب شده فرآیند اجماع در شبکه از شفافیت بیشتری برخوردار باشد. همچنین PoET این اطمینان را داده که به دو دلیل، همه اعضا به یک اندازه شانس برندهشدن دارند.
اول اینکه زمان برای هر نود کاملاً تصادفی اختصاص داده میشود و زمان کوتاهتر یک نود نسبت به دیگر شرکتکنندگان از قبل انتخابشده نیست. ثانیاً، نود برنده حتماً باید زمان انتظار را به پایان رسانده باشد و اثبات زمان سپریشده نیازمند سختافزاری است که توسط کمپانی Intel تولید شده است.
پروتکل PoET بهدلیل ضرورت استفاده از سختافزارهای مخصوص، بهترین عملکرد را در بلاک چینهای عمومی بدون نیاز به مجوز (Permissionless) دارند و نمیتوان تعداد زیادی از آنها در یک محل متمرکز کرد. از معایب آن میتوان گفت که نیازمند اعتماد به سختافزار شخص ثالث بوده که در تضاد با مفاهیم اصلی بلاکچین یعنی عدم وجود عامل اعتماد و نهاد مرکزی است.
الگوریتم اجماع اثبات ظرفیت (Proof of Capacity / PoC)
یکی دیگر از الگوریتمهای اجماع اثبات ظرفیت یا اثبات فضای ذخیره (Proof of Space / PoSpace) است. در اثبات ظرفیت، اعتبارسنجها بهجای سرمایهگذاری در سختافزارهای گرانقیمت یا توکنسوزی، فضای ذخیره هارد دیسک خود را تحت اختیار شبکه قرار میدهند.
هر چه میزان فضای ذخیره هارد دیسک اعتبارسنجها بیشتر باشد، شانس آنها برای انتخابشدن جهت استخراج بلوک بعدی و دریافت پاداش آن بیشتر است. در حال حاضر بلاکچین بِرست کوین (Burstcoin) از این الگوریتم استفاده میکند.
نحوه عملکرد PoC بهشرح زیر است:
- هر ماینر میزان زیادی از دادهها را محاسبه میکند که در دیسک ذخیره زیرمجموعه یک نود یعنی هارد درایو، فضای ذخیره ابری یا . . . ذخیره میشود. این مجموعه داده اولیه را در الگوریتم اجماع اثبات ظرفیت، فضای ذخیره (Space) میگویند.
- به ازای هر بلوک جدید در بلاکچین، ماینر بخش کوچکی از مجموعه داده را میخواند که برابر با ۱/۴۰۹۶، تقریبا ۰.۰۲۴٪ تمام دادههای ذخیرهشده است. سپس نتیجه (موعد تحویل) را بهعنوان زمان سپریشده از آخرین بلوک ساختهشده در شبکه برگشت میدهد و پس از آن، ماینر میتواند بلوک جدید را تولید کند.
- ماینری که کمترین زمان تحویل را دریافت میکند، بلوک را امضا کرده و برای تراکنشها پاداش دریافت میکند.
بنابراین، منابع محاسباتی مورد نیاز این عملیات، زمان لازم برای خواندن فایلها از یک دیسک ذخیره زیرمجموعه است. این اصلیترین شیوهای است که اجرای ماینینگ را در بهینهترین حالت مصرف انرژی انجام میدهد و ماینرها برخلاف سرعت عملکرد تجهیزات، در میزان ذخیرهسازی اطلاعات رقابت دارند.
الگوریتم اجماع اثبات اعتبار (Proof of Authority / PoA)
اثبات اعتبار، یک الگوریتم اجماع بر اساس سابقه هر عضو مورد اعتماد در بلاکچین است. این مکانیزم برای بلاکچینهای خصوصی بسیار کارآمد و بهینه است که در سال ۲۰۱۷ مفهوم آن توسط کمک بنیانگذار و مدیر ارشد فنی سابق اتریوم، گَوین وود، معرفی شد.
الگوریتم اجماع اثبات اعتبار بر اساس ارزش هویتهای داخل یک شبکه عمل میکند و اعتبارسنجها بهجای سپردهگذاری، از هویت، اعتبار و سابقه خود استفاده میکنند. از این رو، امنیت شبکههای بلاکچین اثبات اعتبار از طریق نودهای اعتبارسنجی تامین شده که بهصورت دلخواه از بین اعضا مورد اعتماد انتخاب میشوند.
تعداد اعتبارسنجها در مدل اثبات اعتبار ثابت است و بهراحتی یک سیستم بلاکچین مقیاسپذیر را تشکیل میدهد، چرا که تراکنشها توسط اعضای از پیش تاییدشده در شبکه تایید میشوند.
از مکانیزم اجماع PoA میتوان در زنجیرههای تامین و شبکههای معاملاتی استفاده کرد، زیرا هویت واقعی نودها شناختهشده و مطمئن هستند.
PoA از عملکرد و تحمل خطای بالایی برخوردار است و اجازه تولید بلوکهای جدید در آن به نودهایی داده میشود که توانایی و اعتبار خود را برای انجام این کار ثابت کردهاند. برای بهدست آوردن این توانایی و حق تولید بلوک، در ابتدا نودها باید احراز هویت شوند. در PoA شرایط زیر باید برقرار باشند:
- شناسایی و احراز رسمی درون شبکهای اعتبارسنجها
- وجود صلاحیت بر اساس معیارهایی مشخص مانند ارتباط با سازمان یا سابقه درخشان
- پیروی از فرآیندهای لازم برای تشکیل بلوکها و اعتبارسنجی شبکه
این مکانیزم اجماع به منابع زیادی احتیاج ندارد، اما اعتبارسنجها باید یکپارچگی نودهایشان را حفظ کنند. در تعریف عملکرد این مکانیزم میتوان گفت که هویت و اعتبار یک کاربر، انگیزه و محرکی برای عملکرد صادقانه مطابق با اصول شبکه است.
یکی از مزایای این الگوریتم عدم نیاز به ماینینگ بوده که باعث میشود هزینههای تعمیر و نگهداری بهطرز قابل توجهی کاهش پیدا کنند. از معایب آن نیز میتوان گفت اعضای کلیدی و مهم این الگوریتم، اعتبارسنجها هستند که ممکن است در نهایت، منجر به متمرکزشدن سیستم شود. استفاده از این سیستم در صورتی معقول است که هنگام اجرای شبکه، تمام حسابهای آن تا حد امکان مورد اعتماد باشند.
الگوریتم اجماع اثبات اهمیت (Proof of Importance / PoI)
اثبات اهمیت برای نشان دادن سودمندی و کارایی نودها در سیستم رمزارزها است و به آنها اجازه تشکیل بلوکها را میدهد.
الگوریتم اجماع اثبات اهمیت از چندین معیار برای ارزیابی نودها استفاده میکند: خالص انتقالها، میزان ارزهای واگذاریشده و مجموع فعالیتها برخی از این موارد هستند. پلتفرم بلاکچین NEM از این مکانیزم اجماع استفاده میکند. وجه تمایز هر کاربر در شبکه NEM بر اساس موجودی حساب آنها و تعداد تراکنشهای موجود در کیف پولشان مشخص میشود.
برخلاف یک الگوریتم اثبات سهام عادی که فقط موجودی حساب کاربر را ملاک قرار میدهد، اثبات اهمیت موجودی حساب و میزان فعالیت کاربر در شبکه را نیز در نظر میگیرد. این رویکرد کاربران را تشویق میکندعلاوهبر نگهداری سرمایه در حسابشان، بهطور مکرر نیز از آنها استفاده کنند.
مکانیزم اجماع PoI تنها تعداد کوینهای نگهداریشده در کیف پول را در نظر نمیگیرد، بلکه مدت زمان نگهداری آنها نیز حائز اهمیت است. سیستم افراد را به نگهداری کوینها تشویق میکند و پس از گذشت مدت زمانی مشخص، کوینها عنوان واگذاریشده (Vested) را به خود میگیرند و فقط کوینهای واگذاریشده از مزایای اثبات اهمیت برخوردار میشوند.
بهنظر مهمترین عامل در امتیازدهی اثبات اهمیت، تعداد کوینهای واگذاریشده باشد و برای برداشت این کوینها، یک حداقل برای میزان آن تعیین شده است. برخلاف ماینینگ یا استخراج در اثبات کار و عملیات ساخت (Forging) در اثبات سهام، عبارت مورد استفاده در اینجا برداشت (Harvesting) است.
همچنین، الگوریتم اجماع PoI برای سرمایهگذارانی که بهطور منظم با دیگران در شبکه تراکنش انجام میدهند، امتیاز بالاتری در نظر میگیرد. این باعث شده که PoI عملکردی پایدار و مطمئنتر داشته باشد، زیرا در عوض نگهداری کوینها، بهگردش درآوردن آنها را تشویق میکند.
تراکنشهای ساختگی که فقط برای بالا بردن امتیاز PoI انجام میشوند، توسط سیستم شناسایی و طبق مکانیزم اثبات اهمیت حذف میشوند. بهترین استفاده از PoI در اپلیکیشنهایی است که مدلسازی داده را تشویق کرده و از نگهداری کوینها و دوبار خرجکردن (Double-Spending) جلوگیری میکنند.
اثبات اهمیت به نوع تراکنشها نیز پاداش میدهد. مثلاً، تراکنشهایی با حجم بالا نسبت به تراکنشهای کوچکتر اهمیت بیشتری دارند و به تراکنشهای رایج نسبت به تراکنشهای نامتداول پاداش بیشتری تعلق میگیرد. این قوانین برای اطمینان از افزایش استفاده از رمزارز در گذر زمان ایجاد شده است و این که بتواند به جایگزینی مناسب برای ارزهای فیات تبدیل شود.
یکی از مزایای مکانیزم اجماع اثبات اهمیت کاهش انباشت کوینها است و همچنین این پروتکل به سختافزاری خاص یا مصرف انرژی و توان محاسباتی بالا احتیاجی ندارد. از معایب آن میتوان گفت که در این پروتکل میزان درصد ماینینگ محدود شده است؛ یعنی ماینرها بهنسبت دارایی ارز دیجیتال خود میتوانند استخراج کنند و در نتیجه افراد ثروتمند، ثروتمندتر میشوند.
الگوریتم اجماع اثبات فعالیت (Proof of Activity / PoA)
در سال ۲۰۱۴ یک تعریف از این الگوریتم اجماع بهعنوان جایگزینی جدید و مطمئن برای بیت کوین منتشر شد. خالقان الگوریتم اثبات فعالیت دو گونه از معروفترین الگوریتمها یعنی اثبات کار و اثبات سهام را تلفیق کردند تا بتوانند سطح محافظت در برابر حملاتی همچون حمله ۵۱ درصدی و منع سرویس را افزایش دهند.
نحوه عملکرد این الگوریتم به شرح زیر است:
- هر ماینر در شبکه بلاکچین تلاش میکند تا برای یک بلوک خالی هِدِری تشکیل دهد که حاوی هش بلوک قبلی، آدرس عمومی ماینر، فهرست بلوک فعلی در بلاکچین و یک تکبار است.
- پس از تشکیل هدر بلوک خالی، نود این هدر را به شبکه بلاکچین ارسال میکند.
- تمام نودها این هدر بلوک را بهعنوان داده دریافتشده از مالکان شبهتصادفی در نظر میگیرند. با استفاده از هدر بلوک فرستاده شده و هش بلوک قبلی بهعلاوه n پیشفرض و با کمک الگوریتم پیروی از ساتوشی (Follow-the-Satoshi)، سهامداران (افرادی که استیکینگ انجام دادهاند) انتخاب میشوند.
- هر سهامدار که در همان لحظه آنلاین است، اعتبار هدر بلوک خالی را بررسی میکند. طی اعتبارسنجی، دریافتکنندگان هدر بررسی میکنند که آیا جزء اولین n-1 سهامداران خوششانس این بلوک هستند یا خیر؛ و اگر اینطور باشد، هدر بلوک خالی را با یک کلید مخفی امضا میکنند و آن را به شبکه بلاکچین میفرستند.
- زمانی که nامین سهامدار متوجه شد که او باید بلوک و هدر بلوک خالی را امضا کند، یک بلوک با تراکنشهایی که تعدادشان را خودش مشخص کرده همراه با n-1 امضا از دیگر سهامداران اضافه کرده و سپس بلوک را امضا میکند.
- nامین سهامدار یک بلوک جدید را فرستاده و نودها آن را دریافت میکنند و در صورت اطمینان از صحت آن، بلوک را در بلاک چین به ثبت میرسانند.
- پاداش تراکنشی که توسط nامین سهامدار دریافت شده بین ماینر و دیگر سهامداران پخش میشود.
ارز دیجیتال Decred) DCR) شناختهشدهترین رمزارزی است که از الگوریتم اجماع اثبات فعالیت استفاده میکند. در DCRT بلوکها تقریبا هر پنج دقیقه تشکیل میشوند. فرآیند ماینینگ در آن توسط نودها آغاز میشود که طبق آن نودها جهت تشکیل یک بلوک جدید، بهدنبال راهحلی برای معمایی رمزنگاریشده با یک درجه سختی مشخص میگردند. تا به اینجای کار، عملکرد سیستم شبیه به اثبات کار است.
زمانی که راهحل پیدا شد، در شبکه پخش میشود و سپس شبکه آن را تایید میکند. در این مرحله، سیستم تبدیل به اثبات سهام میشود. هر اندازه که یک نود، DCR بیشتری استخراج کرده باشد، احتمال انتخاب آن برای رأیدهی جهت تولید بلوک بیشتر میشود.
در بلاکچین DCR سهامداران بلیتهایی بهدست میآورند که به آنها در ازای استخراج DCR قدرت رأی میدهد. از استخر بلیتها، پنج بلیت بهصورت شبه تصادفی انتخاب میشود و اگر حداقل سه بلیت برای اعتبار بلوک رأی مثبت دهند، بهصورت دائمی در بلاکچین ثبت میشود. ماینرها و رأیدهندگان از طریق رمزارز DCR پاداش دریافت میکنند.
مکانیزم اجماع PoA از این جهت امن است که فقط در صورتی یک بلوک بهطور دائمی در بلاکچین ثبت میشود که تعداد مشخصی از اعتبارسنجها، آن را بهعنوان یک بلوک معتبر بشناسند. به عبارت دیگر، نمیتوان یک بلوک مخرب را وارد سیستم کرد.
از معایب آن میتوان به این نکته اشاره کرد که الگوریتم اجماع PoA در بخش اول کار خود، دقیقاً همان فرآیند اثبات کار را انجام میدهد که به نیروی کامپیوتری بسیار زیادی احتیاج دارد و یعنی استفاده از این مکانیزم مصرف بالای برق و هزینههای سختافزاری را در پیش دارد.
الگوریتم اجماع اثبات تاریخچه (Proof of History / PoH)
بهجای اعتماد به برچسب زمانی (Timestamp) یک تراکنش، میتوان ثابت کرد که تراکنش در زمانی قبل و بعد از یک رویداد صورت گرفته است. اثبات تاریخچه یک تابع تاخیر قابل تایید با گنجایش بالا است. این تابع تاخیر قابل تایید، نیازمند مراحلی مشخص برای ارزیابی است که میتواند خروجی منحصربهفردی تولید کند که بهطور موثر و توسط عموم قابل تایید باشد.
اثبات تاریخچه سلسله محاسباتی بوده که میتواند گذر زمان بین دو رویداد را از طریق رمزنگاری تایید کند. این الگوریتم اجماع یک تابع امن رمزنگاریشده مینویسد که طی آن، خروجی از طریق ورودی قابل پیشبینی نیست و فرآیند باید برای شناسایی و تولید خروجی بهطور کامل انجام شود.
سولانا (Solana / SOL) اثبات سهام و اثبات تاریخچه را باهم ترکیب کرده و یک الگوریتم اجماع هیبرید (Hybrid) یا پیوندی خلق کرده است. اثبات تاریخچه این اطمینان را داده که یک بلاکچین در عین سرعت بالا، تمرکززدایی در امنیت خود را نیز حفظ میکند. تمام رویدادها و تراکنشها در سولانا از طریق تابع “SHA256” هش میشوند.
سولانا با استفاده از این تابع، یک ورودی را گرفته و خروجی منحصربهفردی تولید میکند که پیشبینی آن بسیار مشکل است و خروجی یک تراکنش بهعنوان ورودی برای هش بعدی استفاده میشود.
اکنون زنجیره تراکنشها در خروجی هششده قرار گرفته است و این فرآیند هشسازی، زنجیرهای طویل و بینقص از تراکنشهای هششده ایجاد میکند. این شیوه عملکرد، زنجیرهای شفاف و قابل تایید از تراکنشها را ایجاد کرده که اعتبارسنجها بدون نیاز به برچسب زمان، آنها را به بلوکها اضافه میکنند.
عملیات هش نیز زمان مشخصی دارد؛ یعنی اعتبارسنج میتواند بهراحتی میزان زمان سپریشده را بررسی کند.
اصلیترین بخش نوآوری سولانا، اثبات تاریخچه است که یک منبع زمانی بدون نیاز به مجوز و قابل دسترس همگانی است که قبل از فرآیند اجماع صورت میگیرد. PoH یک مکانیزم اجماع یا پروتکلی برای مقابله با حملات سیبِل (Sybil) نیست؛ بلکه راهکاری برای مسائل مربوط به زمان است.
با توجه به امنیت موجود، در فرآیند اعتبارسنجی نیازی به نیروی انسانی نیست که موجب شده این فرآیند نسبت به اثبات کار و اثبات سهام چندین برابر سرعت داشته باشد. از این رو، سولانا میتواند تا ۶۵۰۰۰ هزار تراکنش در ثانیه (TPS) را انجام دهد؛ این در صورتی است که این عدد برای بیت کوین ۵ تا ۷ و برای اتریوم تقریبا ۳۰ تراکنش بر ثانیه است.
با این حال، الگوریتم اجماع اثبات تاریخچه پتانسیل زیادی از خود نشان داده و عملکرد آن از بسیاری الگوریتمهای دیگر سریعتر و بهینهتر در مصرف انرژی است. البته که اثبات تاریخچه معایب خود را نیز دارد؛ برای مثال، اعتبارسنجها به نیروی محاسباتی و فضای ذخیره زیادی در سختافزارهای خود جهت اجرای موفقآمیز اثبات تاریخچه نیاز دارند.
الگوریتم اجماع اثبات پوششدهی (Proof of Coverage / PoC)
اثبات پوششدهی الگوریتم مورد استفاده در بلاکچین هلیوم (Hellium / HNT) است. این الگوریتم اجماع با استفاده از امواج رادیویی، عملکرد پوششدهی شبکه بهصورت بیسیم توسط دستگاههای هاتاِسپاتها (Hotspot) را اعتبارسنجی میکنند.
این فرآیند از طریق اضافهشدن بلوکهای جدید، انجام وظایف جدید و پاداش دادن به ماینرها طی میشود. شبکه هلیوم یک شبکه بیسیم فیزیکی است که هدف آن ایجاد پوشش کافی برای کاربرانی است که از طریق دستگاههای خود به آن متصل شدهاند.
از این رو، شبکه هلیوم به یک الگوریتم اجرایی برای رسیدن به این هدف احتیاج دارد. مکانیزم اجماع اثبات پوششدهی از ویژگیهای برتر و منحصربهفرد امواج رادیویی (RF) استفاده کرده تا اثبات یا سند مورد نظر برای شبکه هلیوم و اعضای آن را ایجاد کند.
بهطور کلی، اثبات پوششدهی از قواعد زیر پیروی میکند:
- امواج رادیویی از لحاظ فیزیکی در پخش یا همان مسافت محدودیت دارند.
- قدرت سیگنال رادیویی دریافتی نسبت معکوس با مربع فاصله آن تا فرستنده دارد.
- امواج رادیویی در حالت بهینه با سرعت نور منتقل میشوند.
بلاکچین هلیوم طبق اصول بالا و از طریق مکانیزمی بهنام چالش یا ارزیابی اثبات پوششدهی (PoC Challenge)، بهطور مداوم در حال بازپرسی از هاتاِسپاتها است.
عملکرد بینقص سیستم اثبات پوششدهی به این صورت مشخص میشود که: پوششدهی بیسیم هاتاِسپاتها در شبکه از طریق تولید داده در قالب سندهای پیدرپی و ثبت آنها در بلاک چین، بهصورت قطعی تایید میشود. تا کنون، دهها میلیون چالش در شبکه هلیوم وارد و پردازش شدهاند.
چالش اثبات پوششدهی حاوی سه نقش اصلی است:
- چالشگر یا ارزیاب (Challenger): دستگاه هاتاِسپاتی که چالش PoC را ایجاد و صادر میکند. هاتاِسپاتها معمولاً هر ۳۶۰ بلوک چالشها را صادر میکنند.
- فرستنده (Transmitter): این هاتاِسپات بهعنوان هدف اصلی چالش PoC قرار میگیرد و مسئول ارسال بستههای داده چالش به نزدیکترین هاتاِسپاتها از لحاظ جغرافیایی جهت بررسی آنها است.
- شاهد (Witness): هاتاِسپاتهایی که از لحاظ جغرافیایی نزدیک به فرستنده هستند و وجود بسته داده چالش را پس از دریافت گزارش میدهند.
چالشگر یا ارزیاب در ابتدا یک جفت کلید عمومی/خصوصی موقتی ایجاد میکند تا در چالش مورد استفاده قرار گیرد. جهت ارسال اثبات پوششدهی، یک هش “SHA256” از کلید عمومی و همچنین کلید خصوصی همراه با هش بلوک فعلی فرستاده میشوند.
چنانچه این درخواست معتبر باشد و بلاکچین آن را بپذیرد، هش بلوک و رسیدی که همراه آن ارسال شده با هش کلید عمومی موقت و شناسه چالشگر ادغام میشود تا یک آنتروپی (Entropy) قابل تایید تولید شود. سپس یک عدد تصادفی از طریق آنتروپی تولید شده که جهت انتخاب هدف توسط تمام هاتاِسپاتهای درون شبکه استفاده میشود.
پس از این که بسته داده چالش ایجاد شد، از طریق شبکه همتا به همتا (P2P) هلیوم به فرستنده تحویل داده میشود. هدف مورد نظر بسته داده چالش را دریافت کرده و با استفاده از کلید خصوصی خود و کلید عمومی موقت مخصوص چالش، لایه خارجی آن را رمزگشایی میکند. سپس بلافاصله بسته داده ایجادشده را به شبکه هلیوم میفرستد.
هر هاتاِسپات نزدیک به فرستنده، آن بسته را دریافت و بررسی میکند. پس از بررسی بسته داده، هر هاتاِسپات آن را بهعنوان بخشی از رسید چالش PoC ارسال میکند که توسط چالشگر جمعآوری و سرهم شده و به بلاکچین فرستاده میشود.
در این مرحله، بسته داده توسط گروه اجماع فعلی در بلاکچین مورد تایید قرار میگیرد. از جایی که مراحل ساخت و تکمیل این سند توسط چالشگر قطعی و صحیح بوده است، در نتیجه بهراحتی قابل تکرار است و اعضای گروه اجماع میتوانند صحت آن را تایید کنند.
بین هاتاِسپاتهایی که در انجام این فرآیند نقش داشتهاند، در بازههای زمانی مشخص پاداشهای گوناگونی در قالب رمزارز هلیوم (HNT) توزیع میشود و هرچه میزان دادههای ارسالی بیشتر باشد، پاداش بیشتری نصیب اعضا خواهد شد.
شبکه غیرمتمرکز هلیوم کاملاً رمزنگاری شده، لایههای امنیتی قوی دارد و دسترسی گستردهای به اینترنت را با هزینهای بسیار کمتر از شبکههای اینترنت سنتی فراهم میکند و کاربران تنها برای میزان داده مورد استفاده خود هزینه میکنند.
سخن پایانی
الگوریتم اجماع یک مکانیزم تحمل خطا، مورد استفاده در کامپیوترها و بلاکچینها است که برای یک مقدار داده یا وضعیتی از شبکه در فرآیندهای توزیعشده و سیستمهای چند عاملی مانند رمزارزها، توافق لازم را برقرار میکند. این الگوریتم در عملیات ثبت و ضبط اطلاعات و دیگر موارد کاربرد دارد.
در این بخش ما پروتکلهای اجماع مختلفی همراه با مزایا و معایب آنها را مورد بحث قرار دادیم. هیچ پروتکل اجماعی وجود ندارد که همه قابلیتها را بهصورت یکجا داشته باشد. اکثر بلاکچینها از الگوریتمهای اجماع مانند اثبات کار و اثبات سهام و همینطور گونههای متفاوت آنها استفاده میکنند.
مثلاً الگوریتم اجماع اثبات کار (PoW) در یک پروژه با محوریت ماینینگ کاربرد دارد. اثبات سهام (PoS) برای اعتبارسنجی تراکنشها مناسب است و اثبات سهام نمایندگیشده (DPoS) برای سیستمهای رأیدهی بهصورت شفاف، اثبات اهمیت (PoI) جهت عدم انباشت کوینها، اثبات سوزاندن (PoB) برای کاهش کوینهای در گردش و اثبات زمان سپریشده (PoET) برای برقراری عدالت کاربرد دارند.
بنابراین انتخاب هوشمندانه آنها برای شبکه کسب و کارها اهمیت زیادی دارد، چرا که شبکههای بلاکچین بدون الگوریتمهای اجماع عملکرد صحیحی نخواهند داشت و نمیتوان تراکنشهای آنها را بهدرستی تایید کرد.
از میان تمام این الگوریتمها، اثبات کار تا کنون گزینه برتر بوده است و جایگزینی مطمئنتر و امنتر از آن هنوز پیدا نشده است. البته اخیراً با توجه به بهروزرسانیهای اخیر شبکه اتریوم و همچنین مسائل مرتبط با حفظ محیط زیست، الگوریتم اثبات سهام توجه جامعه رمزارزها را بیش از پیش به خود جلب کرده است. هماکنون تحقیقات و تلاشهای زیادی برای جایگزینی اثبات کار در حال انجام است و احتمالاً در سالهای پیش رو انواع بیشتری از الگوریتم اجماع را شاهد خواهیم بود.
نود در بلاک چین چیست؟
در فضای بلاک چین و رمزارزها، نود (Node) به کامپیوتری گفته میشود که نرمافزار بلاک چین مربوطه را جهت تایید فعالیتها و ذخیرهسازی یک نسخه کامل از آن، اجرا میکند.
ماینر در بلاک چین چیست؟
ماینر نیز مانند نود، عضوی از شبکه بلاک چین است که وظیفه انجام تراکنشها و تولید بلوکها را بهصورت صحیح و دقیق دارد و در روند تولید و صدور رمزارزهای جدید نقش مهمی ایفا میکند.
منابع: Medium, Analyticsindiamag, Geeksforgeeks, Logrocket, Digiforest, Investopedia, Gitbook, Anycoindirect, Binance, Coinmarketcap, Fool, Managementstudyguide, Medium, Hellium
دیدگاهتان را بنویسید