Home » Wielka aktualizacja Taproot: mity i prawdy

Wielka aktualizacja Taproot: mity i prawdy

by v

W zeszłym tygodniu aktywowano Taproot, jedną z najważniejszych aktualizacji w historii Bitcoina. Ale to, co faktycznie robi, jest trudne do zrozumienia i nierzadko błędnie przedstawiane. Dlatego zwróciliśmy się do eksperta.

W zeszłym tygodniu aktywowany został Taproot, jedna z największych aktualizacji Bitcoina wszechczasów, na którą społeczność czekała z niecierpliwością od lat. Ale czym dokładnie jest Taproot? I co to robi?

Każdy, kto czyta wiadomości o Taproot z myślą o tym pytaniu, będzie miał sporo zamieszania. Więc ten artykuł zaczyna się od małego przeglądu tego, co inni piszą.

Gdy agencje prasowe już donoszą o aktualizacji bitcoina …

Jedną z najbardziej godnych uwagi cech Taproot jest to, że jest to pierwsza aktualizacja Bitcoin, która była nowością dla agencji prasowej DPA. To wyjaśnia, dlaczego nagle można znaleźć informacje o Taproot w prawie każdym medium, od Süddeutsche i FAZ do Wiener Standard i małomiasteczkowej Gazette. Albo raczej: dezinformacja.

Taproot, wyjaśnia Finanzen.net, ma „daleko idące znaczenie dla Bitcoin blockchain”. Aktualizacja sprawia, że Bitcoin jest „jeszcze bardziej zwinny i elastyczny” i toruje „drogę dla ważnych innowacji technologicznych”. FAZ i wiele innych gazet cytuje raport DPA, że aktualizacja przynosi „więcej prywatności, mniejsze wymagania dotyczące przechowywania i spadające koszty”.

Wszystko to pozostaje tak niejasne, że nie może być ani złe, ani dobre. Jeśli ktoś chce wiedzieć bardziej konkretnie, uczy się raczej mniej, a jeśli tak, to chętnie błędnie lub mylnie. Finanzen.net, na przykład, twierdzi, że Taproot „generuje tylko jeden klucz publiczny dla płatności zamiast kilku kluczy publicznych […]”, co, pomijając pomieszanie pojęć, jest w najlepszym wypadku tylko połowicznie poprawne. Co więcej, Taproot umożliwia „bardziej złożone inteligentne kontrakty na blockchainie Bitcoin”, dlatego Bitcoin może wkrótce konkurować z Ethereum.

W FAZ dowiadujemy się, że podpisy Schnorra „zapewniają więcej prywatności dla Bitcoin”. Gazeta i DPA zwróciły się do profesora blockchain Philippa Sandnera o wypowiedź w tej sprawie, a ten pouczył, że „te transakcje Schnorra … uwalniają pakiet transakcji z jednym podpisem”. Nawet profesor może się czasem tak pomylić, że nie wiadomo, od czego zacząć.

Najbardziej kompetentnym źródłem informacji o Taproot jest Heise. Magazyn IT wyjaśnia, że aktualizacja wprowadza typ transakcji „Pay-to-Taproot (P2TR)”, „który łączy w sobie koncepcje podpisów Schnorra i 'Merklized Alternative Script Trees'”. Ale nawet Heise traci głowę, gdy magazyn twierdzi, że Taproot zwiększa prywatność transakcji lub że Schnorr pozwala na podpisanie transakcji podpisem poszkodowanego.

Jest to w najlepszym wypadku półprawda, a co ważniejsze pokazuje jak trudno jest zrozumieć – i wyjaśnić – tak zaawansowany technicznie upgrade jak Taproot.

Upgrade like a wrap

Próbujemy wprowadzić trochę porządku do chaosu Taproot. W tym celu skontaktowaliśmy się z Markiem Erhardtem, znanym również w internecie jako Murch. Mark pracuje w Nowym Jorku w Chaincode Labs, wcześniej pracował dla BitGo w Palo Alto. Trudno znaleźć się bliżej centrów rozwoju Bitcoina niż rodowity Baden.

