Blockchain

На основі Taproot: платіжні пули можуть стати наступним протоколом другого рівня біткойна

У цій статті йдеться про технологічну концепцію, засновану на запропонованому оновленні протоколу Taproot. Якщо ви ще не знайомі з основами роботи Taproot, радимо спочатку прочитати цей пояснювач.

Корінь, потенційне оновлення протоколу Bitcoin, яке вперше запропонував учасник Bitcoin Core Грегорі Максвелл, знаходиться на пізній стадії розробки. Технологія складається з розумної комбінації крипто-трюків, які дозволять користувачам приховати складні смарт-контракти всередині звичайних транзакцій — складність виявляється лише в тому випадку, якщо сторони контракту не співпрацюють.

Використовуючи цю ідею, автори Bitcoin Core, включаючи (але не обмежуючись ними) Джеремі Рубіна, Антуана Ріарда, Гліба Науменка та самого Грегорі Максвелла, міркували про загальну концепцію, яка називається пули платежів, приєднуватися до пулів або coinpools. Ці пули — наразі ми будемо називати їх пулами платежів — дозволять групам користувачів спільно володіти тими самими монетами (технічно: UTXO), які записані в блокчейні біткойн, дозволяючи при цьому будь-якому з цих користувачів здійснювати (або отримувати) платежі. з ними. Оскільки група та її окремі члени «ховаються» в структурі Taproot, усі вони користуються більшою конфіденційністю, гнучкістю смарт-контрактів та іншими перевагами… і вони потенційно навіть користуються цими перевагами поза мережею, що робить платіжні пули новим рішенням другого рівня.

Хоча особливості дизайну дещо відрізняються від однієї пропозиції пулу платежів до іншої, загальна концепція однакова. Ось основна ідея…

Спільне використання монети

По-перше, щоб створити пул платежів, користувачі об’єднують свої (частини) монет, об’єднуючи їх за спільною між ними адресою Taproot. Отже, припустимо, що Аліса володіє трьома монетами, Боб володіє двома монетами, а Керол володіє однією монетою, загалом шістьма. Разом вони створюють транзакцію, яка надсилає ці монети на спільну адресу, перетворюючи її в пул платежів із шістьма монетами.

На блокчейні адреса платіжного пулу виглядає як звичайна біткойн-адреса, на якій тепер міститься шість монет. Але під поверхнею Аліса, Боб і Керол спритно використали Taproot, щоб гарантувати, що кожен із них залишається контролювати свою частку монет у платіжному пулі. Аліса може в будь-який момент отримати три монети з адреси, Боб може в будь-який момент отримати дві, а Керол одну.

Це тому, що є лише два основних варіанти витрачати монети з адреси.

Перший варіант — витратити безпосередньо з адреси, в технічному плані ключ-шлях Taproot. Для цього потрібна співпраця (тобто: криптографічні підписи) усіх трьох учасників. Якщо Аліса, Боб і Керол погодяться, шість монет можна витратити, як їм заманеться, і це буде виглядати як будь-яка інша звичайна транзакція в мережі біткойн. Тріо може, наприклад, вирішити надіслати свої відповідні баланси назад на окремі адреси: три для Аліси, два для Боба і один для Керол. Але якщо вони захочуть, вони також можуть співпрацювати, щоб пожертвувати всі шість монет Джуліану або витратити їх будь-яким іншим способом, про який вони домовляться. Важливо те, що всі троє мають брати участь, тому чий баланс не витрачається без його чи її власної співпраці.

Другий основний варіант насправді складається з кількох підваріантів. Перш ніж відправити свої монети до платіжного пулу, Аліса, Боб і Керол приховали щось у криптографічному дереві за адресою Taproot: вони включали альтернативні способи надсилання коштів із платіжного пулу. (Наразі це можна реалізувати, якщо всі три учасники попередньо підписують транзакції з цих шляхів, що вимагатиме певної складності для налаштування всіх параметрів і не дуже добре масштабується; запропоновані оновлення протоколу потенційно можуть спростити це в майбутньому .)

Якщо один з учасників вирішить витратити монети в платіжному пулі через альтернативний шлях Taproot, він зазвичай надсилає суму, що відповідає балансу цього учасника, на адресу за їх вибором, наприклад, на індивідуальну адресу, яку вони контролюють. (У випадку Аліси три монети на її власну адресу, у випадку Боба дві на його адресу і у випадку Керол одна.)

