Què és Tendermint Core? La guia més completa de la història

Què és Tendermint Core? …

Temps de lectura: 17 minuts

Cosmos és un dels projectes més prometedors. Amb gent com Jae Kwon i Ethan Buchman al seu equip, té molt potencial. Al seu cor i ànima hi ha Tendermint Core.

Guia definitiva de Tendermint

Tendermint Core combina l’algorisme de consens Tendermint juntament amb un protocol de xafarderies p2p. Per tant, quan ho ajunteu tot a la pila de programari, obteniu el Tendermint Core juntament amb la capa d’aplicació Cosmos-SDK.

De totes maneres, doncs, abans d’anar més enllà, vegem per què Tendermint és una necessitat tan gran.

Bitcoin i Blockchain

Quan Satoshi Nakamoto va crear Bitcoin, va crear el primer sistema criptogràfic descentralitzat. La part realment destacable d’aquest descobriment va ser que va ser capaç de resoldre el problema del general bizantí que va ajudar a una xarxa d’àrea àmplia (WAN) a arribar a un consens en un entorn poc fiable. Bitcoin va utilitzar l’algorisme de prova de treball per tenir cura del seu consens.

Dit això, la principal contribució de Bitcoin pot ser el fet que va introduir a tot el món la tecnologia blockchain.

Una cadena de blocs és, en termes més senzills, una sèrie de registres immutables de dades amb dades temporals gestionades per un clúster d’ordinadors que no pertany a cap entitat. Cadascun d’aquests blocs de dades (és a dir, blocs) estan protegits i units entre si mitjançant principis criptogràfics (és a dir, cadena).

En altres paraules, una cadena de blocs és un estat determinista màquina reproduïda en nodes que no necessàriament confien entre ells.

Per determinisme volem dir que si es fan els mateixos passos específics, sempre donarà lloc al mateix resultat.

Per exemple. 1 + 2 sempre serà 3.

Llavors, què significa estat? Vegem-ho amb Bitcoin i Ethereum.

A Bitcoin, l’estat és una llista de saldos de cada compte, que és una llista de la sortida de transaccions no gastades (UTXO). Aquest estat es modifica mitjançant transaccions que canvien el saldo.

D’altra banda, a Ethereum, l’aplicació és una màquina virtual que executa contractes intel·ligents. Cada transacció passa per la màquina virtual Ethereum i modifica l’estat d’acord amb el contracte intel·ligent específic que s’anomena dins.

Si mireu l’arquitectura de la tecnologia blockchain, tindreu tres capes específiques:

  • Xarxes: La propagació de la transacció / informació pels nodes
  • Consens: Permet que els nodes prenguin una decisió proporcionada >La tercera part dels nodes no és malintencionada
  • Sol·licitud: Responsable d’actualitzar l’estat donat un conjunt de transaccions, és a dir, processar transaccions. Tenint en compte una transacció i un estat, l’aplicació retornarà un estat nou.

Per a indicacions visuals:

Guia definitiva de Tendermint

Problemes amb l’actual arquitectura Blockchain

Resulta que construir una cadena de blocs des de zero amb totes aquestes 3 capes és realment un treball dur. Per tant, molts projectes van preferir aprofitar-se forçant la base de codis de Bitcoin. Ara bé, tot i que això suposa un estalvi de molt de temps, el fet és que encara estan emmanillats per les limitacions del protocol Bitcoin. Evidentment, no podeu executar projectes complexos quan utilitzeu un protocol conegut pels seus problemes de rendiment.

Les coses van millorar molt quan Ethereum va entrar en joc. En realitat, Ethereum va oferir als desenvolupadors una plataforma que podien utilitzar per crear el seu propi codi personalitzat, també anomenats contractes i projectes intel·ligents. No obstant això, igual que amb Bitcoin, Ethereum també pateix el mateix problema. Tots dos tenen arquitectura monolítica en lloc de modular.

Arquitectura monolítica vs Arquitectura modular

L’arquitectura monolítica significa que tot està compost d’una sola peça. Quan el programari es considera “monolític”, els components estan interconnectats i interdependents entre si i el disseny és més autònom. En aquest cas, l’arquitectura està més acoblada i els components associats han d’estar tots presents perquè el codi es pugui executar o compilar.

