پروتکل استراتوم 2 (Stratum V2)

برای کسب درآمد بیشتر از ماینینگ ، بیشتر استخراج کنندگان بیت کوین، امروزه از استخرهای استخراج در مقایسه با استخراج انفرادی استفاده می کنند.. این امکان توسط پروتکل استخراج “Stratum” فعال است که در حال حاضر تقریباً در تمام استخرهای استخراج استفاده می شود .در مقاله قبلی در مورد استراتوم1 و پروتکل های استخراج بحث شد.در این مقاله به بررسی پروتکل استراتوم 2 می پردازیم.نگاهی به پروتکل استراتوم 1در مقاله قبلی در مورد این پروتکل صحبت شد. به صورت خلاصه نحوه کار استخراج با Stratum V1 به این صورت است:ابتدا ، یک هشر (کاربر استخر استخراج ، که گاهی اوقات “miner” نیز نامیده می شود) کامپیوتر استخراج (معمولاً یک ماشین تخصصی با تراشه های ASIC) را به استخر استخراج متصل می کند. یا به طور خاص تر ، آنها رایانه خود را به رایانه ای که توسط اپراتور استخر استخراج کار می کند متصل می کنند.سپس رایانه استخراج از اپراتور استخر درخواست “قالب بلاک” یا template را می کند. این قالب در اصل یک بلاک Bitcoin ناقص (بدون اثبات کار برای معتبر بودن آن )است .پروتکل ارتباطینکته مهم این است که، تراکنشها در این بلاک توسط اپراتور استخر استخراج انتخاب می شود. سپس هشر شروع به هش کردن در قالب بلاک می کند ، به این امید که یکی از هش ها منجر به ایجاد یک هدر بلاک معتبر شود ، و این اثبات کار مورد نیاز شبکه را برآورده می کند. اگر هشر دارای یک هدر بلاک معتبر باشد ، آن را به اپراتور استخر استخراج بر می گرداند ، تا آن را به قسمت باقیمانده بلاک اضافه می کند و آن را به شبکه بیت کوین پخش می کند. پاداش بلاک بر اساس میزان کار هر هشر بین کلیه شرکت کنندگان در استخر توسط اپراتور استخر استخراج توزیع می شود.بنابراین ، Stratum V1 موقعیت نسبتاً قدرتمندی را در استخر به اپراتور استخر استخراج می دهد. آنها نه تنها وظیفه توزیع پاداش را دارند ، بلکه همچنین تصمیم می گیرند که کدام تراکنش ها در یک بلوک گنجانده شده اند. و چه version bit ای را شامل می شود. یک اپراتور استخر استخراج می تواند ، در صورت تمایل ، تصمیم بگیرد تراکنشهای خاصی را سانسور کند . یا برخی از به روزرسانی های پروتکل را مسدود کند.پروتکل استراتوم 2Stratum V2 با الهام از BetterHash ، پیشنهادی که توسط مهندس آزمایشگاه Chaincode و Matt Corallo از همكاران Bitcoin Core ارائه شد، ظهور کرد.این برنامه بر روی کارآمدتر کردن انتقال داده ها ، کاهش نیاز به زیرساخت های فیزیکی برای عملیات استخراج و افزایش امنیت متمرکز است.استراتوم 2 چگونه کار می کند؟به جای اینکه یک اپراتور استخر یک قالب بلاک برای هش ارسال کند ، هشر می تواند به جای آن یک قالب بلاک را برای اپراتور استخر استخراج ارسال کند. این “انتخاب کار” به هشرها اجازه می دهد تا تراکنش ها را خودشان انتخاب کرده و نسخه بلاک را انتخاب کنند.برای ساخت این اثر ، باید برخی از مشکلات عملی BetterHash برطرف شود.نکته:BetterHash یک نرم افزار استخراج است . یک پروتکل استخراج که به استخراج کنندگان بیت کوین در فعالیت های استخراج کمک می کند. و از قدرت رایانه شما برای تأیید انتقال ارزهای رمزپایه استفاده می کند.از همه مهمتر ، این امکان وجود دارد که هشر یک قالب بلاک نامعتبر استخراج کند .حتی اگر هشر بتواند یک هش معتبر پیدا کند ، بلاک خود همچنان نامعتبر است ، بنابراین به استخر کمک نمی کند . در حالی که همان هشر هنوز از بلاک های معتبری که توسط سایر هش ها یافت می شود ، سود می برد.یک راه حل برای این مشکل این است که اپراتور استخر قبل از ورود بلاک به استخر ، ابتدا معتبر بودن قالب بلاک را بررسی کند. اما در یک استخر عمومی و بزرگ ، این مرحله با مشکلات فنی نیز روبرو خواهد شد.تصور کنید چه اتفاقی می افتد اگر هر هشر در استخر بخواهد کار بر روی یک قالب بلاک جدید را شروع کند. و قوانین مختلف انتخاب تراکنش داشته باشند و همه آنها بخواهند بلافاصله استخراج را شروع کنند. اینکه همه آنها قالب بلاک خود را برای تأیید به استخر بفرستند ، اساساً یک حمله DDOS است !!!اپراتورهای استخر اعتبار قالب بلاک جدید را به صورت غیرهمزمان بررسی کرده و این مشکل را حل میکنند. به محض ارسال یک قالب بلاک ، هشر می تواند بلافاصله شروع به هش کردن آن کند. در این بین ، اپراتور استخر شروع به بررسی تمام قالب های بلاک می کند.واژه ها و اصطلاحاتDevice (D): ماشین ماینینگ واقعی در حال محاسبه هش ها.Proxy(P): واسطه ای بین Device های استخراج و سرویس های استخر که ارتباطات را برای کارایی بهتر برقرار می کند. و ممکن است به صورت اختیاری قابلیت های اضافی مانند نظارت بر سلامت و عملکرد دستگاه ها را فراهم کند.بیشتر بخوانید : ذخیره سازی در بلاکچینHashrate Consumer (HC) : مصرف کننده نرخ هش گره ای که سهام(shares) به آن ارسال می شود. متداول ترین مصرف کنندگان نرخ هش استخرها هستند.Job Negotiator(JN) ناظر: گره ای که به نمایندگی از یک یا چند استخراج کننده با استخر مذاکره می کند تا تعیین کند در کدام job کار می کنند. این گره همچنین با یک ارائه دهنده template بلوک (به عنوان مثال bitcoind) ارتباط برقرار می کند. و job ها را به پروکسی های استخراج می فرستد تا به ماینرها توزیع شود.پروتکل استخراجپروتکل استراتوم 2 جانشین پروتکل استراتوم1 است. این پروتکل برای استخراج استفاده می شود و تنها بخشی از پشته پروتکل کامل است که باید در همه سناریوها اجرا شود. این پروتکل برای ارتباط بین دستگاه های استخراج ، پروکسی و سرویسهای استخر استفاده می شود.این پروتکل سه نوع کانال ارتباطی را تعریف می کند:Standard channels : این کانال ارتباطات مورد نیاز بین ماینرها و گره های کامل را بسیار ساده می کند.Extended channels : به کانالهای توسعه یافته کنترل گسترده ای بر فضای جستجو داده می شود تا بتوانند موارد پیشرفته تری را پیاده سازی کنند. (به عنوان مثال ترجمه بین نسخه v1 و v2 ، تجمیع سختی ، تقسیم فضای جستجو و غیره)Group channels: کانالهای گروهی به سادگی مجموعه ای از کانالهای استاندارد هستند که با یک اتصال خاص باز می شوند تا از طریق یک کانال ارتباطی مشترک بتوانند آدرس دهی شوند.همانطور که گفتیم پروتکل استراتوم 2 سه زیر پروتکل جدید را ارائه می دهد .که به ماینرها اجازه می دهد مجموعه تراکنش های خود را از طریق یک فرآیند مذاکره با استخرها انتخاب کنند ، و این باعث عدم تمرکز می شود.پروتکل Job Negotiatorتوسط یک ماینر برای مذاکره در مورد قالب بلوک (که شامل مجموعه تراکنشها است) با استخر استفاده می شود .که می تواند باعث شود تا استخراج استخری بیشتر شبیه به استخراج انفرادی و در نتیجه افزایش تمرکززدایی باشد. نتایج مذاکرات را می توان برای همه اتصالات استخراج به استخر (که صدها هزار اتصال وجود دارد) مجدداً استفاده کرد ، که شدت محاسبات را بسیار کاهش می دهد.این پروتکل یک زیرساخت جداگانه و اختیاری از پروتکل استخراج است .و می تواند به عنوان سرویس شخص ثالث برای فارم های(farms) استخراج ارائه شود.پروتکل Template Distributionاین پروتکل برای کسب اطلاعات در مورد بلوک بعدی استفاده می شود. و به عنوان یک API بسیار کارآمد و آسان برای جایگزینی getblocktemplate طراحی شده است.به طور خاص ، پروتکل توزیع الگو برای برقراری ارتباط با بخشی از هسته Bitcoin به نام “bitcoind” استفاده می شود. که پروتکل Bitcoin را برای استفاده از روش کنترل از راه دور (RPC) استفاده می کند. به عبارت دیگر ، بیت کوین اجازه می دهد پروتکل بیت کوین با نرم افزارهای دیگر ادغام شود.پروتکل توزیع job (Job Distribution)این پروتکل برای انتقال job جدید به گره های علاقه مند استفاده می شود ، که می تواند پروکسی یا دستگاه های استخراج واقعی باشد. این پروتکل مکمل پروتکل Job Negotiator است.درصورتی که استخراج کنندگان درمورد job خود مذاکره نکنند .(یعنی مجموعه تراکنش ها را خودشان انتخاب کنند.) ، job ها مستقیماً از استخرها به پروکسی ها و دستگاه های نهایی توزیع می شوند . مانند پروتکل استراتوم.مقایسه پروتکل استراتوم 1 واستراتوم 2در Stratum V1 ، هیچ تأیید صحت داده رمزنگاری وجود ندارد.تا مطمئن شوید که کامپیوتر هشر واقعاً به کامپیوتر اپراتور استخر متصل است. این در را برای حملات هکر باز می گذارد. یک مهاجم می تواند ارتباط بین هشر و اپراتور استخر را رهگیری کند و پاداش بلاک را به یکی از آدرس های خود بدهد .در Stratum V2 اپراتورهای استخر به طور رمزنگاری، قالب های بلاک را امضا می کند تا در برابر حملات ایمن باشند. اگر هشری کلید عمومی استخر استخراج را بداند ، می تواند بررسی کنند که قالب بلاک دارای امضای معتبری است .و بنابراین توسط اپراتور استخر ارائه شده است.Stratum V2 نیز کارآیی بیشتری نسبت به مدل قبلی خود دارد.در مواردی که ارتباطات Stratum V1 از طریق JSON(متن قابل خواندن توسط انسان) اتفاق می افتد ، ارتباطات Stratum V2 به صورت باینری (کد قابل خواندن توسط رایانه) انجام می شود که باعث سریعتر و ارزانتر شدن ارتباطات می شود.Stratum V2 همچنین به استخرها اجازه می دهد بلاک بعدی را “حدس” بزنند. هر بار که یک بلاک جدید پیدا می شود ، یک مدت زمانی طول می کشد تا یک استخر استخراج بفهمد کدام تراکنش در آن بلاک وجود داشته است. و بنابراین کدام تراکنشها را نمی توان در بلاک بعدی قرار داد. امروزه ، بسیاری از استخرهای استخراج، استخراج بلاک بعدی را خالی شروع می کنند. آنها برای چند ثانیه هیچ تراکنشی را نمی پذیرند ، تا مطمئن شوند که double-spend رخ نمی دهد.منبع: www.factcoins.com