الگوریتم اثبات کار (Proof of work) چیست؟ و در بیت کوین چگونه کار می کند؟

اثبات کار

آشنایی با مفهوم اثبات کار

شما یاد خواهید گرفت که اثبات کار چیست ، هش کردن چگونه کار می کند و سیستم اثبات کار بیت کوین چگونه کار می کند.

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

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

اخیراً، سیستم‌های اثبات کار به دلیل استفاده‌ی یکپارچه در ارزهای رمزنگاری شده مانند بیت کوین و اتریوم، که توسط ماینرها برای امنیت شبکه استفاده می‌شوند، محبوب گشته‌اند.

آنچه یاد خواهید گرفت

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

هش کردن (هشینگ) چگونه کار می‌کند؟

برای درک سیستم اثبات کار بیت کوین، ابتدا باید مشخص نماییم که هش چیست. هش یا به عبارت دیگر digest، نتیجه‌ای است که توسط یک تابع هش مانند SHA-256 (همان مورد استفاده شده توسط شبکه‌ی بیت کوین) تولید می‌شود.

نحوه‌ عملکرد تابع هش به شرح زیر است:

  • مقداری ورودی می‌گیرد – این ورودی می‌تواند هر ترکیبی از حروف، اعداد و نمادها باشد.
  • با استفاده از توابع ریاضی، ورودی پردازش گردیده و نتیجه‌ای به نام digest (هش) تولید می شود. در مورد SHA-256، digest دنباله‌ای به طول ۲۵۶ از یک‌ها و صفرها است.
  • ورودی یکسان همیشه منجر به digest یکسانی می‌گردد.
  • صرف نظر از حدس زدن، هیچ راه شناخته شده‌ای برای دانستن اینکه ورودی بر اساس یک هش داده شده چیست، وجود ندارد.

به طور دقیق‌تر، اگر ما به محاسبه‌گر هش Sha-256 متعلق به Xorbin برویم و “bitcoin” را به عنوان داده‌ای که می‌خواهیم هش کنیم ارائه دهیم، نتیجه همیشه بدین صورت خواهد بود

۶b88c087247aa2f07ee1c5956b8e1a9f4c7f892a70e324f1bb3d161e05ca107b

حتی یک تغییر جزئی در پیام منجر به ایجاد یک هش کاملا متفاوت می‌شود. به عنوان مثال، اگر “bitcoin” را به “bitcoins” تغییر دهیم، هش به این فرم تبدیل می‌گردد

b1e84e5753592ece4010051fab177773d917b0e788f7d25c74c5e0fc63903aa9

همانطور که مشاهده می‌کنید، این نتیجه‌ای کاملا متفاوت است حتی اگر فقط یک حرف به ورودی اضافه کنیم.

ذکر این نکته مهم است که رشته‌های فوق نمایانگر مبنای ۱۶ دنباله‌ی ۲۵۶ بیتی یک‌ها و صفرهای تولید شده توسط SHA-256 هستند.

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

سیستم اثبات کار بیت کوین چگونه کار می‌کند؟

اثبات کار

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

چگونه شبکه‌ بیت کوین سختی را تنظیم می‌کند؟

شبکه‌ی بیت کوین به روشی راه‌اندازی شده است که بلاک‌ها به‌طور متوسط ​​هر ۱۰ دقیقه استخراج شوند. از آنجا که قدرت استخراج می‌تواند با گذشت زمان بالا و پایین شود، بلاک چین با تغییر دادن یک عددِ هدف،  میزان راحتی دستیابی  به بلوک جدید توسط ماینرها را کنترل میکند. (همه‌ی این‌ها را در بخش بعدی توضیح خواهیم داد).

این عدد هدف برای  ۲۰۱۶ بلاک یا تقریباً هر ۲ هفته تنظیم شده است. اگر استخراج ۲۰۱۶ بلاک قبلی بیش از ۲ هفته طول کشید، عدد هدف به طور متناسب و در جهت عکس افزایش می‌یابد تا استخراج راحتتر گردد.