Tot i que això fa que el sistema que es va crear sigui més robust, no se’n pot derivar ni crear codis personalitzats. No és el més flexible dels sistemes. A més, hi ha un altre problema amb aquest sistema. Si cal actualitzar algun component del programa, s’haurà de tornar a treballar tota l’aplicació. No és realment la situació més ideal ara, oi??

D’altra banda, tenim arquitectura modular. A diferència del monolític, les capes no estan tan lligades entre si. Per tant, tot i que no sigui tan robust, és molt fàcil actualitzar tota l’aplicació treballant amb els diferents mòduls separats.

Com que els mòduls són tan independents, l’arquitectura modular permet actualitzar una secció concreta sense provocar canvis imprevistos a la resta del sistema. Els processos iteratius també són molt més senzills en els programes modulars, a diferència del monolític.

Tendermint’s Architecture and Goals

Tendermint utilitza l’arquitectura modular. Els seus objectius són els següents:

  • Proporcioneu les capes de xarxa i consens d’una cadena de blocs com a plataforma on es puguin crear diferents aplicacions descentralitzades
  • Els desenvolupadors només han de preocupar-se per la capa d’aplicació de la cadena de blocs, estalviant totes les hores que haurien perdut treballant també en el consens i la capa de xarxa..
  • Tendermint també inclou el protocol de consens Tendermint, que és l’algorisme de consens tolerant a fallades bizantí utilitzat dins del motor Tendermint Core

Vegem com serà l’arquitectura de Tendermint:

Guia definitiva de Tendermint

Com podeu veure, l’aplicació està connectada a Tendermint Core mitjançant un protocol de sòcol anomenat APCI o Application Blockchain Interface. Atès que Tendermint Core i l’aplicació que s’executa en ella s’executen en processos UNIX separats, han de tenir un mètode per parlar entre ells. ABCI ajuda a aquests dos en la seva comunicació.

Quin aspecte té el disseny d’ABCI? ABCI en tindrà diferents components de disseny:

Protocol de missatges # 1

  • Parells de missatges de sol·licitud i resposta
  • Les sol·licituds es fan per consens mentre l’aplicació s’encarrega de la resposta
  • Es defineix mitjançant protobuf

Servidor / client núm. 2

  • El motor de consens fa funcionar el client
  • L’aplicació executa el servidor
  • Hi ha dues implementacions adequades: async bytes raw i grpc

Protocol Blockchain núm. 3

ABCI està molt orientat a la connexió. Les tres connexions de Tendermint Core són les següents:

  • Connexió Mempool: comprova si les transaccions s’han de retransmetre abans de comprometre’s. Només pot utilitzar CheckTx
  • Connexió de consens: aquesta connexió ajuda a executar les transaccions compromeses. La seqüència de missatges és, per a cada bloc, BeginBlock, [DeliverTx, …], EndBlock, Commit
  • Connexió de consulta: ajuda a consultar l’estat de l’aplicació. Aquesta part només utilitza la consulta i la informació

Amb tot, l’objectiu principal de Tendermint és proporcionar als desenvolupadors una eina que no només sigui pràctica, sinó que també tingui un alt rendiment. Aquí teniu les propietats de Tendermint que el fan tan atractiu:

Compatible amb cadena de blocs pública o privada # 1

Els diferents projectes tenen necessitats diferents. Alguns projectes han de tenir un sistema obert on tothom pugui participar i contribuir, com ara Ethereum. D’altra banda, tenim organitzacions com la indústria mèdica, que no poden exposar les seves dades a gairebé tothom. Per a ells, requereixen alguna cosa com la cadena de blocs autoritzada.

D’acord, doncs, com pot ajudar Tendermint a satisfer aquestes dues necessitats? Recordeu que Tendermint només gestiona la creació de xarxes i el consens per al blockchain. Per tant, ajuda en:

  • Propagació de la transacció entre els nodes a través del protocol de xafarderies
  • Ajuda els validadors a acordar el conjunt de transaccions que s’afegeixen a la cadena de blocs.

