Agosto 2018
Volume 33 numero 8
Il presente articolo è stato tradotto automaticamente.
Blockchain - concetti fondamentali sulla Blockchain: Approfondire catene di Hash di transazione
Dal Jonathan Waldman | Agosto 2018
Nel primo articolo di questa serie (msdn.com/magazine/mt845650), ho presentato i concetti fondamentali necessari per comprendere su vasta scala blockchain moderno, con esempi generali che illustra le nozioni di base. In questo articolo, rivisiterò alcuni degli argomenti nell'articolo precedente passando più dettagliate sulle catene di hash di transazione, il ruolo del pool transazioni e modo in cui prevale sempre una blockchain più lunga. Questo articolo viene letto meglio come supplemento all'articolo precedente e contiene materiale introduttivo per gli sviluppatori che a tecnologie della blockchain.
Si noti che, anche se gli articoli di questa serie sono basati su blockchain Bitcoin, non è assolutamente l'adozione di un particolare blockchain prodotto o tecnologia. Piuttosto, il mio obiettivo consiste nell'esplorazione le basi su quali blockchain più diffusi vengono compilate le tecnologie e si dotare con informazioni è possibile applicare se si decide di usare blockchain esistenti o progettare il proprio. Come è studiare blockchain, si scoprirà presto che i dettagli di implementazione molto diversa tra di essi. Se si decide di specializzarsi in un'implementazione di blockchain particolare, è necessario tenere il passo con le correzioni e aggiornamenti per mantenere l'esperienza. Ma avvisare l'utente che della natura dinamica di queste tecnologie emergenti spesso significa che tale documentazione disponibile, video, blog, forum e altri fall le risorse di documentazione indietro, a volte che è quindi necessario per consultare il codice sorgente distribuito alla versione più recente come un particolare riferimenti completi dell'implementazione di blockchain.
Rivisitazione della catena di Hash delle transazioni
Mio articolo precedente descriveva la transazione hash catena struttura dei dati, che tiene traccia della proprietà di asset digitali. In questo articolo viene approfondito approfondito come funziona la catena di hash.
Per pagare omaggio a radici della blockchain, inizierò a quella dimostrano white paper di Satoshi Nakamoto relativo Bitcoin (bitcoin.org/bitcoin.pdf) pubblicato il 31 ottobre 2008, ovvero mesi prima dell'avvio del Bitcoin 3 gennaio 2009. Anche se i dettagli di implementazione sono state modificate abbastanza dal Bitcoin quindi, il white paper rimane un riferimento utile, in particolare il diagramma 2 p. che esprime la catena di hash delle transazioni originali progettare concetto.
Lo scopo di tale diagramma è per indicare come viene costruita una catena di hash di transazione e come utilizzare le firme digitali autorizzano il trasferimento di sequenza della proprietà. Tuttavia, è altamente astratto e, di conseguenza, è un po' di confusione. Per aggiungere maggiore chiarezza, ho costruito una versione più dettagliata che illustra la modalità corrente catene di hash transazioni funzionino effettivamente (vedere figura 1).
Figura 1 versione aggiornata del diagramma catena Hash di Satoshi Nakamoto originale delle transazioni
Il diagramma rivisto mostra tre transazioni (in base 0, come nel documento originale): Transazione0 Per Alice, transazione1 per Bob e delle transazioni2 per Charlie. La prima transazione stabilisce Alice il proprietario originale dell'asset digitali; la seconda transazione trasferisce la proprietà a Bob; e la terza transazione trasferisce la proprietà di Charlie. Ogni transazione è costituita da questi campi (visualizzati con un contorno a tinta unita): hash di transazione, ID asset digitali, dati facoltativi, chiave pubblica e firma. Altri campi vengono usati ma non memorizzati nella transazione (visualizzata con un contorno tratteggiato): chiave privata e il nuovo valore hash di transazione. Il diagramma esprime i valori di campo come nomi di maiuscole e minuscole, con indice, ad esempio, il valore dell'hash delle transazioni per transazione0 è TransactionHash0 e il valore di chiave pubblica per transazione2 è una chiave pubblica2.
Figura 1 è una transazione semplificata hash catena perché consente di tenere traccia solo un singolo digital asset (DigitalAssetID0) in quanto viene modificata la proprietà (al contrario, catene di hash di transazione criptovalute in genere avere più asset digitali input e output). Inoltre, non confondere la catena di hash delle transazioni con le blockchain, che aggrega verificato le transazioni in blocchi. Infine, la catena di hash delle transazioni non viene in genere archiviata come struttura dei dati di elenchi collegati singolo illustrata. Piuttosto, è possibile costruire (rapidamente, con l'ausilio degli indici) dai dati di transazione vengono archiviati nella blockchain.
Come descritto nel mio articolo precedente, la sequenza delle transazioni viene mantenuta perché la transazione del nuovo proprietario contiene un valore hash che back collegata alla transazione del proprietario precedente. Nelle figura 1, back-collegamenti vengono creati quando l'hash di transazione della transazione precedente viene archiviato nella transazione corrente. Ad esempio, la transazione di Bob contiene un campo di hash delle transazioni contenente TransactionHash di Alice0 valore; allo stesso modo, la transazione di Charlie contiene un campo di hash delle transazioni contenente TransactionHash di Bob1 valore e così via.
Back-i collegamenti sono solo uno dei diversi componenti di integrità dei dati della catena di hash di transazione. La catena di applica anche l'autorizzazione di trasferimento di proprietà. Per seguire un esempio, si supponga che Alice sia un purveyor di vini finest del mondo e vuole mantenere un ledger che registra il destino di ogni bottle che è proprietaria. Un giorno, Alice viene indirizzato al suo cellar vino e decide che Anna verrà registrato se stesso su blockchain sua azienda come il proprietario originale del ogni bottle di vino preparata, in modo efficace il seeding catene di hash di transazione per ogni suo mai piacevole bottiglie di vino. Per iniziare, Anna inefficaci nella difesa acquisisce una bottiglia di Saint-Émilion Cheval Blanc 1947 e contrassegna con un codice a matrice che contiene un ID univoco. Anna quindi analizza l'etichetta di codici a matrice nel suo blockchain il software client in esecuzione come un nodo nella rete. Il software di codice analizzato viene convertito in un ID asset digitali (DigitalAssetID0) aggiunge dati facoltativi (OptionalData0) insieme alla chiave pubblica di Alice (PublicKey0). Come si può notare nel figura 1, questi campi sono nel proprio rettangolo con contorni che rappresenta una transazione senza segno. Ogni transazione contiene anche un collegamento a ritroso transazione hash e una firma, ma poiché si tratta della prima transazione nella catena di hash, questi campi sono vuoti (mostrati dai campi ombreggiati per transazione0).
Visualizzato nella parte superiore di ogni transazione è un valore hash di transazione univoco che il software client viene calcolato da SHA-256-hashing insieme tutti i campi di transazione (hash delle transazioni, ID asset digitali, dati facoltativi, del proprietario della chiave pubblica e firma). Anche in questo caso è questo valore hash di transazione che viene usato come collegamento a ritroso della successiva transazione per DigitalAssetID0.
Quando il responsabile del ristorante Manhattan di Alice, Bob vuole acquisire bottle di Alice di Cheval Blanc, utilizza il software client per generare una nuova coppia di chiavi pubblica / privata per la transazione. Bob è stato possibile ignorare questo passaggio e aggregare tutti i suoi asset digitali in una chiave pubblica usata in precedenza, single, ma che consente di esporre quest'ultimo a rischi inutili. Al contrario, egli genera una nuova coppia di chiavi e fornisce una chiave pubblica che non viene mai usato prima di Alice. In questo modo, se ha mai perde la chiave privata associata, egli perde l'accesso a un singolo asset digitali.
In risposta alla richiesta di Bob, Alice avvia il software client e torna a visualizzare l'asset digitali. Anna seleziona la transazione ID associato bottle Cheval Blanc Bob vuole e quindi avvia la richiesta di trasferimento, fornendo la chiave pubblica di Bob che raddoppia come una sorta di indirizzo di destinazione. Il nodo viene quindi creata una nuova transazione (transazione1) che contiene il valore di collegamento a ritroso dell'hash della transazione precedente (TransactionHash0), il valore dell'ID dell'asset digitali (DigitalAssetID0) per bottle Cheval Blanc (questo è lo stesso valore come ID asset digitali per transazione0), il valore per tutti i campi personalizzati correlata alla transazione (OptionalData1) e il valore della chiave pubblica di Bob (PublicKey1) perché Bob è proprietario di questa transazione.
Finora, il nodo ha costruito una nuova transazione senza segno1 per Bob. Il passaggio successivo è per firmare la transazione con chiave privata di Alice. Si tratta di un passaggio critico: Alice è attualmente proprietaria asset digitali in questione in modo che solo che Anna può autorizzare il trasferimento dell'asset digitali a Bob.
Crittografia a curva ellittica
Nelle figura 1, le etichette 1 e 2 indicano in cui la transazione viene eseguito l'accesso e in cui si è verificato, rispettivamente. Nella versione corrente, blockchain Bitcoin si avvale di un'implementazione di crittografia a chiave pubblica (PKC) denominata crittografia a curva ellittica (ECC). ECC fornisce risultati di crittografia più avanzati e le chiavi più breve rispetto all'alternativa RSA/Diffie-Hellman più diffusi. I nodi di Blockchain usano ECC per generare coppie di chiavi asimmetriche usando una formula in cui vengono selezionati in modo casuale i punti in un grafico bidimensionale. Questo schema consente a una chiave pubblica persa essere rigenerato dalla chiave privata (ma ovviamente non consente una chiave privata persa essere rigenerato da una chiave pubblica).
Blockchain modellata Bitcoin anche sfruttare ECC per le firme digitali. A differenza degli esempi PKC Rivest-Shamir-Adelman (RSA) semplificata che è illustrata nel mio articolo precedente, Bitcoin ora Usa un Elliptic Curve Digital ECDSA (Signature Algorithm) (in particolare, SHA256withECDSA) per la firma delle transazioni. Questo algoritmo è leggermente differente da altre tecnologie di firmare: In ECDSA, è necessario passare una chiave privata del firmatario insieme al messaggio di essere connessi a una funzione che usa un algoritmo di generazione delle firme ECDSA per creare una firma (in questo passaggio è indicato dall'indicatore di 1 figura 1). Per la verifica in seguito tale firma, è necessario passare la chiave pubblica del firmatario, messaggio e firma a una funzione che usa un algoritmo di verifica ECDSA per generare un valore true o false, che indica se la firma è valida (questo passaggio è indicato dall'indicatore 2 nelle figura 1). Figura 2 riepiloga firma e la verifica usando ECDSA.
Generazione delle firme algoritmo firma digitale a curva ellittica Figura2 (superiore) e l'algoritmo di verifica (inferiore)
Quando si crea una firma digitale usando PKC RSA, verificare la firma confrontando i valori hash, come illustrato nella mio precedente articolo. Per le informazioni si occupano di, tale strategia di verifica della firma non è possibile con ECDSA. RSA PKC è un algoritmo di firma digitale deterministica perché la firma di un determinato messaggio con una chiave privata specificata genera ogni volta che la stessa firma. ECDSA, d'altra parte, è deterministica: Ogni volta che si passa un messaggio e una chiave privata per il ECDSA firma funzione si otterrà una firma diversa. Per visualizzare questa azione, passare a bit.ly/2MCTuwI.
Proseguendo con l'esempio, Alice sta per firmare la transazione che trasferisce la proprietà di DigitalAsset0 a Bob. Il software di nodo passa la propria chiave privata (PrivateKey0) insieme a un messaggio (NewTransactionHash1) per la funzione di algoritmo di generazione delle firme ECDSA e ottiene una firma come output (firma1). Il nodo aggiunge questo valore di firma per il campo della firma della nuova transazione. Infine, il nodo calcola l'hash di transazione (TransactionHash1) valore, ovvero un hash SHA-256 di tutti i campi delle transazioni, tra cui la firma. A questo punto, il nodo è stato correttamente creato una transazione con segno che può essere inviata al pool di transazioni.
Una transazione con segno viene considerata non verificati fino a quando non è stata convalidata da un nodo miner. Quando un nodo miner tenta di verificare la transazione di Bob, Usa il collegamento a ritroso transazione hash per accedere alla chiave pubblica della transazione precedente, comportando una transazione di Alice0. Dopo che il nodo ha accesso alla transazione precedente, passa la chiave pubblica della transazione (PublicKey0) con il nuovo valore hash di transazione (NewTransactionHash1) e la firma nella transazione di Bob (firma1) per l'algoritmo verifica ECDSA che restituisce un valore true o false, che indica se la firma è valida.
Per inciso, chiave privata di Alice (PrivateKey0) e il nuovo valore hash di transazione (NewTransactionHash1) non vengono archiviate nella transazione. Valori di chiave privati non devono essere archiviati in una blockchain e non è necessario per archiviare il nuovo valore hash di transazione perché possono essere ricalcolato quando necessario.
Bob acquisisce il suo corkscrew e ritiene che lui savor il Cheval Blanc quando si riceve una chiamata Skype da Charlie, la gestione di uno degli altri ristoranti di Alice. Charlie desidera offrire una bottiglia speciale di vino benvenuto un sommelier appena assunti. Bob regretfully accetta di trasferire la proprietà del Cheval Blanc a Charlie. Quindi pone la domanda per la chiave pubblica di Charlie e lo stesso processo viene eseguito nuovamente per trasferire DigitalAsset0 proprietà da Bob a Charlie.
Sono ora disponibili tre transazioni per DigitalAsset0ovvero uno per Alice, una per Bob e uno per Charlie. Ogni transazione è stata verificata e incorporarli blockchain. Dopo un certo numero di blocchi aggiuntivi è stati estratti nella parte superiore del blocco che contiene una determinata transazione, che viene considerata transazioni confermate (il "numero" è specifico dell'implementazione). Di conseguenza, il proprietario di un particolare asset digitali ufficiale è sempre la persona che ha la chiave privata alla transazione più recente confermata per la catena di hash di transazione dell'asset digitali.
La necessità di consenso
Come si è visto, una catena di hash di transazione è una struttura di dati che si impegna per applicare la proprietà di un asset digitale. Tuttavia, tenere presente che queste transazioni sono archiviate in una rete distribuita, decentralizzata, asincrona, pubblica che è vulnerabile agli attacchi ed esposti ai nodi che non necessariamente rispettano le regole di blockchain protocol (le cosiddette "cattivi attori"). Il risultato è che i nodi cattivi attori è stato possibile verificare le transazioni che non sono effettivamente valido o è stato possibile collusive sulla rete per compromettere l'integrità della blockchain.
Il Pool transazioni per evitare questi problemi di integrità delle transazioni, tutte le transazioni di passano attraverso un processo di verifica e la conferma. Ogni transazione viene creato da un singolo nodo in un punto qualsiasi nella rete. Ad esempio, si supponga che nella Albuquerque Alice e Bob è di Boston. Quando Alice trasferisce la proprietà del suo asset digitali a Bob, transazione1 viene costruito da un nodo in Albuquerque quindi trasmettere ad altri nodi nella rete. Contemporaneamente, altri nodi broadcast attivamente le transazioni che hanno appena creato. Queste trasmissioni distribuiti agli altri nodi in una rete globale e richiede tempo per propagare le transazioni a causa della latenza di rete. Indipendentemente dal fatto in cui la rete globale ha origine una transazione, il protocollo di blockchain inserisce tutte le nuove transazioni in un pool transazioni delle transazioni non verificati.
La prova di lavoro e di Proof-gioco In una blockchain che emette un premio per la prova di lavoro, nodi miner selezionano in modo aggressivo le transazioni dal pool di transazioni. Behooves il nodo miner per verificare ogni transazione durante la costruzione di un blocco di candidati poiché un blocco che contiene tutte le transazioni non valide verrà rifiutato immediatamente dagli altri nodi, e ciò significa che il lavoro svolto dal nodo era per naught.
Si ricorderà da nel mio precedente articolo che ogni nodo è una competizione per trovare un parametro nonce per il blocco candidato che ha costruito vincere un premio finanziario e ripristinare i costi energetici sostenuti durante la dimostrazione della prova di lavoro in modo. Al momento della stesura di questo documento, i benefici finanziari correnti nella blockchain Bitcoin sono Bitcoin 12,5 (BTC), che equivale a circa $100.000 USD. In alcuni casi i benefici finanziari sono una tariffa per le transazioni e in alcuni casi è un premio finanziario più una tariffa di transazione. Per comprendere la prova di lavoro è importante che i nodi devono impiegare energia e incorrere in costi di infrastruttura e le apparecchiature per poter continuare più proficuo blocchi di data mining. per un nodo sia sostenibile, tali costi devono essere compensati dal ricavi.
È non sorprende, quindi, che non appena un miner rileva che un parametro nonce immediatamente trasmette il blocco per ogni altro nodo della rete nella speranza che il relativo blocco determinato just viene aggiunto alla fine della blockchain. Blockchain Bitcoin calibrare le difficoltà nonce in modo che i nuovi parametri nonce vengono individuati approssimativamente ogni 10 minuti, in modo che un ritardo di pochi secondi può significare che miner un'altra potrebbe anche trovare un parametro nonce e trasmettere il relativo blocco candidato.
Per comprendere le implicazioni di perdere la corsa di data mining, prendere in considerazione i nodi di data mining non è stato rilevato un parametro nonce in tempo da: Tutta l'energia consumate che è stato sprecato. Miner che non hai trovato un parametro nonce non sono disponibili ma per arrestare l'elaborazione del blocco corrente e avvia tutto il mondo selezionandola e verificando le transazioni dal pool di transazioni. Il motivo che è necessario arrestare data mining, non appena hanno imparato che un altro miner trovato un parametro nonce è che un blocco candidato ha un occorre l'hash del blocco precedente nella blockchain. Quando un altro miner estrae un blocco verificato che si collega al blocco precedente, il miner perdente necessario creare un nuovo blocco che fa riferimento il valore hash per il blocco appena determinato. Il miner perdente deve rimuovere anche le transazioni e in precedenza selezionata scegliere un nuovo set dal pool transazioni perché altri nodi rifiuterà qualsiasi nuovo blocco che contiene le transazioni già incluse in un blocco precedente.
Un nodo deve tenere tutti i costi necessari per supportare le apparecchiature di data mining. Come è aumentato la blockchain Bitcoin, ciò ha portato ad un altro tipo di race condition, ovvero una competizione per le apparecchiature di data mining più potenti. La più potenza di calcolo possa accedere a un nodo di data mining, più è probabile che potrà vincere race condition ogni 10 minuti per risolvere il rompicapo di crittografia necessario per trovare un parametro nonce.
Una comune critiche di prova di lavoro da questo modello sono la creazione di centri di calcolo che mai-più efficiente e l'uso di aumentare la quantità di energia elettrica. Un vantaggio competitivo viene assegnato al proprietario dell'apparecchiatura più potente elaborazione nelle reti di proof-di-lavoro-con tecnologia blockchain. Ad esempio, i Data Center di dollari multimillion ora funzionano esclusivamente verso il data mining bitcoin. In base alla digiconomist.net, annuale blockchain consumo di energia del Bitcoin a partire da giugno 2018 è 71,12 TWh, che è simile a consumo di energia annuo del Cile (bit.ly/2vAdzdl).
Un altro algoritmo ampiamente indicato il consenso è la prova di gioco, quali ricompensa i nodi che descrivono un gioco economica nella rete. Punti di forza maggiore del proof-di-gioco è senza dubbio, che è più efficiente. Inoltre non genera un premio di criptovalute per un blocco, di data mining anche se è emettere tariffe di transazione come un premio. Inoltre, non richiede una competizione per trovare il parametro nonce in grado di risolvere un puzzle di crittografia. Al contrario, la rete seleziona casualmente un nodo che si è registrato come un "forger" (analoghe alle miner"del Bitcoin") in base al valore totale e l'età della relativa unità criptovalute. Vari dettagli di implementazione impegnano a garantire l'equità e loro casualità nella scelta tra forgers. Ad esempio, dopo aver selezionato un forger spesso non può essere incluso in un altro round di contraffazione per almeno 30 giorni. In effetti, i nodi forger di alto valore contenente il meno recente di criptovalute monete hanno un bordo su altri nodi forger.
Proof-di-gioco tifosi rendere il buon punto che il costo dell'esecuzione di un nodo è molto inferiore, incoraggiando la partecipazione maggiore e un maggiore livello di decentramento. Tuttavia, Ironicamente, sistemi di proof-di-gioco scoraggiare l'utilizzo di criptovalute tale blockchain è progettato per transact perché spesa riduce il valore del nodo totale e ridurre la probabilità di essere selezionate come un forger.
Un aspetto per riflettere è il punto effettuato da un esperto di blockchain Andreas Antonopoulos: "La prova di lavoro è anche un modello di gioco ma proof-di-gioco sia anch ' essa proof-of-work". In particolare, spiega che la prova di lavoro offre una combinazione di entrambi gli algoritmi il consenso, rendendo il punto che mentre non sono selezionati miner che fanno parte di una rete di proof-di-lavoro-powered basata sul numero o l'età di criptovalute unità, i nodi miner in modo efficace finanziamenti l'energia necessaria per partecipare a illustrare gli investimenti economici in rete. Di conseguenza, il "gioco" nello schema di proof-of-work, egli sostiene, è il costo dell'energia elettrica è disposto a sostenere allo scopo di correttamente a mio un blocco di un nodo (Guarda Antonopoulos relatore a un incontro Bitcoin Silicon Valley il 13 settembre 2016: bit.ly/2MDfkA1).
Più lunga catena rete blockchain costantemente estende, rami ed elimina se stesso. La vista intera di blockchain viene definita l'albero di blocco. ogni nodo miner fiori attivamente contro il blocco che termina catena più lunga dell'albero di blocco. Si potrebbe pensare che la catena più lunga è definita dalla catena con il maggior numero di blocchi, ma viene effettivamente definita alla sequenza di blocchi dal blocco di creazione che produce la maggiore quantità di lavoro. È possibile derivare il lavoro totale sommando le difficoltà"" di ogni blocco, ovvero una misura del modo in cui probabilmente non è per individuare un nonce per il blocco di un candidato. Il protocollo di rete gestisce tale valore, che consente di regolare la blockchain Bitcoin ogni 2,016 blocchi in modo che blocchi richiede circa 10 minuti di elaborazione di tempo per eseguire il data mining. Il valore di difficoltà viene archiviato in ogni blocco in modo che lavoro è possibile calcolare i nodi che tentano di identificare la catena più lunga.
In alcuni casi, è inevitabile che due nodi, A e B, verranno illustrato come prova di lavoro da un nuovo blocco di data mining entro pochi secondi o millisecondi anche uno da altro. Poiché ogni nodo viene aggiunto il nuovo blocco alla fine di cosa che appare come la catena più lunga prima di trasmettere il blocco alla rete, verrà visualizzato un fork (branch) nell'albero del blocco. A seconda di dove si trovano questi nodi e la larghezza di banda dei nodi connessi sulla rete e altre considerazioni sulla latenza, una frazione della rete prima di tutto verrà visualizzato un blocco come il nuovo blocco e che verrà aggiunto alla fine della catena. Frazione della rete di altri visualizzeranno B di blocco del nuovo blocco e che verrà aggiunto alla fine della catena. In tal modo alcuni nodi con un blocco e altri utenti con blocco B come il blocco di terminazione (vedere figura 3).
Figura 3 dell'albero di blocco (superiore) oggetto che mostra un Fork di struttura ad albero di blocco e due catene di lunghezza uguale (in basso); Un albero di blocco che mostra un Fork di struttura ad albero di blocco e una catena più lunga
Si verifica un fork come illustrato nella parte superiore del figura 3, due sequenze sono nell'albero del blocco, ovvero sono uguali in lunghezza e sono entrambe valide. Il problema che si presenta è chiaro se si considera che i nodi di data mining cercare la catena più lunga prima che inizino a data mining perché devono l'hash di blocco terminazione della catena.
Se un miner correttamente estrae blocchi C e si stava lavorando A catena, aggiungerà C blocco alla fine della catena dotato di blocco di oggetto come relativo blocco di terminazione (vedere la struttura di blocco in basso nel figura 3). Una volta lo facesse, trasmette C di blocco per la rete e altri nodi vedrà che A è la più lunga catena. Nodi che lavorano nella catena B verranno visualizzati che una catena è più lungo di catena di B e smetterà di data mining corrente bloccare in modo da poter iniziare a eseguire il data mining un nuovo blocco che estende C di blocco nella catena di A. Come in questo caso, la rete rilascia tutte le transazioni in blocco B nel pool transazioni in modo che essi possono essere selezionati in un nuovo ciclo di data mining.
Ci si potrebbe chiedere cosa accade al Bitcoin guadagnati da miner che ha creato b: blocco Le commissioni delle transazioni e blocco premi mai vengono rilasciati. Nella rete Bitcoin, questi vantaggi non sono concesse a un miner fino a quando non blocchi di 100 sono stati estratti correttamente all'inizio del blocco in questione.
In questo articolo, esaminato in maggiore dettaglio alcuni degli argomenti introdotti nel mio articolo precedente. Insieme, i due articoli coprono la maggior parte dei concetti fondamentali che è veramente necessario comprendere per comprendere il funzionamento di blockchain. Dopo la lettura di entrambi, è necessario comprendere l'architettura di rete decentralizzati e distribuiti della blockchain; Hash SHA-256; Nozioni di base PKC ed ECDSA; come nodi di costruire le transazioni alle catene di hash e digitali firme autorizzano il trasferimento della proprietà di digital asset; modo in cui le transazioni nel pool transazioni await selezione e la verifica prima dell'introduzione verificato in un blocco; come nodi specializzati impiegare un algoritmo particolare del consenso (ad esempio, "miner" usando la prova di lavoro o "forgers" utilizzo di proof-gioco) per generare un blocco; e come aggiungono nodi nella rete generati blocchi alla catena più lunga. Se si vuole approfondire la conoscenza blockchain, consiglio vivamente la documentazione e i video disponibili nella documentazione Online di Safari (safaribooksonline.com) e quelli pubblicati da Antonopoulos Andreas (antonopoulos.com).
Jonathan Waldmanè un Microsoft Certified Professional software engineer, un progettista di soluzioni con l'esposizione dei tecnici approfonditi per un'ampia gamma di settori e uno specialista in ergonomia software. Waldman è un membro del team tecnico di Pluralsight e punta attualmente i progetti di sviluppo del software istituzionale e del settore privato. È possibile contattarlo al jonathan.waldman@live.com e su Twitter: @jwpulse.
Grazie al seguente esperto tecnico Microsoft che ha esaminato in questo articolo: James McCaffrey