Condividi questo articolo

Costruire un mercato delle commissioni Bitcoin migliore

Bitcoin potrebbe ora avere un mercato delle commissioni, ma questa realtà T significa che la rete sia ottimizzata per questo ambiente, sostiene lo sviluppatore Jameson Lopp.

Nel corso dell'ultimo anno abbiamo visto il mercato delle commissioni per le transazioni Bitcoin evolversi a un ritmo rapido. Man mano che il volume delle transazioni continua ad aumentare, aumenta anche la domanda di spazio di blocco, che rimane in quantità limitata di 1 megabyte (MB) circa ogni 10 minuti.

Poiché abbiamodibattuto il problema dell'aumento dell'offerta di spazio di blocco fino alla nausea, questo articolo si concentrerà sulla storia e sullo stato attuale delle commissioni sulle transazioni Bitcoin .

La storia continua sotto
Non perderti un'altra storia.Iscriviti alla Newsletter Crypto Long & Short oggi. Vedi Tutte le Newsletter

Il fatto è che le pressioni derivanti dall'elevata contesa per lo spazio dei blocchi hanno peggiorato l'esperienza utente e hanno quindi incentivato i portafogli Bitcoin ad apportare modifiche per KEEP soddisfatti i propri utenti, garantendo una conferma tempestiva delle transazioni.

Tuttavia, siamo ben lontani dal realizzare un mercato tariffario ottimale.

La storia delle commissioni di transazione

Per i primi anni di esistenza del bitcoin, le commissioni di transazione erano facoltative: erano considerate una donazione ai minatori.

Impostazioni delle commissioni di Bitcoin CORE
Impostazioni delle commissioni di Bitcoin CORE

I portafogli pagavano la stessa commissione per ogni transazione, applicando di default la commissione che lo sviluppatore del portafoglio riteneva appropriata.

CORE Bitcoin

La commissione predefinita di è cambiata più volte nel corso degli anni, con l'aumento del tasso di cambio Bitcoin , da 0,01 BTC a 0,0005 BTC a 0,0001 BTC. C'erano anche delle regole su "transazioni prioritarie" che consentiva agli utenti di inviare transazioni senza commissioni se gli input erano vecchi e di valore sufficientemente elevato, anche se a questo punto i miner li hanno per lo più eliminati.

Nel corso degli anni abbiamo imparato che le commissioni di transazione statiche codificate sono terribili per diversi motivi:

  • Ciò che conta per i minatori non è la commissione assoluta, ma piuttosto la tariffa per byte di dati di transazione. Dal punto di vista del miner, hanno solo 1 MB di spazio in cui vogliono inserire quante più transazioni possibili per raccogliere più commissioni. Pertanto, una transazione da 200 byte con una commissione di 0,0001 BTC è preferibile a una transazione da 1.000 byte con una commissione di 0,0001 BTC, perché possono inserirne cinque delle prime e raccogliere cinque volte tanto in commissioni.
  • Dal punto di vista dell'utente, se imposti sempre una commissione statica, probabilmente alla fine creerai una transazione di grandi dimensioni (a causa della spesa di molti input di basso valore) con una tariffa molto bassa che potrebbe non essere mai confermata.
  • I wallet con commissioni statiche T riescono ad adattarsi alle condizioni di mercato in rapido cambiamento, con il risultato che gli utenti trasmettono transazioni che stanno pagando troppo o troppo poco. I primi T otterranno transazioni confermate molto più velocemente, mentre i secondi si tradurranno in lunghi tempi di conferma perché i miner li ignorano a favore di transazioni più redditizie da confermare.

Il rilascio diBitcoin 0.3.15nel novembre 2010 ha incluso una modifica per iniziare a calcolare le commissioni relative alla dimensione dei dati della transazione, ma non tutti i software di portafoglio hanno seguito l'esempio e molti utenti hanno continuato a impostare ciecamente la stessa commissione statica su ogni transazione. Questo in genere non è stato un problema finché non abbiamo iniziato a scontrarci con la dimensione massima del blocco, perché i minatori avrebbero confermato praticamente qualsiasi transazione valida che fosse stata loro inoltrata con successo.