El que això significa és que la capa d’aplicació es pot definir de qualsevol manera que els desenvolupadors vulguin que es defineixi. Correspon als desenvolupadors definir com es defineix el conjunt de validadors dins de l’ecosistema.

  • Els desenvolupadors poden permetre que l’aplicació tingui un sistema d’eleccions que elegeixi els validadors en funció del nombre de tokens natius que aquests validadors hagin apostat dins de l’ecosistema.
  • A més, els desenvolupadors també poden crear una aplicació que defineixi un conjunt restringit de validadors pre-aprovats que s’encarreguin del consens i dels nous nodes que arribin a l’ecosistema. Això s’anomena prova d’autoritat i és el segell distintiu d’una cadena de blocs autoritzada o privada.

# 2 d’alt rendiment

Les aplicacions fetes mitjançant Tendermint Core poden esperar un rendiment excepcional. Tendermint Core té un temps de bloqueig de només 1 segon. També pot gestionar un volum de transaccions de 10.000 transaccions per segon per a transaccions de 250 bytes, sempre que l’aplicació ho permeti.

Finalitat número 3

Què és la finalitat?

En termes senzills, vol dir que un cop executada una acció determinada, no es pot recuperar. Per tant, posem l’exemple d’una simple transacció financera. Suposem que compreu algunes accions en una empresa, només per un problema del seu sistema, que no hauríeu de perdre la propietat de les vostres accions. Com us podeu imaginar, la finalitat és molt crítica per a un sistema financer. Imagineu-vos fer una transacció de milions de dòlars i, al dia següent, aquesta transacció ja no és vàlida a causa d’un error.

Com hem esmentat anteriorment, Bitcoin i Ethereum (fins a la implementació completa de Casper FFG) no tenen realitat definitiva. Amb motiu d’un atac dur o d’un atac del 51%, les transaccions tenen la possibilitat de revertir-se.

Tendermint, en canvi, dóna una finalitat instantània a 1 segon de la finalització de la transacció. Les bifurcacions mai es creen al sistema, sempre que menys de 2/3 dels validadors siguin malintencionats. Tan bon punt es crea un bloc (que es troba en un segon), els usuaris poden estar segurs que la seva transacció està finalitzada.

# 4 Seguretat

Tendermint és segur i obliga els seus participants a ser responsables també de les seves accions. Com hem dit abans, tendermint mai no es pot bifurcar sempre que menys de 2/3 dels validadors siguin malintencionats. Si en algun cas, la cadena de blocs es bifurca, hi ha una manera de determinar la responsabilitat. A més, el consens de Tendermint no només és tolerant a les falles, sinó que és òptimament tolerant a les falles bizantines

# 5 Fàcil d’utilitzar

Una altra cosa fantàstica de Tendermint és la facilitat d’ús. Com hem esmentat anteriorment, tenen una arquitectura modular on la capa d’aplicació es pot personalitzar adequadament. Això fa possible que les bases de codis de la cadena de blocs existents es vinculin sense esforç a Tendermint mitjançant ABCIs. L’exemple perfecte d’això és Etheremint, que és bàsicament el connector de la base de codis de la màquina virtual Ethereum a la part superior de Tendermint.

Ethermint funciona exactament com Ethereum, però també es beneficia de totes les funcions positives que hem detallat anteriorment. Totes les eines Ethereum com Metamask i Truffle són compatibles amb Ethermint.

# 6 Escalabilitat

La implementació de la prova de participació de Tendermint és molt més escalable que un algorisme tradicional de consens de prova de treball. La raó principal és que els sistemes basats en POW no poden fer sharding.

Sharding bàsicament particiona horitzontalment una base de dades i crea bases de dades o fragments més petits que després són executats paral·lelament pels nodes. La raó és que una piscina minera forta pot fer-se càrrec d’un fragment.

Tendermint permetrà implementar sharding que augmentarà considerablement l’escalabilitat.

Protocol de consens Tendermint

D’acord, doncs, analitzem com funciona el protocol de consens Tendermint. Què és exactament un protocol de consens?

Així defineix la Viquipèdia la presa de decisions per consens:

“La presa de decisions per consens és un procés de presa de decisions grupal en el qual els membres del grup es desenvolupen i accepten donar suport a una decisió en el millor interès del conjunt. El consens es pot definir professionalment com una resolució acceptable, que es pot donar suport, encara que no sigui el “favorit” de cada individu. Merriam-Webster defineix el “consens” com, primer, l’acord general i, en segon lloc, la solidaritat grupal de creences o sentiments “.

