بلاکچین

ساخت بر روی Taproot: استخرهای پرداخت می توانند پروتکل لایه دوم بعدی بیت کوین باشند

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

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

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

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

به اشتراک گذاری یک سکه

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

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

این به این دلیل است که تنها دو گزینه اصلی برای خرج کردن سکه از آدرس وجود دارد.

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

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

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

با استفاده از این مسیر جایگزین، سکه های باقی مانده نیز به طور خودکار خرج می شوند. این می تواند به روش های مختلفی بسته به طراحی استخر پرداخت انجام شود و مبادلات مختلفی را از نظر پیچیدگی و مقیاس پذیری ارائه می دهد.

ساده ترین راه حل این است که هر شرکت کننده دیگری سهم سکه خود را نیز به آدرسی که انتخاب می کند ارسال کنید. به عبارت دیگر: اگر یک کاربر از استخر خارج شود، همه از استخر خارج می شوند.

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

روبین معتقد است که راه حل دوم غیرعملی است، با این حال، و ترجیح می دهد به دنبال چیزی بین راه حل اول و دوم باشد: برخی از شرکت کنندگان بلافاصله سکه های خود را به آدرسی که انتخاب می کنند دریافت می کنند، سایر شرکت کنندگان سکه های خود را به یک استخر پرداخت جدید ارسال می کنند. این طراحی تجربه کاربری کمتر ایده آلی را ارائه می دهد، اما مقیاس بهتری دارد، و ارتقای پروتکل بالقوه OP_CHECKTEMPLATEVERIFY به ساده سازی طراحی و افزایش مقیاس بیشتر کمک می کند. (خروجی ها از طریق Tree Payments انجام می شود؛ این نوع پرداخت ها در ادامه بررسی می شوند این مقاله.)

(بین راه حل های دوم و سوم معاوضه های بیشتری وجود دارد، اما جزئیات همه جوانب مثبت و منفی خارج از محدوده این مقاله است. بحث لیست پستی bitcoin-dev برای جزئیات.)

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

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

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

قرار دادن پرداخت در استخر پرداخت

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

این برای مثال به هر یک از آنها اجازه می دهد از استخر خرج کنند.

همچنین نگاه کنید به

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

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

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

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

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

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

به همین ترتیب، کاربران کاملاً جدید نیز می توانند به استخر پرداخت بپیوندند. اگر آلیس، باب و کارول موافقت کنند که دیو شرکت کند، هر سه نفر با دیو همکاری می کنند تا تراکنشی ایجاد کنند که وجوه استخر پرداخت را همراه با سکه های جدید دیو به یک استخر پرداخت جدید می فرستد، که به گونه ای طراحی شده است که به دیو نیز اجازه می دهد شرکت کند - و خارج شود. اگر او چنین انتخاب می کرد.

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

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

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

منبع: https://bitcoinmagazine.com/articles/building-on-taproot-payment-pools-could-be-bitcoins-next-layer-two-protocol?utm_source=rss&utm_medium=rss&utm_campaign=building-on-taproot-payment- استخرها می توانند بیت کوین باشند، پروتکل لایه بعدی دو