Mark pomógł nam nie tylko lepiej zrozumieć koncepcję Taproot, ale także pojąć, co upgrade oznacza w konkretnych kategoriach.

Co się zmienia w Taproot? Jakie są korzyści z aktualizacji?

Taproot z grubsza składa się z dwóch komponentów: Podpisy Schnorra i drzewo skryptów. Oba elementy są od siebie niezależne, ale współpracują ze sobą, a każdy z nich jest niełatwy do zrozumienia. Jest to jedna z przeszkód w zrozumieniu, co tak naprawdę Taproot robi – a czego nie robi.

Schnorr – lepszy ECDSA

Podpisy

Schnorr są najłatwiejsze do zrozumienia. Te, jak wyjaśnia Mark, istniały przed algorytmem podpisu ECDSA używanym przez Bitcoin.

„Proces podpisywania jest bardzo interesujący, ale wynalazca, Klaus-Peter Schnorr, opatentował go. Ponieważ opłata patentowa była zbyt droga, inni kryptografowie wymyślili ECDSA, aby również podpisywać się w oparciu o krzywe eliptyczne. W międzyczasie jednak ochrona patentowa wygasła.”

ECDSA jest dobry, w rzeczywistości bardzo dobry, dlatego Satoshi wybrał ten algorytm dla Bitcoina. Ale nie jest on tak dobry jak Schnorr, a bez ochrony patentowej, prawdopodobnie nie byłoby powodu, aby ktokolwiek używał ECDSA zamiast Schnorra.

Najważniejsza różnica leży w małym, ale częściowo kluczowym szczególe: „Podpisy nie są liniowe w ECDSA, są w Schnorr,” wyjaśnia Mark. „Jeśli schemat podpisu jest liniowy, możesz zagregować wiele podpisów tak, że agregat pozwala na sprawdzenie. Nie można tego zrobić z nieliniowymi schematami, takimi jak ECDSA.”

Teoretycznie więc to, co twierdzą FAZ i Heise jest prawdą: można by połączyć wszystkie podpisy w transakcji w jeden poprzez Schnorra. Obecnie, jeśli transakcja ma wiele wejść – a więc łączy wiele monet – musisz podpisać każde wejście i zapisać każdy podpis do blockchaina. Stanowi to znaczną część danych dotyczących transakcji. Schnorr mógłby to zmienić.

Może! Ponieważ „niestety, ta agregacja nie znalazła się w aktualizacji Taproot,” wyjaśnia Mark. „Wymagałoby to dodatkowych definicji i dyskusji, więc zdecydowali się zrobić to później. „

Podpisy potajemnie zagregowane

Niemniej jednak, agregacja sygnatur Schnorra z Taprootem jest już możliwa. Ale nie dla normalnych transakcji, tylko dla transakcji multisig. Multisig oznacza, że dwie lub więcej stron musi podpisać transakcję, aby monety mogły być emitowane ze specjalnego adresu (adres multisig).

„Załóżmy, że stworzymy razem portfel, w którym będziemy mogli wydawać pieniądze tylko wtedy, gdy oboje złożymy podpis. Byłby to „multisig 2 na 2″. Dzięki Taprootowi możemy agregować nasze klucze publiczne: Dajesz mi swój klucz publiczny, ja łączę go ze swoim, a wynik jest nie do odróżnienia od normalnego adresu. Więc nie można powiedzieć, że to wspólny portfel.”

Owa „niemożność powiedzenia” jest ostatecznym powodem, dla którego Taproot podobno poprawia prywatność.

Wcześniej adresy wieloznakowe można było łatwo rozpoznać. Zaczynały się od trójki, a nie od jedynki, jak tradycyjne adresy. SegWit złagodził to nieco, ponieważ format adresu SegWit również zaczyna się od 3. Mimo to, różne typy adresów tworzą różnice, które częściowo podważają prywatność Bitcoina.

