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

Денис Кривилев
5 min readNov 16, 2020

--

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

Депозитний токен TBTC (TDT)

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

Депозити 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, прочитайте технічну специфікацію. Приєднуйтесь до каналу Keep #tbtc на Discord, щоб отримати технічні відповіді на запитання щодо tBTC та tbtc.js, а також слідкуйте за новинами та можливостями участі у Twitter.

Приєднуйтесь до Discord tBTC.

Дякую за увагу!

Оригінал статті: https://tbtc.network/developers/tbtc-technical-system-overview/

Переклад: Discord @ DenisKrivilev#5773

--

--

No responses yet