Зміст
Як ви, можливо, знаєте,
Bitcoin забезпечує дотримання прав власності за допомогою так званого алгоритму цифрового підпису на основі еліптичних кривих (або ECDSA). Алгоритм дозволяє взяти одне число (тобто
приватний ключ) та отримати з нього публічний ключ.
Магія цього полягає в тому, що, хоча вам легко отримати публічний ключ із приватного ключа, зворотне – неможливе. Ваш приватний ключ – це ваша перепустка в мережу Bitcoin. Це те, що дозволяє вам генерувати
адресу для отримання
монет, а потім дозволяє їх витрачати.
У цій статті ми розглянемо алгоритм підпису Шнорра, альтернативу ECDSA, яка може зробити деякі цікаві зміни в Bitcoin.
Цифрові підписи працюють так само, як і їхні попередники, написані на папері, але вони набагато надійніші. Будь-хто може підробити підпис на папері, витративши трохи часу та зусиль. Ви не можете зробити те саме з надійною схемою цифрового підпису, навіть якби у вашому розпорядженні були сотні тисяч років.
Існує декілька варіантів використання цифрових підписів. Найбільш популярний включає доказ того, що ви написали конкретне повідомлення. Як уже згадувалося, ви можете створити публічний ключ із приватного ключа (величезне число, яке ви повинні тримати в секреті). Ви робите це, виконуючи деякі хитрі обчислення над кривою secp256k1. Звідти ви також можете згенерувати публічну адресу з публічного ключа.
Зверніть увагу, що показувати свій публічний ключ будь-кому безпечно. Ви можете додати його на свій вебсайт або біографію в Twitter, щоб інші могли підтвердити вашу особистість. Так само ви можете поділитися своїми публічними адресами з іншими користувачами, щоб вони могли надсилати вам криптовалюти.
Ваш приватний ключ дозволяє створити цифровий підпис. Написавши повідомлення та виконавши операцію за допомогою свого приватного ключа, ви створюєте підписане повідомлення. Будь-хто може взяти його і порівняти з публічним ключем, щоб переконатися, чи він дійсно підписаний вами.
Як це пов'язано з Bitcoin? Щоразу, коли ви здійснюєте транзакцію у
Bitcoin, ви підписуєте цифровим підписом повідомлення, в якому говориться, що
я відправляю ці монети, які були відправлені мені. Потім, коли воно відправляється іншим
нодам мережі, вони можуть перевірити, чи відповідає підпис ECDSA повідомленню. Якщо це не так, вони просто відхилять його.
Підписи Шнорра – це інший вид схеми. Він працює аналогічно алгоритму цифрового підпису на еліптичних кривих, який ми використовуємо зараз, але має ряд переваг у порівнянні з ним. Підписи Шнорра дійсно з'явилися раніше, ніж ECDSA, що змушує багатьох задуматися, чому вони не були інтегровані в Bitcoin з самого початку.
Одне з можливих пояснень у тому, що Клаус П. Шнорр – творець схеми запатентував їх. Термін дії патентів закінчився на початку 2008 року, за кілька місяців до випуску whitepaper Bitcoin, але схема все ще не була стандартизована в усіх напрямках. Таким чином,
Сатоші Накомото вибрав більш поширену (з
відкритим вихідним кодом) ECDSA.
Підписи Шнорра досить прості, порівняно з іншими схемами. В результаті вони більш доказово безпечні, ніж їх альтернативи. На перший погляд це може не мати великого значення для вас, але вони мають ще одну потужну властивість: лінійність.
Простіше кажучи, це робить схему особливо привабливою для певних видів діяльності, насамперед для транзакцій із
мультипідписом. Можливо, ви знаєте, що Bitcoin вже підтримує мультипідпис, але не найкращим чином.
Коли ви створюєте адресу з мультипідписом, тому, хто надсилає вам кошти, не потрібно знати, які умови ви встановили для витрачання коштів. Вони можуть навіть не знати, що надсилають кошти на контракт мультипідписом – єдина особливість адреси полягає в тому, що вона починається з "3".
Однак ви розкриваєте її природу, коли хочете переказати кошти. Допустимо, ви використовували схему "3 із 3" разом з Алісою та Бобом. Щоб витратити, скажімо, 5 BTC, ви троє повинні надати приватні ключі та дійсні підписи. Коли ви переказуєте кошти з адреси, вся мережа може дізнатися, що сталося, глянувши на
блокчейн.
З погляду конфіденційності це не дуже добре. Якщо ми створюємо більший мультипідпис (наприклад, 8 із 10), то ми займаємо досить багато місця в блокчейні. Це може бути дорого, тому що призведе до тривалої транзакції – пам'ятайте, що чим більше байтів у транзакції, тим більше вам потрібно заплатити.
Підписи Шнорра просуваються як вирішення цих проблем конфіденційності та
масштабованості. Тому що вони допускають такі речі, як
агрегація підписів, яка об'єднує підписи декількох підписантів в один підпис. Отриманий "майстер підпис", як і раніше, матиме ту ж довжину, що й звичайний підпис однієї людини, що призведе до значної економії місця.
Крім того, комбіновані підписи значно ускладнюють для спостерігача визначення, хто підписав (або не підписав) транзакцію. У схемах "m-of-m" (де всі учасники повинні здійснити підпис, щоб витратити кошти), ви навіть не зможете відрізнити односторонні транзакції від транзакцій із мультипідписом.
Важливо відзначити, що підписи Шнорра є будівельним блоком подальшого розвитку. Після впровадження їх можна використовувати для покращення технологій у криптографії, таких як
атомарні свопи та
Lightning Network.
Ніхто не знає. Як і у випадку з більшістю оновлень протоколу Bitcoin, широкій спільноті користувачів Bitcoin може знадобитися час, щоб домовитися про включення підпису Шнорра. Автори Bitcoin Core, Pieter Wuille, Jonas Nick та Tim Ruffing представили чорновий варіант
пропозиції щодо поліпшення Bitcoin (BIP), але попереду ще багато роботи.
Blockstream вже випустила реалізацію
MuSig. Допускаючи агрегацію підписів і ключів, вона може служити основою для власної схеми підпису Шнорра Bitcoin.
Підписи Шнорра можуть бути об'єднані з кодом у вигляді
софтфорка, що означає, що зміна не призведе до поділу мережі. Натомість це буде оновлення "за бажанням". Проте було б оптимістично припускати, що ми побачимо їхню інтеграцію в найближчому майбутньому – на досягнення консенсусу може піти ще декілька років.
Підписи Шнорра – один з найочікуваніших етапів у поточній дорожній карті Bitcoin. За допомогою лише одного оновлення вони можуть забезпечити значні переваги конфіденційності та
масштабованості. Що ще цікавіше, вони також закладають основу для подальшого розвитку
смарт-контрактів на Bitcoin та більш просунутих конструкцій, таких як
Taproot.