الگوریتم اثبات کار
گواه اثبات کار یا به اختصار (PoW) یا همان (Proof of Work ) یک سیستم (تابع یا پروتکل) اندازه گیری است تا در برابر حملات محرومسازی از سرویس یا به اختصار (DoS) و دیگر سیستم هایی که قصد اذیت کردن را دارند مانند اسپم های شبکه از طریق مستلزم دانستن کاری از طرف درخواست کننده سرویس جلوگیری کند ، معمولاً این قضیه به معنی زمان پردازش شدن عملیاتی توسط یک کامپیوتر است.این طرح و یا مفهوم توسط Cynthia Dwork و Moni Naor در سال 1993 در قالب مقاله ژورنال کشف شد. اصطلاح "Proof of work" یا به اختصار PoW اولین بار در مقاله ای در سال 1999 توسط Markus Jakobsson و Ari Juels ابداع و بکار گرفته شد.
یکی از ویژگی های کلیدی این طرح ها، عدم تقارن آنها است: کار باید برای درخواست کننده نسبتاً سخت(اما قابل حل) باشد ولی چک کردن آن برای تامین کننده سرویس(سرور) میبایست آسان باشد.
همچنین این قضیه به عنوان ، تابع هزینه CPU ،پازل مشتری، پازل محاسباتی یا تابع ارزش گذاری CPU نیز شناخته میشود.
این قضیه با کپچا فرق میکند به این صورت که کپچا برای حل سریع توسط انسان درنظرگرفته شده است نه یک کامپیوتر.
زمینه
یک سیستم معروف که در هش کش استفاده میشود، با استفاده از مقداری hash معکوس ثابت میکند کار انجام شده است و یک ایمیل به عنوان نشانه خوب ارسال میکند.به عنوان نمونه هدری که در ادامه قرار دارد تقریباً یک هش 2 محاسباتی است که پیامی را برای ایمیل زیر درتاریخ 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 های کم ارزش را تولید کنند . منطق و اساس کار این است که صاحبان لیست نامه ممکن است تمبری برای هر گیرنده، بدون هزینه ی زیاد تولید کنند. این که چنین کاری خوب و معقول است ، بستگی به سناریوی استفاده از آن دارد.
لیست کارهای اثبات شده کار
در اینجا لیستی از معیارهای کار شناخته شده است:
- ریشه مربع ریشه ای مدول عدد اول بزرگ
- امضاء Fiat–Shamir ضعیف
- امضای Ong-Schnorr-Shamir توسط Pollard شکست خورده
- این مقاله ایده اثبات کار (POW) را تصدیق می کند و "ایده وابسته bread pudding protoco " ، یک سیستم "اثبات کار قابل استفاده مجدد" (RPOW) را به رسمیت می شناسد مثل هش کش
- توالی هاش
- پازل
- پازل مبتنی بر دیفی هالمن
- Moderate
- Mbound
- Hokkaido
- چرخه Cuckoo
- درخت مرکل
- پروتکل پازل هدایت شده
استفاده مجدد ازگواه اثبات کار به عنوان پول الکترونیکی
دانشمند کامپیوتر 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 می تواند بر سخت افزار چیزی مانند یک پردازنده گرافیکی داشته باشد، به میزان قابل توجهی تحت نظارت باشد. در عمل چنین ادعاهایی از زمان آزمایش مقاومت نمیکنند.
همچنین نگاه کنید
- بیت کوین
- Cryptocurrency
- بیت ماموریت
- اثبات سهام
یادداشت
- 1. ^ در اکثر سیستم های یونیکس میتوان با دستور زیر آن را تایید کرد :
echo -n 1:52:380119:calvin[at]comics dot net:::9B760005E92F0DAE | openssl sha1
منابع
- ↑ Jakobsson, Markus; Juels, Ari (1999). "Proofs of Work and Bread Pudding Protocols". Secure Information Networks: Communications and Multimedia Security. Kluwer Academic Publishers: 258–272.
- ↑ Laurie, Ben; Clayton, Richard (May 2004). "Proof-of-work proves not to work". WEIS 04.
- ↑ Liu, Debin; Camp, L. Jean (June 2006). "Proof of Work can work - Fifth Workshop on the Economics of Information Security".
- ↑ How powerful was the Apollo 11 computer?, a specific comparison that shows how different classes of devices have different processing power.
- ↑ Abadi, Martín; Burrows, Mike; Manasse, Mark; Wobber, Ted (2005). "Moderately hard, memory-bound functions". ACM Trans. Inter. Tech. 5: 299–327.
- ↑ Dwork, Cynthia; Goldberg, Andrew; Naor, Moni (2003). "On memory-bound functions for fighting spam". Advances in Cryptology: CRYPTO 2003. Springer. 2729: 426–444.
- ↑ Coelho, Fabien. "Exponential memory-bound functions for proof of work protocols". Cryptology ePrint Archive, Report.
- ↑ Tromp, John (2015). "Cuckoo Cycle; a memory bound graph-theoretic proof-of-work" (PDF). Springer. pp. 49–62.
- ↑ 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.
- ↑ 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.
- ↑ Back, Adam. "HashCash". Popular Proof-of-Work system. First announce in March 1997.
- ↑ Gabber, Eran; Jakobsson, Markus; Matias, Yossi; Mayer, Alain J. (1998). "Curbing junk e-mail via secure classification". Financial Cryptography: 198–213.
- ↑ 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.
- ↑ Franklin, Matthew K.; Malkhi, Dahlia (1997). "Auditable metering with lightweight security". Financial Cryptography '97. Updated version May 4, 1998.
- ↑ Juels, Ari; Brainard, John (1999). "Client puzzles: A cryptographic defense against connection depletion attacks". NDSS 99.
- ↑ 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.
- ↑ Coelho, Fabien. "An (almost) constant-effort solution-verification proof-of-work protocol based on Merkle trees". Cryptology ePrint Archive, Report.
- ↑ "Reusable Proofs of Work". Archived from the original on December 22, 2007.
- ↑ «الگوریتم اثبات کار (Proof of Work ) PoW چیست؟ معرفی الگوریتم اجماع اثبات کار در بلاکچین». ایران کریپتوکارنسی. ۲۰۲۰-۰۱-۳۰. دریافتشده در ۲۰۲۰-۰۷-۱۳.
- ↑ Overview of the Bitcoin mining pools بایگانیشده در ۲۱ آوریل ۲۰۲۰ توسط Wayback Machine on blockchain.info
- ↑ What is an ASIC miner on digitaltrends.com