Home » Il grande aggiornamento Taproot: miti e verità

Il grande aggiornamento Taproot: miti e verità

by Christian

La settimana scorsa è stato attivato Taproot, uno degli aggiornamenti più importanti nella storia di Bitcoin. Ma ciò che fa in realtà è difficile da capire e non di rado viene travisato. Abbiamo quindi chiesto a un esperto.

La scorsa settimana è stato attivato Taproot, uno dei più grandi aggiornamenti di Bitcoin di tutti i tempi, che la comunità ha atteso con ansia per anni. Ma cos’è esattamente Taproot? E cosa fa?

Chiunque legga le notizie su Taproot con questa domanda in mente raccoglierà un bel po’ di confusione. Quindi questo articolo inizia con una piccola panoramica di ciò che gli altri stanno scrivendo.

Quando le agenzie di stampa stanno già parlando di un aggiornamento di bitcoin…

Una delle caratteristiche più notevoli di Taproot è che è il primo aggiornamento di Bitcoin che ha fatto notizia all’agenzia di stampa DPA. Questo spiega perché improvvisamente si trovano informazioni su Taproot in quasi tutti i mezzi di comunicazione, dalla Süddeutsche e FAZ al Wiener Standard e la Gazzetta delle piccole città. O, piuttosto: disinformazione.

Taproot, spiega Finanzen.net, ha un “significato di vasta portata per la blockchain Bitcoin”. L’aggiornamento rende Bitcoin “ancora più agile e flessibile” e apre “la strada a importanti innovazioni tecnologiche”. La FAZ e molti altri giornali citano il rapporto della DPA secondo cui l’aggiornamento porta “più privacy, meno esigenze di stoccaggio e costi in calo”.

Tutto questo rimane così vago che non può essere né sbagliato né giusto. Se si vuole sapere più concretamente, si impara piuttosto meno, e se è così, allora volentieri sbagliato o fuorviante. Finanzen.net, per esempio, dice che Taproot “genera una sola chiave pubblica per i pagamenti invece di diverse chiavi pubbliche […]”, il che, a parte la confusione dei termini, è corretto solo a metà. Inoltre, Taproot permette “contratti intelligenti più complessi sulla blockchain di Bitcoin”, motivo per cui Bitcoin potrebbe presto competere con Ethereum.

Nella FAZ, si apprende che le firme Schnorr “forniscono più privacy per Bitcoin”. Il giornale e la DPA hanno chiesto al professore di blockchain Philipp Sandner una dichiarazione in merito, e lui ha detto che “queste transazioni Schnorr … rilasciano un fascio di transazioni con una sola firma”. Anche un professore a volte può essere così sbagliato che non si sa da dove cominciare.

La fonte più competente di informazioni su Taproot è Heise. La rivista IT spiega che l’aggiornamento introduce il “tipo di transazione Pay-to-Taproot (P2TR)”, “che combina i concetti di firma Schnorr e ‘Merklized Alternative Script Trees'”. Ma perfino Heise si affloscia quando la rivista sostiene che Taproot aumenta la privacy delle transazioni o che Schnorr permette di firmare una transazione con una firma aggredibile.

Questo è vero solo a metà, e soprattutto mostra quanto sia difficile capire – e spiegare – un aggiornamento tecnicamente sofisticato come Taproot.

Upgrade come un involucro

Stiamo cercando di portare un po’ di ordine nel caos di Taproot. Per fare questo ci siamo messi in contatto con Mark Erhardt, conosciuto anche come Murch su internet. Mark lavora a New York presso Chaincode Labs, avendo precedentemente lavorato per BitGo a Palo Alto. È difficile avvicinarsi ai centri di sviluppo del Bitcoin più del nativo di Baden.

Mark ci ha aiutato non solo a capire meglio Taproot concettualmente, ma anche ad afferrare ciò che l’aggiornamento ora significa in termini concreti.

Cosa sta cambiando Taproot? Quali sono i vantaggi dell’aggiornamento?

Taproot consiste approssimativamente in due componenti: Le firme di Schnorr e l’albero degli script. Entrambi i componenti sono indipendenti l’uno dall’altro, ma lavorano insieme, e ognuno di essi non è facile da capire. Questo è uno degli ostacoli alla comprensione di ciò che Taproot fa veramente – e ciò che non fa.

Schnorr – il migliore ECDSA

Le firme

Schnorr sono le più facili da capire. Questi c’erano, spiega Mark, prima dell’algoritmo di firma ECDSA usato da Bitcoin.

