الگوریتم اثبات کار برای اولین بار در سال 1993 برای مبارزه با ایمیل های اسپم در شبکه و حملات انکار سرویس ارائه شد.
مفهوم PoW (Proof of Work) سپس توسط ساتوشی ناکاموتو برای اعتبارسنجی بلوک های جدید در شبکه بیت کوین در سال 2008 رایج شد.این بلوک ها در بلاکچین یک رمزارز برای ثبت تراکنش ها استفاده می شوند که ثبت این بلاک ها در نهایت منجر به استخراج می شود. او با اعتبارسنجی بلاک ها از طریق سیستم PoW توانست مشکلات ارزهای دیجیتال قبلی که به ثمر نرسیدند را حل کند. یکی از آن مشکلات امکان خرج چندباره ی ارز دیجیتال بود. این الگوریتن بر اساس ظرفیت کاربران شبکه برای اثبات انجام یک کار محاسباتی است.
برای پاسخ به یک معادله ریاضی، مقداری توان محاسباتی به نام گره (node) به کار گرفته می شود و پس از حل معادله، یک بلوک جدید در زنجیره اعتبار سنجی می شود. گره هر وسیله فیزیکی مانند رایانه شخصی است که می تواند داده ها را در شبکه ای از ابزارهای دیگر دریافت یا ارسال کند. حلکنندهای که سریعترین پاسخ به یک پازل ریاضی را میدهد، یک پیوند رمزنگاری بین بلوکهای فعلی و قبلی ایجاد میکند و مقداری سکه رمزنگاری تازه ضرب شده به دست میآورد.
حل کننده ها از از نود ها برای دریافت داده های تراکنش ها، انجام محاسبات مربوط به معمای پازل و ارسال پاسخ خود به شبکه استفاده می کنند. این فرآیند به عنوان ماینینگ (یا همان استخراج) و حل کننده ها به عنوان ماینر شناخته می شوند. از طریق تلاش های مشترک آنها است که یک بلاک چین برای همه طرف های درگیر ایمن نگه داشته می شود. علاوه بر این، کار محاسباتی حل این معما خود اثبات کار نامیده می شود.
بلاکچین چیست؟
بلاکچین (BlockChain) یا زنجیره بلوکی، سیستمی برای ثبت و ضبط دادهها به حساب میآید. این دادهها میتوانند برای نمونه تراکنشهای بانکی باشند یا اسناد مالکیت، قرارها، پیامهای شخصی یا دیگر اطلاعات. ویژگی زنجیرهٔ بستکی این است که کار ذخیرهٔ این دادهها بدون وجود یک مدیر و صاحباختیار مرکزی امکانپذیر است و نمیتوان با تخریب یک نقطهٔ مرکزی (مثل هک کردن یک سرور) دادههای ذخیرهشده را تحریف یا نابود کرد. چرا که مدیریت این سیستم با همه اعضای شبکه (نود ها) می باشد و برای هک یا نابودی این شبکه باید اکثر این نود ها را هدف قرار داد. معروفترین کاربرد بلاکچین در رمز ارزها است. همینطور برای قرارد های هوشمند، ثبت اطلاعات پزشکی بیمار و ... نیز کاربرد دارد.
همه رمزارز ها در بستر بلاکچین فعالیت می کنند و سابقه تراکنش ها در بلاک هایی متصل به هم ثبت می شوند.
شبکه بلاکچین هر رمزارزی روش مشخصی برای ثبت این بلاک ها وجود دارد که با آن ماینر ها بر سر استخراج آن ارز دیجیتال رقابت می کنند. روشی که با آن هم امنیت بلاک ها تضمین می شود و هم برای هر بلاک مشخص می کند که کدام ماینر صلاحیت استخراج را دارد. یکی از این روش ها سیستم اثبات کار است که توسط ارز دیجیتال بیت کوین برای اولین بار به کار گرفته شد. این روش متکی بر ثبت یک فیلد اضافی به اسم نانس در کناربقیه تراکنش ها است.
در هر شبکه بلاکچینی هر بلاک حاوی بخش های زیر است:
دیتا (اطلاعات) : که در مثال رمزارز ها، دیتا همان سابقه تراکنش ها می شود.
هش پوینتر: (مفهوم هش یا رمزنگاری در ادامه مقاله شرح داده می شود.)
این فیلد حاوی هش بلاک قبلی است و به بلاک قبلی اشاره می کند. به این طریق همه بلاک ها به هم متصل شده و زنجیره ای از بلاک های متوالی را داریم و از آن جا که هر بلاک جدیدی به آخرین بلاک ثبت شده متصل می شود، این بلاک ها به صورت طبیعی برحسب تقدم زمانی مرتب می شوند.
بلوک پیدایش یا بلوک صفر، اولین بلوک در بلاک چین PoW است که در نرم افزار کدگذاری شده است. این بلوک، طبق تعریف، به بلوک قبلی اشاره نمی کند. بلوکهای بعدی که در بلاک چین آپلود میشوند همیشه به بلوکهای قبلی بازمیگردند و حاوی یک نسخه کامل و بهروز شده دفتر کل هستند.
نانس: این فیلد که فقط در شبکه های بلاکچینی متکی بر PoW وجود دارد برای اعتبار سنجی بلاک است و در هر شبکه بلاکچین، روش اعتبار سنجی می تواند متفاوت باشد.
پس از توضیح هش، این فیلد نیز شرح داده می شود.
بلاک هش: از هش گرفتن (رمزنگاری) همه بخش های قبلی بدست می آید. یعنی رمزنگاری دیتا و هش پوینتر (و همینطور نانس، در سیستم های PoW ). پس از تولید هش بلاک، بلاک بعدی در هش پوینتر خود باید به این هش تولید شده اشاره کند.
همانطور که در تصویر بالا می بینید، در شبکه بلاکچین، هر بلاک دارای یک هش است (در تصویر در بالای هر بلاک نشان داده شده) و هش پوینتر هر بلاک، به هش بلاک قبلی اشاره میکند.
هش چیست؟
هش به تابعی می گویند که در ازای ورودی، یک رشته کاراکتر (متن طولانی) تولید می کند و این تابع برای رمزنگاری (هشینگ) به کار می رود. همچنین به خروجی تولید شده از تابع هش نیز به اختصار هش می گویند.
برای رمزنگاری تابع های متعددی ارائه شده و در بیتکوین از تابع SHA-256 استفاده می شود.
هرهش تعداد ثابتی از حروف را داراست. یعنی فرقی نمی کند که ورودی هش چه باشد، در نهایت طول کاراکتر های تولید شده ثابت است. مثلا در SHA-256 ، 256 بیت وجود دارد.
همچنین محدودیتی در تعداد و طول ورودی های یک تابع هش وجود ندارد. مثلا همانطور که درعکس زیر می بینید، فرقی ندارد که طول ورودی چه باشد، هم برای Hello و هم برای Hello! ، دو خروجی متفاوت ولی با طول یکسان تولید شده.
دفتر کل
لدجر یا دفتر کل، دفتری برای ثبت سابقه تراکنش ها است که همانطور که می توانید حدس بزنید، این مفهوم در بلاک چین به بلاک ها اشاره می کند؛ چرا که همانطور که اشاره شد این تراکنش ها در بلاک های متوالی ثبت می شوند.
اما هر گره باید هر تراکنشی که انجام می دهد را در شبکه اعلام کند. یعنی اگر به نود دیگری پولی واریز کرد در شبکه اطلاع دهد.
همینطور هر نود موظف است که بلاک ها، تراکنش ها و اعلامیه های ثبت بلاک ها که دیگر نود ها در شبکه اعلام می کنند را دریافت و اعتبار سنجی کنند. این اعتبار سنجی در بخش اجماع شرح داده می شود.
در نتیجه دفتر کل همواره دارای تراکنش هایی است که در انتظار ثبت شدن در بلاک و اعلام آن توسط نودی که موفق به حل آن شده به سر می برند. تا قبل از استخراج و ثبت آن ها، این تراکنش ها در استخر حافظه (pool memory) هر نود ذخیره می شود تا نود وارد رقابت با دیگر نو ها بر سر هش گرفتن از این تراکنش ها و ثبت بلاک بعدی بشوند.
این فیلد که در بلاک هر سیستم مبتنی بر PoW وجود دارد، برای امنیت بلاک ها و همینطور مشخص شدن اینکه کدام نود بلاک بعدی را استخراج کند به کار می رود.
رقابت نود ها بر سر تولید هشِ بلاک جدید است و باید دیتا (سابقه تراکنش ها) و هش پوینتر و همینطور نانس را در ورودی تابع هش وارد کنند تا با خروجی آن، هشِ بلاک جدید پیدا شود و ان بلاک به ثبت برسد.
نانس در واقع یک ورودی متنی است که می تواند هر چیزی با هر طولی باشد ولی نباید مقدار عددیِ هش تولید شده، از مقدار مشخصی که آن را هش ریت (hash rate) می نامند بزرگتر باشد.
در واقع پازل این است که نود ها باید همه حالت های ممکن برای نانس را امتحان کنند تا بالاخره هشی تولید شود که از هش ریت پایین تر باشد تا بلاک تولید شده مورد پذیرش بقیه نود ها قرار بگیرد.
سختی شبکه
سختی شبکه (difficulty level) به سخت تر شدن پیدا کردن نانس می گویند. سختی شبکه متغیر است و افزایش (سخت تر شدن) آن یعنی کاهش هش ریت. به عبارت دیگر، از آنجا که هشِ بلاک باید کوچکتر از هش ریت باشد، با کاهش هش ریت، دامنه جواب های قابل قبول کوچکتر شده و پازل سخت تر می شود.
پس از استخراج، به نودی که بلاک جدید را ثبت کرده، پاداش اثبات کار تعلق می گیرد.
بنا بر سیاست های ضد تورمی بیتکوین، سختی شبکه بر حسب قدرت نود ها تعیین می شود و با افزایش توان پردازشی نودها، شبکه سخت تر می شود تا زمانی که استخراج هر بلاک لازم دارد را در حدود ده دقیقه نگه دارد، تا عرضه بیتکوین را با کنترل پاداش اثبات کار، پایین نگه دارد.
پاداش اثبات کار
ماینرهایی که هش را بلاک جدید را پیدا می کنند، سپس آن را به شبکه پخش کرده و به ماینرهای دیگر اجازه بررسی می دهند که آیا پاسخ درست است یا خیر. اگر پاسخ دقیق باشد، بلاک به بلاک چین اضافه می شود و ماینر پاداش بلاک را دریافت می کند. به عنوان مثال، پاداش بلاک فعلی برای استخراج بیت کوین 6.25 بیت کوین است.
سیاست ضد تورمی بیتکوین شامل موارد دیگری نیز می شود :
اجماع در بلاکچین
قبل تر، راجب اعتبار سنجی بلاک ها توسط نود ها صحبت شد اما دقیقا چطور اتفاق می افتد؟
همانطور که اشاره شد، بلاکچین، شبکه ای غیرمتمرکز است و مدیریت آن به عهده شخص، سازمان و یا سروری نیست و همه نود ها به صورت تیمی ان را مدیریت می کنند.
اما چگونه از نزاع و اختلاف بین نود ها جلوگیری می شود؟ فرض کنیم عده ای از نود ها در صدد تقلب در ثبت تراکنش ها به نفع خود هستند و عده دیگری از نود ها آن تراکنش ها را معتبر نمی دانند. چه رخ می دهد؟
اجماع در شبکه باکچین به این معنی است که در صورت چند دستگی، بلاکی نهایتا ثبت می شود که برای اکثریت نود ها معتبر است.
امنیت سیستم PoW
فرض کنید نودی هیچ نقدینگی ندارد و بخواهد پولی انتقال دهد. آن نود تراکنش خود را اعلام می کند و دیگر نود ها با بررسی (به ترتیب زمانی) همه بلاک های ثبت شده، موجودی آن نود را بدست می اورند و در اجماع، آن تراکنش غیر معتبر تلقی می شود.
برای اینکه شخصی بخواهد این موضوع را دور بزند، یا باید اکثریت نود ها را هک کند، که تعداد بالایی نود وجود دارد، یا باید توان پردازشی زیادی تهیه کند که خود به تنهایی حداقل 51 درصد آرا را در دست بگیرد (معروف به حمله 51 درصد) که برای این کار باید هزینه زیادی کند که نمی صرفد، و یا باید بلاک های ثبت شده را دستکاری کند.
اما به دلیل ساختار زنجیره ای بلاکچین چنین کاری عملی نیست.
ساختار زنجیره ای بلاکچین مانند این است که ما گاوصندوق هایی در کنار هم چیده باشیم و کلید هر کدام را در گاوصندوق سمت چپی آن بگذاریم و در هایشان را ببندیم. برای درک بهتر نگاهی دیگر به این عکس بیندازید.
بنابراین شما برای باز کردن گاوصندوق واقع در سمت راست، نیاز دارید کلید آن را از گاوصندوق سمت چپی بردارید و اما سمت چپی هم قفل است و کلیدش در گاو صندق سمت چپ خودش؛ به همین ترتیب شما باید برای باز کردن صندوق آخر، از اولین صندوق شروع کنید و کلید دومین گاوصندق را بدست بیاورید تا با باز کردن به ترتیب همه آن ها به گاوصندق آخر برسید.
از آن جا که با سختی شبکه ای که تعریف شده، توان پردازشی زیادی برای استخراج هر بلاک لازم است و این که برای جعل یک بلاک نیاز به جعل بلاک های قبلی آن هم داریم، به توان پردازشی خیلی بالایی نیاز است که این امر را نا ممکن می کند.
چرا که در نهایت کوچکترین تغییری در تراکنش های یک بلاک سبب می شود که تابع هش برای آن بلاک هش متفاوتی تولید کند که که با هش پوینتر بلاک بعدی متفاوت می شود که باعث می شود این زنجیره قطع شده، و در نهایت در اجماع نا معتبر شناخته شود.
مزایای سیستم های مالی مبتنی بر بلاکچین
این سیستم از سرعت بالایی برخوردار است و خارج از تحریم های بانکی است.
امنیت بالایی دارد چرا که اجماع و غیر متمرکز بودن این سیستم سبب می شود که اقلیتی در راس امور آن قرار نگیرد و تقلب و تخریب پذیری ناممکن شود.
محمدجواد مبشری MJM
با توجه به گسترش روز افزون ارزهای دیجتال غول بیت پلتفرم یا به اصطلاح صرافی دیجیتالیست که هر کاربر ارزهای دیجیتال در جهان به آن نیاز دارد ما تمام مبادلات بین کریپتوهای مختلف و ارزهای دیجیتال را انجام می دهیم آیا می خواهید سیستمی امن و ساده مبادلات ارزهای دیجیتال خود را انجام دهید؟ غول بیت این امکان را برای شما فراهم کرده است. سیستم معاملاتی غول بیت زیر نظر نخبگان امنیت شبکه کشور رصد می شود و بالاترین امنیت را درسیستم خود دارا می باشد سیستم معاملاتی غول بیت زیر نظر نخبگان امنیت شبکه کشور رصد می شود و بالاترین امنیت را درسیستم خود دارا می باشد.