Z Taprootem takie różnice mogą zostać całkowicie zniwelowane. Bez względu na to, jakie warunki wyjściowe ucieleśnia adres – jeden podpis, wiele podpisów, timelocki, inteligentne kontrakty – wszystkie wyglądają tak samo.

Ale same podpisy Schnorra do tego nie wystarczą. Są one bowiem skuteczne tylko dla prostych konstrukcji wieloznakowych: „2 z 2”, „3 z 3”, itd. W praktyce jednak bardziej popularne są inne modele, a mianowicie tzw. sygnatury progowe, np. „2 z 3”: Trzecia strona posiada klucz zapasowy i wkracza do akcji w przypadku utraty innego klucza lub arbitrażu, jeśli dwa pozostałe klucze się nie zgadzają.

W takich modelach agregacja za pomocą sygnatur Schnorra nie działa. W tym momencie musimy więc porozmawiać o drugiej części Taproota: drzewie skryptów.

Drzewo skryptów dla pozostałych przypadków

Były pracodawca Marka, dostawca portfela BitGo, oferuje klasyczną konstrukcję „2 z 3″: są trzy klucze. Jeden jest w posiadaniu klienta, drugi w BitGo, a trzeci jest dobrze zabezpieczoną, przechowywaną w niskiej temperaturze kopią zapasową. Z tych trzech kluczy, do wysłania transakcji potrzebne są dwa, które zazwyczaj są kluczami klienta i BitGo.

„Istnieje oczekiwanie co do tego, które dwa klucze zostaną użyte. Można to teraz zaserwować za pomocą zagregowanych podpisów Schnorra. Tworzymy więc wyjście P2TR z kluczami od Ciebie i od BitGo, a gdy nastąpi normalny przypadek, możemy podpisać się podpisem zbiorczym.”

Ten sposób podpisywania transakcji przez dwie strony jest najbardziej eleganckim, prostym i pięknym sposobem. W porównaniu z tym, obecna metoda wykorzystująca adresy „P2SH” (pay-to-script hash) jest wręcz potwornie skomplikowana.

Ale co, jeśli chodzi o sprawę awaryjną? Jeśli zgubię swój klucz, a BitGo podpisze się kluczem zapasowym? Albo jeśli BitGo zawiedzie i będę musiał użyć klucza zapasowego?

„Te inne, nieoczekiwane ścieżki są wplecione jako liście w drzewo skryptów, które wprowadził Taproot” – wyjaśnia Mark. I oczywiście, to wyjaśnienie aż samo się prosi o wyjaśnienie.

Od liści do korzenia

Drzewo skryptów jest w zasadzie „tylko” drzewem Merkle lub drzewem haszującym skrypty. Ale co to jest drzewo hashowe?

Drzewo haszujące jest specjalnym układem dużej liczby haszów. Na przykład, powiedzmy, że mamy cztery transakcje bitcoinowe i hashujemy je. Wtedy mielibyśmy cztery hasze. W drzewie hashowym są one nazywane „liśćmi”.

Celem ćwiczenia jest przejście od liści, przez gałęzie do korzenia drzewa haszowego. Aby to zrobić, najpierw łączymy pierwszy i drugi hasz razem i haszujemy to. To samo robimy z trzecim i czwartym. Dwa hasze, które mamy w wyniku – gałęzie – również haszujemy. To daje nam korzeń: hasz, który oznacza wiele haszów.

To drzewo haszujące wygląda jak drzewo odwrócone do góry nogami: Korona jest na dole, korzeń na górze. Obrazek z wikipedia.org, licencja: Creative Commons

To drzewo haszujące wygląda jak drzewo odwrócone do góry nogami: Korona jest na dole, korzeń na górze. Obrazek z wikipedia.org, licencja: Creative Commons


Co robi taki korzeń? Umożliwia on pojedynczy hash do udowodnienia różnorodnych danych. Przykładem jest blok Bitcoina: górnicy pobierają dużą liczbę transakcji – zwykle kilka tysięcy – i tworzą z nich korzeń drzewa hashującego. Ten korzeń jest podstawą górnictwa i pozwala każdemu sprawdzić, czy blok jest ważny.