En termes més senzills, el consens és una forma dinàmica d’arribar a un acord en un grup. Tot i que la votació només estableix una norma majoritària sense tenir en compte els sentiments i el benestar de la minoria, un consens, en canvi, assegura que s’arribi a un acord que pugui beneficiar a tot el grup en general.

Des d’un punt de vista més idealista, el consens pot ser utilitzat per un grup de persones disperses arreu del món per crear una societat més equitativa i equitativa.

Un mètode mitjançant el qual s’aconsegueix la presa de decisions per consens s’anomena “mecanisme de consens”.

Per tant, ara el que hem definit què és un consens, anem a veure quins són els objectius d’un mecanisme de consens (dades extretes de Viquipèdia).

  • Buscant acord: Un mecanisme de consens hauria de provocar el màxim acord del grup.
  • Col·laboratiu: Tots els participants han de tenir com a objectiu treballar junts per aconseguir un resultat que posi primer el millor interès del grup.
  • Cooperativa: Tots els participants no haurien de posar en primer lloc els seus propis interessos i treballar més en equip que en particular.
  • Participatiu: El mecanisme de consens ha de ser tal que tothom participi activament en el procés global.
  • Inclusiu: El procés de consens hauria d’implicar tanta gent com sigui possible. No hauria de ser com el vot normal on la gent realment no té ganes de votar perquè creu que el seu vot no tindrà cap pes a la llarga.
  • Igualitària: Un grup que intenti aconseguir un consens hauria de ser el més igualitari possible. Això significa bàsicament que cada vot té el mateix pes. El vot d’una persona no pot ser més important que el d’un altre.

Ara que hem definit quins són els mecanismes de consens i a què haurien d’orientar-nos, hem de pensar en l’altre elefant de la sala.

Quins mecanismes de consens s’han d’utilitzar per a una entitat com blockchain.

Abans de Bitcoin, hi havia moltes iteracions de sistemes monetaris descentralitzats peer-to-peer que fallaven perquè no eren capaços de respondre al problema més gran a l’hora d’arribar a un consens. Aquest problema s’anomena “Problema de Generals Bizantins”.

Problema del general bizantí

Per tal de fer qualsevol cosa en una xarxa d’igual a igual, tots els nodes haurien de poder arribar a un consens. La qüestió és que, perquè aquest sistema funcioni, es posa molt d’èmfasi en la gent perquè actuï en el millor interès de la xarxa general. Tot i això, com ja sabem, les persones no són realment fiables a l’hora d’actuar de manera ètica. Aquí és on entra el problema del general bizantí.

Guia definitiva de Tendermint

Imagineu-vos aquesta situació.

Hi ha un exèrcit que envolta un castell ben fortificat. L’única manera de guanyar és si atacen junts el castell com a unitat. Tot i això, s’enfronten a un gran problema. L’exèrcit està molt separat els uns dels altres i els generals no poden comunicar i coordinar directament l’atac i alguns dels generals estan corruptes.

L’únic que poden fer és enviar un missatger de general a general. Tot i això, al missatger li podrien passar moltes coses. Els generals corruptes poden interceptar el missatger i canviar el missatge. Llavors, què poden fer els generals per assegurar-se que llancin un atac coordinat sense confiar en l’ètica de cada general? Com poden arribar a un consens d’una manera confiada per fer el que cal fer?

Aquest és el problema del general bizantí i Satoshi Nakamoto va solucionar aquest problema mitjançant el mecanisme de consens de prova de treball (POW).

Què és la prova de treball?

Comprovem com funciona POW amb el context del nostre exemple anterior. Suposem que un general vol comunicar-se amb un altre general. Com creus que baixarà?

  • S’afegeix un “no” al missatge original. El no és un valor hexadecimal aleatori.
  • Aquest nou missatge es resumirà. Suposem que els generals coincideixen prèviament que només enviaran missatges, que quan el hash comença amb 4 “0” s.

    Si el hash no dóna el nombre desitjat de 0, es canvia el nonce i es torna a resumir el missatge. Aquest procés es repeteix fins que es rep el hash desitjat.

  • Tot el procés requereix molt de temps i requereix molta potència computacional.
  • Ara, quan finalment obtenen el valor hash, al missatger se li dóna el missatge original i el nonce i se li diu que es comuniqui amb els altres generals. Què passa, doncs, si algú intenta interceptar el missatge? Bé, recordeu l’efecte d’allau de les funcions de hash? El missatge canviarà dràsticament i, ja que ja no començarà amb el nombre requerit de “0”, la gent s’adonarà que el missatge s’ha manipulat.

