Какво означават подписите на Schnorr за биткойн?
Начало
Статии
Какво означават подписите на Schnorr за биткойн?

Какво означават подписите на Schnorr за биткойн?

Средно ниво
Публикувано Jul 8, 2020Актуализирано Dec 28, 2022
6m

Съдържание

Въведение

Както може би знаете, биткойн налага правата на собственост с нещо, наречено алгоритъм за цифров подпис с елипсовидна крива (или ECDSA). Алгоритъмът ви позволява да вземете едно число (т.е. частен ключ) и да извлечете публичен ключ от него.
Магията на това е, че въпреки че е лесно да получите публичния ключ от частния ключ, обратното е невъзможно. Вашият частен ключ е вашият паспорт към биткойн мрежата. Това ви позволява да генерирате адрес за получаване на монети и това, което по-късно ви позволява да ги харчите. 

В тази статия ще разгледаме алгоритъма за подпис на Schnorr, алтернатива на ECDSA, която може да донесе някои вълнуващи промени в биткойн.


Кратко обобщение на цифровите подписи

Цифровите подписи работят точно като техните предшественици с писалка и хартия, но са много по-сигурни. Всеки може да подправи подпис с писалка и хартия с малко време и усилия. Не можете да направите същото със стабилна схема за цифров подпис, дори ако сте имали стотици хиляди години на ваше разположение.

Има няколко случая на използване на цифрови подписи. Популярният включва доказване на света, че сте написали конкретно съобщение. Както споменахме, можете да създадете публичен ключ от частен ключ (огромен брой, който трябва да запазите в тайна). Можете да направите това, като извършите някаква фантастична математика над кривата secp256k1. Оттам можете също да генерирате публичен адрес от своя публичен ключ.

Имайте предвид, че е напълно безопасно да покажете публичния си ключ на всеки. Можете да го добавите към вашия уебсайт или биография в Twitter, така че другите да могат да потвърдят вашата самоличност. По същия начин можете да споделяте публичните си адреси с други, за да могат да ви изпращат криптовалути.

Вашият частен ключ ви позволява да създадете цифров подпис. Като напишете съобщение и извършите операция върху него с личния си ключ, вие създавате подписано съобщение. Всеки може да вземе това и да го сравни с вашия публичен ключ, за да провери дали наистина е подписан от вас.

Как това се свързва с биткойн? Е, всеки път, когато правите трансакция с биткойн, вие подписвате цифрово съобщение, което казва, че изпращам тези монети, които преди са ми били изпратени. След това, когато се изпрати до други възли в мрежата, те могат да проверят дали подписът ECDSA съответства на съобщението. Ако не стане, просто ще го отхвърлят.


Какво представляват Schnorr подписите?

Подписите на Schnorr са различен вид схема. Те работят подобно на алгоритъма за цифров подпис с елиптична крива, който използваме в момента, но може да се похвали с редица предимства пред него. Подписите на Schnorr всъщност предшестват ECDSA, което кара мнозина да се чудят защо не са интегрирани в биткойн от самото начало. 

Едно възможно обяснение е, че Клаус П. Шнор – създателят на схемата – ги е патентовал. Патентите изтекоха в началото на 2008 г., месеци преди пускането на бялата книга за биткойн, но схемата все още нямаше стандартизация. Като такъв Сатоши Накамото избра по-широко приетата (и с отворен код) ECDSA.


Защо подписите на Schnorr са изгодни?

Подписите на Schnorr са доста прости в сравнение с други схеми. В резултат на това те са по-доказуемо сигурни от техните алтернативи. На пръв поглед може да не означава много за вас, но те имат още едно силно свойство: линейност.
Казано по-просто, това прави схемата особено привлекателна за определени дейности – най-вече за трансакции с множество подписи. Може би знаете, че биткойн вече поддържа множество подписи, но не го прави по най-красивия начин.

Когато създавате адрес с много подписи, този, който ви изпраща средства, не е необходимо да знае какви условия сте задали за изразходване на входните данни. Те може дори да не знаят, че изпращат средства към настройка с множество подписи – единствената особеност на адреса е, че той започва с „3“. 

Въпреки това разкривате естеството му, когато искате да преместите средствата. Да речем, че сте използвали настройка 3 от 3 заедно с Алис и Боб. За да похарчите, да речем, 5 BTC, вие тримата трябва да предоставите публичните ключове и валидни подписи. Когато преместите средствата от адреса, цялата мрежа може да научи какво се е случило, като погледне блокчейна

От гледна точка на поверителността, това не е страхотно. За да добавим към това, ако създадем по-голям multisig (напр. 8 от 10), тогава заемаме доста място в блокчейна. Това може да бъде скъпо, тъй като ще доведе до дълга трансакция – не забравяйте, че колкото повече байтове във вашата трансакция, толкова повече трябва да платите.

Подписите на Schnorr са рекламирани като решение на тези проблеми с поверителността и мащабируемостта. Те позволяват неща като агрегиране на подписи, които комбинират подписите на множество подписващи лица в един подпис. Полученият „главен подпис“ все още ще бъде със същата дължина като обикновен подпис от едно лице, което води до значителни спестявания на пространство. 
В допълнение, комбинираните подписи правят много по-трудно за наблюдателя да определи кой е подписал (или не е подписал) трансакция. В схемите m-of-m (където всички участници трябва да подпишат, за да изразходват средства), вие дори не бихте могли да правите разлика между трансакции с една страна и такива с много подписи.
Най-важното е, че подписите на Schnorr са градивен елемент за по-нататъшни подобрения. Веднъж внедрени, те могат да бъдат използвани за подобряване на технологиите в крипто, като атомни суапове и Lightning Network.



Кога подписите на Schnorr ще бъдат внедрени в биткойн?

Не сме сигурни. Както при повечето надстройки на протокола за биткойн, може да отнеме време на по-широката общност от потребители на биткойн да се споразумеят за включването на подписа на Schnorr. Сътрудниците на Bitcoin Core Питър Вуйле, Джонас Ник и Тим Ръфинг изпратиха проект на предложение за подобряване на биткойн (BIP), но все още има малко работа, която трябва да се свърши.
Blockstream вече пусна реализация – MuSig. Позволявайки подпис и агрегиране на ключове, той може да послужи като основа за собствената схема на Биткойн за подпис на Schnorr.
Подписите на Schnorr могат да бъдат обединени в кода като меко разклонение, което означава, че промяната няма да раздели мрежата. Вместо това, това би било надграждане за „включване“. Въпреки това би било оптимистично да се предположи, че ще ги видим интегрирани в близко бъдеще – все още може да отнеме няколко години, преди да бъде постигнат консенсус.


Заключителни мисли

Подписите на Schnorr са един от най-очакваните етапи в текущата пътна карта за биткойн. Само с едно надграждане те могат да осигурят значителни ползи за поверителност и мащабируемост. Може би по-интересното е, че те създават и сцената за по-нататъшно развитие на интелигентните договори  за биткойн и по-напреднали конструкции като Taproot .