W scriptbaimie wprowadzonym przez Taproot, każdy „liść” to sposób na wydanie Bitcoinów – skrypt. Wspomniany powyżej adres multisig zawiera nie tylko agregat dwóch kluczy publicznych, ale również korzeń drzewa skryptów.

Teraz, jeśli nieoczekiwany przypadek zdarzy się, że podpisuję się z moim i zapasowym kluczem, ponieważ BitGo zawodzi, dzieje się co następuje, Mark wyjaśnia: „Ujawniam odpowiedni skrypt, który jest przechowywany w liściu drzewa skryptów. Aby udowodnić, że oryginalny adres koduje te warunki wyjściowe, ujawniam hasze innych liści i gałęzi tak, że korzeń może być zrekonstruowany. Następnie zaspokajam skrypt zawarty w liście podpisami dwóch klawiszy.”

Mamy więc procedurę, w której transakcje wieloznakowe są zazwyczaj – gdy zachodzi spodziewany przypadek – bardziej eleganckie, prostsze, a także bardziej prywatne. Tylko w przypadkach nie oczekiwanych, drzewo skryptowe zaczyna działać. Rezultat jest podobnie złożony jak w przypadku metody P2SH – jest jednak nieco bardziej prywatny.

Ponieważ w P2SH cały skrypt jest hashowany, co zawiera wszystkie możliwości wydania monet. Aby napisać poprawną transakcję, muszę pokazać czysty tekst skryptu. Muszę więc upublicznić, które klucze publiczne są zaangażowane, nawet jeśli nie są one w ogóle używane.

Natomiast w przypadku P2TR wystarczy, że wpiszę opcję, która faktycznie występuje w transakcji w postaci zwykłego tekstu. Wszystkie inne opcje pozostają ukryte.

Przełom dla multisig

Nie ma potrzeby debatować nad tym, czy Taproot jest elegancki. Tak jest. Drzewo skryptów jest użytecznym dodatkiem do sygnatur Schnorra. Zrozumiałe jest, że deweloper taki jak Mark jest podekscytowany Taproot i nie może się doczekać, aż aktualizacja pojawi się we wszystkich portfelach.

Ale ci, dla których techniczna elegancja nie jest celem samym w sobie, lecz środkiem, mogą teraz zapytać: jaki jest tego sens w rzeczywistości? Co zatem Bitcoin może teraz robić lepiej z Taproot niż wcześniej?

„Multisig to znacznie bezpieczniejszy standard zarządzania pieniędzmi” – mówi Mark. „Możesz tworzyć kopie zapasowe i utrudniać wydawanie pieniędzy. To czyni cię mniej podatnym na zranienie.”

Do tej pory jednak metody multisig miały istotne wady: były często skomplikowane, zarówno dla użytkownika, jak i dla dewelopera, ograniczały prywatność i wiązały się z wyższymi opłatami. Wszystkie te wady znikają dzięki Taproot. „Oddajesz mniej prywatnych informacji, ujawniasz mniej o swojej konfiguracji i możesz zrobić więcej z mniejszą ilością danych na blockchainie”.

Mark ma nadzieję, że Taproot pomoże Multisigowi przebić się na rynku. Że więcej portfeli przyjmie Multisig, że będą lepsze standardy i że doświadczenie użytkownika, które obecnie często jest jeszcze groteskowe, będzie coraz lepsze.

To, czego Taproot nie robi

Pomimo całego entuzjazmu, Marek przestrzega przed przesadnymi i fałszywymi oczekiwaniami. Co sprowadza nas z powrotem do punktu wyjścia. O sprawozdaniu DPA i jego interpretacji w redakcjach prasowych.

„Czasami mówi się, że Taproot wnosi DeFi do Bitcoina, ponieważ umożliwia inteligentne kontrakty. To nie jest prawda. Smart Contracts już istnieją, a wszystko, co Taproot może zrobić, było możliwe już wcześniej – było po prostu bardziej skomplikowane, droższe i mniej prywatne.”