Per tant, per posar POW en el context de la mineria criptogràfica:

  • Els miners intenten resoldre trencaclosques criptogràfics per afegir un bloc a la cadena de blocs.
  • El procés requereix un gran esforç i força computacional.
  • Els miners presenten el seu bloc a la xarxa bitcoin.
  • A continuació, la xarxa comprova l’autenticitat del bloc simplement comprovant el hash, si és correcte, s’afegeix a la cadena de blocs.

Per tant, ha de ser difícil descobrir el noce i el hash requerits, però comprovar si són vàlids o no ha de ser senzill. Aquesta és l’essència de la prova de treball.

Ara bé, probablement us pregunteu, per què els miners haurien de sacrificar el seu temps i els seus recursos per minar bitcoins? Bé, resulta que tenen un incentiu econòmic bastant saludable:

Quan descobriu un bloc, rebeu una recompensa de bloc de 12,5 bitcoins. La recompensa es redueix a la meitat cada 210.000 blocs.

Un cop heu extret un bloc, us convertireu en el dictador temporal del bloc. Vostè és l’únic responsable de posar les transaccions dins del bloc i, per tant, té dret a comissions de transacció.

Només hi ha un nombre limitat de bitcoins, 21 milions per ser exactes. Per tant, què està impedint que aquests miners extreguin tots els bitcoins alhora?

Resulta que la mineria de bitcoins es fa cada vegada més difícil amb el pas del temps. Aquesta característica s’anomena “dificultat” i la dificultat de la mineria continua augmentant a mesura que es continua minant.

És per això que avui en dia és pràcticament impossible que els miners en solitari extrin bitcoins només amb els seus ordinadors. Ara els miners han unit forces i han creat “agrupacions mineres” per agrupar la seva potència computacional i la meva com a grup. Aquests grups utilitzen ASIC (Circuits integrats específics de l’aplicació) creats específicament per a l’explotació de bitcoins miners.

Problemes amb POW

Hi ha tres problemes principals amb els algorismes de prova de treball. Abans n’hem parlat amb detall, de manera que només farem una visió general.

  • Malbaratament d’energia: Bitcoin menja més poder que Irlanda i la República Eslovaca. Aquest enorme malbaratament d’energia és un dels principis de Bitcoin. Es tracta d’un malbaratament en nom del malbaratament.
  • Centralització: Com ja us hem dit, Bitcoin utilitza ASIC per a la mineria. El problema és que els ASIC són cars i les piscines amb més diners tendeixen a tenir més ASIC i, en conseqüència, més potència minera. Com a tal, Bitcoin no està tan descentralitzat com vol ser.
  • Escalabilitat: La pròpia arquitectura de POW evita l’escalabilitat. Bitcoin gestiona només 7 transaccions per segon. Per a un sistema financer actual, simplement no és prou adequat.

Introduïu Tendermint

Per tant, per contrarestar els nombrosos problemes del sistema de consens de prova de treball, Jae Kwon, llicenciada en enginyeria de sistemes i informàtica, va crear Tendermint. Tendermint és un protocol purament basat en BFT, construït en un entorn sense permisos amb la prova de joc (PoS) com a mecanisme de seguretat subjacent.

A causa de la complexitat, Tendermint ha trigat gairebé quatre anys a completar-se.

Jae Kwon i el CEO de Tendermint Ethan Buchman es van inspirar en Raft i PBFT per crear un sistema de consens que satisfés el problema del general bizantí.. És

“Modelat com un protocol determinista, viu sota una sincronia parcial, que aconsegueix un rendiment dins dels límits de la latència de la xarxa i dels propis processos individuals”.

Molt bé, sabem que són moltes les paraules complicades que cal llançar una rere l’altra, però per entendre què és el consens de Tendermint i per què es va dissenyar tal com es va dissenyar, heu d’entendre el que volen dir alguns d’aquests termes complicats. Veureu com es relacionen tots com un intrincat trencaclosques.