“Il processo di firma è super interessante, ma l’inventore, Klaus-Peter Schnorr, lo ha brevettato. Poiché la tassa di brevetto era troppo costosa, altri crittografi hanno inventato ECDSA per firmare anche sulla base di curve ellittiche. Nel frattempo, però, la protezione del brevetto è scaduta”.

ECDSA è buono, molto buono in effetti, ed è per questo che Satoshi ha scelto l’algoritmo per Bitcoin. Ma non è così buono come Schnorr, e senza la protezione del brevetto, probabilmente non ci sarebbe stata una ragione per chiunque di usare ECDSA invece di Schnorr.

La differenza più importante sta in un dettaglio piccolo ma in parte cruciale: “Le firme non sono lineari in ECDSA, lo sono in Schnorr”, spiega Mark. “Se uno schema di firma è lineare, è possibile aggregare più firme in modo che l’aggregato permetta di controllare. Non puoi farlo con schemi non lineari, come ECDSA”.

Quindi, teoricamente, ciò che la FAZ e Heise sostengono è vero: si potrebbero aggregare tutte le firme di una transazione in una sola attraverso Schnorr. Attualmente, se una transazione ha molti input – quindi combina molte monete – devi firmare ogni input e scrivere ogni firma sulla blockchain. Questo rappresenta molti dei dati delle transazioni. Schnorr potrebbe effettivamente cambiare le cose.

Potrebbe! Perché “sfortunatamente, questa aggregazione non è entrata nell’aggiornamento di Taproot”, chiarisce Mark. “Questo avrebbe richiesto ulteriori definizioni e discussioni, così hanno deciso di farlo più tardi. “

Signatures secretly aggregate

Nonostante, aggregare le firme di Schnorr con Taproot è già possibile ora. Ma non per le transazioni normali, solo per quelle multisig. Multisig significa che due o più parti devono firmare una transazione in modo che le monete possano essere emesse da un indirizzo speciale (indirizzo multisig).

“Diciamo che creiamo insieme un portafoglio dove possiamo spendere soldi solo se entrambi firmiamo. Sarebbe un ‘2 per 2 multisig’. Grazie a Taproot, possiamo aggregare le nostre chiavi pubbliche: Tu mi dai la tua chiave pubblica, io la combino con la mia e il risultato è indistinguibile da un indirizzo normale. Così non si può dire che sia un portafoglio condiviso”.

Questo “non poterlo dire” è la ragione definitiva per cui si dice che Taproot migliora la privacy.

In precedenza, gli indirizzi multisig potevano essere riconosciuti facilmente. Hanno iniziato con un tre, invece che con un uno come gli indirizzi tradizionali. SegWit ha ammorbidito un po’ questo, dato che il formato di un indirizzo SegWit inizia anche con un 3. Tuttavia, i diversi tipi di indirizzi creano differenze che minano parzialmente la privacy di Bitcoin.

Con Taproot, tali differenze possono essere livellate completamente. Non importa quali condizioni di uscita un indirizzo incorpori – una firma, firme multiple, timelock, contratti intelligenti – hanno tutti lo stesso aspetto.

Ma le sole firme di Schnorr non sono sufficienti per questo. Perché questi sono efficaci solo per costruzioni multisig semplici: “2 di 2”, “3 di 3”, e così via. In pratica, tuttavia, altri modelli sono più popolari, vale a dire le cosiddette firme a soglia, come “2 di 3”: Una terza parte ha una chiave di riserva e interviene se un’altra chiave viene persa, o arbitra se le altre due non sono d’accordo.

In tali modelli, l’aggregazione per firme di Schnorr non funziona. A questo punto dobbiamo parlare della seconda parte di Taproot: l’albero degli script.

Un albero di script per gli altri casi

L’ex datore di lavoro di Mark, il fornitore di portafogli BitGo, offre una classica costruzione “2 di 3”: ci sono tre chiavi. Uno è tenuto dal cliente, uno da BitGo, e il terzo è un backup ben protetto e conservato al freddo. Di queste tre chiavi, due sono necessarie per inviare una transazione, che di solito sono quelle del cliente e di BitGo.

“C’è un’aspettativa su quali due chiavi saranno usate. Questo può essere servito con le firme aggregate di Schnorr. Così formiamo un’uscita P2TR con le chiavi da voi e da BitGo, e quando si verifica il caso normale, possiamo firmare con una firma aggregata”.

Questo modo di firmare le transazioni tra due parti è il più elegante, semplice e bello. In confronto, il metodo attuale che utilizza indirizzi “P2SH” (pay-to-script hash) è mostruosamente complesso.

