31 / 736M-of-N

Multisig

погодження платежу кількома ключами

Платіж не обов’язково має залежати від одного ключа. Multisig дозволяє вимагати, наприклад, підписи будь-яких двох із трьох незалежних ключів.

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

Multisig: симулятор порогу підписівПеревірте, чи решти ключів у моделі m із n достатньо для досягнення порогу підписів. Результат описує доступність підписів, а не безпеку чи повне відновлення гаманця.

Аліса не хоче, щоб усі її заощадження залежали від одного пристрою. Вона створює гаманець за правилом 2 із 3 з незалежними ключами A, B і C. Платіж може погодити пара A + B, A + C або B + C. Кожен підпис — це математично перевірюваний дозвіл, створений відповідним приватним ключем; сам ключ у мережу не надсилається. Якщо Аліса втратить A, вона зможе використати B і C, якщо також має потрібні дані гаманця. Той, хто викраде лише A, сам гроші не відправить. Біткоїни при цьому не діляться на три купки: спільне правило захищає всі відповідні кошти. Ключі можуть належати трьом людям або одній людині на окремих пристроях. Три копії тієї самої Seed Phrase, тобто одного набору слів для відновлення, не створюють трьох незалежних ключів. [1] [2]

Аліса вводить адресу одержувача й суму в застосунку. Як координатор, він готує проєкт транзакції та передає його пристроям для підписання. Часто для цього використовують PSBT — формат передавання даних платежу й підписів, що поступово додаються. Пристроям не потрібно бути підключеними одночасно чи перебувати в одному місці, а приватні ключі залишаються розділеними. Перед підписанням Аліса перевіряє одержувача, суму й комісію на надійному екрані кожного використаного пристрою. За перевіреними правилами гаманця пристрій має також розпізнати вихід, що повертає їй решту. Два підписи під підміненим платежем її не врятують. Координатор не може вигадати відсутній підпис, проте може запропонувати неправильний платіж. Лише після отримання потрібних підписів і завершення транзакції застосунок надсилає її в мережу. [5]

Кожен незалежний ключ потребує власної безпечної резервної копії. Але для відновлення всього гаманця не завжди достатньо лише двох наборів слів. Потрібна також спільна конфігурація: необхідна кількість підписів, публічні дані всіх трьох ключів, їхній порядок і спосіб створення адрес. Це можна зберегти як Output Descriptor — точний технічний опис гаманця — або рівнозначний експорт конфігурації. Публічний дескриптор без приватних ключів сам не підпише платіж, але може розкрити адреси й рух коштів, тому його теж варто тримати конфіденційним. Спершу Аліса перевіряє отримання, надсилання та відновлення з невеликою сумою. Якщо згодом вона втратить A або запідозрить витік, видалення пристрою із застосунку не змінить старого правила. З рештою ключів їй потрібно переказати кошти на нові перевірені адреси з новим набором ключів. [4] [6]

Правило 2 із 3 дозволяє втратити один ключ; правило 2 із 2 не дозволяє втратити жодного. Водночас за першим правилом кошти може витратити будь-яка пара, зокрема двоє людей, які домовилися без третього. Тож налаштування залежить від того, чиї гроші воно захищає і яких збоїв слід уникнути. Якщо Аліса складе всі пристрої та копії в одну шухляду, одна крадіжка або пожежа може звести нанівець перевагу розділення. Більше зусиль потребують і перевірка платежів, сумісність гаманців та відновлення. Умови витрачання тут записують у скрипті — короткій програмі. Звичайна скриптова multisig-транзакція зазвичай займає більше місця, ніж порівнянна транзакція з одним підписом, і за однакової ставки комісії коштує дорожче. Для новачка простий гаманець, з яким він уміє працювати, може бути безпечнішим за складну незрозумілу конфігурацію. [1] [2]

Загальний запис m із n означає, що потрібні m дійсних підписів від n визначених ключів. У класичному скриптовому Multisig публічні ключі й цей поріг входять до умови витрачання. Вихід транзакції задає її безпосередньо або криптографічно пов’язаний із відповідним скриптом. Під час витрачання вузли, тобто комп’ютери, які перевіряють правила Bitcoin, контролюють потрібні підписи й дані скрипту; самого дозволу застосунку недостатньо. У дескрипторах multi зберігає заданий порядок публічних ключів, а sortedmulti сортує їх за точним правилом. Шлях виведення вказує, які саме ключі гаманець має обчислити з вихідних даних. Неправильний порядок чи інші шляхи виведення ключів можуть утворити інші адреси. Дескриптор дає гаманцю змогу відтворити ці умови; сам він не записується в блокчейн як файл конфігурації. Цей опис стосується звичайного скриптового Multisig. Інші конструкції можуть давати кільком учасникам змогу спільно створити один підпис і мають власні правила. [3] [4] [7]

Приклад · M-of-N

Правило 2 із 3

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

Для повної картини прочитайте також Private Key, Гаманець, PSBT. На цю статтю також посилаються HD Wallet, Cold Storage, Watch-only Wallet, Change Address.

01Чи Multisig автоматично безпечніший за одну Hardware Wallet?

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

02Чи всі ключі Multisig мають бути в одному місці для підписання?

Ні. PSBT дозволяє окремо передавати дані й підписи без збирання приватних ключів. Кожен підписант має перевірити одержувачів, суми та комісію. Перед передаванням у мережу транзакцію слід завершити потрібними дійсними підписами та виконати всі інші умови входів.

DOC · 001Bitcoin Developer Guide — P2SH MultisigДокументація DOC · 002BIP 11 — M-of-N Standard TransactionsПервинне джерело DOC · 003BIP 67 — Deterministic key sortingПервинне джерело DOC · 004BIP 383 — Multisig output descriptorsПервинне джерело DOC · 005BIP 174 — Partially Signed Bitcoin Transaction FormatПервинне джерело DOC · 006BIP 380 — Output Script DescriptorsПервинне джерело DOC · 007BIP 327 — MuSig2Первинне джерело
Переглянуто: Спочатку джерела · Не інвестиційна порада