Impossibilitat FLP # 1

La impossibilitat de FLP (Fischer Lynch Paterson) estableix que un algorisme de consens només pot tenir 2 de les 3 propietats següents:

  • Seguretat
  • Terminació o vivència garantida
  • Falta de tolerància

Guia definitiva de Tendermint

Crèdit de la imatge: Mitjà

En altres paraules, la impossibilitat de FLP estats això

“Tant la terminació com l’acord (vida i seguretat) no es poden satisfer de manera temporal en un sistema distribuït asíncronament, si vol ser resistent a almenys una fallada (demostren el seu resultat per a la tolerància general a la fallada, que és més feble que la fallada bizantina tolerància, ja que només requereix un node d’aturada, de manera que BFT s’inclou a les reclamacions d’impossibilitat de FLP). “

Per tant, bàsicament, és força impossible que una WAN asíncrona arribi a un consens, ja que no hi ha una quantitat específica de temps que trigaran els nodes a rebre, processar i respondre als missatges. Això és òbviament un gran problema perquè és extremadament poc pràctic que una gran xarxa de nodes com Bitcoin assumeixi que es sincronitzaran.

D’acord, de manera que la sincronicitat seria un problema. No obstant això, els investigadors Dwork, Lynch i Stockmeyers van llançar una línia de vida aquí amb el seu document anomenat “Consens en presència de sincronia parcial.”Això es va anomenar consens DLS.

# 2 Consens DLS i sincronització parcial

El document DLS afirma que entre un sistema síncron i un sistema asíncron existeix un sistema especial que és “parcialment síncron”. Com que aquest sistema parcialment síncron pot tenir un temps límit superior, serà capaç de dissenyar un protocol BFT factible.

Segons DLS, el veritable repte en dissenyar protocols és tenir-ne un que funcioni correctament en un sistema parcialment síncron.

Per tant, vegem com funcionen els protocols descentralitzats populars com Bitcoin i Ethereum en aquest sentit.

Bitcoin té un límit superior conegut que ronda els 10 minuts. Per tant, es produeix un bloc de transaccions cada 10 minuts. Aquest supòsit de temps s’imposa a la xarxa de manera que els nodes aconsegueixen 10 minuts sencers per recollir la informació i transmetre-la mitjançant xafarderies.

Què és la màquina d'Estat?

D’altra banda, tenim Ethereum, que fa suposicions de sincronia per als seus blocs i la xarxa, mantenint un temps de bloqueig superior de 15 segons. Amb un temps de bloqueig tan baix, són més escalables que Bitcoin, però realment no són tan eficients. Els miners d’Ethereum produeixen molts blocs orfes.

# 3 Vida i finalització

La resolució és una propietat que indica que cada processador correcte hauria de prendre una decisió. La majoria d’algoritmes de consens, que tenim ara mateix, es basen en models síncrons per a la seva seguretat i terminació. Tenen límits i regles que es coneixen, de manera que, en cas que no s’aguanti, la cadena es bifurca en múltiples protocols

Segur que hi ha protocols de consens que funcionen en xarxes asíncrones, tot i que seguint el teorema de la impossibilitat de FLP, no poden ser deterministes. El que ens porta a ….

# 4 Protocols deterministes contra no deterministes

Normalment, els protocols de consens purament asíncrons depenen de membres no deterministes com Oracles, que implica un alt grau d’incertesa i complexitat..

Així doncs, com tracta Tendermint de tots aquests factors?

Tendermint és un consens BFT majoritàriament asíncron, determinista, on els validadors tenen una participació que denota el seu poder de vot. Al triangle d’impossibilitat de FLP, prefereix la tolerància a fallades i la seguretat (consistència) per sobre de la vivacitat.

Tendermint oscil·la constantment entre períodes de sincronia i asincronia. Això vol dir que, tot i que es basa en suposicions de temps per avançar, la velocitat d’aquest progrés no depèn dels paràmetres del sistema, sinó que depèn de la velocitat real de la xarxa.

A més, Tendermint mai es bifurca en presència d’asincronia si menys d’un terç dels validadors són danyats o descuidats. Aquesta és la raó per la qual Tendermint és tolerant a les falles bizantines. Com hem dit abans, Tendermint se centra en la seguretat per sobre de la vida. Per tant, si més d’un terç dels validadors són maliciosos, en lloc de bifurcar-se a la xarxa, la cadena de blocs Tendermint simplement s’aturarà temporalment fins que més validadors de 2/3 arribin a un consens.