Quando i blocchi hanno iniziato a riempirsi nel 2015, è diventato chiaro che la prassi migliore è quella di utilizzare un algoritmo di tariffazione dinamico, perché può rispondere alle mutevoli condizioni della rete.

Bitcoin CORE ha iniziato a calcolare le stime dinamiche delle commissioni a partire da la versione 0.10nel febbraio 2015, e Alex Morcos li ha costantemente migliorati da allora. L'algoritmo di stima delle commissioni di Core è piuttosto complesso; puoivisualizza il suo codice quie ilspiegazione in inglese qui.

Emerge un mercato delle commissioni

Antoine Le Calvez, sviluppatore di p2sh.info, fornisce un'analisi storica delle tariffe dinamiche e statiche.

Ecco gli ultimi due anni:

schermata-scatto-2016-05-05-alle-10-41-03-am

Possiamo osservare salti significativi nell'utilizzo dinamico delle tariffe durante i test di stress e gli attacchi di retel'autunno scorso.

Tuttavia, sospetto che ciò non sia dovuto al fatto che gli utenti normali sono passati ai portafogli con commissioni dinamiche, ma piuttosto algli aggressori stessi pagano le tasseche hanno intenzionalmente impostato in modo che fossero più alte delle commissioni statiche utilizzate dalla maggior parte dei portafogli in quel momento.

Alcuni degli utenti più sofisticati hanno modificato le loro commissioni hard-coded durante gli attacchi, ma queste rappresentavano probabilmente una piccola minoranza delle transazioni totali. Possiamo anche vedere un balzo all'inizio di marzo 2016, probabilmente in parte dovuto al nuovo portafoglio di Blockchaindistribuzione di tariffe dinamichecirca unmese prima.

Rusty Russell si è esibitoun'analisi eccellentedel mercato emergente delle commissioni nel dicembre 2015, che ha mostrato che un numero maggiore di transazioni utilizza commissioni calcolate dinamicamente e che il valore medio di una transazione sta aumentando poiché i pagamenti di piccole dimensioni vengono esclusi dalla blockchain.

tx-per-valore
tx-per-valore

AJ Towns ha seguito il post di Rusty conanalisi più approfonditaHa identificato otto distinte fasi del mercato delle commissioni nel corso della storia di Bitcoin:

Towns ha continuato la sua indagine inun secondo poste sono giunti a diverse conclusioni sugli effetti che il mercato emergente delle commissioni ha avuto sugli utenti.

Questi erano:

  • Un numero significativo di portafogli calcola dinamicamente le commissioni, con una granularità per byte.
  • Molti wallet T calcolano ancora le commissioni in modo dinamico, né le calcolano a livello di byte.
  • Le commissioni basate sul mercato potranno solo aumentare ulteriormente con una maggiore adozione di portafogli che supportano stime dinamiche delle commissioni.
  • Pagare molto più del tasso di mercato non farà sì che la tua transazione venga confermata più rapidamente.
  • Si sono verificati due Eventi tariffari che hanno avuto un impatto sui portafogli con commissioni statiche e presto ne arriverà un terzo.
  • I portafogli che calcolano dinamicamente le commissioni pagano in media commissioni notevolmente inferiori rispetto a quelli che non T.

Ho monitorato le stime delle commissioni di Bitcoin Core con Statoshi; qui puoi vedere che sono triplicate negli ultimi sei mesi, mentre la contesa per lo spazio dei blocchi continua ad aumentare.

schermata-scatto-2016-05-05-alle-10-26-07-am

Calvez fornisce anche una dashboard con tutte le API di stima delle commissioni disponibili al pubblico e i relativi dati storici di stima:

schermata-scatto-2016-05-05-alle-10-43-11-am

È interessante notare che le stime delle commissioni di 21, BitGo e Blocktrail sembrano essere le più reattive alle mutevoli condizioni di mercato, mentre BitPay, Blockchain e BlockCypher hanno stime meno volatili.