عدد هدف فقط یک عدد بسیار بزرگ می‌باشد و معکوس میزان سختی معادله ای که ماینرهای برای دستیابی به بلوک معتبر باید حل کنند می‏باشد.

به عنوان مثال، اگر عدد مورد نظر برای ۲۰۱۶ بلاک گذشته ۱۰۰۰ باشد، بیایید نحوه‌ی محاسبه برای ۲۰۱۶ بلاک بعدی را بررسی کنیم. شبکه‌ی بیت کوین با استفاده از نمایشگر زمان در سرتیتر هر بلاک متوجه می‌شود که چند دقیقه طول کشیده است تا ۲۰۱۶ بلاک آخر استخراج گردد.

در مثال ما، فرض کنیم که بیش از ۲ هفته یا ۲۱۱۶۰ دقیقه طول کشید (۲۰۱۶۰ دقیقه برابر با ۲ هفته است). عدد هدف جدید برای ۲۰۱۶ بلاک بعدی برابر خواهد بود با عدد  ۱۰۰۰ هدف قبلی ضرب در (۲۱۱۶۰ / ۲۰۱۶۰).

این مطلب را حتما بخوانید:  معرفی انواع استانداردهای انتقال ارزهای دیجیتال

این عدد ۱۰۰۰  در ۱.۰۴۹۶۰۳۱۷۴۶ ضرب می‌شود، یعنی در حدود ۱۰۴۹. همانطور که توضیح دادیم، افزایش عدد هدف سختی استخراج برای ماینرها را کاهش می‌دهد و از آنجا که، در مثال ما استخراج ۲۰۱۶ بلاک گذشته بیش از ۲ هفته‌ی مورد انتظار طول کشید این تغییر دقیقاً همان چیزی است که ما به دنبال آن هستیم.

چگونه ماینرها بلاک‌های معتبر را پیدا می‌ کنند؟

اثبات کار

این یک تصور غلط رایج است که ماینرهای بیت کوین برای تأیید بلاک پیشنهادی خود سعی در یافتن یک عدد با تعداد مشخصی صفرِ ابتدای رشته دارند.

به عبارت ساده تر، برای یافتن یک بلاک معتبر، ماینرها باید عددی را که کمتر یا مساوی با عددی است که در بالا ذکر کردیم حدس بزنند.

از نظر آماری شانس یافتن همچین عددی ، با استفاده از میزان زمان صرف شده برای دستیابی به آن به راحتی محاسبه می شود.

داده‌ های سرتیتر بلاک

برای توضیح چگونگی فرایند کار، ابتدا باید نشان دهیم که هر بلاک در شبکه‌ی بیت کوین در سرتیتر خود شامل چه داده‌هایی است:

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

بیایید نگاهی به مشخصات خاص بیندازیم. سیستم اثبات کار بیت کوین از SHA-256 برای تابع هش کردن خود استفاده می‌کند. عددی که ماینرها سعی می‌کنند حدس بزنند کمتر از عدد هدف تعیین شده توسط شبکه‌ی بیت کوین و دوبرابر هش SHA-256 از کل اطلاعات سرتیتر بلاک می‌باشد.

تمام داده‌ های فوق با استفاده از SHA-256 با هم هش می‌شوند و سپس نتیجه دوباره هش SHA-256 می‌گردد که یک عدد ۲۵۶ بیتی تولید می‌کند. اگر این عدد کمتر یا برابر با عدد هدف باشد و تراکنش‌ها در بلاک قوانین اعتبارسنجی را نقض نکنند، بلاک معتبر در نظر گرفته می‌شود. در غیر این صورت، ماینر حدس زدن را ادامه می‌دهد.

نانس

اثبات کار

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

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

صفرهای پیشتاز

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

