Come si stanno evolvendo i portafogli di Ethereum
Ethereum è stato creato utilizzando regole di consenso diverse da quelle Bitcoin, quindi anche i wallet devono funzionare in modo alternativo. Ma quali sono le opzioni?
Benedict Chan è responsabile della piattaforma presso l'azienda di sicurezza blockchain BitGo e un sostenitore delle tecnologie blockchain Bitcoin ed Ethereum . Ha progettato e sviluppato API e SDK utilizzati dietro una serie di implementazioni di wallet multi-firma Bitcoin .
In questo articolo, Chan LOOKS le differenze tra i portafogli multisig Ethereum e le loro controparti Bitcoin , oltre ad approfondire il loro funzionamento interno.
I wallet sono ONE delle applicazioni più basilari su qualsiasi piattaforma blockchain. Forniscono l'interfaccia per gli utenti per interagire con la blockchain. Alcuni wallet, come ONE offerto da Bitcoin CORE, si collegano direttamente alla blockchain tramite un nodo completo, mentre altri dipendono dai servizi web per fornire l'accesso.
A livello di base, un portafoglio cerca di servire gli utenti ricevendo, inviando, monitorando ed elencando le transazioni all'interno di una Criptovaluta. I portafogli più avanzati consentono agli utenti di ottenere una maggiore sicurezza o di eseguire un set esteso di azioni sulla blockchain, aumentando così il loro valore. Ciò è particolarmente vero nel caso della blockchain Ethereum , in cui gli utenti devono non solo conservare valore, ma anche eseguire varie attività tramite contratti.
Informazioni di base su multisig
Sin dalla loro introduzione nel 2013, i portafogli multi-firma (multisig) Bitcoin sono stati utilizzati per fornire ridondanza e sicurezza agli utenti durante la gestione dei fondi sulla blockchain. Gli account multi-firma richiedono che più chiavi siano firmate per spostare un token, come un caveau fisico in cui è richiesta più di ONE chiave per accedere ai contenuti.
Multisig rende più difficile per gli aggressori rubare da un portafoglio, poiché le chiavi possono essere inserite su macchine separate. Con questa sicurezza aggiuntiva, gli utenti possono stare tranquilli quando conservano e utilizzano monete o impostano strutture di portafoglio in cui sono richiesti più utenti e approvazioni per i trasferimenti.
Evoluzione da Bitcoin a Ethereum
Il potenziale della blockchain di ethereum, unito al rapido aumento del prezzo dell'ether nel 2016, ha spinto la domanda degli utenti per un portafoglio web multi-firma. Ma a differenza di altri cloni Bitcoin come Litecoin, Ethereum è una blockchain davvero unica perché è stata costruita da zero su un set di regole di consenso completamente diverso. Ciò comporta differenze significative nel modo in cui i portafogli multi-sig Ethereum vengono implementati rispetto alle loro controparti Bitcoin .
Conti e indirizzamento
In Bitcoin, un portafoglio deve monitorare più transazioni in entrata precedenti inviate ad indirizzi di cui ha le chiavi (queste sono note come "non spese"). Il totale aggregato dei valori non spesi su questi indirizzi rappresenta il saldo nel portafoglio. In Ethereum, non esiste il concetto di non spese, invece, ogni account ha un saldo, che cambia a ogni transazione.
Per creare e firmare una transazione, non è necessario raccogliere e mantenere gli output non spesi precedenti: ONE sufficiente ricordare l'ultimo ID sequenza utilizzato (per evitare doppie spese) e incrementarlo. Inoltre, poiché vengono tracciati i saldi (e non gli non spesi), ciò riduce l'onere sui wallet per gestire il resto. A questo proposito, creare transazioni è più semplice in Ethereum. Ciò comporta un costo per la Privacy dell'utente, perché gli account sono ora vincolati a un singolo indirizzo, mentre gli utenti potrebbero inviare e ricevere su più indirizzi in Bitcoin contemporaneamente, rendendo i fondi meno tracciabili.
Commissioni minerarie
In Bitcoin, le commissioni che gli utenti pagano ai minatori sono calcolate in base alla dimensione della transazione. In Ethereum, sono calcolate in base alla quantità di operazioni blockchain utilizzate, moltiplicate per il prezzo che l'utente è disposto a pagare per unità GAS (il prezzo interno per l'esecuzione di una transazione o di un contratto su Ethereum). In parole povere, la commissione è correlata alla quantità e alla complessità delle operazioni e alla quantità di spazio occupato sulla blockchain.
Per gli utenti tecnicamente avanzati, questo è un modo più specifico ed equo per stabilire il prezzo dell'uso della blockchain e dei costi di convalida associati. Tuttavia, potrebbe causare un po' di confusione per gli utenti alle prime armi. Ad esempio, inviare ether a un contratto finanziato tramite crowdfunding potrebbe costare una commissione diversa (a carico del mittente) rispetto all'invio della stessa quantità di ether a un amico. Ciò pone un'interessante sfida per i progettisti di interfacce utente delle applicazioni, che devono comunicare tali differenze e aiutare gli utenti a comprenderne il ragionamento alla base.
Progetti di contratti multi-firma