Tuttavia, sarebbe negligente da parte mia consigliare a tutti di passare all'utilizzo di commissioni di transazione calcolate dinamicamente senza prima considerare i rischi connessi.

Come dice il proverbio, ogni soluzione porta a nuovi problemi. Le commissioni di transazione dinamiche non fanno eccezione.

Difficoltà dinamiche

Le stime dinamiche delle tariffe non saranno mai perfette perché rappresentano un tentativo di prevedere il (NEAR) futuro.

COME fisico daneseNiels Bohr una volta disse ironicamente: "La previsione è molto difficile, soprattutto per quanto riguarda il futuro". Se un algoritmo di stima delle commissioni non riesce a prevedere correttamente lo stato futuro del mercato delle commissioni, gli utenti rimangono bloccati in un "trappola a pagamento"come ha osservato il dott. Washington Sanchez di OpenBazaar.

Ciò può verificarsi se trasmetti una transazione con una commissione perfettamente ragionevole per le attuali condizioni di mercato, ma subito dopo averlo fatto, molte altre transazioni con commissioni più elevate vengono trasmesse da altri utenti, il che sostanzialmente spinge la tua transazione in fondo alla coda di priorità dei minatori. Il problema è che T puoi, senza Sostituisci con tariffa(RBF), aggiorna la tua "offerta" per compensare le nuove condizioni di mercato.

Anche i bug negli algoritmi di stima delle commissioni hanno il potenziale di creare scompiglio nel mercato delle commissioni. Prendiamo, ad esempio, un recente errore utente che ha portato qualcuno a creare una transazione con un enormeCommissione di 300 BTC. Questo è stato abbastanza negativo per lo sfortunato utente che probabilmente ha digitato male gli importi di "commissione" e "valore" in un software mal codificato, ma ha avuto anche effetti a catena:

[incorpora]https://twitter.com/khannib/status/725090752531959808[/incorpora]

Questa è una supposizione plausibile, ma sembra che il "target di blocco da 1 a 2" di BlockCypher stia utilizzando un algoritmo di stima delle commissioni basato su una media mobile ponderata delle commissioni degli ultimi due giorni di blocchi. Di conseguenza, quando è stata estratta la transazione di commissione da 300 BTC , la media delle commissioni recenti e quindi la loro stima sono aumentate dell'800%.

Ma non è mia intenzione prendermela con BlockCypher, poiché abbiamo visto che molti wallet hanno problemi con le commissioni di transazione. Nemmeno Bitcoin CORE è esente, poiché ho recentemente osservato un picco inaspettato nelle stime delle commissioni di Bitcoin CORE 0.12.0:

schermata-scatto-2016-05-05-alle-10-46-08-am

Ho notato che la stima della commissione "two block target" di Statoshi.info è salita da 44 a 112 satoshi per byte il 27 febbraio senza apparente motivo. Gli altri miei nodi Bitcoin non hanno segnalato lo stesso picco.

Ciò potrebbe forse essere spiegato dalle differenze nelle transazioni mempool poiché l'algoritmo di stima delle commissioni di Core utilizza solo le commissioni delle transazioni ricevute inizialmente come non confermate.

È preoccupante e dimostra uno svantaggio nell'estrapolare il futuro in base alla visione della rete del tuo nodo, che non è garantito essere la stessa di tutti gli altri.

Crollo macro

Sebbene siano numerose le sfide che gli sviluppatori Bitcoin devono affrontare a livello di singola transazione, dovremmo anche essere consapevoli degli effetti sul mercato delle commissioni nel suo complesso.

