#رشتو: روش‌ها و الگوریتم‌های اجماع PoW / PoS
روش‌های اجماع در بلاکچین‌ها برای حل مشکل Double Spend به وجود آمدند و قدیمی‌ترین روش اجماع PoW در بیتکوین است که توسط ساتوشی با الهام از همین مفهوم که قبلا توسط Adam Back @adam3us برای حل مشکل ارسال spam مطرح شده بود به وجود آمده
دابل اسپند: فرض کنید در یک تراکنش بانکی شما در حساب خود ۱۰۰ تومان پول دارید در دو تراکنش تقریبا همزمان ۱- صد تومان به علی ۲- صد تومان به بابک می‌فرستید. کدام تراکنش مورد قبول است؟ اولین تراکنشی که به سمت بانک ارسال شود و در تراکنش دوم خطای عدم موجودی دریافت خواهید کرد
در شبکه‌های #کریپتوکارنسی با توجه به ماهیت #غیرمتمرکز و عدم وجود یک بازیگر مرکزی، هر کدام از node ها حساب‌ها و موجودی آن‌ها را در دفتری می‌نویسند که نزد خودشان است. مثلا من برای خودم دفتری جدا دارم که موجودی علی و بابک و سایر افراد در آن هست، شخص x هم دفتر خودش را دارد و الی آخر
وقتی علی به بابک یک بیتکوین ارسال می‌کند و تراکنش را در شبکه منتشر می‌کند، من در دفتر خودم یک عدد btc از علی کم کرده و به موجودی بابک اضافه می‌کنم و باقی نود‌ها هم همین کار رو می‌کنند. حال فرض کنیم علی فقط ۱ بیتکوین موجودی دارد و در دو تراکنش تقریبا همزمان:
۱- یک btc به بابک می فرستد
۲- یک btc به سارا می‌فرستد
کدام تراکنش صحیح است؟ با توجه به توزیع شده بودن شبکه شبکه بیتکوین نمی‌توان اولین تراکنش را صحیح اعلام کرد چون ممکن است بنا به دلایل شبکه‌ای یا لگ اینترنت و ... تراکنش ۲ به نودی اول برسد ولی تراکنش ۱ به نود دیگری اول برسد.
بنابراین هر دو تراکنش صحیح هستند ولی نودهای شبکه باید روی تایید یکی از این تراکنش‌ها به توافق یا اجماع برسند. در اینجا هر ماینری یکی از این تراکنش‌ها که به به انتخاب خودش را در یک بلوک قرار داده و سعی در حل بلوک می‌کند. در حالت ساده و عادی اولین ماینری که جواب بلوک را پیدا کند
پیامی در شبکه حاوی بلوک پیشنهادی و جواب آن منتشر می‌کند و بعد از بررسی صحت آن توسط ماینرهای دیگر، تراکنشی که در بلوک قرار گرفته مورد قبول همه ماینرها قرار گرفته و تراکنش دیگر حذف می‌گردد و دیگر در بلوکی قرار نخواهد گرفت.
ماینرها با استفاده از تجهیزات خاص و صرف انرژی فراوان به جواب بلوک می‌رسند. همه این کارها برای حل مشکل double spend به صورتی غیرمتمرکز و بدون نیاز به یک واحد مرکزی انجام می‌شود و البته در ازای این عملیات ماینرها پاداش هم دریافت می‌کنند. حال چند نکته بسیار مهم وجود دارد:
نکته) اصلی هدف اصلی ماینینگ یا PoW: حل مشکل دابل اسپند به روشی غیرمتمرکز بدون نیاز به اعتماد به یک واحد مرکزی و نه صرفا جهت کسب درامد برای ماینرها
حال بررسی کنیم که روش PoW بیتکوین در لایه‌های مختلف چه قدر غیرمتمرکز و بدون نیاز به اعتماد به یک واحد مرکزی است و چه مشکلاتی دارد
تجهیزات ماینینگ: تولید کننده تجهیزات ماینینگ اصولا چند شرکت انگشت شمار بزرگ هستند که معروفترین آنها bitmain, ebang, microBT, canaan هستند که تقریبا همه سهم بازار را در دست دارند.
در نتیجه در سطح تامین سخت افزار مشکل مرکزیت وجود دارد (جای ساعت‌ها بحث وجود دارد) Image
استخرهای ماینینگ: چه تعداد ماینر در شبکه بیتکوین وجود دارد؟ هزاران؟ نه! تقریبا تنها ۲۱ ماینر در شبکه بیتکوین وجود دارد به این صورت که هر ماینری که به یک استخر ماینینگ متصل می‌شود در واقع قدر پردازشی خود را در اختیار یک موجودیت متمرکز به نام استخر قرار می‌دهد که تقریبا ۲۱ استخر Image
ماینینگ کل شبکه بیتکوین را می‌چرخانند که قدرت پردازشی تنها ۳ عدد از آنها بیش از ۵۰ درصد کل شبکه #بیتکوین است و این یعنی خطر حمله ۵۱ درصدی در صورت توافق این ۳ استخر.
هر کدام از این استخرها در واقع به صورت یک ماینر بسیار قدرتمند در شبکه عمل می‌کنند که به ماینرهای متصل به استخرها
پاداش داده می‌شود. موارد زیادی دیده شده که استخرها به اندازه کافی به ماینرها پاداش نمی‌دهند و به اصلاح حق خوری می‌کنند و ماینرها هم (فعلا) چاره‌ای جز اعتماد ندارند
البته تلاشهایی برای غیرمتمرکز کردن استخرهای ماینینگ انجام شده که فعلا به صورت عملیاتی مورد استفاده قرار نمی‌گیرد.
از مشکلات دیگر ماینینگ، عدم امکان توزیع شدگی زیاد است یعنی تقریبا ماینینگ به صورت خانگی و در ابعاد غیرصنعتی در حال حاضر اگر غیرممکن نباشد هم توجیه ندارد و مشکلات خود را به همراه دارد. پس برای ماینینگ بیتکوین صرف هزینه زیاد یکی از پارامترهای اصلی است.
همین فارم‌های ماینینگ هم بخش دیگری از مشکل هستند. خطرفشار دولت‌ها، شرکت‌های تامین کننده برق، ممنوعیت ماینینگ، تجهیزات مورد نیاز جهت کولینگ، تجهیزات و مواد مصرفی، محل مناسب احداث فارم، گرمای زیاد تولیدی و عدم امکان اجرای آن در مناطق گرمسیری و ...
از یک طرف و عدم امکان انجام ماینینگ در کشورهایی که برق گران قیمت دارند که باعث تمرکز ماینرها در چند کشور یا منطقه خاص می‌شوند از طرفی دیگر به تمرکز ماینینگ دامن می‌زنند
همچنین نگرانی‌های زیست محیطی و فشار گروه‌های مدافع محیط زیست و اثرات منفی در افکار عمومی از آفت‌های ماینینگ است
از مشکلات دیگری که PoW دارد عدم مقیاس پذیری است، یعنی به علت زمان بر بودن حل بلوک و دلایل دیگر تعداد تراکنش‌های پایینی در یک ثانیه در شبکه‌های PoW می‌تواند انجام شود.
چند سال پس از بیتکوین تلاش‌هایی برای ایجاد روش‌های دیگر اجماع انجام شد که یکی از آنها PoS یا Proof of Stake است به طور ساده در این روش افراد با قرار دادن مقداری دارایی معمولا از جنس کوین اصلی شبکه و یک کامپیوتر معمولی و اتصال اینترنت می‌توانند به تایید تراکنش‌ها بپردازند در این
روش در صورتی که یک ولیدتور (معادل ماینر در PoW) به غلط تراکنشی را تایید کند یا سعی در تقلب کند، به صورت خودکار و توسط پروتکل‌ها و الگوریتم‌های شبکه، دارایی وثیقه شده وی ضبط شده و از ولیدتوری اخراج میشود ولی اگر کار خود را به درستی انجام دهد پاداش می‌گیرد.
این کار با توجه به اینکه نیاز به تجهیزات خاص ندارد و برق چندانی مصرف نمی‌کند با یک کامپیوتر معمولی در خانه و یا روی یک سرور یا vps معمولی در یک دیتاسنتر هر نقطه ای از جهان قابل اجراست. بنابراین نه نیاز به تامین کننده سخت افزار هست، نه نگرانی برق، نه تجهیزات و نه استخرهای ماینینگ
در ورژن ها و روشهای ابتدایی PoS مشکلاتی وجود داشت مثلا تعداد ولیدیتورها وقتی زیاد می‌شد شبکه با کندی مواجه میشد. رفع این مشکل و امکان تعداد زیاد ولیدتورها بزرگترین چالش PoS بود که مثلا در اتریوم ۲ که به زودی ارائه خواهد شد این مشکل حل شده است و هر فردی با ۳۲ واحد eth و یک PC
می‌تواند به طور مستقل یک ولیدتور شود. البته با دارایی های کمتر، امکان استفاده از Staking Pool ها هم خواهد بود که با کمک قراردادهای هوشمند ایجاد می‌شوند که به صورت غیرمتمرکز و بدون نیاز به اعتماد به واحدی مرکز امکان مشارکت در تایید تراکنش وجود خواهد داشت.
در ضمن در PoS امکان انجام تایید تراکنش‌های بیشتر در زمان کمتر وجود دارد که به مقیاس پذیری شبکه کمک خواهد کرد.
هدف چی بود؟ حل مشکل Double Spend
با چه روشی: روشی که هوشمندانه تر باشد.
Work smarter, not harder!
پایان رشته توییت Image

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Yashar Rashedi (yashar.eth)

Yashar Rashedi (yashar.eth) Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(