الگوریتم اثبات کار

نوعی الگوریتم برای جلوگیری از دیداس

گواه اثبات کار یا به اختصار (PoW) یا همان (Proof of Work ) یک سیستم (تابع یا پروتکل) اندازه گیری است تا در برابر حملات محروم‌سازی از سرویس یا به اختصار (DoS) و دیگر سیستم هایی که قصد اذیت کردن را دارند مانند اسپم های شبکه از طریق مستلزم دانستن کاری از طرف درخواست کننده سرویس جلوگیری کند ، معمولاً این قضیه به معنی زمان پردازش شدن عملیاتی توسط یک کامپیوتر است.این طرح و یا مفهوم توسط Cynthia Dwork و Moni Naor در سال 1993 در قالب مقاله ژورنال کشف شد. اصطلاح "Proof of work" یا به اختصار PoW اولین بار در مقاله ای در سال 1999 توسط Markus Jakobsson و Ari Juels ابداع و بکار گرفته شد. [۱] همچنین proof of work یا همان الگوریتم اثبات کار اولین بار سال 2008 توسط ساتوشی ناکاموتو در وایت پیپر بیت‌کوین نوشته شد و در واقع این الگوریتم اولین الگوریتمی است که برای بیت کوین و دیگر ارزها در بلاک چین استفاده شد. در حقیقت، ساتوشی ناکاموتو این الگوریتم را در جهت ایجاد یک سیستم پولی همتابه‌همتا ایجاد و استفاده کرد.

یکی از ویژگی های کلیدی این طرح ها، عدم تقارن آنها است: کار باید برای درخواست کننده نسبتاً سخت(اما قابل حل) باشد ولی چک کردن آن برای تامین کننده سرویس(سرور) میبایست آسان باشد.

همچنین این قضیه به عنوان ، تابع هزینه CPU ،پازل مشتری، پازل محاسباتی یا تابع ارزش گذاری CPU نیز شناخته میشود.

این قضیه با کپچا فرق میکند به این صورت که کپچا برای حل سریع توسط انسان درنظرگرفته شده است نه یک کامپیوتر.

تغییر ناپذیری، امنیت و ناشناسی از مهم‎ترین ویژگی های این الگوریتم است که اهمیت زیادی در فناوری بلاک‌چین دارد. در حقیقت، اثبات کار به عنوان یک مکانیستم در بلاک چین معرفی می‌شود که وظیفه تایید تراکنش‌ها، تولید بلاک و همچنین حفظ امنیت شبکه را بر عهده دارد و ماینرها در این الگوریتم پردازش شبکه را انجام می‌دهند و پاداش خود را دریافت می‌کنند.

الگوریتم اجماع (Consensus) ویرایش

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

نحو عملکرد الگوریتم اثبات کار ویرایش

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

زمینه ویرایش

یک سیستم معروف که در هش کش استفاده میشود، با استفاده از مقداری hash معکوس ثابت میکند کار انجام شده است و یک ایمیل به عنوان نشانه خوب ارسال میکند.به عنوان نمونه هدری که در ادامه قرار دارد تقریباً یک هش 252 محاسباتی است که پیامی را برای ایمیل زیر درتاریخ 19 ژانویه ، 2038 ارسال میکند.

 X-Hashcash: 1: 52: 380119: calvin[at]comics dot net ::: 9B760005E92F0DAE 

با یک محاسبات تکی از طریق تابع اس اچ ای-1 هش تمبری که معتبرشده است(در مثال بالا نام هدر X-Hashcash:که شامل دونقطه میباشد و هرچه فضای خالی بعد از آن تا شماره 1 حذف میشود)

با 52 صفر باینری معادل 13 صفر هگزادسیمال آغاز میشود.

 0000000000000756af69e2ffbdb930261873cd71 

این که آیا سیستم های PoW در حقیقت می توانند مسئله حملات محروم‌سازی از سرویس خاصی را مانند مشکل اسپم را حل کنند، موضوع قابل بحثی است؛ [۲] [۳] این سیستم میبایست ارسال ایمیل های اسپم را برای تولید کنندگان هرزنامه را مشکل ساز کند اما نباید جلوی کاربران مجاز را برای ارسال پیامشان بگیرد. به عبارت دیگر، یک کاربر واقعی نباید با هیچ گونه مشکلی موقع ارسال پیام خود مواجه شود، اما تولید کننده هرزنامه باید مقدار قابل توجه قدرت پردازشی را برای هربار ارسال ایمیل صرف کند . اکنون سیستم های گواه اثبات کار به عنوان مکانیزم اصلی توسط دیگر سیستم های پیچیده رمزنگاری مثل بیتکوین که از سیستمی مشابه هش کش بهره میگیرد ، استفاده میشود.

