December 24, 2020

Огляд технічної системи tBTC



tBTC включає нові конструктивні особливості, що несуть важливі наслідки для користувачів. Цей фрагмент пояснює чотири з них: квитанції TDT, кілька розмірів партій, випадковий маяк Keep та порогові підписи.

Токен депозиту TBTC (TDT)
Токен депозиту TBTC (TDT) - це незамінний маркер, який карбується, коли користувач запитує депозит. TDT - це не замінюваний токен ERC-721, який служить аналогом TBTC. Він являє собою вимогу до базового депозиту UTXO на біткойн-блокчейні.

Депозити TBTC можуть бути заблоковані або розблоковані. Заблокований депозит може повернути власник депозиту лише за допомогою відповідної TDT. Кожен TDT є унікальним для депозиту, який його карбує та має ексклюзивне право на погашення депозиту терміном до 6 місяців.

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

TDT і TBTC взаємозамінні через контракт, який називається торговим автоматом, який керує обміном TDT на TBTC і навпаки.

З огляду на TDT, він буде карбувати TBTC.
Враховуючи TBTC, він спалить його і поверне певний TDT.
TDT вимагає погасити заблокований депозит BTC. Подумайте про це, як про квиток на сувору перевірку пальто: без нього ви не зможете повернути свій BTC.

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

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

Оскільки крадіжка депозиту в 1 BTC має більше значення, ніж депозит у 0,001 BTC, перший, швидше за все, більш сприйнятливий до таких атак, як реорганізація. Як NFT, TDT дозволяють оцінити цей ризик, що дуже важливо для додатків, які використовують BTC як забезпечення. Будь-якому одержувачу TDT потрібно буде самостійно оцінити профіль ризику даного токена. TDT розроблені для забезпечення чистої вигоди шляхом ізоляції ризику, оскільки атаки на депозит, що підтримує TDT, повинні впливати лише на власника TDT, а не на всю валюту, прив'язану до пропозиції.

Серії та розміри партій

Депозити на tBTC управляються лотами. Щоб зробити систему раціональною та керованою, лоти - це один із набору фіксованих розмірів, якими управляє система. Якщо вкладник хоче внести більшу суму BTC, ніж підтримується існуючими розмірами лотів, вони повинні створити декілька запитів на депозит та профінансувати кілька вкладів. Це дозволяє підтримувати кожний депозит іншою групою підписання, що спрощує зв’язування груп підпису та ізолює ширшу систему від ізольованих відмов групи підписів, зловмисних чи інших.

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

Кожен депозит повинен відповідати одному із стандартних розмірів партії

Система обробляє всі випадки переплати та недоплати - коли користувач депонує суму, яка або більша, або менша, ніж стандартний розмір депозиту - як неправильну поведінку користувача. Основним ефектом переплати або недоплати на систему є викривлення застави підписувачів. Система призначена для передачі витрат на це користувачеві.

У разі недоплати - коли користувач вкладає суму, меншу за вибраний розмір партії BTC - система не створить підтвердження, яке можна погасити за TBTC. Користувач втрачає BTC, заблокований у депозиті, який можна розділити між підписантами.

Користувачі повинні це добре усвідомлювати. Наприклад, у ситуації, коли єдиним доступним розміром партії є 1 BTC, неважко уявити, як користувач намагається вимагати 1 TBTC, зробивши два депозити по 0,5 BTC кожен. Користувач, який зробить це, втратить усі свої BTC, оскільки система просто розпізнає два окремі випадки недоплати. Коротше кажучи, розмір партії депозиту фіксується під час створення депозиту, і депозит повинен фінансуватися з цією сумою.

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

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

Система приймає лише перший UTXO, який перевищує розмір депозитного лота. Усі інші BTC, надіслані групі, що підписала, втрачаються. Тому надзвичайно важливо, щоб вкладники направляли лише одну UTXO. Прийняття декількох UTXO від вкладників призведе до значної складності мережі та плати за газ, оскільки кожен UTXO повинен бути підтверджений за допомогою SPV, а підпис на ньому чітко уповноважений. Підписувачів слід стимулювати для підписання кожної транзакції, незважаючи на те, що загальна вартість UTXO не відома.

Випадковий маяк для вибору підписувача
Мережа Keep вимагає надійного джерела випадковості для вибору підписувачів tBTC. Це приймає форму порогового реле BLS.

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

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

Порогові підписи забезпечують ряд переваг:

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

Додаткову інформацію про порогові підписи ви можете знайти тут.

Відвідайте наш GitHub, щоб отримати додаткову інформацію, інструменти та документацію. Приєднуйтесь до списку розсилки tBTC, щоб отримувати оновлення, включаючи інформацію про майбутній запуск tBTC на головній мережі Ethereum. Щоб дізнатись більше про технічний дизайн tBTC, прочитайте технічну специфікацію. Приєднуйтесь до каналу Keep #tbtc на Discord, щоб отримати технічні запитання щодо tBTC та tbtc.js , а також слідкуйте за новинами та можливостями участі у Twitter.