Використовуючи цей альтернативний шлях, решта монет також автоматично витрачаються. Це можна зробити кількома способами залежно від дизайну платіжного пулу, пропонуючи різні компроміси щодо складності та масштабованості.

Найпростіший вихід – надіслати кожному іншому учаснику свою частку монет на адресу, яку вони вибирають. Іншими словами: якщо один користувач виходить з пулу, усі виходять з пулу.

Другим рішенням, якому вважають за краще Ріард і Науменко, є відправка всіх монет, що залишилися, до a new пул платежів, який виглядає точно так само, як перший пул платежів, щойно вилучений із усього, що стосується користувача, який тепер вийшов. Цей дизайн пропонує найкращий досвід користувача, але його найважче масштабувати, головне тому, що необхідно підготуватися до всіх можливих сценаріїв виходу, включаючи всі можливі сценарії виходу для всіх потенційних нових пулів. Проте масштабу можна було б досягти за допомогою потенційного оновлення протоколу Bitcoin, яке ще не названо, щоб гарантувати, що правила з попереднього платіжного пулу будуть перенесені до будь-якого нового платіжного пулу.

Однак Рубін вважає, що це друге рішення є непрактичним, і вважає за краще шукати щось середнє між першим і другим рішеннями: деякі учасники негайно отримують свої монети на адресу, яку вони вибирають, інші учасники надсилають свої монети до нового платіжного пулу. Цей дизайн пропонує менш ідеальний досвід користувача, але краще масштабується, а потенційне оновлення протоколу OP_CHECKTEMPLATEVERIFY допоможе спростити дизайн і ще більше збільшити масштаб. (Виходи відбуватимуться через Tree Payments; ці типи платежів розглянуто далі цю статтю.)

(Є більше компромісів між другим і третім рішеннями, але подробиці всіх плюсів і мінусів виходять за рамки цієї статті; прочитайте обговорення списку розсилки bitcoin-dev для конкретики.)

Щоб побачити, що означає, коли решта монет надсилаються до нового платіжного пулу, припустимо, що Аліса, Боб і Керол вибирають другий варіант, де всі решта монет надсилаються до нового платіжного пулу. Якщо в цьому дизайні Аліса виходить з першого платіжного пулу, три монети надсилаються на адресу, яку вона вибирає, а інші три монети надсилаються до нового платіжного пулу між Бобом і Керол. На той момент Аліса знову повністю контролює свої монети, хоча для Боба і Керол не так багато змінилося. Двоє все ще можуть співпрацювати, щоб витратити три залишилися монети, як захочуть, або будь-який з них може вийти в односторонньому порядку, як Аліса робила раніше.

Якщо Боб потім в односторонньому порядку виходить із другого пулу платежів, він надсилає дві монети на адресу, яку він вибирає, і одну монету до ще новішого платіжного пулу (третій), і залишається лише Керол. (Звичайно, у цьому спрощеному прикладі дизайн, де цей останній пул платежів замінено адресою за вибором Керол, насправді мав би більший сенс, але це деталь реалізації.)

Важливий висновок полягає в тому, що учасники платіжного пулу можуть співпрацювати, щоб здійснювати будь-який тип платежу з пулу, який вони хочуть, в той час як будь-який з них може в будь-який момент вийти зі своїми власними монетами, залишаючи іншим учасникам контроль над своїми.

Поміщення платежу в пул платежів

Тому ми встановили, що всі учасники можуть окремо вилучати свій баланс із пулу платежів або — якщо всі згодні — витрачати з пулу. Це другий варіант, який фактично дозволяє зробити щось розумне: пул платежів може бути динамічним. Поки всі учасники згодні, вони можуть не просто повернути собі свої кошти або заплатити іншим (наприклад, Джуліан), але вони можуть зробити щось ще цікавіше. Вони можуть переміщувати свої кошти в новіші версії платіжного пулу з різним дизайном.

Це, наприклад, дозволяє будь-кому з них витрачати кошти з басейну.

Див також

Оскільки Taproot, остання зміна протоколу консенсусу, наближається до активації, розробники біткойн запитують, як саме слід оновити мережу.

