Le drivechain consentono agli operatori dei nodi sidechain di pagare i minatori per estrarre - e altro ancora! Intelligenza dei dati PlatoBlockchain. Ricerca verticale. Ai.

Le catene di trasmissione consentono agli operatori di nodi sidechain di pagare i minatori per estrarre e altro ancora!

Questo è un editoriale di opinione di Shinobi, un educatore autodidatta nello spazio Bitcoin e host di podcast Bitcoin orientato alla tecnologia.

Questa volta analizzerò e discuterò di come funzionano le catene di trasmissione; sono state inizialmente proposte nel 2015. Tra tutte le proposte discusse finora, le catene di trasmissione sono le più vecchie e le più arricchite in termini di dettagli specifici di implementazione e progettazione, documentate nei BIP 300 ed 301. Paul Sztorc, il creatore del concept, aveva in mente alcuni obiettivi di progettazione principali e, sebbene ciò non sia affatto completo, eccone alcuni:

  • Isola ogni sidechain in modo che qualsiasi errore o problema influisca solo su coloro che lo utilizzano.
  • Consenti ai sidechain di essere fatti girare senza che sia necessario un nuovo fork per ciascuno.
  • Abilita il trasferimento di bitcoin dentro e fuori una sidechain con un peg a due vie.
  • Consenti la sperimentazione gratuita nel design che spera renderebbe obsoleta la necessità di altcoin.

Ci sono due aspetti principali dell'intero progetto, motivo per cui ci sono due BIP separati. Il primo è il meccanismo del piolo (BIP300), che è ciò che consente il funzionamento del piolo a due vie. Sztorc ha progettato qualcosa chiamato escrow hash rate, che, nei termini più elementari, consente ai minatori come gruppo amorfo di custodire collettivamente le monete in tutte le catene laterali. Il secondo è uno schema di mining unito "cieco", in cui l'obiettivo è consentire ai miner bitcoin di essere i produttori di blocchi a livello di consenso senza che sia necessario convalidare la sidechain per farlo. Entrambi questi pezzi insieme presentano un meccanismo di ancoraggio a due vie e un modo per i minatori di bitcoin di prendere parte all'estrazione delle sidechain mentre tentano di mitigare il rischio di centralizzazione che presenta.

BIP300 specifica la logica per la proposta di una nuova sidechain, l'attivazione di una nuova sidechain, la proposta di un insieme di prelievi in ​​bundle, l'approvazione di tale insieme di prelievi, la logica di convalida per le transazioni di prelievo effettive e la convalida per le transazioni di deposito.

L'attivazione di una nuova sidechain sotto la proposta di drivechain è molto simile al processo di un soft fork attivato tramite la segnalazione del miner. La differenza principale è, ovviamente, che in realtà non è un soft fork: un singolo fork per attivare le regole di consenso della catena di trasmissione consente ai minatori di, in qualsiasi momento, segnalare di attivare una nuova catena laterale entro regole di consenso della catena di trasmissione. Per proporre l'attivazione di una nuova sidechain, un miner deve inserire un dato OP_RETURN nell'output della propria coinbase che include un identificatore univoco per quella sidechain, una chiave pubblica da utilizzare nelle operazioni di deposito, dati sulla versione, descrizioni leggibili e hash del client software e la storia di GitHub (non c'è un'applicazione del consenso qui, solo dati a cui fare riferimento per gli esseri umani).

Quando un miner propone di attivare una nuova sidechain e di inserire tutti i dati necessari nella propria coinbase, diventa una sorta di periodo di “segnalazione miner” in merito alla creazione o meno di questa nuova sidechain dal punto di vista del consenso della mainchain. Un miner può utilizzare un formato speciale per includere una proposta nei propri output di coinbase e altri miner possono creare un altro output seguendo un secondo formato per segnalare l'attivazione. Una nuova proposta di sidechain richiede che il 90% dei blocchi in un periodo di difficoltà segnali l'attivazione affinché venga confermata la creazione di una nuova sidechain. Questo crea il meccanismo del peg per abilitare la sidechain, ma l'interazione tra sidechain e mainchain è più sfumata di così.

A questo punto, chiunque può agganciare le monete alla sidechain. Per agganciarsi alla sidechain, un utente crea semplicemente una transazione a due input con il proprio input e l'UTXO corrispondente al saldo della sidechain con un unico output che assegna tutto alla sidechain. Ciò garantisce che la sidechain abbia sempre un solo UTXO contenente tutti i fondi bloccati al suo interno. I prelievi sono gestiti dal voto dei minatori. La catena principale non ha alcuna comprensione di chi possiede cosa sulla catena laterale e la catena principale considererà valido qualsiasi ritiro approvato dai minatori all'interno del meccanismo di voto. Per questo motivo, c'è un lungo ritardo nel processo di ritiro. Ci sono due fasi nel processo di ritiro da una sidechain: una proposta di ritiro (bundle) e quindi la fase di voto di ritiro. I minatori devono creare un output OP_RETURN nella loro transazione coinbase con un hash della transazione di prelievo proposta per proporre un prelievo. Questo hash, tuttavia, simile a sighash, segnala l'impegno solo per una parte di una transazione anziché per l'intera cosa. Non si impegna nell'input UTXO che rappresenta i fondi bloccati in una catena di trasmissione o nell'output che restituisce tutto ciò che non viene ritirato a una speciale catena laterale UTXO. Questo perché qualsiasi deposito nella catena di trasmissione creerebbe un nuovo UTXO e quindi annullerebbe l'impegno per la transazione di prelievo quando le persone andrebbero a convalidarla.

