در این بخش از سری مقالات مرور اجمالی بر پیاده سازی زنجیره های جانبی بیت کوین، به بررسی سایدچینهای یکپارچه یا اتحادیهای (Federated Sidechains) و اعضای فعال در اتحادیه آنها میپردازیم. کلیدهایی که در اختیار این اعضا قرار دارند و بهرهگیری از رویکرد چند امضایی یا مالتی سیگ، راهکاری برای کنترل تراکنشها و حفظ امنیت مقادیر BTC موجود در زنجیره اصلی Bitcoin است. در این مقاله با میهن بلاکچین همراه باشید تا دو نمونه از خطرهای بزرگی که این سایدچینها را تهدید میکنند، مورد بررسی قرار دهیم و راهکار پیش روی اتحادیهها را فرا بگیریم.
زنجیره های جانبی بیت کوین و اختیارات اعضای سایدچینهای یکپارچه
سایدچینهای یکپارچه تنها نوع زنجیره های جانبی بیت کوین هستند که در طول هشت سال اخیر پیادهسازی شده است. ایده استفاده از یک پگ یا وابستگی متحد و سیستم اجماع در واقع یکی از بخشهای ضمیمه شده در وایت پیپر اصلی زنجیره های جانبی بیت کوین بود. هیچ طرح مشخصی برای انواع وابستگیهای دو طرفه پوششدهنده ماینرها در این وایت پیپر وجود نداشت، بنابراین یک وابستگی یا پگ یکپارچه به عنوان راهکاری برای پیادهسازی زنجیره جانبی فعلی، و ارتقا آن به یک پگ دو طرفه تایید شده با استفاده از گواه اثبات تایید پرداخت ساده (SPV) مشابه با عملکرد سافتچینها تشریح شد. در این مرحله با ایدهای مواجه بودیم که به صورت قابل لمس، ایمن و قابل پیادهسازی طراحی شده بود.
لازم به ذکر است که در این طرح به موضوعی در رابطه با مشوقها و پاداشهای انگیزشی نیز اشاره شده بود. بدین صورت که ممکن است استفاده از پگ مبتنی بر ماینرها برای سیستمهای بسیار کوچک خطرناک باشد، زیرا میتوانند با استفاده از سیستمهای گستردهتر بیت کوین و بدون نیاز به اجماع، از گروه اندکی از افراد سرقت کنند. هنگامی که گروه کاربران به اندازه کافی بزرگ نبوده و اجماع آنها مانعی برای جلوگیری کردن از اقدام به سرقت کوینها توسط ماینرها محسوب نشود، سایدچینهای یکپارچه راهکار مناسبی تلقی میشوند.
ایده کلی این طرح، در اختیار داشتن بلاکچینی است که در بطن آن گروههای منتخبی از جانب فعالان قابل اعتماد منسوب شده و به واسطه مالتی سیگ یا قابلیت چند امضایی، مسئولیت تولی و نگهداری بیت کوین وابسته به سیستم را بر عهده داشته باشند. بدین واسطه، این گروههای منتخب میتوانند فرایند تولید بلاکهای درون سایدچین و به امضا رساندن آنها با استفاده از کلیدهای رمزنگاری به جای گواه اثبات کار (PoW) را به انجام برسانند. مدل امنیتی کلی مورد استفاده در این طرح، بر روی در اختیار داشتن مجموعه بزرگی از مشارکتکنندگان تفکیکشده در گروهها یا زنجیرههای یکپارچه که از نظر جغرافیایی از یکدیگر دور بوده و به صورت عمومی شناخته شده هستند، بنا شده است.
این زنجیرههای فدراسیونی از تعداد معینی از اعضا برای نگهداری بیت کوین در زنجیره اصلی و به امضا رساندن بلاکهای جدید (به عنوان مثال حق امضای ۵ از ۷) استفاده میکنند. این فرایند به جای نیاز داشتن به امضای هر هفت نفر و به منظور تعدیل دو خطر بزرگ محتمل برای این دست از سیستمها به انجام میرسد. این دو خطر عبارتند از سرقت و متحمل شدن ضرر. در صورتی که اعضای زنجیره اتحادی تصمیم بگیرند تا در راستای به سرقت بردن منابع مالی قفل شده در یک سایدچین فدراسیونی با یکدیگر همکاری کنند، به راحتی میتوانند این کار را به انجام برسانند. از همین رو، کلیت این مدل امنیتی بر اساس فعالان متعدد و متفاوت و البته از حوزههای قضایی مختلف (در موقعیتهای جغرافیایی گوناگون) بنا شده است.
در بطن این طرح، هدف اصلی بدین صورت بوده که همکاری کردن دولتهای مختلف برای مجبور کردن یکی از اتحادیههای دخیل در سایدچین به منظور انجام یک اقدام مخرب کار دشواری باشد. از این رو، به تعداد زیادی از افراد برای تایید و به امضا رساندن مسائل گوناگون نیاز داریم. از سوی دیگر، در صورتی که برای به امضا رساندن و تایید تمامی مسائل به هر هفت نفر نیاز داشته باشیم، تنها کافیست تا دسترسی یکی از اعضا به کلیدهایش از بین برود تا به از دست رفتن منابع مالی موجود در زنجیره جانبی منجر شود؛ بنابراین وجود نیاز به امضا اکثریت اعضا و نه کل آنها کفایت میکند. البته این رویکرد نیز حاشیه خطر از دست رفتن کلیدها را به همراه دارد و مزیت آن این است که به منظور ارتکاب عمل مخرب و توطئه، به همکاری اعضای زیادی نیاز خواهد بود.
این فرایند موجب میشود تا مدل ایمنی سیستم از نقطه نظر آستانههای امنیتی، دو طرفه باشد. همانطور که پیش از این نیز اشاره کردیم، لازم است تا پنج نفر از میان هفت نفر حاضر در این موقعیت فرضی با یکدیگر تبانی کنند و یا مجبور به تبانی شوند تا منابع مالی درون زنجیره جانبی را به سرقت ببرند. این در حالیست که لازم است تا تنها سه نفر از این هفت نفر کلیدهای خود را از دست بدهند، یا آنها را از بین ببرند و یا حتی مجبور به غیرفعال کردن کلیدهای خود شوند تا منابع مالی درون سایدچین از دسترس خارج شده و به احتمال زیاد، برای همیشه غیرقابل جابهجایی و انتقال بشوند. استفاده از آستانههای مختلف (مثل هفت نفر در مثال فرضی ما) به نوعی یک اقدام تعدیلکننده بین دو خطر بزرگی که پیش از این به آنها اشاره کردیم محسوب میشود.
هر دو آستانه مورد استفاده باید تا حدی بالا باشند تا به صورت همزمان از وقوع بدترین حالت سناریوهای خطرناک جلوگیری کنند.
جالب است بدانید که جدا از خصوصیتهای اصلی سایدچینهای اتحادی (Federated) در زمینه زنجیره های جانبی بیت کوین ، آزادی زیادی در نحوه پیادهسازی سایدچینهای اتحادی وجود دارد. این آزادی از هر دو نقطه نظر شیوه طراحی شاکله سایدچین و هم از نظر نحوه مدیریت کلید دسترسی برای به امضا رساندن بلاک و کلیدهای حفظ وابستگی در اختیار ما قرار دارند.
سایدچین Liquid
لیکویید (Liquid) اولین زنجیره جانبی اتحادی پیادهسازی شده در بستر Bitcoin است. این سایدچین به منظور انجام تراکنشهای خصصی میان صرافیها برای معاملات و صادرات داراییهایی مثل استیبل کوینها و یا توکنهای سهام طراحی شده است. پایگاه کد زنجیره جانبی لیکویید به صورت کامل بر روی زیرساختی که کد بیت کوین نیز بر اساس آن بنا شده ساخته شده است.
یکی از اصلیترین ویژگیهای شبکه لیکویید، اجرای تراکنشهای محرمانه است و این ویژگی با استفاده از گواههای اثبات محدوده رمزنگاری، مقدار وجوه در حال انتقال را پنهان میکند. این در حالیست که تحت پوشش فرضیات خاصی تضمین میشود که هیچ پولی خارج از محدوده در دسترس مورد استفاده و خرج شدن قرار نگیرد. سایدچین لیکویید قابلیت دیگری تحت عنوان داراییهای محرمانه را نیز پیادهسازی کرد که در واقع افزونهای برای تراکنشهای محرمانه بود. داراییهای محرمانه، نوع توکن در حال خرج شدن را نیز به همراه مقادیر در حال انتقال پنهان میکند.
این دو خصوصیت در کنار یکدیگر میتوانند راهکار قدرتمندی برای یکی از بزرگترین نقاط ضعف محتمل یک سایدچین یکپارچه که تحت عنوان «سانسور کردن» شناخته میشود، به ارمغان بیاورند. این امکان برای اکثریت آستانه (که در مثال فرضی ما ۵ نفر از ۷ نفر بود) وجود دارد که تصمیم بگیرند تا با سانسور تراکنشها یا UTXOهای خاص موافقت کنند، و البته فرض کنید که به دلایلی از قبیل فعالیت غیرقانونی مشکوک یا تایید شده با انجام این کار موافقت میکنند. در چنین حالتی آنها حتی انگیزه منطقی برای انجام این کار را نیز خواهند داشت تا بهانهای برای بازرسی و زیر سوال بردن کل سیستم و صنعت کریپتو در اختیار دولتها قرار ندهند. تراکنشها و داراییهای محرمانه میتوانند سطح بالایی از حریم خصوصی را فراهم کنند که حتی اگر اعضای یک فدراسیون از سایدچین نیز دلیلی برای سانسور کردن انواع خاصی از تراکنشها داشته باشند، به منظور انتخاب تراکنشهای این بستر و سانسور کردن آنها دشواری زیادی را متحمل شوند.
یک تراکنش پگ کردن (Peg-in) در سایدچین لیکویید، یک فرآیند دو مرحلهای به نسبت ساده است. کاربری که قصد استفاده از خصوصیت پگ را دارد، در ابتدا آدرس چند امضایی اعضای اتحادیه را دریافت کرده و سپس هر یک از کلیدهای عمومی دخیل آن را به نحوی بهینه میکند تا با استفاده از قابلیت پرداخت به قرارداد (Pay-to-Contract) و با آدرس لیکویید تحت کنترل آن، کلیدهای عمومی جدید ساخته شود. تا زمان افشای این اطلاعات، هیچ کس حتی خود فدراسیون نیز از وابسته بودن یکی از تراکنشهای این آدرس بهینهسازی شده نسبت به لیکویید اطلاعی نخواهد داشت.
در ادامه این روند، کاربر تراکنش مد نظر را به زنجیره اصلی فرستاده و برای دریافت ۱۰۰ تاییدیه منتظر میماند. به محض اینکه تاییدیهها تکمیل شدند، کاربر میتواند یک تراکنش در شبکه Liquid ارسال کند تا کوینهای آنها را برای خودشان ارسال کند. این تراکنش از یک وروردی خاص استفاده میکند که آدرس لیکوییدی که با استفاده از آن کلیدهای اتحادیه را بهینه کردند نیز شامل میشود. این در واقع امضایی است که کنترل کاربر بر روی کل فرایند را اثبات کرده و گواه اثبات مرکل (Merkle) را نیز در بر دارد که نشان میدهد تراکنش وابسته ورودی زنجیره اصلی دارای حداقل ۱۰۰ تاییدیه است.
فرآیند خروج از پگ (Peg-Out) نیز بسیار ساده است. طی این فرآیند یک کاربر تراکنشی را ایجاد میکند که با استفاده از تابع OP_RETURN مقادیر BTC را بر روی سایدچین لیکویید میسوزاند. این تراکنش یک آدرس برای ارسال به زنجیره اصلی و یک گواه اثبات با دانش صفر از جانب یکی از اعضای اتحادیه سایدچین (که به صورت مخفی است) را نیز شامل میشود. هنگامی که اعضای فدراسیون چنین تراکنشی را به همراه گواه اثبات یکی از اعضا مشاهده میکنند، تراکنش برداشت در زنجیره اصلی را به امضا میرسانند. این گواه اثبات به منظور جلوگیری کردن از برداشتهای کلاهبرداری محور یا نامعتبر مورد استفاده قرار میگیرد. علاوه بر این، به هر یک از اعضای اتحادیه که گواه اثبات مورد نظر را ارائه کند، اجازه میدهد تا لزوم انجام وایتلیست یا ایجاد محدودیتهایی بر روی مقادیر خروجی را اعمال کند. همه افراد میتوانند به صورت آزادانه بین بیت کوین و شبکه لیکویید وابستگی ایجاد کنند، اما ایجاد ارتباط با یکی از اعضای فعال در سایدچین یکپارچه به خروج از پگ نیاز خواهد داشت.
Blockstream و مدیریت کلیدهای امنیتی
بلاک استریم (Blockstream) به منظور مدیریت کلید و مدیریت امور امنیتی، ماژولهای ایمنی سختافزاری (HSMs) را برای کنترل کلیدها و انجام مراحل امضا توسعه داده است. این دستگاهها امنیت کلیدهایی که برای به امضا رساند، تایید بلاک، Peg-in و Peg-Out مورد استفاده قرار میگیرند را تامین میکنند و آنها را در برابر دستکاری شدن و یا فرایند استخراج داده کلیدها مصون نگه میدارند. به منظور ارائه ابزاری برای بازیابی کلیدها در صورت شکست خوردن این دستگاهها و از دست رفتن کلیدها، و البته همگام با حفظ امنیت کلیدها در برابر فرایند استخراج داده آنها برای مقاصد مخرب، بکآپها یا نسخههای پشتیبان هر یک از کلیدهای اعضای فدراسیون به صورت رمزنگاریشده نگهداری میشوند. این کلیدها به گونهای رمزنگاری شدهاند تا به منظور رمزگشایی آنها به هر دو طرف فعال در اتحادیه و بلاک استریم نیاز داشته باشیم تا بتوانیم کلید مورد نظر را در HSM جدید بارگذاری کنیم.
هیچ یک از طرفین این ماجرا امکان رمزگشایی نسخه پشتیبان را به تنهایی نخواهد داشت. آخرین تدبیر دفاعی در برابر از دست رفتن این کلیدها، کلیدهای برداشت اضطراری هستند. هر آدرسی که اعضای سایدچین یکپارچه تصمیم میگیرند تا کوینهای پگ شده را به آن ارسال کنند، دو مسیر برای خرج کردن دارد: آستانه مورد نیاز اتحادیه، و پس از میزان زمان تقریبی ۱ ماه قفل زمانی (البته این بازه زمانی قابل تغییر است) آستانه کلیدهای اضطراری مورد نیاز. اینها در واقع مجموعه دوم کلیدهایی هستند که توسط اتحادیه نگهداری میشوند تا در صورت از دست رفتن تعداد زیادی از کلیدهای Federated Sidechain، امکان بازیابی کوینها وجود داشته باشد. به صورت معمول، اتحادیه پیش از فرا رسیدن زمان انقضای قرارداد کوینها و تحت پوشش خود، آنها را به زنجیره اصلی منتقل میکند؛ بنابراین تا زمانی که اتحادیه در انجام وظایف خود شکست نخورد، این مسیر اضطراری قابل استفاده نخواهد بود. در حال حاضر بلاک استریم از کلیدهای بازیابی که در نقاط جغرافیایی مختلف توزیع شدهاند، نگهداری میکند.
در پایان شایان ذکر است که فرایندی تحت عنوان «اتحادیه پویا» وجود دارد. این فرایند به اکثریت گستردهای از اعضای اتحادیه اجازه میدهد تا روال عضویت در این سایدچین را به روزرسانی کرده، اعضا را افزوده و یا از زنجیره های جانبی بیت کوین حذف کنند. این امر به کمک به روزرسانی نرمافزاری برنامه امضای و پس از تصمیمگیری در مورد اعضای جدید و یا حذف اعضای پیشین و سپس یک بازه زمانی علامتدهی یا سیگنالدهی یک ماهه صورت میگیرد. در صورتی که طی این یک ماه، چهار پنجم بلاکها سیگنال مثبت به تغییرات فدراسیون بدهند، شبکه برای شناسایی اتحادیه جدید به عنوان امضاکننده بلاک فورک میشود.
سپس شبکه روند استفاده از آدرسهای Peg-in را در اتحادیه جدید آغاز میکند، اما هنوز هم به مدت یک ماه و به منظور اطمینان حاصل کردن از عدم از دست رفتن اعتبار وابستگیهای ورودی به دلیل اعمال تغییرات، اعضای اتحادیه قبلی را به رسمیت میشناسد. شایان ذکر است که امکان حذف کردن بیش از اندازه اعضای حاضر اتحادیه وجود ندارد؛ زیرا در این صورت، تعداد امضای مورد نیاز برای تایید برداشت از آدرسهای قدیمی وجود نخواهد داشت. تمامی این جوانب آپگرید و به روزرسانی اتحادیه بخشی از قوانین اجماع بوده و توسط HSMها اجرا و تایید شدهاند.
اولین پلتفرم قرارداد هوشمند متن باز RootStock (RSK)
روت استاک (RootStock) یک سایدچین فدراسیونی همراه با رویکردهای طراحی متفاوت زیادی در مقایسه با Liquid است. در وهله اول، این زنجیره جانبی از نقطه نظر عملکرد، نسخه کپیبرداری شدهای از اتریوم است. این سایدچین به صورت کامل از زبان برنامهنویسی سالیدیتی پشتیبانی میکند که مورد استفاده اتریوم بوده و بنابر همین امر، تمامی قراردادهای هوشمند پیادهسازی شده بر روی اتریوم به سادگی قابل انتقال به بستر RootStock هستند. دلیل انجام چنین کاری بسیار واضح است، زیرا اتریوم از میزان تقاضای بسیار بالایی برخوردار بوده و عملکردی که بیت کوین قادر به ارائه آن نیست را به ارمغان میآورد. بدیهی است که نقاط ضعف و خطرات زیادی در معماری اتریوم وجود دارد اما نمیتوان وجود تقاضای بالا برای آن را انکار کرد.
یکی دیگر از تفاوتهای بزرگ در این عرصه و از نقطه نظر معماری، کاری است که اتحادیه در حال انجام آن است. این اعضا به صورت جمعی و با استفاده از رویکرد چند امضایی در حال مدیریت کردن منابع مالی موجود در زنجیره اصلی هستند، اما در شرایط عادی در فرایند تولید یا مینت کردن بلاکها مشارکتی ندارند. این امر توسط ماینرهای Bitcoin و به واسطه استخراج ادغام شده یا ماینینگ مرج شده به انجام میرسد و به ماینرها اجازه میدهد تا به صورت همزمان رمزارز اول دنیا و Rootstock را استخراج کنند.
با وجود اینکه چنین فرایندی هیچ تفاوت امنیتی معناداری برای بیت کوین وابسته به زنجیره روت استاک فراهم نمیکند، اما تفاوت قابل توجهی برای سایر داراییهای عرضه شده در این سایدچین به همراه خواهد داشت. در صورتی که تعداد کافی از اعضای اتحادیه با یکدیگر تبانی کنند، همواره امکان به سرقت بردن وجوه مبتنی بر BTC موجود در زنجیره اصلی وجود خواهد داشت؛ اما از آنجایی که ماینرها در حال ماین کردن زنجیره جانبی هستند، سایدچین میتواند به فعالیت خود ادامه داده و امکان انتقال سایر داراییها در چنین شرایطی وجود خواهد داشت. در صورتی که این داراییها به اندازه کافی ارزشمند باشند، حتی در صورتی که به واسطه بیت کوین حقیقی پشتیبانی نشوند، توکن Rootstock BTC میتواند از میزان تقاضای کافی درون بازار به منظور پرداخت فی مورد نیاز برای سایر داراییها و به منظور انگیزه دادن به ماینرهای برای ادامه روند استخراج برخوردار باشد.
با وجود تمام این تفاسیر، مشارکت ماینرها به هیچ عنوان یک امر مطلق و قطعی نیست. تا زمانی که اکثریت ماینرهای بیت کوین در حال اسنخراج روت استاک هم باشند، کنترل سازماندهی تراکنشها و استخراج کردن آنها در داخل بلاکها در دست ماینرها خواهد بود. این در حالیست که اگر این اکثریت از ماینرها به نصف جمعیت حاضر (یا حتی کمی پایینتر) کاهش پیدا کند، قوانین اجماع به فدراسیون اجازه میدهد تا چک پوینتها یا نقاط بازیابی تعریف کرده و امکان سازماندهی دوباره به پیش از زمان بازیابی تعیینشده را از ماینرها بگیرند. در صورتی که میزان هش ریت به صورت شدید و خارج از کنترل اعضای اتحادیه در قالب امضاکنندگان بلاک کاهش پیدا کند، با اتفاقی شبیه به چیزی که برای اعضای اتحادیه لیکویید رخ داد روبهرو خواهیم بود. سیستمی که با آن مواجه هستیم تا حدی پویا است که حتی بدون وجود ماینرها و فدراسیون نیز به کار خود ادامه میدهد تا بلاک چین را به جلو پیش ببرد.
فرایند Peg-in این سایدچین بسیار ساده است: به آدرس پگ ورودی RSK بیت کوین ارسال کنید و سپس تا زمان دریافت تاییدیههای کافی صبر کنید. هنگامی که تاییدیههای کافی تکمیل شد، یک قرارداد هوشمند سالیدیتی در سایدچین تراکنش مورد نظر را شناسایی کرده و آن را به حساب کاربری در سایدچین تحت کنترل کلیدی همسان با UTXO که وابستگی ورودی بر اساس آن لاک شده بود، ارسال میکند. فرایند Peg-Out نیز با استفاده از یک قرارداد هوشمند کنترل میشود، که با HSM اتحادیه در ارتباط بوده و هنگامی که قرارداد هوشمند دستور بدهد، تراکنش برداشت از زنجیره اصلی را امضا میکند.
هنگام راهاندازی اولیه RootStock تنها اجبار لازم برای Peg-Out، امضا شدن تراکنش توسط اکثریت HSM و به دستور قرارداد هوشمند در زنجیره جانبی بود. در سال ۲۰۲۰ تیم فعال در این پلتفرم یک مکانیزم وابستگی جدید تحت عنوان POWPeg را پیادهسازی کردند. این آپگرید به HSMها اجازه میداد تا گواههای اثبات SPV از جانب ماینرها را اعتبارسنجی کنند. در چنین شرایطی HSMها تراکنشهای Peg-Out را امضا نخواهند کرد؛ مگر اینکه اکثریتی از ماینرهای RSK فعلی بر اساس تراکنشی از آغاز Peg-Out شکل بگیرند. این مدل امنیتی به حفظ ایمنی HSMها معطوف است، مگر اینکه اکثر آنها دستکاری شده و اطلاعات کلیدها استخراج شوند. در غیر این صورت، HSMها به هیچ عنوان بدون وجود داشتن گواه اثبات کار کافی نشاندهنده Peg-Out، تراکنشها را امضا نمیکنند.
سخن پایانی
افراد زیادی در طول هشت سال گذشته بر روی ساخت زنجیرههای جانبی کار کردهاند و در این مجموعه مقالات چهار نمونه از طراحیهای مورد استفاده در زنجیره های جانبی بیت کوین را مورد بررسی قرار دادیم. البته چند نمونه دیگر از طرحهای مورد استفاده در این عرصه وجود دارند. در حال حاضر هیچ چیزی جز زنجیرههای جانبی یکپارچه برای بیت کوین پیادهسازی نشده است. ممکن است سیستمهای فدراسیونی آن چیزی که مردم از سایدچینهای بدون نیاز به فضای اعتماد انتظار دارند نباشند؛ اما کارآمد و مفید بودن آنها غیرقابل انکار است. به ویژه هنگامی که تنها راه برای برآورده کردن تقاضای بازار اعتماد کردن به یک متولی واحد برای آربیتراژ گرفتن و تخمین زدن قیمت یک ارز باشد. با گسترش پیدا کردن ریسک محتمل طرف مقابل یا همان استفادهکننده از سرویس و توزیع آن میان چند مشارکتکننده در این عرصه، اتحادیهها بدون درنگ به یک پیشرفت پیش فرض بدل میشوند. نظر شما در رابطه با عملکرد سایدچینهای یکپارچه و اعضای اتحادیه آنها چیست؟ آیا اعتماد به این موجودیتها کار درستی است؟ آیا جایگزین بهتری برای به انجام رساندن تراکنشها و حفظ امنیت وجوه موجود در زنجیره اصلی بیت کوین وجود دارد؟