Скажімо, Аліса купує новий автомобіль і хоче заплатити за нього одним біткойном. Потім Аліса, Боб і Керол можуть створити транзакцію з платіжного пулу, яка надсилає одну монету автосалону, а решту п’ять монет надсилає до new платіжний пул, який виглядає так само, як і перший, за винятком того, що цього разу Аліса може вийти з нього лише в односторонньому порядку з двома монетами, на одну менше, ніж раніше.

Транзакція, тим часом, виглядала як будь-яка інша звичайна транзакція з біткойнами. Автосалон (або шпигуни блокчейну) можуть зробити висновок, що Аліса володіла всіма шістьма монетами і просто використала одну, щоб купити автомобіль, а інші п’ять залишила як розміну. Вони й гадки не мали б, що деякі монети належать Бобу й Керол, або що вони взагалі були причетні до операції.

Наступного разу, коли Боб здійснить платіж, а Еліс і Керол співпрацюватимуть, він буде зроблено з того самого платіжного пулу, що знову виглядає як звичайна біткойн-транзакція для зовнішнього світу. В результаті ітерації пулу платежів Боб може вийти з однією монетою замість двох. Тим часом ті самі шпигуни блокчейну, можливо, подумали, що Аліса знову здійснює платіж, що ще більше збентежило їх. (І навіть якби шпигуни блокчейну якимось чином зрозуміли, що адреса насправді є платіжним пулом між Алісою, Бобом і Керол, вони все одно не могли б визначити, хто з трьох здійснив останній платіж.)

Кожного разу, коли Аліса, Боб чи Керол витрачають монети, транзакція може бути здійснена від будь-якої з них, і ніхто за межами платіжного пулу не може відрізнити різницю.

Пули платежів дозволяють не лише витрачати кошти. Якщо Аліса хоче поповнити свій «баланс» у платіжному пулі, вона також може це зробити. У цьому випадку Аліса, Боб і Керол співпрацюватимуть, щоб перемістити поточні п’ять монет на нову адресу Taproot, на яку Аліса в цій же транзакції надішле одну додаткову монету з однієї зі своїх (індивідуальних) адрес. Нова адреса Taproot знову міститиме шість монет, три з яких належать Алісі, як це відображено в її варіанті одностороннього виходу.

Таким же чином до платіжного пулу можуть приєднатися абсолютно нові користувачі. Якщо Аліса, Боб і Керол погодяться дозволити Дейву брати участь, вони троє співпрацюють з Дейвом, щоб створити транзакцію, яка надсилає кошти з пулу платежів разом із новими монетами Дейва до нового платіжного пулу, призначеного для того, щоб Дейв також міг брати участь і вийти. якби він так вибрав.

Крім того, для учасників платіжного пулу є можливість платити один одному. Якщо Аліса, наприклад, заплатить Бобу одну монету, ці троє могли б співпрацювати, щоб відправити кошти до нового платіжного пулу, де Аліса віднімає монету з її балансу, а Боб додає монету. Знову ж таки, на блокчейні це виглядало б як звичайний платіж, і шпигуни блокчейну не мали б уявлення, хто кому і скільки заплатив. (Варто зазначити, що Дейв міг би подібним чином увійти в пул, отримавши внутрішній платіж від одного з існуючих учасників.)

З невеликою складністю (і в ідеалі з принаймні одним додатковим оновленням протоколу Bitcoin, наприклад Без введення), передачі також можуть бути здійснені поза мережею. Коли Аліса платить Бобу, всі учасники в цьому випадку створять транзакцію, витрачаючи кошти на новий платіжний пул так само, але ця транзакція буде ділитися лише між ними, а не транслюватися в мережу (якщо хтось коли-небудь намагатиметься обдурити). Таким чином, Аліса, Боб і Керол могли продовжувати оновлювати свій баланс «внутрішньо» і навіть дозволяти Дейву в якийсь момент. Коли всі вони погодяться закрити пул, вони можуть створити остаточну трансакцію, яка витрачає з початкового пулу платежів, присуджуючи кожному останній баланс.

Подібно до старішої ідеї, відомої як Канальні заводи, ці типи платіжних пулів з часом можуть навіть використовуватися для розміщення каналів Lightning, сховищ або інших протоколів другого рівня. Це може запропонувати можливість «загорнути» будь-який тип додаткового рівня протоколу в такі пули, таким чином приховуючи всю їх складність в ідентичних і звичайних транзакціях.

Джерело: 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- pools-could-be-bitcoins-next-layer-XNUMX-protocol