تپروت (Taproot): گامی بزرگ برای توسعه بیت کوین

اوایل ماه می 2019 یکی از توسعه دهندگان برجسته‌‌ Bitcoin Core به نام پیتر وولی (Pieter Wuille) از بلاک‌‌استریم (Blockstream)، دو پیشنهاد BIP (طرح پیشنهادی بهبود بیت کوین‌‌) ارائه کرد. این طرح مربوط به یک شیوه‌‌ آدرس جدید به نام تپروت (Taproot) بود. این ایده‌ها مبتنی بر امضای اشنور (Schnorr) و Scriptless Scripts هستند. این پیشنهادها با جزییات لازم برای پیاده‌‌سازی همراه‌‌اند تا بتوان آن‌‌ها را اجرایی کرد. این مساله سناریوهای جالب‌‌ توجه زیادی را برای توسعه دهندگان مطرح می‌‌کند و می‌‌تواند گام مهمی برای پیشرفت بیت کوین‌‌ باشد.

0 91

یکی از ویژگی‌‌های مهم تپروت این است که امکان بهره برداری از مفاهیم موجود را فراهم می‌‌سازد، از جمله امکان امضای چندگانه فشرده (compact multisig) و قراردادهای هوشمند بدون ‌‌اسکریپت (scriptless smart contracts). افزون بر این امکان ایجاد یک اسکریپت بک‌‌آپ اضافی را فراهم می‌‌کند که تنها در صورت نیاز می‌‌توان سراغ آن رفت و آن را مطرح کرد. این اسکریپت بک‌‌آپ فضایی در بلاک چین نمی‌‌گیرد و حتی قابل شناسایی نیست، مگر در هنگام نیاز. این تکنیک‌‌های پیشنهادی، نوید یک گام مهم را در راستای بهبود حریم خصوصی، مقیاس پذیری و انعطاف‌‌پذیری بیت کوین می‌‌دهند.

تاریخچه

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

UTXOها

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

 Merkilized Abstract Syntax Trees) MAST)

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

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

اشنور و Scriptless Scripts

به کمک امضاهای اشنور (Schnorr signatures) چند امضاء کننده می‌‌توانند کلیدهای خود را با هم ترکیب کنند و یک کلید امضای چندگانه ایجاد کنند که یک آدرس می‌‌سازد. این کلید امضای چندگانه در بلاک چین به کار می‌‌رود ولی نمی‌‌توان آن را از کلیدهای تک تشخیص داد.

اندرو پولسترا (Andrew Poelstra) به ما نشان داد می‌‌توانیم به وسیله‌‌ این کلیدهای امضای چندگانه یک گونه قرارداد هوشمند ویژه ایجاد کنیم که محاسبات را روی بلاک چین انجام نمی‌‌دهد. با وجود این قرارداد هوشمند، طرفین باید خود به نتیجه برسند و تنها در این صورت نتایج روی بلاک چین منتشر شده و در آنجا تایید می‌‌شوند.

تپروت (Taproot)

طرح تپروت روشی را پیشنهاد می‌‌کند تا از امضای اشنور در آدرس‌‌های سگ‌‌ویت (SegWit) استفاده شود. این توانایی افزودن حالت جدیدی از امضا، یکی از انگیزه‌‌های اصلی رفتن به دنبال سگ‌‌ویت در آغاز کار بود. تپروت افزون بر ایجاد یک امکان اختصاصی‌‌سازی مطمئن که به ما امکان استفاده از MAAST و اشنور می‌‌دهد، هر دوی آن‌‌ها را با یک تکنیک کریپتوگرافیک به یک آدرس تک تبدیل می‌‌کند. این امکان وجود دارد که کلید یک آدرس اشنور را گرفته و آن را با یک اسکریپت تنظیم کرد. این آدرس‌‌ها به ظاهر تفاوتی با آدرس‌‌های معمولی اشنور ندارند. پی بردن به وجود یک اسکریپت پنهان امکان‌‌ پذیر نیست، مگر اینکه نیاز باشد.

برای نشان دادن یک مورد کاربردی ساده به عنوان نمونه فرض کنید آلیس می‌‌خواهد به باب یک هدیه بلند مدت بدهد. باب نباید دسته‌‌کم تا پنج سال سکه‌‌ها را خرج کند. آلیس می‌‌تواند سکه‌‌ها را در یک آدرس تپروت بگذارد که شرایط پرداخت آن امضای چندگانه‌‌ی آلیس + باب (موافقت همه) است، ولی آلیس یک اسکریپت بکاپ پنهان هم ایجاد می‌‌کند که در آن شرایط پرداخت آمده است (CheckSequenceVerify به مدت 5 سال + امضای باب). پس از گذشت 9 سال، آلیس + باب می‌‌توانند با هم برای یک تراکنش فشرده، کارآمد و دارای حریم خصوصی امضاء دهند. هیچکس نمی‌‌تواند بفهمد شرایط از چه قرار است یا چه کسی در خرج کردن دخالت دارد. با این وجود اگر آلیس در دسترس نباشد یا نخواهد در پایان همکاری کند، باب می‌‌تواند با آشکار کردن اسکریپت برای گرفتن پول درخواست دهد. در این صورت یک تراکنش بزرگ‌‌تر انجام می‌‌شود که در آن شرایط پرداخت آشکار می‌‌گردد.

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

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

در آینده

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

اکنون باید منتظر یک دوره‌‌ چند ماهه‌‌ بحث و تحلیل باشیم تا کریپتوگرافرها و کدسازها دیدگاه‌‌های خود درباره‌‌ این طرح‌‌ها را مطرح کنند. پس از آن احتمالا شاهد چند ماه کار توسعه دهندگان خواهیم بود تا این طرح‌‌ها وارد تست‌‌نت بیت کوین‌‌ شوند. اگر همه‌‌چیز خوب پیش برود در اواخر 2020 یا 2021 آن‌‌ها را در مین‌‌نت بیت کوین‌‌ خواهیم دید.

منبع

 

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

ارسال پاسخ

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