در پاسخ به سوال درایوچین چیست باید بگوییم که درایوچینها (DriveChains) نیز درست شبیه به سافتچینها، نوع دیگری از پیادهسازی زنجیره جانبی هستند که کارایی آنها وابسته به سایدچین و به صورت دوطرفه است. درایوچینها به نودهای اپراتور زنجیره جانبی اجازه میدهند تا با پرداخت وجوه به ماینرها، روند ماینینگ یا استخراج را زنده نگه دارند. در این مقاله با میهن بلاکچین همراه باشید تا شیوه کارکرد درایوچینها را با هم فرا بگیریم.
درایوچین چیست و مکانیزم طراحی پروپوزال آن به چه صورت است؟
درایوچینها برای اولین بار در سال ۲۰۱۵ معرفی شدند. با توجه به تمام پروپوزالهایی که تا به امروز در این حیطه ارائه شده است، DriveChainها از جمله قدیمیترین و واضحترین چشماندازها از نظر جزئیات و طراحی و پیادهسازی مستند موجود در پروپوزال بهبود بیت کوین یا BIPهای ۳۰۰ و ۳۰۱ به شمار میروند. Paul Sztorc خالق این مفهوم است که اهداف خاصی از طراحی درایوچینها را در ذهن میپروراند. در اینجا به بررسی برخی از جنبهها و اهداف او میپردازیم:
- جداسازی (ایزوله کردن) هر یک از زنجیرههای جانبی به منظور باقی ماندن هرگونه خطا و مشکلی در محیط آن زنجیره جانبی؛ در این صورت تنها افرادی که در حال استفاده از آن سایدچین هستند تحت تاثیر قرار خواهند گرفت.
- امکان ادامه عملکرد سایدچینها بدون نیاز به یک فورک جدید
- امکان انتقال بیت کوین در داخل و خارج از محیط زنجیره جانبی به کمک وابستگی قیمت دو طرفه
- امکان آزمایش رایگان طراحی درایوچینها با امید به عدم نیاز به وجود آلتکوینها
دو جنبه اصلی متفاوت در طراحی درایوچینها وجود دارد و دلیل اصلی ارائه دو پروپوزال جداگانه در BIPها نیز همین است. اولین رویکرد مورد نظر در طراحی DriveChainها، مکانیزم وابستگی قیمت یا پگ نام دارد که در بطن BIP300 ارائه شده است و امکان عملکرد دوطرفه وابسته را فراهم میسازد. Sztorc مفهومی تحت عنوان پیمان هش ریت را در طراحی خود جای داد که به بیان ساده به ماینرها اجازه میدهد در قالب یک گروه تقسیمبندی نشده، حضانت تمامی کوینها را در سراسر زنجیرههای جانبی به دست بگیرند. دومین رویکرد، تحت عنوان طرح ماینینگ ادغامشده «کورکورانه» یا BMM شناخته میشود. هدف از طراحی BMM این بود که ماینرهای بیت کوین بتوانند به واسطه مکانیزم اجماع به تولیدکنندگان بلاک تبدیل شوند. از همین رو، برای تولید بلاک جدید نیازی به اعتبارسنجی جداگانه در زنجیره جانبی نیست و کل این روند توسط ماینرهای BTC انجام میشود. هر دوی این رویکردها در کنار یکدیگر نشاندهنده یک مکانیزم وابستگی دوطرفه بوده و مسیر را برای مشارکت ماینرها در فرایند استخراج سایدچینها فراهم میکند. شایان ذکر است که این مشارکت به کاهش میزان خطر احتمالی حاصل از متمرکزسازی موجود در بطن فعلی سایدچینها نیز منجر میشود.
پروپوزال BIP300 منطق نهفته در این موارد را برای ما آشکار میکند:
- پروپوزال سایدچین جدید
- فرایند فعالسازی یک زنجیره جانبی جدید
- ارائه پروپوزال مجموعهای از برداشتهای دستهای
- روند صدور مجوز برای این مجموعه برداشتها
- اعتبارسنجی تراکنشهای واریز و برداشت
فعالسازی زنجیره جانبی تحت پوشش پروپوزال درایوچین، شباهت زیادی به یک سافتفورک فعال شده از طریق سیگنالدهی ماینر دارد. تفاوت اساسی میان این دو این است یک درایوچین به هیچ عنوان یک سافتفورک محسوب نمیشود. سافت فورکها یک فورک سیگنالدهی یا علامتدهی هستند که زمان فعالسازی قوانین اجماع درایوچین را مشخص میکنند. این روند به ماینرها اجازه میدهد که در هر زمانی، سیگنال فعالسازی زنجیره جانبی جدید را تحت پوشش قوانین اجماع درایوچین صادر کنند. به منظور درخواست فعالسازی یک سایدچین جدید، لازم است که یکی از ماینرها یک داده OP_RETURN را در خروجی پایگاه کوین یا کوینبیس خود قرار دهد. داده OP_RETURN شامل یک شناسه منحصر به فرد برای آن سایدچین، یک کلید عمومی به منظور استفاده در عملیات واریز، دادههای مربوط به نسخه فعلی، توضیحات قابل فهم برای انسانها، توابع هش کلاینت نرم افزاری و تاریخچه GitHub میشود. در اینجا هیچگونه اقدامی در راستای اجماع صورت نمیگیرد و تنها دادههایی داریم که انسانها به عنوان منبع به آن مراجعه میکنند.
هنگامی که یک ماینر درخواست فعالسازی یک زنجیره جانبی جدید و پوششدهی تمامی دادههای لازم در کوینبیس خود را ارائه میکند، وارد دورهای تحت عنوان «سیگنالدهی ماینر» میشود. این دوره شامل تمامی تصمیمگیریهای مربوط به ایجاد یا عدم ایجاد زنجیره جانبی جدید، از نقطه نظر و دیدگاه اجماع زنجیره اصلی میشود. این امکان برای ماینرها وجود دارد که با استفاده از یک فرمت خاص بتوانند یک پروپوزال را در خروجی پایگاه کوین خود قرار دهند. سایر ماینرها نیز میتوانند با پیروی کردن از یک فرمت دیگر برای صدور سیگنال فعالسازی، خروجی متفاوتی ایجاد کنند. به منظور تایید پروپوزال تولید یک سایدچین جدید لازم است که ۹۰ درصد بلاکها در طول بازه زمانی سختی شبکه، سیگنال فعالسازی صادر کنند. این فرایند موجب به وجود آمدن مکانیزم وابستگی قیمت برای فعالسازی زنجیره جانبی میشود، اما تعامل میان سایدچین و زنجیره اصلی از ظرافت بیشتری برخوردار بوده و تفاوت اندکی با این روند دارد.
فرایند برداشت از یک زنجیره جانبی
در این نقطه، تمامی افراد میتوانند وابستگی مورد نظر خود را میان هر یک از کوینها و زنجیره جانبی ایجاد کنند. به منظور ایجاد این وابستگی لازم است که یک کاربر تراکنشی با دو ورودی ایجاد کند که علاوه بر پوششدهی ورودی مورد نظر آن کاربر، UTXO یا خروجی خرج نشده تراکنش مربوط به موجودی سایدچین را نیز پوشش میدهند. همچنین کاربر باید یک خروجی واحد نیز تولید کند که همه چیز را به زنجیره جانبی مورد نظر مرتبط میسازد. این فرایند تضمین میکند که زنجیره جانبی مورد نظر همواره تنها یک UTXO را با تمامی منابع مالی قفل شده درون خود در بر میگیرد. این در حالی است که فرایندهای برداشت توسط رایگیری ماینرها مدیریت میشود. زنجیره اصلی نمیداند چه کسی صاحب چه چیزی در زنجیره جانبی است و تمام برداشتهایی را که طی فرایند رایگیری توسط ماینرها تایید میشوند، معتبر میداند. با توجه به این موضوع، میزان تاخیر زیادی در روند برداشت وجود خواهد داشت.
روند برداشت از یک زنجیره جانبی طی دو مرحله به انجام میرسد: نخست درخواست برداشت (که به صورت دستهای ارائه میشود)، و سپس مرحله رایگیری برداشت. طی این فرایند ماینرها باید یک خروجی OP_RETURN شامل هش تراکنش برداشت درخواستی را در تراکنش کوینبیس خود ایجاد کنند تا بتوانند درخواست برداشت را صادر کنند. توجه داشته باشید که این هش همانند سیگهش (هش سیگنالدهی یا علامتدهی)، تنها تحت عنوان یک فلگ یا پرچم علامتی عمل میکند که به جای متعهد بودن به کل این فرایند، تنها به بخشی از تراکنش متعهد است. این هش به هیچ عنوان به ورودی UTXO (که نشاندهنده منابع مالی قفل شده در درایوچین است) یا خروجی آن (که نشاندهنده مقادیر برداشت نشده از UTXO یک سایدچین خاص است) وابسته نیست. دلیل این امر آن است که تمام واریزیها و سپردهگذاریها درون یک درایوچین، منجر به ایجاد یک UTXO جدید میشود. بنابراین وقتی کاربران اقدام به اعتبارسنجی تراکنشهای برداشت میکنند، الزامات برداشت باطل میشود.
رایدهی ماینرها برای تایید یا لغو درخواست برداشت
از اینجا به بعد، بازه زمانی رایگیری استخراجکنندگان در مورد پروپوزال برداشت آغاز میشود. پس از اینکه مجموعهای از درخواستهای برداشت ارائه شوند، ماینرها قادر به تایید یا رد آنها خواهند بود. هر یک از بلاکهای استخراج شده به ماینر آن بلاک اجازه میدهد تا وزن رای خود را به میزان یک واحد افزایش و یا کاهش دهد. امکان افزایش یا کاهش دو واحد وزنی رای نیز طی این فرایند وجود دارد، اما در چنین حالتی ماینر مورد نظر قادر به تغییر رای یا انجام کار دیگری نخواهد بود. محدودیتهای خاصی نیز در رابطه با این روند وجود دارد؛ زیرا ممکن است تعداد مجموعه برداشتهای ارائه شده برای یک سایدچین بیش از یک عدد باشد. فرض کنید یک ماینر برای تایید مجموعهای از پروپوزالهای برداشت از یک زنجیره جانبی رای «آری» داده است؛ یعنی شمارنده وزن رای خود را یک واحد افزایش میدهد. سپس باید برای تمام مجموعه برداشت بعدی که در آن لحظه برای همان سایدچین ارائه شده است، رای «خیر» داده و شمارنده وزنی رای خود را یک واحد کاهش دهد.
این امر به منظور اطمینان از عدم برداشت دوباره (Double Withdrawal) صورت میگیرد. این اتفاق وقتی رخ میدهد که فردی در بیش از یک مجموعه از تراکنشهای برداشت، مقادیر خروجی داشته باشد که باعث میشود مقادیر بیشتری نسبت به دارایی بیت کوین خود از زنجیره اصلی دریافت میکند.
از سوی دیگر، ماینرها این امکان را دارند که برای هر یک از مجموعههای برداشت رای منفی صادر کنند. این امر به منزله یک هشدار برای همه فعالان این عرصه محسوب میشود. بدین صورت که ماینری که در حال اعتبارسنجی این برداشتها است (و از تعلق داشتن کوینهای این فرایند به سایدچین مورد نظر اطمینان حاصل میکند) متوجه وقوع رویداد نامعتبری شده است. به یاد داشته باشید که نکته کلیدی این طراحی این است که ماینرها مجبور به اعتبارسنجی هیچ چیزی در زنجیره جانبی نیستند، مگر اینکه خودشان مایل به انجام آن باشند. بنابراین ممکن است بسیاری از ماینرها حق اعتبارسنجی دسته تراکنشهای برداشتی را که مورد بررسی قرار نمیدهند، به راحتی به مراحل بعدی منتقل کنند. این تابع هشدار به منظور تایید دسته تراکنشهای برداشت و اطمینان حاصل کردن ماینرها از جلوگیری از هرگونه برداشت با مضمون کلاهبرداری طراحی شده است.
به محض اینکه هر یک از این دسته تراکنشهای برداشت به حد نصاب مورد نیاز (۱۳۱۵۰ بلاک یا میزان تقریبی ۹۰ روز) رسید، پردازش فرایند برداشت به صورت معتبر شناخته شده و قابل تایید خواهد بود. اما اگر ماینرها یک تراکنش برداشت کلاهبرداری را تایید کنند که به سرقت پول از سایدچین منجر میشود، چه اتفاقی میافتد و چه کاری باید انجام دهیم؟ پروپوزال ارائه شده توسط Sztorc بر اساس مشارکت داشتن در یک سافتفورک فعال کاربری (UASF) طراحی شده است تا بتوان تراکنشهای نامعتبر خروجی وابسته به زنجیره جانبی را لغو کرد. این امر از نقطه نظر اجماع به منزله یک ریسک بزرگ برای زنجیره اصلی محسوب میشود. سافت فورک UASF یک اقدام پرخطر در سال ۲۰۱۷ بود که به سختی به موفقیت رسید؛ آن هم وقتی که اکوسیستم Bitcoin بسیار کوچکتر از امروز بود. هرچقدر پادشاه رمزارزها رشد بیشتری داشته باشد، هماهنگی برای اقدامات این چنینی نیز دشوارتر خواهد شد.
ماینینگ ادغامشده کورکورانه یا BMM چیست؟
طراحی اسپیسچینها (SpaceChains) نیز حول محور ماینینگ ادغامشده کورکورانه (BMM) صورت گرفته بود. طراحی BMM روبن سامسن (Ruben Somsen) در واقع دومین نوع از این طراحی محسوب میشود. اولین مدل طراحی BMM متعلق به Sztorc است که در BIP301 ارائه شد. مشخصات طراحی BMM در درایوچینها از دو پیام درخواست و پذیرش تشکیل شده است. هر دوی این پیامها بر اساس یک نوع معامله خاص در زنجیره اصلی و یک خروجی خاص در تراکنش کوینبیس ماینر مربوطه هماهنگ میشوند.
تراکنش درخواست توسط فردی که در حال تولید بلاکهای زنجیره جانبی است منتشر میشود. هدف کلی BMM این است که فرد تولیدکننده بلاک ممکن است ماینر نباشد. بنابراین، تراکنش درخواست تنها برای فراهمسازی امکان پرداخت به ماینرها بوده و برای تایید بلاک سایدچین درخواستی مورد استفاده قرار میگیرد. پروپوزال بلاک، زنجیره جانبی تراکنشی را میسازد که شامل هش بلاک زنجیره جانبی، ID یا شناسه هویت اختصاص یافته به سایدچین در زمان ساخت آن و ۴ بایت آخر هدر (سربرگ) بلاک قبلی زنجیره میشود.
قوانین حاکم بر تراکنشهای درخواست درایوچین چیست؟
سه قانون اجماع دیگر نیز برای این نوع از تراکنشها در نظر گرفته میشود. اولین قانون این است که یک تراکنش درخواست همواره نامعتبر است؛ مگر اینکه یک خروجی پذیرش متناسب با آن تراکنش در تراکنش کوینبیس آن بلاک وجود داشته باشد. این امر به منظور اطمینان از این است که ماینرها تنها در صورتی از یک تراکنش درخواست فی دریافت میکنند که فرایند ماینینگ یک بلاک جدید برای زنجیره جانبی را بپذیرند. قانون دوم بیان میکند که هر یک از بلاکهای زنجیره اصلی تنها میتوانند حاوی یک تراکنش درخواست برای هر یک از زنجیرههای جانبی باشند. این امر برای اطمینان از آن است که فرایند استخراج در ازای هر بلاک از زنجیره اصلی، تنها در یک بلاک از زنجیره جانبی صورت میگیرد. قانون آخر نیز بدین صورت است که ۴ بایت آخر از بلاک قبلی زنجیره اصلی باید با یکدیگر مطابقت داشته باشند. اینطور میشود مطمئن بود که تراکنش درخواست تنها برای استخراج بلاک بعدی معتبر خواهد بود. در واقع، چنین تراکنشهایی قابل استخراج دوباره نبوده و پس از ماین شدن بلاک توسط سایر ماینرها، امکان به سرقت بردن پول موجود در درخواستکننده بلاک زنجیرههای جانبی وجود ندارد.
خروجی تابع پذیرش عملکرد بسیار سادهای دارد. این خروجی شامل اطلاعات پیام هدر بلاک و هش بلاک سایدچین است. اگر یک ماینر در حال اجرای نود درایوچین نیز باشد، قادر است به راحتی هرگونه تراکنش درخواست را نادیده گرفته و همواره خروجی پذیرش خود را در کوینبیس خود قرار دهد. آن ماینر با انجام چنین کاری میتواند بلاکهای سایدچین خود را استخراج کند.
این دو موضوع در کنار هم امکان اجرای یک نود زنجیره جانبی توسط ماینر را فراهم میسازند و در حالت دوم، فرد غیرماینر دیگری این کار را انجام داده و با راهاندازی نود و پرداخت وجوه به ماینرها میتواند بلاکهای مورد نظر خود را استخراج کند. ایده اصلی این طرح بدین صورت است که اگر خود استخراجکنندگان تمایلی به اجرای زنجیره جانبی نداشته باشند و تنها بخواهند هزینه اعتبارسنجی را دریافت کنند، امکان ورود فرد دیگری به این عرصه برای انجام این کار وجود داشته باشد. اگر رقابتی برای دریافت فی یا کارمزد زنجیرههای جانبی میان افراد غیرماینر وجود داشته باشد، احتمال بالا بردن میزان هزینه مورد نیاز برای انجام تراکنشها توسط ماینر وجود خواهد داشت. در چنین حالتی، میزان مبلغ مورد نظر این افراد برای پرداخت به ماینرها و بخش اعظم دریافتی آنها به نمایش گذاشته میشود. افراد غیرماینر تنها بخش کمی از این فی را دریافت میکنند و مابقی آن به ماینرها تعلق میگیرد.
سخن پایانی
در این مقاله به بررسی روند کلی عملکرد DriveChainها پرداختیم و گفتیم که هدف اصلی از پیادهسازی طرح درایوچین چیست. در این طرح ماینرها میتوانند تراکنشهای دستهای برداشت را اعتبارسنجی کرده و بلاکهای زنجیره جانبی را استخراج کنند. از طرف دیگر، امکان راهاندازی نود اعتبارسنجی سایدچینها توسط افراد غیرماینر نیز وجود دارد. این افراد میتوانند با پرداخت کارمزد تراکنشهای سایدچین مورد نظر به ماینرها، فرایند تولید بلاکهای زنجیره جانبی را زنده نگه دارند. با توجه به این موارد، به نظر شما آیا پیادهسازی این طرح همانند سال ۲۰۱۷ امکانپذیر است؟ چه نقاط قوت و ضعفی در درایوچینها مشاهده میکنید؟ آیا واگذاری اعتبارسنجی تراکنشهای برداشت به ماینرها کار درستی است؟ منتظر نظرات شما هستیم.