Ma cosa succede se si arriva al caso di riserva? Se perdo la mia chiave e BitGo firma con la chiave di riserva? O se BitGo fallisce e devo mettere in gioco la chiave di riserva?

“Questi altri percorsi non previsti sono intessuti come foglie nell’albero degli script che Taproot ha introdotto”, spiega Mark. E naturalmente questa spiegazione grida per essere spiegata essa stessa.

Dalle foglie alla radice

Un albero di script è fondamentalmente “solo” un albero Merkle o hash di script. Ma cos’è un albero hash?

Un albero di hash è una disposizione speciale di un gran numero di hash. Per esempio, diciamo che abbiamo quattro transazioni bitcoin e le mettiamo in hash. Poi avremmo quattro hash. In un albero di hash, sono chiamati “foglie”.

L’obiettivo dell’esercizio è quello di avanzare dalle foglie ai rami fino alla radice dell’albero dell’hashish. Per fare questo, prima uniamo il primo e il secondo hash insieme e lo hashiamo. Facciamo lo stesso con il terzo e il quarto. I due hash che abbiamo come risultato – i rami – sono anche hash. Questo ci dà la radice: un hash che sta per una moltitudine di hash.

Questo albero hash sembra un albero rovesciato: La corona è in basso, la radice in alto. Immagine da wikipedia.org, licenza: Creative Commons

Questo albero hash sembra un albero rovesciato: La corona è in basso, la radice in alto. Immagine da wikipedia.org, licenza: Creative Commons


Cosa fa una tale radice? Permette un singolo hash per provare una varietà di dati. Un esempio è un blocco di Bitcoin: i minatori prendono una grande quantità di transazioni – di solito qualche migliaio – e formano da esse la radice dell’albero hash. Questa radice è la base del mining, e permette a chiunque di controllare se un blocco è valido.

Nello scriptbaim introdotto da Taproot, ogni “foglia” è un modo per spendere Bitcoin – uno script. L’indirizzo multisig menzionato sopra contiene non solo l’aggregato di due chiavi pubbliche, ma anche la radice dell’albero degli script.

Ora, se succede il caso non previsto che firmo con la mia e la chiave di backup perché BitGo fallisce, succede quanto segue, spiega Mark: “Rivelo lo script corrispondente, che è memorizzato in una foglia dell’albero degli script. Per dimostrare che l’indirizzo originale codifica queste condizioni di uscita, rivelo gli hash di altre foglie e rami in modo che la radice possa essere ricostruita. Poi soddisfo lo script contenuto nel foglio con le firme delle due chiavi”.

Così abbiamo una procedura in cui le transazioni multisig sono di solito – quando si verifica il caso previsto – più eleganti, più semplici e anche più private. Solo nei casi non previsti entra in gioco l’albero degli script. Il risultato è similmente complesso come il metodo P2SH – ma è un po’ più privato.

Perché con P2SH, l’intero script è in hash, che contiene tutte le possibilità di come le monete devono essere spese. Per scrivere una transazione valida, devo mostrare il testo puro dello script. Quindi devo rendere pubblico quali chiavi pubbliche sono coinvolte, anche se non vengono utilizzate affatto.

Con P2TR, invece, è sufficiente che io scriva l’opzione che effettivamente si verifica in chiaro nella transazione. Tutte le altre opzioni rimangono offuscate.

La svolta per il multisig

Non c’è bisogno di discutere se Taproot è elegante. Lo è. L’albero degli script è un’utile aggiunta alle firme di Schnorr. È comprensibile che uno sviluppatore come Mark sia entusiasta di Taproot e non veda l’ora che l’aggiornamento arrivi in tutti i portafogli.

Ma coloro per i quali l’eleganza tecnica non è un fine in sé, ma un mezzo, è probabile che ora chiedano: qual è il punto in termini reali? Quindi cosa può fare Bitcoin meglio di prima con Taproot?

“Multisig è uno standard molto più sicuro per gestire il denaro”, dice Mark. “Si possono creare backup e rendere più difficile la spesa. Ti rende meno vulnerabile”.

Fino ad ora, però, i metodi multisig avevano degli svantaggi significativi: erano spesso complessi, sia per l’utente che per lo sviluppatore, limitavano la privacy e costavano di più in tasse. Tutti questi svantaggi scompaiono con Taproot. “Dai via meno informazioni private, riveli meno della tua configurazione e puoi fare di più con meno dati sulla blockchain”.