Sono preoccupato per un paio di potenziali scenari che potrebbero far aumentare le tariffe più velocemente del necessario:

  • Algoritmi di commissioni dinamiche mal codificati potrebbero creare un ciclo di feedback che fa salire la commissione senza limiti, mentre le transazioni continuano a inondare la rete senza riguardo per l'arretrato del mempool. Questo non è un grosso problema se la maggior parte delle transazioni viene avviata da esseri umani che vedono una commissione visualizzata e decidono se è troppo alta per i loro gusti. Tuttavia, se molte transazioni vengono create automaticamente senza alcuna decisione Human e gli algoritmi che le creano T hanno alcun controllo di integrità sulla commissione massima pagata, il mercato potrebbe scappare finché gli ingegneri che hanno scritto quegli algoritmi non se ne accorgono e non apportano modifiche.
  • Gli utenti frustrati (o gli sviluppatori pigri) che si affidano ancora alle commissioni hard-coded potrebbero KEEP ad aggiornare manualmente le impostazioni del loro portafoglio finché le loro transazioni non iniziano a essere confermate, probabilmente pagando in modo significativo in eccesso, ma costringendo alla fine altri utenti con commissioni statiche a fare lo stesso per rimanere competitivi. Gli utenti con commissioni dinamiche saranno spinti verso l'alto di conseguenza. Ho già osservato che il primo si verifica, anche se non ancora al punto da influenzare significativamente le commissioni dinamiche.

[incorporato]https://twitter.com/lopp/status/713095965155192832[/embed]

ONE sviluppo recente che T ha ricevuto molta attenzione, nonostante abbia il potenziale per influenzare il mercato delle commissioni, è lo sviluppo di Mercati secondari delle commissioni per i minatori.

Ciò può assumere la forma di programmi speciali di incentivi per i clienti comeServizio BlockPriority di BTCC oppure può assumere la forma di acquisti privati ​​di spazio a blocchi prepagati. Ciò significa guai per tutti gli sviluppatori che scrivono algoritmi di stima delle commissioni perché ora ci sono Mercati di commissioni opachi che sono invisibili al resto del mondo.

Per citare il comunicato stampa del BTCC:

"BlockPriority dà priorità a tutte le transazioni dei clienti BTCC, compresi quelli che non pagano commissioni di transazione."

Questo non dovrebbe essere un problema per l'algoritmo di stima delle commissioni di Bitcoin Core perché richiede che il 95% delle transazioni mempool con una determinata tariffa di commissione siano confermate in X blocchi dopo essere state viste, ma potrebbe influenzare algoritmi più ingenui. La lezione per gli sviluppatori è che solo perché vedi transazioni a una tariffa di commissione bassa di X confermate non significa più che sia sicuro per il tuo servizio trasmettere transazioni a quella tariffa di commissione.

Potrebbe avere senso dal punto di vista economico per i pool di mining vendere contratti di spazio a blocchi prepagati, perché ciò garantisce loro un nuovo flusso di entrate prevedibile.

Tuttavia, il mio avvertimento ai pool è questo: T sarete in grado di nascondere questa attività se diventa una parte significativa delle vostre transazioni minate. Ci sono molti ingegneri di wallet come me che monitorano questo tipo di comportamento e, se diventa un problema, lo renderemo pubblico. Sospetto che qualsiasi pool di mining pubblico scoperto a partecipare a questo comportamento non se la caverà così bene se i singoli hash scopriranno che il pool ha estratto transazioni a commissioni più basse e non ha condiviso i profitti dai contratti privati ​​di block space.

Ciò potrebbe indurre gli hashish a spostarsi verso un pool che ritengono più redditizio.

Testimone segregatoavrà probabilmente anche un effetto sul mercato delle commissioni. Offrirà uno sconto del 75% sulle commissioni nel tentativo di riequilibrare i costi di creazione rispetto al consumo di output di transazioni non spese.

Ciò dovrebbe incoraggiare gli utenti a privilegiare l'uso di transazioni che riducano al minimo l'impatto sul set UTXO, al fine di ridurre al minimo le commissioni, e incoraggiare gli sviluppatori a progettare contratti intelligenti e nuove funzionalità in modo da ridurre al minimo l'impatto sul set UTXO.

David Harding ha scritto un utileripartizione del risparmio di datifornito da SegWit.

[incorporato]https://twitter.com/lopp/status/705122188106604546[/embed]

Penso che questa sia la strada giusta da seguire, anche se non sono sicuro che il 75% sia il numero ottimale. Mi sembra che lo sconto più equo sarebbe dinamico e basato sul rapporto tra la dimensione dei dati dell'output e la dimensione dei dati corrispondente dello stesso output quando viene speso come input.

