title
اثبات کار اولین الگوریتم اجماع بود که ظاهر شد و تا به امروز الگوریتم غالب باقی مانده است. این فناوری توسط ساتوشی ناکاموتو در وایت پیپر بیت کوین در سال ۲۰۰۸ (۱۳۸۷) معرفی شد، اما خود این فناوری مدتها قبل از آن تصور شده بود.
هش کش (HashCash) آدام بک، یک نمونه اولیه از الگوریتم اثبات کار در روزهای قبل از ارزهای دیجیتال است. با الزام فرستندهها به انجام مقدار کمی محاسبات قبل از ارسال ایمیل، گیرندهها میتوانند اسپم را کاهش دهند. این محاسبه تقریباً برای یک فرستنده قانونی هیچ هزینهای ندارد، اما به سرعت برای کسی که به صورت انبوه ایمیل ارسال میکند، به طور فزاندهای جمع میشود.
هزینه مضاعف چیست؟
هزینه مضاعف زمانی رخ میدهد که یک وجه بیش از یک بار خرج شود. این اصطلاح تقریباً به طور انحصاری در زمینه پول دیجیتال استفاده میشود؛ همانطور که شما برای هزینه مضاعف همان پول نقد فیزیکی با مشکل مواجه خواهید شد؛ برای مثال وقتی امروزه برای یک قهوه پول میپردازید، پول نقد را به صندوقدار تحویل میدهید که احتمالاً آن را در یک صندوق قفل میکند. شما نمیتوانید به کافی شاپ آن طرف جاده بروید و با همان قبض پول قهوه دیگری را بپردازید.
در طرحهای نقدی دیجیتال، این امکان وجود دارد که بتوانید با یک وجه دوبار خرید انجام دهید. مطمئناً قبلاً یک فایل رایانه را کپی کردهاید؛ فقط آن را کپی و جایگذاری کنید. میتوانید همان فایل را برای ده، بیست، پنجاه نفر ایمیل کنید. از آنجایی که پول دیجیتال فقط داده است، باید از کپی کردن و خرج کردن واحدهای مشابه در مکانهای مختلف جلوگیری کنید. در غیر این صورت، ارز شما در کوتاهترین زمان ممکن سقوط میکند.
چرا اثبات کار ضروری است؟
کاربران تراکنشها را در شبکه پخش میکنند. با این حال، آن تراکنشها بلافاصله معتبر تلقی نمیشوند. اعتبار بخشی تراکنشها تنها زمانی اتفاق میافتد که آنها به شبکه بلاک چین اضافه شوند. بلاک چین یک پایگاه داده بزرگ است که هر کاربر میتواند آن را ببیند، بنابراین آنها میتوانند بررسی کنند که آیا قبلاً بودجه یا این وجه خرج شده است یا خیر. آن را اینگونه تصور کنید: شما و سه دوستتان یک دفترچه یادداشت دارید. هر زمان که یکی از شما بخواهد هر واحدی را که استفاده میکنید انتقال دهد، آن را یادداشت میکنید؛ آلیس به باب پنج واحد پرداخت میکند، باب به کارول دو واحد پرداخت میکند و غیره.
با این حال پیچیدگی دیگری در اینجا به وجود میآید: هر بار که معاملهای انجام میدهید، به تراکنشی که وجوه از آنجا آمده است اشاره میکنید. بنابراین، اگر باب دو واحد به کارول پرداخت میکرد، ورودی اطلاعات تراکنش در واقع به شکل زیر خواهد بود: باب دو واحد از معامله قبلی با آلیس را به کارول پرداخت میکند.
اکنون، ما راهی برای ردیابی واحدها داریم. اگر باب سعی کند با استفاده از همان واحدهایی که به کارول فرستاده تراکنش دیگری انجام دهد، همه بلافاصله متوجه خواهند شد. گروه اجازه نمیدهد تراکنش به دفترچه یادداشت اضافه شود.
اکنون، این ممکن است در یک گروه کوچک به خوبی کار کند؛ همه یکدیگر را میشناسند، بنابراین احتمالاً در مورد اینکه کدام یک از دوستان باید تراکنشها را به دفترچه یادداشت اضافه کنند، توافق خواهند کرد. اگر یک گروه ۱۰,۰۰۰ نفری شرکت کننده بخواهیم چطور؟ ایده دفترچه یادداشت به خوبی مقیاس بندی نمیشود، زیرا هیچ کس نمیخواهد به یک غریبه برای مدیریت آن اعتماد کند.
اینجاست که اثبات کار (Proof of Work) مطرح میشود. اثبات کار تضمین میکند که کاربران پولی را که حق خرج کردن آن را ندارند، خرج نمیکنند. با استفاده از ترکیبی از نظریه بازی و ارزهای دیجیتال، یک الگوریتم اثبات کار هر کسی را قادر میسازد تا بلاک چین را مطابق با قوانین سیستم بهروزرسانی کند.
اثبات کار چگونه کار میکند؟
دفترچه یادداشت بالای ما در اینجا بلاک چین است. اما ما تراکنشها را یک به یک اضافه نمیکنیم، در عوض، آنها را به بلاک تبدیل میکنیم. ما تراکنشها را به شبکه اعلام میکنیم، سپس کاربرانی که یک بلاک ایجاد میکنند، آنها را در یک بلاک کاندید قرار میدهند. تراکنشها تنها زمانی معتبر تلقی میشوند که بلاک اعلامی آنها به یک بلاک تأیید شده تبدیل شود، به این معنی که به بلاک چین اضافه شده است.
با این حال، اضافه کردن یک بلاک ارزان نیست. اثبات کار مستلزم آن است که یک ماینر (کاربر ایجاد کننده بلاک ) از برخی منابع خود برای امتیاز اعتبار بخشی استفاده کند. آن منبع قدرت محاسباتی است که برای هش کردن دادههای بلاک تا زمانی که راه حلی برای یک معما پیدا شود استفاده میشود.
هش کردن دادههای بلاک به این معنی است که شما آن را از طریق یک تابع هش عبور میدهید تا هش بلاک ایجاد شود. هش بلاک مانند یک اثر انگشت عمل میکند؛ این یک هویت برای دادههای ورودی شما است و برای هر بلاک منحصر به فرد است.
معکوس کردن هش بلاک برای دریافت دادههای ورودی عملاً غیرممکن است. با این حال، دانستن یک ورودی، برای شما بی اهمیت است که تأیید کنید هش درست است؛ و شما فقط باید ورودی را از طریق تابع ارسال کنید و بررسی کنید که آیا خروجی یکسان است یا خیر.
در الگوریتم اثبات کار، باید دادههایی را ارائه دهید که هش آنها با شرایط خاصی مطابقت داشته باشد. اما خودتان نمیدانید چگونه به آنجا بروید. تنها گزینه شما این است که دادههای خود را از طریق یک تابع هش ارسال کنید و بررسی کنید که آیا با شرایط مطابقت دارد یا خیر. اگر اینگونه نبود، باید اطلاعات خود را کمی تغییر دهید تا هش متفاوتی دریافت کنید. تغییر حتی یک کاراکتر در دادههای شما نتیجهای کاملا متفاوت خواهد داشت، بنابراین هیچ راهی برای پیش بینی خروجی وجود ندارد.
در نتیجه، اگر میخواهید یک بلاک ایجاد کنید، در حال انجام یک بازی حدس زدن هستید. شما معمولاً اطلاعات مربوط به تمام تراکنشهایی را که میخواهید اضافه کنید و برخی دادههای مهم دیگر را میگیرید، سپس همه را با هم هش میکنید. اما از آنجایی که مجموعه داده شما تغییر نمیکند، باید اطلاعاتی را اضافه کنید که متغیر باشد. در غیر این صورت، شما همیشه همان هش را به عنوان خروجی دریافت خواهید کرد. این داده متغیر همان چیزی است که ما آن را نانس (nonce) مینامیم. این داده متغیر عددی است که با هر تلاشی آن را تغییر میدهید، بنابراین هر بار هش متفاوتی دریافت میکنید. تمام این کارها همان چیزی است که ما به آن ماینینگ میگوییم.
به طور خلاصه، ماینینگ فرآیند جمعآوری دادههای بلاک چین و هش کردن آن به همراه یک نانس است تا زمانی که هش خاصی را پیدا کنید. اگر هش پیدا کنید که شرایط تعیین شده توسط پروتکل را برآورده کند، حق پخش بلاک جدید را به شبکه دارید. در این مرحله، سایر شرکتکنندگان شبکه، بلاکچینهای خود را بهروزرسانی میکنند تا بلاک جدید را در برگیرند.
برای ارزهای دیجیتال اصلی امروزه، شرایط فوقالعاده چالش برانگیز است. هرچه نرخ هش در شبکه بیشتر باشد، یافتن هش معتبر دشوارتر است. این کار برای اطمینان از اینکه بلاک ها خیلی سریع پیدا نمیشوند انجام میشود.
همانطور که میتوانید تصور کنید، تلاش برای حدس زدن مقادیر زیادی هش میتواند روی رایانه شما گران تمام شود. شما چرخههای محاسباتی و برق را استفاده میکنید. اما اگر هش معتبری پیدا کنید، این پروتکل به شما ارز دیجیتال را پاداش میدهد.
بیایید آنچه را که تا کنون میدانیم خلاصه کنیم:
برای شما گران است که استخراج کنید. اگر یک بلاک معتبر تولید کنید، پاداش دریافت خواهید کرد. با دانستن یک ورودی، کاربر میتواند به راحتی هش آن را بررسی کند، کاربران غیر ماینینگ میتوانند اعتبار یک بلاک را بدون صرف توان محاسباتی زیاد تأیید کنند.
تا کنون خیلی خوب. اما اگر بخواهید تقلب کنید چه؟ چه چیزی شما را از قرار دادن یکسری تراکنشهای تقلبی در بلاک و تولید یک هش غیرمعتبر باز میدارد؟
اینجاست که کلید عمومی ارزهای دیجیتال وارد میشود. ما در این مقاله به طور عمیق نخواهیم به این کلید عمومی پرداخت، برای یک نگاه جامع به آن به طور خلاصه، ما از ترفندهای رمزنگاری دقیقی استفاده میکنیم که به هر کاربری اجازه میدهد بررسی کند که آیا شخصی حق دارد وجوهی را که میخواهد خرج کند، جابجا کند یا خیر.
وقتی تراکنش ایجاد میکنید، آن را امضا میکنید. هر کسی در شبکه میتواند امضای شما را با کلید عمومی شما مقایسه کند و بررسی کند که آیا آنها مطابقت دارند یا خیر. آنها همچنین بررسی میکنند که آیا واقعاً میتوانید وجوه خود را خرج کنید و مجموع ورودیهای شما از مجموع خروجیهای شما بیشتر است (یعنی اینکه بیش از آنچه دارید خرج نمیکنید).
هر بلاکی که شامل تراکنش نامعتبر باشد به طور خودکار توسط شبکه رد میشود. حتی تلاش برای تقلب برای شما گران است. شما منابع خود را بدون هیچ پاداشی هدر خواهید داد.
اثبات کار در مقابل اثبات سهام
الگوریتمهای اجماع زیادی وجود دارد، اما یکی از مورد انتظارترین الگوریتمهای اثبات سهام (اثبات سهام ) است. این مفهوم به سال ۲۰۱۱ (۱۳۹۰) برمیگردد و در برخی از پروتکلهای کوچکتر پیاده سازی شده است. اما هنوز در هیچ یک از بلاک چینهای بزرگ شاهد پذیرش آن نبوده است.
در سیستمهای اثبات سهام، ماینرها با اعتبارسنجی جایگزین میشوند. هیچ ماینینگی در کار نیست و مسابقهای برای حدس زدن هش وجود ندارد. در عوض، کاربران بهطور تصادفی انتخاب میشوند؛ اگر انتخاب شوند، باید یک بلاک را پیشنهاد یا جعل کنند. اگر بلاک معتبر باشد، پاداشی متشکل از کارمزدهای تراکنشهای بلاک دریافت خواهند کرد.
اگرچه هر کاربری را نمیتوان انتخاب کرد، پروتکل آنها را بر اساس تعدادی از عوامل انتخاب میکند. برای واجد شرایط بودن، شرکت کنندگان باید سهامی را که مقدار از پیش تعیین شده ارز بومی بلاک چین است، در میان داراییهای خود قفل کنند. این سهام مانند وثیقه عمل میکند: همانطور که متهمان مبلغ زیادی پول میپردازند تا آنها را از غیبت از محاکمه بازدارند، اعتبار دهندگان یک سهام را قفل میکنند تا از تقلب جلوگیری کنند. اگر آنها غیر صادقانه عمل کنند، سهام آنها یا بخشی از آن گرفته میشود.
اثبات سهام نسبت به اثبات کار مزایایی دارد. قابل توجهترین مزیت این الگوریتم ردپای کربن کمتر است، از آنجایی که نیازی به مزارع ماینینگ پرقدرت در اثبات سهام وجود ندارد، الکتریسیته مصرف شده تنها کسری از برق مصرفی در اثبات کار است.
گفته میشود، هیچ الگوریتمی نزدیک به سابقه اثبات کار نیست. در بیش از یک دهه، این الگوریتم تراکنشهای به ارزش تریلیونها دلار را تضمین کرده است. برای اینکه با اطمینان بگوییم که آیا اثبات سهام میتواند با امنیت با الگوریتم اثبات کار رقابت کند، باید بسیار و در محیط و شرایط مختلف آزمایش شود.
نتیجهگیری کلی:
اثبات کار راه حل اصلی برای مشکل دوبار خرج کردن بود و ثابت شده است که قابل اعتماد و ایمن است. بیت کوین ثابت کرد که ما نیازی به نهادهای متمرکز نداریم تا از دوبار خرج شدن وجوه مشابه جلوگیری کنیم. با استفاده هوشمندانه از ارزهای دیجیتال، توابع هش و تئوری بازی، شرکت کنندگان در یک محیط غیرمتمرکز میتوانند در مورد وضعیت یک پایگاه داده مالی به توافق برسند.
منبع:academy.binance
لینک کوتاه: b2n.ir/d50649