گزینه ها ویرایش

دو دسته پروتکل گواه اثبات کار وجود دارد.

  • پروتکل های چالش-پاسخ یک پیوند تعاملی مستقیم بین درخواست دهنده(کلاینت) و ارائه کننده (سرور) درنظر میگیرند و می پذیرند. ارائه کننده یا همان سرور چالشی را انتخاب میکند ، یک مورد را از مجموعه ای به همراه یک ویژگی بیان میکند ، درخواست دهنده یا کلاینت پاسخ مربوطه را از میان مجموعه پیدا میکند، که دوباره فرستاده میشود و توسط سروری چک میشود . همانطور که چالش توسط ارائه کننده بدون وقفه ای انتخاب شده ، سختی آن میتواند به هنگام بارگذاری آن حل شود. اگر پروتکل چالش-پاسخ ، راه حل را بداند (یعنی راه حل هم توسط سرور انتخاب شده باشد) یا در محدوده فضای جستجوهایی که قبلاً انجام شده شناخته شده باشد کار از طرف درخواست کننده ممکن است محدود باشد.
 
  • پروتکل های تایید راه حل چنین لینکی را نمی‌پذیرند: به عنوان یک نتیجه، قبل از اینکه درخواست کننده دنبال پاسخ آن بگردد آن مشکل باید به او تحمیل شود ، و ارائه دهنده باید هر دو گزینه مشکل و راه حل های موجود را بررسی کند.اکثر چنین طرح هایی روش های احتمالی تکرار شونده ای مانند هش کش هستند .
 

پروتکل های راه حل-شناخته شده نسبت به پروتکل های مشکلات احتمالی نا محدود به واریانس پایین تری تمایل دارند چرا که واریانسی که از توزیع مستطیلی نشات گرفته به نسبت واریانسی که از توزیع پواسون نشات میگیرد کمتر است(نیاز به توضیح بیشتر درباره واریانس توزیع های پواسیون و مستطیلی میباشد) . یک تکنیک کلی که برای کمتر کردن واریانس می باشد که از طریق چندین زیر-چالش مستقل استفاده میشود ، به عنوان میانگین چندین نمونه واریانس کمتری نیز خواهد داشت.

همچنین توابع هزینه ثابت مانند زمان قفل پازل وجود دارد.

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

  • پردازنده محدود که در آن محاسبات با سرعت پردازنده ، که تا حد زیادی در زمان و همچنین به شکل high-end سرور تا low-end دستگاهای قابل حمل است اجرا می شود. [۴]
  • حافظه محدود [۵] [۶] [۷] [۸] جایی که سرعت محاسبات توسط دسترسی به حافظه اصلی ( یا تاخیر زمان یا پهنای باند) محدود می شود که انتظار می رود عملکرد آن کمتر به تکامل سخت افزار حساس باشد.
  • شبکه محدود [۹] اگر مشتری مجبور باشد چند محاسبات را انجام دهد، قبل از پرس و جو از ارائه کننده سرویس دهنده نهایی باید برخی از رمز های دیجیتال یا توکن را از سرورهای راه دور جمع آوری کند. به این معناست ، کار در واقع توسط درخواست دهنده انجام نمی‌شود و به دلیل تأخیر برای دریافت توکن های مورد نیاز، در هر صورت موجب تاخیر زمانی میشود.

در نهایت، برخی از سیستم های PoW محاسبات میانبر را ارائه میکنند که به شرکت کنندگانی که رمزی را میدانندکه معمولاً یک کلید خصوصی است اجازه میدهد تا POW های کم ارزش را تولید کنند . منطق و اساس کار این است که صاحبان لیست نامه ممکن است تمبری برای هر گیرنده، بدون هزینه ی زیاد تولید کنند. این که چنین کاری خوب و معقول است ، بستگی به سناریوی استفاده از آن دارد.

لیست کارهای اثبات شده کار ویرایش

در اینجا لیستی از معیارهای کار شناخته شده است:

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

دانشمند کامپیوتر Hal Finney بر روی ایده اثبات کار ساخته شده، سیستمی را تولید کرد که از استفاده مجدد از اثبات کار ("RPOW") بهره میگیرد. [۱۸] ایده ساخت اثبات گواه کار با قابلیت استفاده مجدد برای اهداف چند منظوره پیش تر در سال 1999 اجرا شده بود. [۱] هدف فینی برای RPOW ساخت پول توکنی بود. درست همانطور که ارزش سکه های طلا که به نظر میرسد بر اساس طلای خام مورد نیاز برای ساخت آن پایه ریزی شده است ، ارزش یک توکن RPoW با ارزش منابع مورد نیاز در دنیای واقعی برای «ضرب سکه» یک PoW تضمین می شود. در نسخه Finney RPoW، توکن PoW یک تکه هش کش می باشد .