Anche se questo sarebbe certamente molto più difficile da implementare, se fosse possibile.

Andando avanti

Ci sono ancora molti portafogli e servizi Bitcoin che non hanno implementato commissioni dinamiche. Sai chi sei e la tua inazione probabilmente sta causando una brutta esperienza per alcuni dei tuoi utenti. Se T hai implementato commissioni dinamiche, ogni transazione che trasmetti rientra in ONE delle due categorie:

  • Stai pagando troppo rispetto al prezzo di mercato e non ottieni la conferma molto più velocemente.
  • Stai pagando troppo poco e le transazioni si bloccano, con conseguente scarsa esperienza utente.

È altamente improbabile che una trasmissione di transazioni con una commissione codificata raggiunga il punto ottimale e paghi la tariffa ottimale per soddisfare le attuali condizioni di mercato.

Gli sviluppatori di portafogli dovrebbero aggiungere meccanismi di sicurezza come soglie di controllo di integrità a livello micro e interruttori automatici a livello macro per impedire agli utenti disparandosi nel piede.

I wallet dovrebbero stabilire una soglia minima che sia più alta della semplice commissione di relay minima. Osservando le transazioni con commissione minima che entrano nei blocchi, possiamo vedere chiaramente che da oggi se paghi meno di cinque satoshi per byte, avrai un brutto momento.

nuovatrama

Gli sviluppatori di wallet dovrebbero pensare in modo avverso ai loro algoritmi di stima delle commissioni e scriverli in modo che siano resistenti ai casi limite che potrebbero verificarsi a causa di errori in altri software di wallet o di attacchi dannosi da parte di entità che cercano di manipolare il mercato delle commissioni. Dovrebbero anche monitorare i dati di stima delle commissioni e impostare avvisi per essere avvisati se le stime diventano più volatili del previsto.

Tuttavia, dobbiamo riconoscere che non esiste un algoritmo di stima delle commissioni "universale": dipende molto dal caso d'uso in cui rientrano le tue transazioni Bitcoin .

L'algoritmo di Bitcoin Core mira a essere il più generico e conservativo possibile, in modo da essere incredibilmente affidabile, ma per alcuni casi d'uso potrebbe comportare un pagamento eccessivo. Ogni portafoglio e servizio dovrà decidere quale compromesso è disposto a fare per bilanciare il rischio di conferme ritardate con la ricompensa del risparmio di denaro sulle commissioni.

Pertanto, incoraggio tutti i portafogli Bitcoin a rendere accessibili le loro stime delle commissioni tramite API pubbliche. Sospetto che gli algoritmi di stima delle commissioni stessi diventeranno un punto di concorrenza e spesso rimarranno closed source, ma se le stime sono pubbliche allora possiamo più facilmente osservare attività anomale. Forse qualcuno creerà persino un "Media Bitcoin" aggregatore per preventivi di tariffe!

Dobbiamo riconoscere che il "mercato delle commissioni"T è esattamente un mercato nel senso tradizionale del termine.

Gli utenti possono fare un'offerta trasmettendo una transazione, ma i miner T rendono pubbliche le loro "richieste": i portafogli devono fare delle ipotesi in base alle transazioni che i miner hanno confermato di recente e in base alle transazioni che sono attualmente in attesa di conferma.

Konrad S. Grafha dichiarato i suoi pensierisul "mercato delle commissioni" di recente:

"Si pagano le commissioni; si acquistano prodotti e servizi. Quindi, questo termine oscura già il prodotto reale. Gli utenti inviano transazioni con una commissione come un'offerta aperta nella speranza di una conferma. Descrivo questo come un mercato per servizi di inclusione delle transazioni. Gli utenti fanno offerte per far sì che i minatori includano le transazioni nei blocchi candidati. L'inclusione in più blocchi candidati, specialmente in relazione al mining hashrate totale per quei candidati, aumenta le probabilità di una conferma più rapida. Gli utenti preferiscono una conferma più rapida a una più lenta, a parità di altre condizioni, quindi l'elemento temporale della scarsità è fondamentale. È un mercato per la priorità di conferma, un mercato temporale."