Istnieją również pewne błędne przekonania na temat prywatności w Taproot. „Wczoraj przeczytałem w dużej niemieckiej gazecie, że Bitcoin staje się bardziej anonimowy z powodu Taproot. To również nie jest prawda. To prawda, że nie widać już, czy jedna lub więcej stron składa podpis. Ale adres jest nadal pseudonimowy i nadal można zobaczyć, jakie monety są emitowane. „

Analitycy blockchain nie będą mieli problemu z analizą i grupowaniem portfeli i adresów jak dotychczas, nawet po Taproot. „Po prostu dowiadujesz się trochę mniej o ustawieniach pod maską. Niezależnie od tego, czy jest to normalny adres, kanał Lightning czy konfiguracja multisig, nie można go już zobaczyć. Ale ogólna identyfikowalność przepływu pieniędzy pozostaje taka sama. „

Now it’s the ecosystem’s turn

Jak to często bywa w przypadku Bitcoina, potrzeba trochę czasu, aby aktualizacja dotarła do portfeli i użytkowników. Wystarczy pomyśleć o SegWit. Aktualizacja trwała długo, zanim objęła znaczną część transakcji, a jeszcze dłużej trwało powszechne wprowadzenie obsługi adresów bech32.

Murch ma nadzieję, że w przypadku Taproot będzie to szybsze. „Portfele BitGo mogą już odbierać monety za pomocą Taproot. To pokazuje, że tym razem może być szybciej”.

Aby zrozumieć, o co w tym wszystkim chodzi i dlaczego nie jest to proste, należy poznać kilka szczegółów technicznych. Ryzykując, że Cię przytłoczymy, musimy porozmawiać o formatach adresów, które są z tym związane.

  • Domyślne adresy nazywane są „Pay-to-Public-Key-Hash” (P2PKH) i zaczynają się od 1.
  • Adresy „Pay-to-Script-Hash” (P2SH), o których już mówiliśmy, zaczynają się od cyfry 3. Były one używane do multisig i innych inteligentnych kontraktów, takich jak blokady czasowe.
  • SegWit był również początkowo zbudowany na adresach zaczynających się od 3: Nested SegWit Addresses” lub – przepraszam: „Pay to Script Hash Pay to Witness Public Key Hash” (P2SH-P2WPKH). Tutaj mniej więcej skrypt dla SegWit został zaszyfrowany i przeniesiony na adres P2SH. Dzięki temu SegWit mógł zostać wprowadzony w mniej destrukcyjny sposób.
  • Naturalne adresy SegWit-v0, lub adresy Pay to Witness Public Key Hash (P2WPKH), które technicznie działają bardziej efektywnie, używają formatu bech32. Ten nowo opracowany standard wygląda zupełnie inaczej, adresy są dłuższe, składają się tylko z małych liter i zaczynają się od „bc1”.

Pay-to-Taproot (P2TR) również używa standardu bech32. Istnieje jednak niewielka różnica w generowaniu adresów, dlatego też dotychczas używane adresy v0 nie są kompatybilne. Jest to celowe, aby nikt nie stracił pieniędzy.

„W trakcie przygotowań do Taproot, odkryliśmy, że niektóre portfele ignorowały wersję Witness w adresach bech32 i zawsze definiowały wyjścia jako Native-Segwit-v0,” wyjaśnia Mark. „Jeśli jeden z tych portfeli wysłał pieniądze na adres P2TR, skrypt P2TR zostałby zakodowany w wyjściu, ale wymagałby wypełnienia skryptu P2WPKH, aby wydać pieniądze z powodu błędu wersji. Odbiorca nie byłby w stanie wydać tych pieniędzy.”

Dla Marka jest więc ważne, aby jak najwięcej portfeli najpierw umożliwiło wysyłanie pieniędzy na adresy Taproot. Ponieważ dopóki nie będzie to powszechnie możliwe, korzystanie z tych adresów będzie zawsze niekorzystne dla użytkowników.

Główni programiści wykonali swoją pracę. Ale praca na rzecz ekosystemu dopiero się zaczyna.

Related Posts

Leave a Comment