Da qui inizia il periodo di votazione dei minatori sulla proposta di ritiro. Dopo che un bundle è stato proposto, i minatori possono votare se approvarlo o meno. Ogni blocco che viene estratto consente a quel minatore di incrementare un contatore di approvazione, su o giù di uno o due per astenersi dal fare qualsiasi cosa. Ci sono alcune limitazioni specifiche in aggiunta a questo, perché è possibile avere più di un bundle per una singola sidechain: se un miner sceglie di votare "sì" (alza il contatore di uno) per un bundle di prelievo per una sidechain, devono obbligatoriamente: vota "no" (abbassa il contatore di uno) per ogni altro bundle associato a quella specifica sidechain.

Questo per garantire che non ci siano "doppi prelievi", in cui qualcuno ha un output in più bundle che li pagherebbe più bitcoin sulla mainchain di quanto gli sia dovuto.

D'altra parte, i minatori possono anche votare no per ogni singolo pacchetto proposto. Questo dovrebbe funzionare come una sorta di allarme per tutti che un miner che convalida questi prelievi (assicurandosi che siano monete legittimamente possedute dalla sidechain prelevata) abbia notato che è successo qualcosa di non valido. Ricorda, un punto chiave di questo progetto è che i miner non devono convalidare nulla sulla sidechain, quindi, a meno che non lo scelgano comunque, molti miner potrebbero votare verso l'alto i bundle che non stanno verificando. Questa funzione di allarme è progettata per essere avvisati che devono verificare i pacchetti per garantire che non si stia verificando un prelievo fraudolento.

Una volta che un bundle ha raggiunto la soglia richiesta (13,150 blocchi, ovvero circa 90 giorni), la transazione che sta effettivamente elaborando il ritiro diventa valida e può essere confermata. Ma cosa fanno le persone se i minatori approvano un prelievo fraudolento che ruba denaro dalla sidechain? La proposta di Sztorc è di impegnarsi in un soft fork (UASF) attivato dall'utente per invalidare la transazione di peg-out non valida. Ciò presenta un rischio enorme in termini di consenso alla catena principale. L'UASF nel 2017 è stata una mossa ad alto rischio che è riuscita a malapena e Bitcoin era molto più piccolo di quanto non lo sia oggi. Più Bitcoin cresce, più difficile sarà coordinare tali azioni.

Se ricordi dal articolo sulle catene spaziali, tale progetto era basato sul blind merged mining (BMM). Il design BMM di Ruben Somsen è in realtà la seconda variante di quello, il primo è il design di Sztorc come descritto in BIP301. La specifica BMM nelle catene di trasmissione è composta da due messaggi: un messaggio di richiesta e un messaggio di accettazione. Entrambi sono coordinati rispettivamente attraverso un tipo di transazione speciale sulla mainchain e un output speciale nella transazione coinbase di un miner.

La transazione di richiesta è costruita da chi sta creando blocchi sidechain. Il punto centrale di BMM è che questa persona può essere qualcuno che non sta estraendo, quindi la transazione della richiesta è lì per consentire loro di pagare i minatori per confermare il blocco sidechain proposto. La proposta di blocco sidechain costruisce una transazione che include l'hash del blocco sidechain, l'ID assegnato alla sidechain quando è stata creata e gli ultimi quattro byte dell'intestazione del blocco mainchain precedente. Ci sono tre regole di consenso aggiuntive applicate a questi tipi di transazioni. Innanzitutto, una transazione di richiesta non è valida a meno che non sia presente anche un output di accettazione corrispondente nella transazione coinbase di quel blocco. Questo per garantire che i miner non possano riscuotere una commissione dalla richiesta senza accettare e minare anche il blocco sidechain. In secondo luogo, per ogni sidechain solo una transazione di richiesta può essere inclusa in un blocco mainchain. Questo per garantire che solo un blocco da qualsiasi sidechain possa essere effettivamente estratto per blocco mainchain. Infine, gli ultimi quattro byte del blocco mainchain precedente devono corrispondere. Ciò garantisce che una richiesta sia valida solo per essere estratta nel blocco successivo e che tali transazioni non possano essere estratte in seguito e rubare denaro da un proponente di blocchi sidechain dopo che il blocco di qualcun altro è stato estratto.

L'output di accettazione è molto semplice: i dati dell'intestazione del messaggio e l'hash del blocco sidechain. Se un miner esegue lui stesso un nodo drivechain, può semplicemente ignorare le transazioni di richiesta e includere sempre il proprio output di accettazione nella propria coinbase per estrarre i propri blocchi sidechain. Insieme, questi due aspetti consentono ai miner di gestire un nodo sidechain da soli o a un altro non minatore di farlo e pagare il minatore per estrarre i loro blocchi. L'idea è che, se i miner stessi non gestiscono le sidechain e mangiano i costi di convalida extra, qualcun altro può farlo per loro. Se c'è concorrenza tra i non minatori che cercano di guadagnare commissioni sulla sidechain, è probabile che continuino ad aumentare la quota che sono disposti a pagare ai minatori nella transazione di richiesta fino a quando non rappresenta la maggior parte delle commissioni che guadagnano, con il non- minatore mantenendo solo una piccola percentuale di profitto e pagando il resto ai minatori.

Questa è la meccanica alla base del funzionamento delle catene di trasmissione. Successivamente, sidechain federati e poi, dopo, un'analisi di tutti gli aspetti negativi e negativi che ogni progetto può avere.

Questo è un guest post di Shinobi. Le opinioni espresse sono interamente proprie e non riflettono necessariamente quelle di BTC Inc o Bitcoin Magazine.

Timestamp:

Di più da Bitcoin Magazine