Forse se i pool di mining pubblicassero API pubbliche con le loro policy di mining e "tariffe correnti", allora ciò potrebbe aiutare i servizi di wallet a prendere decisioni più consapevoli quando calcolano le commissioni dinamiche anziché costringere gli sviluppatori a fare affidamento su supposizioni. Ciò potrebbe anche aiutare ad alleviare i problemi causati dai miner che creano Mercati di commissioni secondarie opachi tramite contratti di spazio di blocco privati.

Gli utenti Bitcoin non dovrebbero aver bisogno di KEEP traccia dello stato attuale della contesa dei blocchi.

I wallet dovrebbero gestire le complessità del mercato delle commissioni sotto copertura, offrendo all'utente diverse semplici opzioni quando invia una transazione. ONE possibile via sarebbe quella di autorizzare una commissione massima a seconda dell'urgenza della transazione e far sì che il wallet utilizzi RBF per aumentare la commissione pagata dopo ogni blocco che passa senza essere confermato.

I valori delle commissioni di transazione dovrebbero essere visualizzati all'utente in termini di unità di conto preferita, come dollari. Probabilmente avrebbe anche senso visualizzare la commissione in termini di percentuale del valore della transazione se supera una certa soglia, come l'1%. Ciò renderà più facile per gli utenti decidere se lo stato attuale del mercato delle commissioni è troppo controverso e se preferirebbero ritardare l'esecuzione della transazione finché non potranno farlo in sicurezza a una tariffa di commissione inferiore.

Quando parliamo di commissioni di transazione, gli utenti Bitcoin dovrebbero smettere di dire che hanno pagato "X centesimi" o "Y bit" in commissioni di transazione perché questo tipo di affermazione è insensata senza conoscere la dimensione della transazione. Dovremmo standardizzare l'uso di tariffe nelle discussioni, preferibilmente denominate in termini di satoshi per byte. È più semplice per gli umani scrivere e KEEP traccia di "20 satoshi per byte" rispetto a "20.000 satoshi per kilobyte".

Finora l'evoluzione del mercato delle commissioni sulle transazioni in Bitcoin è stata un percorso tortuoso.

All'inizio le tariffe venivano stabilite manualmente dagli sviluppatori, poi manualmente dagli utenti, e ora ci troviamo in una fase più caotica e potenzialmente pericolosa, in cui gli sviluppatori svolgono un ruolo più attivo nel guidare l'economia di questo mercato emergente.

ATLAS di Kristov ha sottolineato con eloquenza i rischi prendiamo pianificando centralmente i cambiamenti economici di Bitcoin senza studiarli completamente; gli sviluppatori dovrebbero KEEP a mente quando scrivono algoritmi di stima delle commissioni. Dovremmo sforzarci di garantire che il mercato delle commissioni rimanga guidato dagli esseri umani con l'ausilio delle macchine, non il contrario. Gli sviluppatori di wallet devono fare attenzione quando costruiscono la loro logica delle commissioni in modo da poter fornire un'esperienza utente fluida senza togliere agli utenti la libertà di scelta, che è necessaria per mantenere un mercato delle commissioni funzionante.

Immagine tramite Dan Nott per CoinDesk

Jameson Lopp

Jameson Lopp è il CTO e co-fondatore di Casa, un servizio di autocustodia. Un cypherpunk il cui obiettivo è quello di creare Tecnologie che dia potere alle persone, ha creato portafogli Bitcoin multifirma dal 2015. Prima di fondare Casa, è stato il responsabile dell'infrastruttura presso BitGo. È il fondatore del Bitcoin Special Interest Group di Mensa, del Triangle Blockchain and Business meetup e di diversi progetti Bitcoin open source. In tutto questo tempo ha lavorato per istruire gli altri su ciò che ha imparato a sue spese, scrivendo software robusto in grado di resistere sia agli avversari che agli utenti finali inesperti.

Jameson Lopp