به عنوان مثال، بیایید بلاک پیدایش بیت کوین را بررسی کنیم. اولین عدد هدف تعیین شده توسط ساتوشی ناکاموتو بدین صورت بود

۲۶۹۵۹۵۳۵۲۹۱۰۱۱۳۰۹۴۹۳۱۵۶۴۷۶۳۴۴۷۲۳۹۹۱۳۳۶۰۱۰۸۹۸۷۳۸۵۷۴۱۶۴۰۸۶۱۳۷۷۷۳۰۹۶۹۶۰

که همانطور که مشاهده می‌کنید عددی فوق‌العاده زیاد است.

برای نشان دادن صفرهای پیشتاز، باید عدد فوق را به فرمت باینری با ۲۵۶ بیت تبدیل کنیم که نتیجه به شکل زیر می‌باشد:

۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰.

هدف از هش بلاک پیدایش، همانطور که توضیح داده شد، آن است که یک عدد کمتر یا مساوی با عدد هدف باشد و اولین موردی که توسط اولین ماینر بیت کوین یافت شد، بدین صورت بود

۱۰۶۲۸۹۴۴۸۶۹۲۱۸۵۶۲۰۸۴۰۵۰۱۴۳۵۱۹۴۴۴۵۴۹۵۸۰۳۸۹۴۶۴۵۹۱۴۵۴۶۷۴۰۱۹۳۴۵۵۵۶۰۷۹.

همچنین این عدد در قالب باینری (۲۵۶ بیتی)، دارای تعداد زیادی از صفرهای ابتدای رشته است، بدین صورت

۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱۱۰۰۱۱۱۰۱۰۱۱۰۰۱۱۰۱۰۰۰۱۰۰۱۱۱۰۰۰۰۰۰۱۰۰۰۰۱۰۱۱۰۱۰۱۱۱۰۰۰۰۱۰۱۱۰۰۱۰۱۱۰۰۰۰۰۱۱۰۰۰۱۱۱۱۰۱۰۰۱۰۰۱۱۰۱۰۰۱۱۱۱۱۱۱۱۰۱۱۱۰۱۱۰۰۰۱۱۱۰۱۰۱۱۱۰۰۱۰۰۰۱۱۰۱۰۱۰۰۰۱۰۱۰۱۰۰۱۱۰۱۱۰۰۰۰۰۱۰۱۱۱۰۰۱۰۱۰۱۱۰۰۱۱۱۱۱۱۰۰۰۱۱۰۱۱۰۱۱۰۰۰۰۰۱۰۱۰۱۰۰۰۱۱۰۰۱۱۱۰۰۰۱۰۰۱۱۰۱۱۱۱.

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

این کار نوعی بازی حدس زدن می‌باشد، اما همانطور که توضیح دادیم کمی متفاوت است. از آنجا که SHA-256 یک هش ۲۵۶ بیتی تولید می‌کند، بیشترین عددی که می‌تواند توسط آن تولید شود منهای ۱ است (ما با ۰ شروع می‌کنیم)، که عدد نجومی عظیمی می‌باشد، بسیار بزرگتر از حداکثر هدفی است که می‌تواند توسط شبکه‌ی بیت کوین تعیین شود.

اینجاست که رابطه‌ای معکوس بین عدد هدف و سختی به وجود می‌آید.

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

نحوه محاسبه‌ی شانس یافتن بلاک معتبر

اثبات کار

به عبارتی ساده‌تر، فکر کنید که سعی دارید برای عددی کمتر یا برابر با ۳ قرعه‌کشی نمایید، در صورتی که مقدار حداکثر در این بازی ساختگی برای حدس زدن، ۱۰ می‌باشد. شانس شما برای پیروزی ۳ تقسیم بر ۱۰ یا ۳۰ درصد است، که ۳ نشان‌دهنده‌ی عدد هدف از شبکه‌ی بیت کوین می‌باشد.

این مطلب را حتما بخوانید:  اثبات سهام (Proof Of Stake) چیست؟ چگونه در اتریوم پیاده سازی می شود؟

