Graftroot: امضاهای جایگزین چطور می‌توانند به انواع تقریبا بی‌نهایت پرداخت منتهی شوند؟

Graftroot یکی از روش‌های مدیریت قراردادهای هوشمند است. در مقاله‌ قبلی به بررسی Taproot پرداختیم که به نوعی پیش‌نیاز این مطلب به شمار می‌آید. حالا می‌خواهیم شما را با سیستم پیشنهادی گریگوری مکسل‌ول آشنا کنیم.

0 66

این مقاله دنباله‌ای مستقیم بر مقاله‌ی تشریح Taproot است. اگر آن مقاله را نخوانده‌اید، حتما ابتدا به سراغ همان مطلب بروید.

اگر Taproot در بیت کوین پیاده‌سازی شود، می‌توانید قراردادهای هوشمندی بسازید که کاملا شبیه تراکنش‌های عادی بلاکچین هستند. تا زمانی که همه‌ی کاربران روی خروجی قرارداد – پایان مشارکتی – توافق داشته باشند، ترکیب هوشمندانه‌ Schnorr و MAST باعث افزایش کارآمدی و حریم خصوصی سیستم شما می‌شود.

با این حال، اگر یک قرارداد هوشمند Taproot به اندازه‌ی کافی پیچیده باشد – یعنی به اندازه کافی خروجی احتمالی وجود داشته باشد – مسیر مرکلی که در صورت عدم دستیابی به پایان مشارکتی باید پدیدار شود از نظر اطلاعاتی بسیار سنگین خواهد بود.

در این جا طرح پیشنهادی گریگوری مکس‌ول از تیم بیت کوین با نام Graftroot مطرح می‌شود که مزایایی مشابه Taproot دارد، ولی فاقد ایراد اصلی آن روش است و انعطاف‌پذیری بیشتری را برای قراردادهای هوشمند به ارمغان می‌آورد.

Graftroot

در Taproot، همه‌ی مشارکت‌کنندگان قرارداد هوشمند کلیدهای عمومی خود را ترکیب می‌کردند تا یک «کلید عمومی آستانه» بسازند و با کمک امضای آستانه‌شان بتوانند دارایی خود را خرج کنند. در Graftroot، همه‌ی مشارکت‌کنندگان دوباره کلید عمومی آستانه را می‌سازند. اما این بار، این کلید را دستکاری نمی‌کنند.

مشارکت‌کنندگان اسکریپت‌های مختلفی می‌سازند؛ یعنی موقعیت‌های گوناگونی را تعریف می‌کنند که پول در آن‌ها می‌تواند خرج شود. اما با Graftroot، همه‌ی آن‌ها اسکریپت‌های متفاوتی ایجاد می‌کنند تا امضاهای آستانه‌ی متناسب با این اسکریپت‌ها را بسازند. هر مشارکت‌کننده‌ای که بخواهد از یک اسکریپت خاص به عنوان اندوخته استفاده کند باید آن اسکریپت و امضای آستانه‌ی متناسب با آن را ذخیره نماید. این امضاها بعدا می‌تواند به بقیه ثابت کند که اسکریپت مذکور جایگزینی معتبر، یا اصطلاحاً یک «نماینده»، بوده که همه‌ی مشارکت‌کنندگان روی آن توافق داشته‌اند.

پس فرض کنید آلیس و باب قرارداد هوشمندی میان خود تبیین می‌کنند که طی آن یا هر دو می‌توانند سرمایه‌ها را خرج کنند، یا آلیس بعد از یک هفته می‌تواند این کار را انجام دهد، یا باب با در اختیار داشتن یک کد مخفی می‌تواند به تنهایی آن‌ها را خرج نماید. در این صورت، آلیس و باب کلیدهای عمومی خود را با هم ترکیب می‌کنند تا یک کلید عمومی آستانه به وجود بیاید تا بعداً اگر امضای آستانه را در اختیار داشتند، بتوانند سرمایه‌ها را خرج کنند. (آن‌ها هنوز این امضای آستانه را نساخته‌اند، در نتیجه صرفا بعد از ایجاد این امضا می‌توانند پول‌ها را مصرف نمایند.)

حالا آن‌ها می‌توانند اسکریپت‌های جایگزین را ایجاد و بلافاصله آن‌ها را امضا کنند. آلیس امضای آستانه‌ی متناسب با اسکریپتی را نگه می‌دارد که به او اجازه می‌دهد بعد از گذشت یک هفته کوین‌ها را خرج کند، و باب هم امضای آستانه‌ی متناسب با اسکریپتی را نگه می‌دارد که به او اجازه می‌دهد با در اختیار داشتن آن کد مخفی امکان خرج کردن پول‌ها را داشته باشد. (به یاد داشته باشید که امضای آستانه و اسکریپت متناسب با آن به تنهایی برای خرج کردن کوین‌ها کافی نیست؛ این دو مؤلفه فقط ثابت می‌کنند که آلیس و باب روی این اسکریپت با هم توافق داشته‌اند. موقعیت‌هایی که در اسکریپت تعریف شده هنوز باید برای خرج کردن کوین‌ها برآورده شود.)