وبسایتی نیز می تواند در ازای سرویسی یک توکن PoW درخواست کند. درخواست یک توکن PoW از طرف کاربر مانع از استفاده بیهوده و بیش از اندازه میشود و یا موجب صرفه جویی از منابع نظیر پهنای باند اینترنت یا محاسبات ، فضای دیسک، برق و یا سربار اجرایی می شود.

سیستم RPoW Finney با یک سیستم PoW در اجازه دادن تبادل توکن های تصادفی و رندوم بدون تکرار کار مورنیاز برای تولید آن ها فرق میکند. پس از آنکه یک نفر توکن «PoW» را در یک وب سایت «صرف» کرد، اپراتور وب سایت میتواند توکن PoW را برای مبادله یک توکن RPOW جدید ذخیره کند، که بعداً میتواند در برخی از وبسایتهای شخص ثالث مجهز به پذیرش توکنRPoW خرج شود .ویژگی ضد-تقلبی بودن توکن RPoW میتواند ازطریق گواهی سنجی از راه دور نیز گارانتی شود. سرور RPoW که برای مبادلات از توکن PoW یا RPoW برای یک مقدار جدید از یک مقدار برابر با استفاده از گواهی سنجی از راه دور استفاده میکند نیز به هر طرف که علاقه‌مند است ، این اجازه را میدهد که تایید یا انتخاب کند که چه نرم‌افزاری در سرور RPoW اجرا می شود . از زمانی که کد منبع نرم‌افزار RPoW Finney منتشر شد (تحت یک مجوز BSD )، هر برنامه نویسی که به اندازه کافی واردبکار باشد، با بررسی کد، میتواند تأیید کند که این نرم‌افزار (و به عبارتی سرور RPoW) هرگز یک توکن جدید صادر نمی‌کند، به استثنای مواقعی که در ازای یک توکن با ارزش برابر صرف شده باشد .

تا سال 2009، سیستم فینی تنها سیستم RPoW بود که پیاده سازی شد؛ از این سیستم در اقتصاد هرگز به طور قابل توجهی مورد استفاده قرار نگزفت.

RPoW توسط کلیدهای خصوصی ذخیره شده در ماژول پلت فرم اعتماد سخت افزار و تولیدکنندگان دارای کلید خصوصی TPM محافظت می شود. سرقت یک کلید تولید کننده TPM یا به دست آوردن کلید با بررسی تراشه TPM خود نیز این تضمین را از بین می برد.

نوع گواه اثبات کار در بیت کوین ویرایش

در سال 2009 شبکه Bitcoin آنلاین شد. بیتکوین یک رمز ارز بر حسب اثبات گواه کار است که مانند RPoW Finney نیز مبتنی بر Hashcash PoW است. اما بیتکوین از یک پروتکل غیر متمرکز یک-به-یک به جای استفاده از ماژول پلت فرم اعتمادسازی سخت افزار که درRPoW استفاده می شد ، بهره میگیرد که دلیل جلوگیری از هزینه های دوگانه میباشد. ، . Bitcoin دارای اطمینان بهتری است زیرا با محاسبات محافظت می شود. بیت کوین ها توسط تابع گواه اثبات کار هش کش توسط ماینر های منحصر به فرد استخراج میشود و توسط نود یا گره های غیر متمرکز در شبکه یک به یک به تایید میرسند .

یک زنجیره بلوکی مبتنی بر الگوریتم گواه اثبات کار که به اندازه کافی دارای کاربر باشد، در برابر حملات سایبری به شدت مقاوم است، زیرا برای نفوذ و در اختیار گرفتن قدرت در این شبکه نیاز به تلاش محاسباتی بسیار بالایی است. البته از طرفی نیاز به تجهیزات فراوان و مصرف برق بسیار بالا از معایب بزرگ این گواه است.[۱۹]

ASICs و استخر ماینینگ ویرایش

در جامعه بیت کوین گروه هایی با هم در استخر های ماینینگ(ماینینگ به معنی استخراج بیتکوین ) درکنار هم کار میکنند . [۲۰] برخی از ماینر ها از ASIC ( مدار مجتمع کاربردی خاص ) برای PoW استفاده می کنند. [۲۱] برخی از PoW ها ادعا می کنند که مقاوم به ASIC هستند، یعنی محدود کردن افزایش بهره وری که ASIC می تواند بر سخت افزار چیزی مانند یک پردازنده گرافیکی داشته باشد، به میزان قابل توجهی تحت نظارت باشد. در عمل چنین ادعاهایی از زمان آزمایش مقاومت نمی‌کنند. [نیازمند منبع]

