Adaptor signatures

Difficoltà: avanzato

Argomento: tecnologia


DEFINIZIONE

Una adaptor signature è una firma aggiuntiva che viene combinata con una firma iniziale per rivelare un dato segreto.

Le adaptor signature consentono a due parti di rivelare reciprocamente due dati contemporaneamente, il che risolve il problema di fiducia coinvolto nelle transazioni simultanee come gli atomic swaps e i coin swaps.

L'impostazione per una adaptor signature prevede un valore segreto, una adaptor signature e una firma "normale". Conoscere due di questi dati è sufficiente per calcolare il terzo.

Una caratteristica potente delle adaptor signature è che una parte può generare una adaptor signature basato su un dato segreto e un'altra parte può generare la propria adaptor signature basata sugli stessi dati senza effettivamente conoscere i dati stessi.

Le Adaptor signatures (chiamate anche signature adaptors) sono dati di firma ausiliari che fanno un commit ad un valore nascosto. Quando un adaptor viene combinato con una firma corrispondente, rivela il valore nascosto. In alternativa, se combinato con il valore nascosto, l'adaptor rivela la firma. Altre persone possono creare adaptor secondari che riutilizzano il commitment anche se non conoscono il valore nascosto. Ciò rende gli adaptor un potente strumento per implementare il lock nei contratti bitcoin.

I contratti in Bitcoin richiedono spesso un meccanismo di lock per garantire l'atomicità di una serie di pagamenti: o tutti i pagamenti vanno a buon fine o tutti falliscono. Questo lock è stato tradizionalmente eseguito facendo in modo che tutti i pagamenti nel set si impegnino nella stessa preimage di hash digest; quando la parte che conosce la preimage lo rivela on-chain, tutti gli altri lo apprendono e possono sbloccare i propri pagamenti.

Gli hashlock comunemente usati in Bitcoin consumano circa 67 byte e rivelano il collegamento tra l'insieme di pagamenti perché utilizzano tutti la stessa preimage e digest.

In confronto, i signature adaptor non devono mai essere pubblicati on-chain. Per chiunque non abbia un adaptor corrispondente, una firma creata con un adaptor assomiglia a qualsiasi altra firma digitale, offrendo agli adaptor significativi vantaggi in termini di efficienza e privacy rispetto agli hashlock.

Esempio

I molteplici usi dei signature adaptor possono essere visti in un semplice protocollo coinswap. Ad esempio, Alice può fornire a Bob un adaptor per una transazione non firmata che promette di pagargli 1 BTC. Un adaptor da solo non può essere utilizzato come firma BIP340 (Schnorr), quindi Alice non ha ancora pagato Bob.

Ciò che l'adaptor fornisce a Bob è un commitment per il valore nascosto di Alice. Questo commitment include un parametro che Bob può utilizzare per creare un secondo adaptor che si impegna allo stesso valore nascosto dell'adaptor di Alice. Bob può prendere quel commitment anche senza conoscere il valore nascosto di Alice o la propria firma per quel commitment. Bob dà ad Alice il suo adaptor e una corrispondente transazione non firmata che promette di pagarle 1 BTC.

Alice ha sempre saputo il valore nascosto, quindi può combinare il valore nascosto con l'adaptor di Bob per ottenere la sua firma per la transazione che la paga. Trasmette la transazione e riceve il pagamento di Bob. Quando Bob vede quella transazione onchain, può combinare la sua firma con l'adaptor che ha dato ad Alice, permettendogli di ricavare il valore nascosto. Quindi può combinare quel valore nascosto con l'adaptor che Alice gli ha dato in precedenza. Bob trasmette quella transazione per ricevere il pagamento di Alice, completando il coinswap.

Oltre ai coinswap, ci sono molti altri usi proposti per le firme degli adaptor.

Relazione con firme multipartitiche

I signature adaptor di solito non possono garantire un contratto completamente da soli. Ad esempio, nella descrizione sopra di un coinswap, Alice potrebbe fare un double spend del suo pagamento a Bob dopo aver appreso la firma di Bob, oppure Bob avrebbe potuto provare lo stesso al contrario (con più difficoltà poiché abbiamo presunto che la transazione di Alice avesse una conferma). Questo problema viene in genere risolto combinando i signature adaptor con le firme multiparty. Ad esempio, Alice deposita i suoi soldi in un indirizzo che può essere speso solo se sia lei che Bob collaborano per creare una firma valida. Ora Alice può fornire a Bob un adaptor per la sua metà della firma multiparty, che Bob può accettare con perfetta sicurezza sapendo che Alice non potrebbe fare un double spend dei fondi senza la sua partecipazione. Ciò potrebbe inoltre richiedere un'opzione di rimborso con timelock, a tempo determinato, nel caso in cui una delle parti si rifiuti di firmare.

Nello schema di firma schnorr, i signature adaptor vengono solitamente proposti per essere combinati con schemi di firma multiparti come MuSig per consentire alla firma pubblicata di sembrare una firma di una sola parte, migliorando la privacy e l'efficienza. Ciò è possibile anche in ECDSA, ma richiede nuovi algoritmi che sono relativamente lenti o richiedono ulteriori presupposti di sicurezza. Invece, esiste uno schema alternativo per le firme degli adaptor per Bitcoin che utilizza 2-of-2 OP_CHECKSIG multisig; questo è meno efficiente e forse meno privato, ma probabilmente più semplice e sicuro dell'ECDSA multipartitico.


aggiornato il 2021-11-16