Мультипідпис

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Мультипідпис (англ. multisignature) — схема реалізації електронного підпису, яка для своєї достовірності вимагає T ключів з групи N членів[1]. По своїй суті є варіантом порогового підпису, але реалізована не як єдиний об'єкт, а як перевірка заданих умов, яку здійснює базова система скриптів криптовалюти[2].

Мультипідпис в Біткойні

[ред. | ред. код]

Особливістю Біткойна і багатьох інших криптовалют є незворотність транзакцій — немає механізму скасування підтвердженої операції або примусової дії, крім волі власника секретного ключа. Але Біткойн має вбудовану мову сценаріїв, яка дозволяє вказувати різноманітні додаткові умови для проведення транзакцій. Одна з можливих умов, які реалізуються через скрипти, створення біткойн-адреси, для управління яким потрібно обумовлену кількість підписів із заданого списку (принцип T-N).

У серпні 2013 року компанія BitGo[en] першою реалізувала гаманець з мультипідписом, який клієнти компанії могли створювати і використовувати через інтерфейс без прямого звернення до скриптів[3].

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

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

Мультипідпис в біткойні є набором підписів різних користувачів, а не одним об'єктом. Мультипідпис реалізований і в інших криптовалютах різними способами[4][5]. Мова розумних контрактів Ethereum володіє значно ширшими можливостями, ніж скриптова мова Біткойна.

Оборотні транзакції в Біткойні

[ред. | ред. код]

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

В системі Біткойн подібна процедура реалізується наступним чином.

Сторони домовляються про використання мультипідпису з залученням третьої сторони — арбітра. З використанням відкритих ключів всіх трьох сторін генерується нова адреса, яка пов'язується зі скриптом умов, де вказано, що для створення нової транзакції достатньо двох підписів. Правила створюються при створенні адреси і ніколи не можуть бути змінені.

Покупець робить грошовий переказ на створену адресу. Продавець бачить надходження, відправляє товар і створює транзакцію про переказ коштів з адреси з мультипідписом на свій. Але кошти блокуються, так як ні одна з сторін, у тому числі арбітр, не може ними самостійно розпорядитися[6]. Покупець отримує товар. Якщо все в порядку, покупець накладає на транзакцію, сформовану продавцем, свій підпис, тим самим розблокуються кошти, які йдуть на адресу продавця. Якщо товар не дійшов або покупець його повернув, то покупець формує нову транзакцію з транзитної адреси на свою, підписує її і пропонує підписати продавцю. За згодою продавця, кошти повернуться покупцеві. Якщо згода не досягнута, то останнє слово буде за арбітром. Розглянувши ситуацію, арбітр приймає рішення про передачу коштів продавцю (і накладає свій підпис на транзакцію, підготовлену продавцем) або про повернення коштів покупцю (і накладає свій підпис на транзакцію, підготовлену покупцем). Договір може передбачати винагороду арбітру. Тоді арбітр створює транзакцію з поділом платежу на користь однієї з сторін, так і у свою власну, і пропонує відповідній стороні накласти свій підпис.

Інше застосування мультипідпису

[ред. | ред. код]

Принцип мультипідпису може використовуватися для підвищення рівня безпеки при платежах криптовалютою. Формула 2-3 дозволяє створити корпоративну адресу на основі підписів власника, директора та бухгалтера.

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

Мультипідпис, для якого потрібно більше половини членів піклувальної ради якогось фонду, автоматично буде виконувати роль голосування при розгляді рішень про напрямки використання коштів. Оплачуватися будуть тільки ті проекти, які отримають більшість голосів у формі підписів під транзакцією.

Атака «днів народження»

[ред. | ред. код]

Мультипідписані адреси Біткойна використовують P2SH і захищені за допомогою HASH160 (160-бітна хеш-функція). Якщо зловмисник володіє хоча б 1 ключем з мультипідписного списку, то з урахуванням колізії хешу для підробки чужого підпису він може знизити кількість варіантів перебору до 280, що вже здійсненно для сучасних обчислювальних систем[7].

Див. також

[ред. | ред. код]

Примітки

[ред. | ред. код]
  1. Безопасность Биткоина это не только мультиподписи [Архівовано 20 червня 2018 у Wayback Machine.] // coinspot.io 30.08.2016
  2. Биткойн — это финансовая платформа с разнообразными API // Bit•Новости. Архів оригіналу за 4 березня 2014. Процитовано 24 квітня 2018.
  3. How 2014 Became the Year of Multisig. Coindesk.com. Архів оригіналу за 26 липня 2015. Процитовано 17 липня 2015.
  4. Bytecoin (BCN) is Now Armed With Multisig. Coinbrief.com. Архів оригіналу за 28 лютого 2015. Процитовано 16 вересня 2015.
  5. NXT Teases Voting System, 'Two Phase Transactions' and a Foundation. Cointelegraph. Архів оригіналу за 20 вересня 2015. Процитовано 24 квітня 2018.
  6. Обратимые транзакции в Bitcoin. Архів оригіналу за 7 лютого 2014. Процитовано 24 квітня 2018.
  7. Segregated Witness Benefits. Архів оригіналу за 26 квітня 2018. Процитовано 24 квітня 2018.