Mark spera che Taproot aiuti Multisig a sfondare. Che più portafogli adotteranno Multisig, che ci saranno standard migliori, e che l’esperienza dell’utente, che attualmente è spesso ancora grottesca, migliorerà.

What Taproot doesn’t do

Nonostante tutto l’entusiasmo, Mark mette in guardia da aspettative esagerate e false. Il che ci riporta al punto di partenza. Sul rapporto della DPA e la sua interpretazione nelle redazioni.

“A volte si dice che Taproot porta DeFi a Bitcoin perché permette i contratti intelligenti. Questo è sbagliato. Gli Smart Contracts esistono già, e tutto quello che Taproot può fare era possibile prima – era solo più complicato, più costoso e meno privato”.

Ci sono anche alcune idee sbagliate che circolano sulla privacy con Taproot. “Ieri ho letto su un importante giornale tedesco che Bitcoin sta diventando più anonimo grazie a Taproot. Anche questo non è vero. È vero che non si può più vedere se una o più parti stanno firmando. Ma l’indirizzo è ancora pseudonimo e si può ancora vedere quali monete vengono emesse. “

Gli analisti della blockchain non avranno problemi ad analizzare e raggruppare portafogli e indirizzi come prima, anche dopo Taproot. “Impari solo un po’ meno sull’assetto sotto il cofano. Che si tratti di un indirizzo normale, di un canale Lightning o di una configurazione multisig, non si può più vedere. Ma la tracciabilità generale del flusso di denaro rimane la stessa. “

Ora è il turno dell’ecosistema

Come spesso accade con Bitcoin, ci vuole del tempo perché un aggiornamento raggiunga i portafogli e gli utenti. Basta pensare a SegWit. L’aggiornamento ha richiesto molto tempo per essere distribuito a una gran parte delle transazioni, e ancora di più per il supporto degli indirizzi bech32.

Murch spera che sia più veloce per Taproot. “I portafogli BitGo possono già ricevere monete con Taproot. Questo dimostra che questa volta può essere più veloce”.

Per capire di cosa si tratta, e perché non è semplice, è necessario conoscere alcuni dettagli più tecnici. A rischio di sommergervi, dobbiamo parlare dei formati di indirizzo coinvolti.

  • Gli indirizzi predefiniti sono chiamati “Pay-to-Public-Key-Hash” (P2PKH) e iniziano con un 1.
  • Gli indirizzi “Pay-to-Script-Hash” (P2SH) di cui abbiamo già parlato iniziano con un 3. Questi sono stati utilizzati per il multisig e altri contratti intelligenti come i time-lock.
  • SegWit era anche inizialmente costruito su indirizzi che iniziavano con un 3: Il “Nested SegWit Addresses” o – scusate: “Pay to Script Hash Pay to Witness Public Key Hash” (P2SH-P2WPKH). Qui, più o meno lo script per SegWit è stato hashato e trasferito in un indirizzo P2SH. Questo ha permesso di introdurre SegWit in un modo meno dirompente.
  • Gli indirizzi nativi SegWit-v0, o gli indirizzi Pay to Witness Public Key Hash (P2WPKH), che tecnicamente lavorano in modo più efficiente, usano il formato bech32. Questo nuovo standard ha un aspetto completamente diverso, gli indirizzi sono più lunghi, consistono solo di lettere minuscole e iniziano con “bc1”.

Pay-to-Taproot (P2TR) usa anche lo standard bech32. Tuttavia, c’è una leggera differenza nella generazione degli indirizzi, motivo per cui gli indirizzi v0 utilizzati finora non sono compatibili. Questo è intenzionale per evitare che qualcuno perda denaro.

“In preparazione per Taproot, abbiamo scoperto che alcuni portafogli ignoravano la versione Witness negli indirizzi bech32 e definivano sempre gli output come Native-Segwit-v0,” spiega Mark. “Se uno di questi portafogli avesse inviato denaro a un indirizzo P2TR, lo script P2TR sarebbe stato codificato nell’output, ma avrebbe richiesto il completamento di uno script P2WPKH per spendere a causa dell’errore di versione. Il beneficiario non sarebbe stato in grado di spendere il denaro”.

Per Mark, è quindi importante che il maggior numero possibile di portafogli permetta di inviare denaro agli indirizzi Taproot. Perché finché questo non sarà ampiamente possibile, sarà sempre svantaggioso per gli utenti usare questi indirizzi.

Gli sviluppatori del nucleo hanno fatto il loro lavoro. Ma il lavoro per l’ecosistema è solo all’inizio a questo punto.

Related Posts

Leave a Comment