Tendermint també és completament determinista i no hi ha cap atzar al protocol. Tots els líders del sistema són elegits en una versió determinista, mitjançant una funció matemàtica definida. Per tant, podem demostrar matemàticament que el sistema es comporta de la manera que se suposa que s’ha de comportar.

Tendermint: el sistema de prova d’estaca

En un sistema de prova de participació (TPV), tenim algunes persones anomenades “validadors”. Aquests validadors tanquen una estaca dins del sistema. Després d’això, tenen la responsabilitat d’apostar pel bloc que consideren que s’afegirà al costat de la cadena de blocs. Quan s’afegeix el bloc, obtenen una recompensa proporcional a la seva participació.

Molt bé, així és com funciona un TPV genèric. Ara, analitzem com funciona tendermint.

Primer ens familiaritzem amb alguns dels termes que farem servir:

  • Una xarxa es compon de molts nodes. Els nodes que estan connectats a un node concret s’anomenen els seus parells.
  • El procés de consens té lloc a una alçada de bloc H. El procés per determinar el bloc següent consisteix en diverses rondes.
  • La ronda consta de molts estats que són: NewHeight, Propose, Prevote, Precommit i Commit. Cada estat es diu Roundstep o simplement “pas”.
  • Es diu que un node es troba a una alçada, rodó i pas determinats, o bé a (H, R, S), o bé a (H, R) en breu per ometre el pas.
  • Preveure o pre-comprometre alguna cosa significa emetre un vot previ o pre-compromís per alguna cosa.
  • Quan arriba un bloc >2/3 dels valors previs a (H, R), llavors s’anomena prova de bloqueig o PoLC.

Què és la màquina d’Estat?

La màquina d’estats és el motor del protocol Tendermint per dir-ho d’alguna manera. El diagrama següent us dóna una bona idea de com serà:

Què és la màquina d'Estat?

D’acord, doncs, què passa aquí?

Recordeu els estats que travessa cada ronda? NewHeight, Propose, Prevote, Precommit i Compromís.

D’aquests, “Proposa, Prevote, Precommit” consisteix en una ronda mentre que les altres dues són rondes especials. En un escenari ideal, la transició estatal actuaria així:

Altura nova -> (Proposar -> Prevoteu -> Compromís previ)+ -> Compromís -> Altura nova ->…

Tanmateix, no és així com sempre pot funcionar. És possible que siguin necessàries diverses rondes abans que es cometi el bloc. A continuació es detallen els motius pels quals poden ser necessàries diverses rondes:

  • El proposador designat pot estar absent.
  • El bloc proposat potser no és vàlid.
  • El bloc no es va propagar a temps.
  • >Els 2/3 de les preferències no han estat rebudes a temps pels nodes del validador.
  • Tot i que és necessari un +2/3 dels valors previs per avançar al següent pas, almenys un validador pot haver votat o votar per una altra cosa de manera maliciosa.
  • >No s’han rebut 2/3 dels compromisos previs per al bloc, tot i que és possible que s’hagin rebut prevots.

Què passa durant cada estat?

Molt bé … doncs, ara examinem tots i cadascun dels estats i veiem com s’uneix tot.

Proposar

En aquesta etapa, el proposador designat, és a dir, el node seleccionat, proposa un bloc per afegir a (H, R). Aquesta etapa finalitza de dues maneres:

Es proposa el bloc i això entra en l’etapa de prevenció.

El temps del proponent per triar el bloc caduca quan entra de totes maneres a l’etapa de prevenció.

Prevoteu

Ara arribem a l’etapa de prevenció. En aquesta etapa, cada validador ha de prendre una decisió.

  • Si d’alguna manera, el validador està bloquejat en un bloc proposat d’alguna ronda anterior, tanquen automàticament i emeten aquest bloc.
  • Si el validador ha rebut una proposta acceptable per a la ronda actual, signa i emet un vot previ per al bloc proposat.
  • Tanmateix, si troben alguna cosa de peix amb la proposta o no han rebut cap proposta (per exemple, si s’acaba el temps del proposant), signen amb un “zero”.
  • No es produeix cap bloqueig de blocs durant aquesta etapa.
  • Durant aquest període, tots els nodes propaguen els prevots per tot el sistema mitjançant el protocol de xafarderies.

