اثبات کار (Proof Of Work) داده ای است که ایجاد آن سخت (زمان و هزینه بر) است ولی تایید آن برای دیگران ساده است و این کار یک سری از نیاز ها را برطرف می کند. ساخت اثبات در فرآیندی تصادفی با احتمال پایین انجام می شود بنابراین به طور متوسط در این کار کلی خطا و موارد موقتی به وجود می آید تا یک اثبات کار تایید شده ساخته شود. ارز دیجیتالی بیت کوین از سیستم اثبات کار Hashcash استفاده می کند.
یکی از کاربرد ها برای استفاده از این ایده از Hashcash به عنوان روشی برای جلوگیری از ایمیل های اسپم یا هرزنامه ها استفاده می کند که در محتوای هر ایمیل اثبات کار (شامل آدرس گیرنده) درخواست می کند. ایمیل های سالم و بدون مشکل می توانند کار را برای ساخت اثبات به سادگی انجام دهند(برای یک ایمیل کار زیادی نیاز نیست) ولی ایمیل دهندگان اسپم در حجم گسترده با ساخت اثبات های مورد نیاز با مشکل مواجه خواهند شد (که نیاز به منابع محاسباتی عظیم دارد).
اثبات های کتر Hashcash در ساخت بلاک بیت کوین مورد استفاده قرار می گیرد. به منظور این که یک بلاک توسط اعضای شبکه مورد قبول واقع شود، ماینر ها باید اثبات کار را که تمام داده های بلاک را پوشش می دهد، تکمیل کنند. سختی این کار به این منظور تعیین شده است تا نرخ ساخت بلاک ها توسط شبکه را به هر یک در ده دقیقه محدود کند. به دلیل احتمال پایین در ساخت موفقیت آمیز، این که کدام کامپیوتر مشغول در شبکه می تواند بلاک بعدی را بسازد، را غیر قابل پیش بینی می کند.
برای این که یک بلاک تایید شود باید هشی با مقدار کمتر یا برابر با هش هدف ساخته شود. به این معناست که هر بلاک نشانگر این است که کاری که انجام شده باعث ساخت آن بلاک شده است. هر بلاک شامل هش بلاک قبلی می شود که در این صورت هر بلاک دارای زنجیره ای از بلاک هاست که با یکدیگر مقدار کار زیادی را شامل می شوند. تغییر یک بلاک (که فقط در صورتی امکان پذیر است که یک بلاک جدید با مقادیر قبلی ساخته شود) نیازمند این است که تمام جانشین هایش دوباره ساخته شوند و کار هایی را که شامل می شوند را دوباره انجام دهند. این کار باعث حفاظت از زنجیره بلاک ها در برابر نفوذ و دستکاری می شود.
رایج ترین نمای مورد استفاده در اثبات کار بر پایه رمزنگاری SHA-256 است و به عنوان بخشی از بیت کوین معرفی شد. دیگر الگوریتم های هش که برای اثبات کار استفاده می شوند شامل Blake-256, CryptoNight, HEFTY1, Quark, SHA-3, scrypt-jane, scrypt-n, Scrypt و ترکیبی از آن ها هستند.
فرض کنیم رشته اصلی که قرار است روی آن کار کنیم Hello, world! است. هدف ما این است که بازه ای از هش های SHA-256 پیدا کنیم که با 000 آغاز شود. این رشته را با افزودن مقدار عددی به پایان که آن را Nounce می گویند، تغییر می و هر بار آن را افزایش می دهیم. پیدا کردن یک تطابق برای Hello, world! مستلزم این است که 4251 بار تلاش کنیم ( اما برای داشتن 0 در 4 رقم اول اتفاق می افتد).
“Hello, world!0” => 1312af178c253f84028d480a6adc1e25e81caa44c749ec81976192e2ec934c64
“Hello, world!1” => e9afc424b79e4f6ab42d99c81156d3a17228d6e1eef4139be78e948a9332a7d8
“Hello, world!2” => ae37343a357a8297591625e7134cbea22f5928be8ca2a32aa475cf05fd4266b7
…
“Hello, world!4248” => 6e110d98b388e77e9c6f042ac6b497cec46660deef75a55ebc7cfdf65cc0b965
“Hello, world!4249” => c004190b822f1669cac8dc37e761cb73652e7832fb814565702245cf26ebb9e6
“Hello, world!4250” => 0000c3af42fc31103f1fdc0151fa747ff87349a4714df7cc52ea464e12dcd4e9
4251 هش در یک کامپیوتر امروزی کار خیلی زیادی نیست (بیشتر کامپیوتر ها می توانند حداقل حدود 4 میلیون هش در ثانیه را بدست بیاورند). بیت کوین به صورت خودکار سختی کار را تغییر می دهد (و بنابراین مقدار کار مورد نیاز برای ساخت یک بلاک را نیز فرق می کند) تا نرخ ساخت بلاک در 4251 بماند.
برای آگاهی از آخرین نوشته ها، خبر ها و تحلیل های کوتاه به کانال تلگرام پی98 بپیوندید.
سلام ممنون از مقاله خوبتون من میخوام در مورد بلاک چین سمینار ارائه بدم وقت زیادی هم ندارم لطفا راهنماییم کنید که از کجا باید شروع کنم و چه مطالبی رو باید بگم
درود، نوشته ای در مورد معرفی کامل بلاکچین نوشته شده، میتونید با خوندن اون شروع کنید.
میشه لطفا راجع به اثبات سهام هم یه توضیحی بدید؟
مقاله های بیشتری در رابطه با مفهوم الگوریتم های مختلف از جمله اثبات سهام در Pay98 منتشر خواهند شد. اما شما می توانید با مراجعه به مطلب اثبات سهام؛ تغییر دهنده بازی ارزهای دیجیتال با مفاهیم پایه ای و ارزش ذاتی الگوریتم Proof of Stake آشنا شوید.
اثبات کار انقلابی رو ایجاد کرد ولی حالا اثبات سهام از اون جلوتره