بازی حدس زدن سیستم اثبات کار بیت کوین به همان روش کار می‌کند، اما از اعداد بسیار بزرگتری استفاده می‌نماید.

از آنجا که می‌توانیم شانس پیدا کردن یک عدد معتبر برای یک بلاک جدید را محاسبه کنیم، می‌توانیم به‌راحتی به‌طور متوسط​​، تعداد حدس‌هایی که برای یافتن یک بلاک جدید نیاز است را محاسبه نماییم.

در بلاک پیدایش بیت کوین، شانس یافتن عدد مناسب ۱/۴۲۹۵۰۳۲۸۳۲ یا تقریباً یک در ۴.۳ میلیارد بود. بنابراین، پس از حدود ۴.۳ میلیارد تلاش نانسی، آمارها حکایت از این دارد که احتمال یافتن یک بلاک معتبر بسیار خوب است.

البته این موضوع به‌طور متوسط ​​است. در واقعیت، بعضی اوقات بلاک‌ها سریع‌تر و گاهی کندتر پیدا می‌شوند. اما بر اساس احتمال می‌توان میانگین زمان بلاک را برآورد نمود.

همانطور که قبلاً توضیح دادیم، شبکه‌ی بیت کوین هر ۲۰۱۶ بلاک عدد هدف را دوباره تنظیم نموده و سعی می‌کند به وعده‌ی خود در مورد پیدا کردن بلاک‌های جدید هر ۱۰ دقیقه عمل نماید.

و بدین گونه مکانیسم اجماع اثبات کار بیت کوین کار می‌کند.

چرا از اثبات کار در بیت کوین استفاده می‌شود؟

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

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

انگیزه برای ماینرها پاداش بلاک و هزینه‌ی ترکانش‌ها است، ییعنی هربار ک آنها لاکی را ایجاد میکنند با توجه به استاندارد شبکه پاداش می‌گیرند. در زمان نگارش این مقاله پاداش بیت کوین ۶.۲۵ BTC می‌باشد و قرار است در سال ۲۰۲۴ دوباره نصف شود.

جمع‌بندی

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

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

در هر ۲۰۱۶ بلوک، عدد هدف بر اساس زمانی که برای ایجاد ۲۰۱۶ بلاک پیشین لازم بود تنظیم می‌گردد.

اگر این کار بیش از ۲ هفته طول بکشد، سختی کاهش می‌یابد و بالعکس. هدف این است که همیشه این کار را انجام دهیم تا بلاک‌های جدیدی پیدا شود، بدون توجه به قدرت هش ترکیبی تمام ماینرها در شبکه‌ی بیت کوین به‌طور متوسط ​​هر ۱۰ دقیقه این عمل صورت می‌گیرد.

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

چطور با تخفیف کارمزد در صرافی های ارز دیجیتال ثبت نام کنیم؟

نام صرافی تخفیف کارمزد IP خارج از ایران لینک ثبت نام
کوینکس دارد نیاز ندارد ثبت نام با تخفیف کارمزد
بایننس دارد نیاز دارد ثبت نام با تخفیف کارمزد
تبدیل دارد نیاز ندارد ثبت نام با تخفیف کارمزد
نوبیتکس دارد نیاز ندارد ثبت نام با تخفیف کارمزد
اوکی اکسچنج دارد نیاز ندارد ثبت نام با تخفیف کارمزد

توجه: برای انجام معامله در بایننس حتما با آی پی خارج از ایران (کشورهایی مثل ترکیه، فنلاند، سنگاپور و روسیه) وارد شوید!

ترتیبی که برای خواندن مقالات" مفاهیم تخصصی ارزهای دیجیتال "به شما پیشنهاد می‌کنیم:
دیدگاهتان را بنویسید

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

ترتیبی که برای خواندن مقالات مربوطه به شما پیشنهاد می‌کنیم: