تو این پست قراره سیستم پروف آف ورک که بلاک چین ازش استفاده میکنه وکلی از باگ هارو هم مثل دابل اسپندینگ رو حل کرده رو میخوام توضیح بدم پس مستقیم میرم سر اصل مطلب ! 🙂
اصلا Proof of Work یا PoW که میگن چی هست ؟
proof of work یا به اختصار PoW یه الگوریتم توافق عمومی هست یعنی با رضایت و موافقت عمومی تو شبکه بلاکچین کار میکنه
توی بلاکچین از این الگوریتم واسه تایید تراکنش ها و تولید بلاک های جدید داخل زنجیره بلاک ها استفاده میشه. با استفاده از Proof of Work یا ازین به بعد بهش میگیم به اختصار PoW ماینر ها با هم دیگه رقابت میکنن سر اینکه کی زود یه تراکنش رو تکمیل کنه و بعدم جایزشو بگیره (همون هرکی زودتر یا هرکی اول باباش بهتر خودمون:)) )
تو این شبکه کاربرا واسه هم توکن (یه رمز دیجیتالی) میفرستن.
یه دفتر کل غیرمتمرکزی هم هست که همه تراکنش هارو توی بلاک ها جمع میکنه.هرچند باید در خصوص جینش بلاک ها و تایید تراکنش ها خیلی مواظب بود.
دفتر کل غیر متمرکز رو یه دفتر کل حسابداری فرض کنید که همه چیز توش ثبت میشه .مثلا من یه بیتکوین دراوردم توش ثبت میشه یا واسه کسی بیتکوین بفرستم توش ثبت میشه بعد همگانی هست یعنی همه یه کپی از این دفترو دارن میتونن ببینن که من مثلا یه بیتکوین واسه فلانی انتقال دادم
مسولیت وظیفه این کار به عهده Node ها یا گره های خاصی هست که ما بهشون میگیم ماینر و اون پروسه ای که ماینر ها انجام میدن رو میگیم ماینینگ.
اصول اصلی کار یه معمای پیچیده ریاضی هست که واسش یه احتمال واسه آسون حل کردنشم وجود داره.

منظور از معمای ریاضی چیه ؟
ببین کلا مثل طلا که با کلی سختی بدست میاد دقیقا PoW یا سیستم گواه اثبات کارم میخواد برای گرفتن جایزه ها کاربرا یه تلاشی کنن که این تلاش فیزیکی نیست !قرار نیست حمالی کنین :))) (ولی قراره عرق بریزین که ماینرتون همیشه خنک باشه ولی دهن خودتون سرویس شه تو گرما 🙂 ) اینجوریه که میاد از قدرت پردازشی CPU برای حل مسایل ریاضی که واستون توضیح میدم چیه استفاده میکنه و وقتی قدرت پردازنده صرف شد و همه راه حل هارو تست کرد پ به جواب نهایی رسید به شما اون بلاک یه جایزه میده که همون ارز دیجیتالی . الان چون تعداد ماینرا و کسایی که ماین میکنن زیاد شده این معادلات هم پیچیده تر و حلش سخت تر شده . درست مثل طلا قبلا مردم تو رودخونه مثل ماهی طلا پیدا میکردن اینقد زیاد شد جویندگان و طلا ها کم شد که الان کلی رشته کوه یا هر چی هست رو میکنن که یه کوچولو طلا پیدا کنن !
بریم سراغ سوال اصلیمون !
منظور اینه که یه مشکلی وجود داره که واسه حلش باید مقدار زیادی انرژی واسه محاسباتش صرف شه .
نمونه های مختلفی هست از این مشکلات و پیچیدگیا که باید حل شن مثلا :
- تابع هش یا طریقه پیدا کردن ورودی با دونستن خروجی (اگر نمیدونید درمورد هش توصیه می کنم اینجارو بخونین)
ولی خلاصه بگم کلا هش جیه ؟ هش یه تابعه که هرچی به عنوان ورودی بهش بدین یه خروجی ثابت بر میگردونه بهتون
- فاکتورگیری از عدد ثابت : یا یه جور دیگه بخوام بگم طریقه نمایش یه عدد بعنوان ضرب دوتا عدد دیگه.
- راهنمای پروتکل پازل: اگر سرور به حمله DoS مشکوک باشد در این صورت برای برخی نود ها (node) که به ترتیب تعریف شده اند مستلزم حل تابع هش می باشد.تو این مورد چگونگی پیدا کردن زنجیره ای از مقادیر تابع هش مشکل است.
جواب به مسایل proof of work یا معادلات ریاضی را به تنهایی هش میگن. مقلا میگن اون ماینر ۱۳ ترا هش بر ثانیس سرعتش یعنی ۱۳ ترا حواب رو میتونه یه ثانیه در بیاره واسه پروف آف ورک!
همونطور که شبکه بزرگ و بزرگ تر میشه با مسایل هم سخت تر و سخت تر میشن و الگوریتم ها نیازمند قدرت هش بیشتر و بیشتری برای حلشون هستن. پس در نتیجه پیچیدگی کار خودش یه مسیله مهم و حساسی هست.
چطور؟ (چی چطور الان بهتون میگم قضیه رو 🙂 )
دقت کار و سرعت سیستم بلاکچین به این قضیه بستگی داره
اما ! اما و اما مسایل و مشکلات هم نباید اونقدرا پیچیده باشن.اگه اینجوری باشه زمان زیادی هم صرف تولید شدن یه بلاک میشه.اجرای تراکنش ها برای مدتی گیر میکنه و کل جریان کار میخوابه.اگر مشکل توی تایم فرم تعیین شده حل نشد پس تولید بلاک هم کار حضرت فیله !
حالا اگه اون مشکل خیلیم آسون باشه آسیب پذیر میشه سیستم و حملات DoS و اسپم راحتر میشه دیگه .
حالا راه حلم باید چک کردنش راحت باشه در غیر اینصورت اگر همه محاسباتم درست باشن نود ها نمیتونن آنالیز و برسیشون کنن.
که در این حالت باید به یه نود دیگه اعتماد کنید و وصل شید که این کار هم یکی از قابلیت های مهم بلاک چین یعنی شفافیت یا شفاف سازی رو نقض میکنه .
چطوری این الگوریتم تو بلاک چین پیاده سازی و اجرا شده ؟(سوال خوب و مهمیه)
ماینر ها مسایل و معماا هارو حل میکنن و یه بلاک جدید تشکیل میدن و تراکنش هارو تایید میکنن
اینکه چقدر این معما ها پیچیده خواهند بود به تعداد کاربرا قدرتی که در حال حاضر دارن و بارگذاری شبکه بستگی داره.هش هر بلاک شامل هش بلاک قبلی هم میشه که باعث بالا رفتن امنیت و از هرگونه تعرض به سیستم جلوگیری میکنه.

اگه که ماینری موفق به حل مسیله ای شود بلاکی جدید شکل میگیره.و تراکنش ها داخل بلاک گذاشته میشن و به عنوان یه تراکنش تایید شده درنظر گرفته میشه

چرا از همون دفعه اول از یه الگوریتم عمومی (باید همه موافق و هم نظر باشن ) واسه PoW استفاده میشه ؟
مزیت اصلیش ضد حملات DoS بودنه و برسهم احتمالات ماینینگ تاثیر میزاره
دفاع از حملات DoS باعث تحمیل کردن یکسری محدودیت از طرف PoW بر روی کارها در شبکه میشود. حملات باید تلاش زیادی را صرف کنند.حمله موثر مستلزم قدرت محاسباتی بسیار بالا و تایم زیادی جهت انجام محاسبات می شوند.هرچند باز هم احتمال حمله وجود دارد ولی یجورایی ناکارمد و بدردنخور بحساب میان از زمانیکه هزینه بسیار زیادی بر میداره.
احتمالات ماینینگ. مهم نیس چقدر پول توی ولت شما هست(کیف پول شماست که ارز دیجیتال و هرچی ماین میکنین میره توش مثل حساب بانکی ) چیزی که مهمه قدرت محاسباتی زیادیه که برای حل مسیله یا معما و شکل گرفتن بلاک جدید صرف شده هست.بنابراین کسی که مقدار پول زیادی رو نگه میداره مسیول تصمیم گیری برای کل شبکه نیست .
این نکته رو اضافه کنم که خوده بلاکچین غیر قابل نفوذ تقریبا و هک نمیشه ولی ولت و کیف پول شما قابل هک هست اونم خیلی راحت پس توی انتخاب ولت که از سرویس کدوم شرکت استفاده میکنین حتما دقت کنین
عیبی هم توی این الگوریتم توافق عمومی وجود داره آیا ؟
معایب اصلیش اینه که خرجش خیلی بالاس! هزینه اجرای بالایی داره و محاسبات غیر قابل استفاده هستند یعنی جوابی که بدست میاد بدرد نمیخوره و نبت به ۵۱ درصد حملات اسیب پذیره(یادمون باشه داریم درمورد خوده الگوریتم میگیم نه کل بلاک چین! بلاک چنی تقریبا جلوی حملات رو میگیره)
هزینه های کلان. ماین کردن (عمل استخراج ارز دیجیتال)به قدرت بسیاری زیادی برای اختصاص دادن و اجرای الگوریتم های پیچیده را دارد.و هزینه ها غیر قابل کنترال خواهد بود .ماین کردن تنها برای استخر های ماینینگ در دسترس است تبدیل شده است. (استخر جاییه که کلی کاربر هست برای ماین و قدرت پردازشیشون رو با هم share میکنن وقتی که یه بیتکوین ماین کردن اون بیتکوین بین همشون بطور مساوری تقسیم میشه و چون الان معادلات داره سخت تر و سخت تر میشه به هیچ عنوان خودتون تنها نمیتونید ماین کنید حتما باید pool برای ماینینگ پیدا کنین که کارمزدشم کم باشه چون بعضی هاشون یه کامزدی هنگام در آوردن بیتکوین ازتون میگیره ولی خیلی از شرکت هام نمیگیرن)
افزایش هزینه ها تهدیدی هست برای مزیت های سیستم متمرکز..این موضوع به وضوح در بیتکوین قابل مشاهده است.

اون ۵۱ درصد حمله درمورد اون بگو واسمون !
۵۱ درصد از حملات یا اکثر حملات موردیه که وقتی که یه کاربر یا یه گروهی از کاربرا بیشتر قدرت ماینینگ رو کنترل میکنن.
حمله کننده هام قدرت لازم رو واسه کنترل Event ها تو شبکه در دست میگیرن
اونا میتونن تراکنش هارو و معملات رو معکوس کنن(مهندسی معکوس)
بیاین فرض کنیم آلیس واسه باب یکمی پول از طریق بلاکچین میفرسته.آلیس تو ۵۱ درصد از حملات هست ولی باب نیست.حالا این تراکنش تو یه بلاک میشنه.ولی حمله کننده ها اجازه نقل و انتقال پول رو نمیدن.

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

توی شبکه یه برنچ(یه شاخه)(Branch) بیشتر طول میکشه (محاسباتش) و کوتاهتره رد میشه.در نتیجه تراکنش بین آلیس و باب صورت نمیگیره. و باب هیچ پولی دریافت نمیکنه.و
در پی این مراحل حمله کنندگان میتونن معملات رو معکوس کنن.
۵۱ درصد حمله ها آپشن سود آوری ندارن و مستلزمه قدرت و انرژی پردازشی بسیاز زیادیست و به محض پابلیک و عمومی شدن شبکه متوجه به خطر افتادنش میشه که منجر به خروج کاربران میشه .که همین باعث میشه ارزش cryptocurrency افت کنه و همه تبع آن ارزش موجودی حودشون رو از دست میدن .
میدونم یکم مثال حملات به کریپتوکارنسی ها گیج کنندس ولی دقیقا پروف آف ورک ساخته شده تا جلوی همه حملات DoS و اسپمر هارو بگیره و کلی پروتکل دیگه هستن که توی بلاک چین دخیل هستن پس به این راحتیا بلاک چین هک نمیشه حتی اگه هک هم بشه زیاد به صرفه نیست چون پاور زیادی صرف میشه و اصلا ایده چالبی نیست .همونطور که گفتم ولت ها خیلی راحت هک میشن و اگر جایی برای نگرانی وجود داشته باشه از بابت والت هاست مطمون شید والت و کیف پولتون رو از شرکتی قابل اعتماد میگیرید.
اگه سوالی داشتید کامنت کنید یه جوری باهم توافق میکنیم 🙂