Precompromís

Ara entrem a l’últim pas de la “ronda” anomenada “precompromís”. En entrar en aquesta etapa, els validadors es comprometen a prendre la seva decisió emetent els seus vots previs. Es pot produir un dels tres escenaris següents:

  • Si el validador rep >2/3 de les preferències per a uns blocs acceptables particulars, el validador firma i emet el seu compromís previ al bloc. També queden bloquejats en aquest bloc. Un validador només pot bloquejar-se a un bloc a la vegada.
  • Tanmateix, si el validador rep més del 2 / 3er dels NUL prevots, es desbloquejaran i els compromisos previs passaran a “NIL”.
  • Finalment, si no han rebut una súper majoria de 2/3, no signen ni bloquejen res.

Al llarg d’aquesta etapa, els nodes continuen xafardejant sobre els compromisos previs a tota la xarxa.

Al final, si el bloc proposat obté més de 2/3 tercers compromisos, anem cap al pas “Compromís”. Tot i això, si no arriben a aquesta fase, entraran a la fase “Proposa” de la següent ronda.

Compromís

L’Estat compromís no forma part de la “ronda”. Juntament amb NewHeight, és una de les dues rondes especials. Durant l’estat de confirmació, es comproven dues condicions paral·leles per veure si es compleixen o no.

  • En primer lloc, els validadors han de rebre el bloc que la xarxa ha compromès prèviament. Un cop fet això, tanquen la sessió i transmeten el seu compromís.
  • En segon lloc, han d’esperar fins que hagin rebut com a mínim 2 / 3r compromisos previs per al bloc.

    Un cop fet això, el bloc es compromet a la xarxa.

Altura nova

Simplement incrementeu l’alçada del bloc en 1 per mostrar que el bloc s’ha afegit.

Tria dels validadors

Com és possible que hàgiu entès ara, triar el conjunt inicial de validadors és fonamental perquè Cosmos funcioni. Així doncs, com es triaran exactament?

A diferència de Bitcoin, on qualsevol pot convertir-se en miner en qualsevol moment, només hi ha tants validadors que el sistema Tendermint pot acceptar. Atès que els validadors hauran de fer moltes funcions, augmentar el recompte de validadors només comportarà un retard.

És per això que Cosmos va decidir triar 100 validadors durant el dia del Gènesi (és a dir, el dia de la recaptació de fons)..

Guia definitiva de Tendermint

Què passa amb els resultats?

Com afirma el llibre blanc del cosmos:

“Tendermint proporciona un rendiment excepcional. En els benchmarks de 64 nodes distribuïts en 7 centres de dades de 5 continents, en instàncies de núvol de productes bàsics, el consens de Tendermint pot processar milers de transaccions per segon, amb latències de confirmació de l’ordre d’un a dos segons. Cal destacar que el rendiment de més de mil transaccions per segon es manté fins i tot en condicions adverses dures, amb els validadors que cauen o transmeten vots elaborats maliciosament “.

El gràfic següent dóna suport a la reclamació formulada anteriorment:

Casper contra Tendermint

Juntament amb Tendermint, Casper és una altra implementació popular del protocol TPV.

Tot i que Tendermint se centra en la seguretat, l’enfocament de Casper és viu, cosa que imposa la impossibilitat de FLP. Llavors, què passa a Casper durant una bifurcació?

Casper FFG permetrà que es continuï construint una cadena de blocs, alhora que tindrà la propietat que tots els nodes sabran que aquesta cadena no està finalitzada. Per tant, el blockchain pot romandre disponible sense cap finalitat. Els validadors de la cadena tenen l’opció de passar a la cadena bifurcada. Si voten més de la tercera part dels validadors, canvien de cadena.

A més, Casper té un famós mecanisme de tall. Qualsevol tipus d’atac maliciós farà que els validadors es redueixin immediatament la seva participació.

Conclusió de Tendermint

Així doncs, aquí ho teniu. Esperem que us proporcionem la informació més valuosa possible. Què en penseu de Tendermint i el seu potencial? Sona a la secció de comentaris a continuació!

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
map