همچنین نگاه کنید ویرایش

یادداشت ویرایش

1. ^  در اکثر سیستم های یونیکس میتوان با دستور زیر آن را تایید کرد : echo -n 1:52:380119:calvin[at]comics dot net:::9B760005E92F0DAE | openssl sha1

منابع ویرایش

  1. ۱٫۰ ۱٫۱ ۱٫۲ Jakobsson, Markus; Juels, Ari (1999). "Proofs of Work and Bread Pudding Protocols". Secure Information Networks: Communications and Multimedia Security. Kluwer Academic Publishers: 258–272.
  2. Laurie, Ben; Clayton, Richard (May 2004). "Proof-of-work proves not to work". WEIS 04.
  3. Liu, Debin; Camp, L. Jean (June 2006). "Proof of Work can work - Fifth Workshop on the Economics of Information Security". Archived from the original on 20 August 2017. Retrieved 20 July 2019.
  4. How powerful was the Apollo 11 computer?, a specific comparison that shows how different classes of devices have different processing power.
  5. Abadi, Martín; Burrows, Mike; Manasse, Mark; Wobber, Ted (2005). "Moderately hard, memory-bound functions". ACM Trans. Inter. Tech. 5: 299–327.
  6. ۶٫۰ ۶٫۱ Dwork, Cynthia; Goldberg, Andrew; Naor, Moni (2003). "On memory-bound functions for fighting spam". Advances in Cryptology: CRYPTO 2003. Springer. 2729: 426–444.
  7. Coelho, Fabien. "Exponential memory-bound functions for proof of work protocols". Cryptology ePrint Archive, Report.
  8. ۸٫۰ ۸٫۱ Tromp, John (2015). "Cuckoo Cycle; a memory bound graph-theoretic proof-of-work" (PDF). Springer. pp. 49–62.
  9. ۹٫۰ ۹٫۱ Abliz, Mehmud; Znati, Taieb (December 2009). "A Guided Tour Puzzle for Denial of Service Prevention". Proceedings of the Annual Computer Security Applications Conference (ACSAC) 2009. Honolulu, HI: 279–288.
  10. ۱۰٫۰ ۱۰٫۱ ۱۰٫۲ Dwork, Cynthia; Naor, Moni (1993). "Pricing via Processing, Or, Combatting Junk Mail, Advances in Cryptology". CRYPTO’92: Lecture Notes in Computer Science No. 740. Springer: 139–147.
  11. Back, Adam. "HashCash". Popular Proof-of-Work system. First announce in March 1997.
  12. Gabber, Eran; Jakobsson, Markus; Matias, Yossi; Mayer, Alain J. (1998). "Curbing junk e-mail via secure classification". Financial Cryptography: 198–213.
  13. Wang, Xiao-Feng; Reiter, Michael (May 2003). "Defending against denial-of-service attacks with puzzle auctions" (PDF). IEEE Symposium on Security and Privacy '03. Archived from the original (PDF) on 3 March 2016. Retrieved 20 July 2019.
  14. Franklin, Matthew K.; Malkhi, Dahlia (1997). "Auditable metering with lightweight security". Financial Cryptography '97. Updated version May 4, 1998.
  15. Juels, Ari; Brainard, John (1999). "Client puzzles: A cryptographic defense against connection depletion attacks". NDSS 99.
  16. Waters, Brent; Juels, Ari; Halderman, John A.; Felten, Edward W. (2004). "New client puzzle outsourcing techniques for DoS resistance". 11th ACM Conference on Computer and Communications Security.
  17. Coelho, Fabien. "An (almost) constant-effort solution-verification proof-of-work protocol based on Merkle trees". Cryptology ePrint Archive, Report.
  18. "Reusable Proofs of Work". Archived from the original on December 22, 2007.
  19. «الگوریتم اثبات کار (Proof of Work ) PoW چیست؟ معرفی الگوریتم اجماع اثبات کار در بلاکچین». ایران کریپتوکارنسی. ۲۰۲۰-۰۱-۳۰. دریافت‌شده در ۲۰۲۰-۰۷-۱۳.
  20. Overview of the Bitcoin mining pools بایگانی‌شده در ۲۱ آوریل ۲۰۲۰ توسط Wayback Machine on blockchain.info
  21. What is an ASIC miner on digitaltrends.com

خطای یادکرد: برچسپ <ref> تعریف شده درون <references> با نام «DwoNao1992» محتوایی ندارد. ().
خطای یادکرد: برچسپ <ref> تعریف شده درون <references> با نام «JaJue1999» محتوایی ندارد. ().