آموزش ترید و تحلیل تکنیکال - مرکز تحقیقات بلاک چین

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

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

 

کاربران بیت‌کوین احتمالاً به زودی می‌توانند از ترفندی به نام Taproot بهره‌مند شوند. پروپوزال Taproot اولین بار توسط گرگوری مکسول از حامیان و توسعه‌دهندگان اصلی Bitcoin Core و مدیر ارشد فنی سابق Blockstream، ارائه شد. Taproot باعث توسعه انعطاف‌پذیری قراردادهای هوشمند بیت‌کوین و همچنین افزایش حریم خصوصی می‌شود بطوری که حتی پیچیده‌ترین قراردادهای هوشمند را نمی‌توان از تراکنش‌های ساده تشخیص داد. در حالی که این کار، تعهد بزرگی است اما فقط بصورت تئوری نبوده و در حال حاضر چندین نفر از پرکارترین توسعه دهندگان بیت کوین کور (Bitcoin Core)، در حال کار بر روی یک پروپوزال امضای Schnorr هستند. این پروپوزال شامل Taproot نیز می‌شود که در یک آپدیت پروتکل همه این ویژگی‌ها را به بلاکچین بیت‌کوین اضافه می‌کند. در این مقاله اینکه Taproot چیست و چگونه کار می‌کند توضیح داده شده است. با مرکز تحقیقات بلاکچین همراه باشید.


مفهوم P2SH (پرداخت به هش اسکریپت)


مفهوم P2SH (پرداخت به هش اسکریپت)

 

اساساً همه بیت‌کوین‌ها در اسکریپت‌ها قفل شده‌اند. این اسکریپت‌ها در واقع چند خط کد هستند که بر روی تراکنش‌های موجود در بلاک چین قرار گرفته‌اند و شروط خرج شدن سکه‌ها در تراکنش بعدی را مشخص می‌کنند. شروط خرج شدن سکه‌ها معمولاً شامل ارائه امضاء برای اثبات مالکیت بر سکه‌ها است اما شروط شناخته شده دیگری نیز وجود دارند. مانند: 

  • timelocks: که در این حالت سکه‌ها فقط بعد از یک بلاک معین یا یک زمان مشخص شده قابل خرج کردن می‌شوند.
  • Multisig: که در این حالت سکه‌ها فقط در صورتی قابل خرج کردن می‌شوند که تعداد معینی از مجموع کلیدهای خصوصی، تراکنش را امضاء کنند. برای ایجاد انواع پیچیده‌ای از قراردادهای هوشمند می‌توان این شرایط مختلف را با هم ترکیب و یا هماهنگ کرد. نمونه‌ای از چنین قراردادی می‌تواند این مثال باشد: «تنها در صورتی خرج کردن سکه‌ها امکان پذیر می‌شود که آلیس و باب هر دو تراکنش را امضاء کنند یا اگر آلیس قصد دارد به تنهایی سکه‌ها را خرج کند فقط بعد از یک هفته می‌تواند تراکنش را امضاء کند و یا اگر باب قصد دارد به تنهایی سکه‌ها را خرج کند فقط در صورتی می‌تواند این کار را انجام دهد که علاوه بر امضای تراکنش، شماره مخفی که از قبل مشخص شده را نیز ارائه کند. هر کدام از سه شرط بالا که زودتر محقق شود، نحوه خرج شدن سکه‌ها را مشخص می‌کند.»

از سال 2012، اسکریپت‌ها (شروط خرج شدن سکه‌ها) اغلب برای عموم قابل مشاهده نیستند و فقط مالک جدید سکه‌ها از نحوه خرج شدن سکه‌ها اطلاع دارد. این کار توسط ترفندی به نام P2SH (پرداخت به هش اسکریپت) انجام می‌شود که باعث می‌شود در ابتدا فقط بخشی از هش مرتبط با اسکریپت، در بلاکچین قرار داده شود. این عدد که ظاهراً به صورت تصادفی به هم ریخته شده است، از سکه‌ها نگهداری می‌کند.

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

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

 


مفهوم MAST (درخت چکیده مرکل شده)


مفهوم MAST (درخت چکیده مرکل شده)

 

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

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

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

 


مفهوم Schnorr 


مفهوم Schnorr

 

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

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

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

 


Taproot چیست؟


Taproot چیست؟

 

Taproot بر اساس یک حقیقت جالب در MAST بنا شده است: بدون در نظر گرفتن میزان پیچیدگی؛ هر ساختار مبتنی بر MAST می‌تواند (یا باید) شامل شرطی باشد که به همه اعضاء این امکان را بدهد که در مورد یک نتیجه واحد به توافق برسند و همچنین همه باید بتوانند به سادگی یک تراکنش توافق شده را امضاء کنند.

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

 Taproot شباهت زیادی با MAST دارد بطوری‌که همانند MAST همیشه شامل شرطی است که همه اعضاء بتوانند برای خرج کردن سکه‌ها با یکدیگر توافق کنند که این شرط، اتمام شراکت (cooperative close) نامیده می‌شود. هنگامی که از امضاهای Schnorr هم استفاده شود، قضیه بسیار جالب‌تر می‌شود.

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

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

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

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

 

بیشتر بخوانید:

بیت کوین چگونه کار می کند؟ + ویدیو

استخراج بیت کوین چگونه انجام می شود؟

فورک شبکه بیت کوین چگونه بر قیمت بیت کوین تاثیر می گذارد؟

بلاک چین DeFi چیست؟ چشم انداز امور مالی غیر متمرکز

آشنایی با وب نسل سوم (Web 3.0)

IPFS چیست؟ پلتفرم اشتراک فایل همتا به همتا و غیرمتمرکز


منبع: مرکز تحقیقات بلاکچین


آموزش صفر تا صد ترید و تحلیل تکنیکال ارزهای دیجیتال، بورس و فارکس

درباره ما

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


ادامه درباره ما

 

ارتباط با پشتیبانی در تلگرام bircsupport1@

کانال تلگرام مرکز تحقیقات بلاکچین