A differenza di Bitcoin, Ethereum supporta script avanzati, ma non supporta ancora il concetto di multisig nativo o P2SH (in cui ONE possibile pagare l'hash di un contratto e fornire lo script in un secondo momento).
L'approccio di base per proteggere i fondi con firme multiple prevede la creazione di più indirizzi "single-sig" e la successiva stesura di un contratto controllato da questi indirizzi per archiviare i fondi. Sebbene ciò sia più complesso rispetto a Bitcoin, potrebbe potenzialmente fornire agli sviluppatori di wallet maggiore flessibilità.
Esistono due approcci principali per scrivere un portafoglio contrattuale che richiede più firme per proteggere i fondi.

Questo è l'approccio più comune utilizzato nei portafogli comeNebbia O Eteri. Per prima cosa, viene distribuito il contratto wallet, registrando gli "indirizzi di firma" forniti. Per inviare fondi a un indirizzo, il primo utente, o proponente, invia una transazione contenente una Request di proposta al contratto. Questa Request ha un ID operazione univoco (hash), derivato dall'importo, dall'indirizzo di destinazione e dai dati da inviare.
Quindi, un altro utente sul contratto wallet deve confermare ID operazione inviando una transazione di conferma separata al contratto. Entrambe le transazioni devono essere pubblicate sulla catena prima che l'operazione risultante (per inviare fondi) possa essere eseguita.

Sebbene l'approccio precedente sia sicuro e si adatti a molti scenari, c'è richiesta di avere tutte le firme in un'unica transazione, simile in pratica a Bitcoin. Conosciuto da alcuni come la seconda evoluzione del multisig su Ethereum, questo ha il vantaggio di richiedere meno spazio sulla catena e anche di essere potenzialmente più veloce, poiché non deve attendere più blocchi.
Ogni transazione in Ethereum può avere ONE solo mittente/firmatario. Quindi, implementare questo in un contratto richiede l'uso dell'operazione di assemblaggio 'ecrecover'. Questa operazione è in grado di verificare l'indirizzo di una firma nel campo dati della transazione. Il contratto multi-firma è scritto con codice per derivare un ID operazione dall'importo, dalla destinazione, dai dati, ETC. e verificare che tale ID sia firmato dalla firma nel campo dati. ONE firmatario può quindi essere considerato come proveniente dal mittente del messaggio, con le firme degli altri firmatari convalidate nel campo dati, il tutto all'interno di una singola transazione.
Implementazioni del portafoglio multisig
I lettori più tecnici potrebbero voler approfondire queste implementazioni di contratti multi-firma per Ethereum:
Implementazione 'easy multisig' di DappSys
Costruita sulla base del framework contrattuale Dappsys, questa implementazione multisig segue il primo design "esegui quindi conferma". È stata recentemente condivisa durante il dapp-a-day run-up alla conferenza Devcon. Il suo vantaggio principale è il design modulare del codice per gli sviluppatori che scrivono wallet su di esso, rendendo possibile l'applicazione facile a molti altri scenari oltre allo storage di valore.
Miglioramenti futuri
La comunità Ethereum ha una solida base di sviluppatori, con diversi progetti e team che dovrebbero rilasciare applicazioni nel NEAR -medio termine. Queste release stimoleranno la domanda e il supporto per nuove funzionalità nei portafogli multi-firma Ethereum :
Supporto per token ERC20
Sebbene siano attualmente disponibili alcuni wallet multi-firma per proteggere ether, ce ne sono pochi per proteggere altri token su Ethereum, come Digix DGD, Augur REP e così via. Tali contratti token sono parte integrante dell'ecosistema Ethereum e supportano tutti lo standard comune ERC20.
Creare un portafoglio che supporti questo standard significherà che gli utenti potranno usufruire del supporto per tutti questi interessanti token da un'unica applicazione portafoglio.
Supporto per più operazioni/scenari
Guardando più lontano all'orizzonte, anche il regno delle operazioni che un portafoglio dovrà essere in grado di eseguire aumenterà. I contratti su Ethereum richiedono molto più del semplice invio/ricezione.
È importante per il settore non solo creare standard di interoperabilità per le operazioni di portafoglio odierne, ma anche stabilire funzioni comuni che i portafogli potrebbero supportare. Queste possono includere acquisto, vendita, blocco, staking, voto e altro ancora.
Evoluzione del portafoglio multisig con EIP101 (Serenity)
La versione Ethereum Serenity porterà con sé diverse utili funzionalità che miglioreranno significativamente la semplicità e l'esperienza utente dei portafogli multisig.
Il primo miglioramento in arrivo è la funzionalità simile a 'pay-to-script-hash', che renderà possibile distribuire e creare il contratto del portafoglio solo quando il destinatario desidera spendere fondi. Ciò eviterà agli utenti il problema di condurre una distribuzione per creare portafogli. Ancora più importante, rimuove anche il requisito per i nuovi utenti di pagare la commissione GAS in anticipo quando impostano un portafoglio multisig.
Ciò rende anche pratico erogare diversi indirizzi HD senza spendere il GAS per distribuirli prima, in modo simile a come molte aziende lo fanno in Bitcoin per raccogliere i pagamenti. Se fatto bene, questo potrebbe ridurre il riutilizzo degli indirizzi e aumentare la Privacy.
Successivamente, sarà possibile per i contratti pagare le proprie commissioni. Attualmente, le commissioni GAS/mining quando si effettua un prelievo vengono raccolte dall'indirizzo di firma che invia la transazione nel contratto del portafoglio. Ciò significa che gli utenti devono detenere saldi in due posti: il contratto del portafoglio (protetto da multisig) e l'indirizzo di firma (per pagare le commissioni). Serenity consentirà ai contratti di pagare il proprio GAS, quindi gli utenti non dovranno mantenere un account GAS per effettuare transazioni.
Considerazioni finali
In definitiva, gli utenti non sceglieranno i wallet in base alla Criptovaluta che supportano, ma in base alle funzionalità applicative che offrono: tutti sono alla ricerca della "killer app", non della "killer chain". È un momento emozionante per essere nel Criptovaluta e osservare l'evoluzione dei wallet che costruiscono l'ecosistema per avvicinarlo alla portata del grande pubblico.
Immagine in pelletramite Shutterstock
Ben Chan
Benedict Chan è Platform Lead presso la società di sicurezza blockchain BitGo e un sostenitore delle tecnologie blockchain Bitcoin ed Ethereum . Ha progettato e sviluppato API e SDK utilizzati dietro una serie di implementazioni di wallet multi-firma Bitcoin .