روز بعد، وقتی زمان تسویه‌ی قرارداد فرا رسید، آلیس و باب احتمالا با هم توافق می‌کنند که تراکنش تسویه را امضا کنند. آن‌ها با همکاری یکدیگر از کلید عمومی آستانه، امضای آستانه را می‌سازند، و هیچ‌کس دیگری از وجود موقعیت‌های جایگزین یا این که بیش از یک نفر در این قرارداد درگیر بوده مطلع نمی‌شود. این قرارداد از بیرون درست مثل یک تراکنش عادی به نظر می‌رسد.

ولی اگر پایان مشارکتی به هر دلیلی به موفقیت نرسد، هر کسی که بتواند یکی از موقعیت‌های جایگزین را برآورده کند، قادر است به تنهایی کوین‌ها را خرج نماید. اگر باب کد مخفی را داشته باشد، او اسکریپت جایگزین خودش را به همراه امضای آستانه‌ی متناسب با اسکریپت رو می‌کند. در این صورت هر کسی که امضای آستانه را با کلید عمومی آستانه مقایسه کند، به این نتیجه می‌رسد که همه‌ی مشارکت‌کنندگان این قرارداد هوشمند با یکدیگر بر سر این اسکریپت به توافق رسیده‌اند. به همین خاطر باب می‌تواند به شیوه‌ای کاملا قانونی با کد مخفی خود کوین‌ها را خرج کند. از طرف دیگر، اگر یک هفته بگذرد، آلیس می‌تواند اسکریپت جایگزین خود را رو کرده و با استفاده از امضای آستانه‌ی متناسب با آن اسکریپت کوین‌ها را خرج کند. در هر دو صورت، هیچ‌کس از وجود اسکریپت جایگزین باخبر نمی‌شود.

مزیت اصلی Graftroot این است که مهم نیست قرارداد هوشمند چقدر پیچیده یا دقیق باشد، یا چند خروجی مختلف وجود داشته باشد. اگرچه مثال بالا فقط شامل دو اسکریپت جایگزین بود، ولی ساختارهای Graftroot می‌توانند صدها اسکریپت جایگزین داشته باشند. آلیس و باب می‌توانند حتی پس از شکل‌گیری قرارداد هوشمند اولیه موقعیت‌های مورد نظر خود را به آن اضافه کنند.

با این حال، یکی از ایرادات اصلی این روش این است که Graftroot تعاملی است. مشارکت‌کنندگان حتی پیش از مصرف کردن کوین‌ها، باید برای امضا کردن اسکریپت‌های جایگزین با یکدیگر ارتباط داشته باشند. به‌علاوه، مشارکت‌کنندگان باید امضای آستانه‌ اسکریپت‌های جایگزین را ذخیره کنند؛ اگر آن‌ها این امضا را از دست بدهند، اسکریپت اندوخته را هم از دست خواهند داد.

توسعه Graftroot

اما چه زمانی کاربران بیت کوین می‌توانند از این فناوری استفاده کنند؟

خبر خوب این است که با کمک Segregated Witness، قابلیتی موسوم به «نسخه‌بندی اسکریپت»، راحت‌تر می‌توانیم از این نوع تغییرات – مثل Schnorr، Taproot و Graftroot – بهره‌مند شویم.

با این حال در حالت ایده‌آل، مشارکت‌کنندگانی که در بیت کوین مشغول کار روی این آپگریدها هستند، ترجیح می‌دهند که همه‌ی این بهینه‌سازی را به صورت یکجا منتشر کنند. اگرچه نسخه‌بندی اسکریپت باعث می‌شود آپگرید کردن آسان شود، ولی این کار مستلزم این است که تراکنش‌ها مشخص کنند کدام آپگرید پروتکل در حال استفاده شدن است. پس اگرچه Graftroot به خوبی می‌تواند وجود اسکریپت‌های جایگزین را مخفی کند، اما نسخه‌ اسکریپت همچنان می‌تواند لو بدهد که تراکنش در حال استفاده از Graftroot است. پیاده‌سازی یکباره‌ همه‌ این آپگریدها تا حدی از این مشکل جلوگیری می‌کند، چون همه‌ی پروتکل‌ها از یک نسخه از اسکریپت استفاده می‌کنند. علاوه بر این، پیاده‌سازی چند آپگرید به صورت همزمان به سازگاری‌های نرم‌افزاری بیشتر منجر می‌شود.

از طرف دیگر، تغییر سازوکار اجماع آن هم در سطح پروتکل‌های امنیتی سیستم که به صورت شبانه‌روزی مشغول فعالیت هستند، کار ساده‌ای نیست. هر کدام از این قابلیت‌ها مصالحه‌های خاص خودشان را دارند، بنابراین پیاده‌سازی یکباره‌ی همه‌ی آن‌ها می‌تواند به مشکلات متعددی بیانجامد.

به همین خاطر در حال حاضر امضاهای Schnorr و Taproot در اولویت قرار دارند تا در یک بسته‌ی مستقل عرضه شوند. Graftroot در مرحله‌ی پس از عرضه‌ی این‌ها قرار می‌گیرد.

شاید از این مطالب هم خوشتان بیاید.

ارسال پاسخ

آدرس ایمیل شما منتشر نخواهد شد.