Konsenzus o skaliranju poduzeća: Objašnjavanje IBFT algoritma

blog 1NewsDevelopersEnterpriseBlockchain ObjašnjeniDogađaji i konferencijePressBilteni

Pretplatite se na naše obavijesti.

Email adresa

Poštujemo vašu privatnost

Blockchain HomeBlogEnterprise

Konsenzus o skaliranju poduzeća: Objašnjavanje IBFT algoritma

Kako istanbulska tolerancija na greške u Bizantu (IBFT) poboljšava konačnost i povećava protok u privatnim mrežama Ethereuma.by ConsenSys 22. lipnja 2018. Objavljeno 22. lipnja 2018.

Junak Ethereuma ConsenSys

Konsenzusni algoritmi jedna su od temeljnih inovacija blockchaina, a ujedno i jedna od zbunjujućih. Satoshi Nakamoto stvorio je verziju Proof of Work (PoW) koja je implementirana kao sredstvo za istovremeno osiguravanje i potvrđivanje Bitcoin transakcija. Blockchain zajednica izgradila je na toj osnovnoj viziji stvaranje abecedne juhe od Proof of Stake (PoS), Proof of Authority (PoA), PBFT (Practical Byzantine Fault Tolerant) i mnogih drugih koji su svi stvoreni za izgradnju konsenzusa u distribuiranom distribucijskom sustavu. sustav, stvarajući jedinstveni izvor istine koji čini blockchain tako vrijednim.

IBFT (Istanbul Bizantine Falerant tolerant) je mehanizam konsenzusa koji je alternativa Dokazu rada u mreži Ethereum. Kao i drugi algoritmi, IBFT osigurava jedinstveno dogovoreno naručivanje za transakcije u blockchainu i pruža dodatne pogodnosti za poduzeća, uključujući konačnost namire. IBFT je bio prvi put u Geth implementirao Amis Technologies, i ubrzo nakon toga implementiran u Quorum.

Prije nego što počnemo raditi s mehanizmom konsenzusa IBFT, vrijedno je spomenuti kada i zašto bi netko želio koristiti IBFT. U javnom blockchainu, kratki odgovor vjerojatno nećete. Ali što se tiče konzorcija ili privatnih blockchaina, IBFT počinje izgledati prilično privlačno.

PoW algoritam izuzetno je skup, i u hardveru i u električnoj energiji. Ovaj je trošak namjerni, kako bi se spriječilo da netko lako preuzme mrežu, pa je stoga PoW vrlo pogodan za situacije s potpunom decentralizacijom u kojima može sudjelovati bilo tko (uključujući napadače). Čvorovi u konzorciju / privatnim lancima koje koriste poduzeća, suštinski su pouzdaniji od onih u javnom lancu. Kao takav, mehanizam konsenzusa PoW može biti pretjerano opterećujući, a drugi mehanizmi mogu pružiti “dovoljno” povjerenja za pokretanje distribuiranog sustava.

Dokaz uloga, također, može biti manje relevantan za poduzeća, jer je plaćanje plina manje važno u odobrenoj mreži. Budući da čvorovi ne moraju (nužno) održavati valutu u mreži, PoS bi uveo strane zahtjeve.

Uzimajući u obzir ove kompromise, dokaz o ovlasti (PoA) pojavljuje se kao moguće najbolje rješenje, koristeći sustav kojim se čvorovima u mreži dodjeljuje privilegija stvaranja novih blokova za lanac pomoću okrugle crte ili drugog proizvoljnog sustava.

IBFT je jedan od mnogih okusa PoA i pruža sljedeće prednosti:

  • Neposredna konačnost bloka. Predložen je samo 1 blok na određenoj visini lanca. Pojedinačni lanac tako uklanja račvanje, blokade čiča i rizik da se transakcija kasnije može “poništiti” jednom na lancu.
  • Skraćeno vrijeme između blokova. Napor potreban za konstrukciju i provjeru valjanosti blokova znatno je smanjen (posebno s obzirom na PoW), uvelike povećavajući propusnost lanca.
  • Visoka cjelovitost podataka i tolerancija kvarova. IBFT koristi skupinu validatora kako bi osigurao cjelovitost svakog predloženog bloka. Super-većina (~ 66%) ovih validatora mora potpisati blok prije umetanja u lanac, što čini krivotvorenje bloka vrlo teškim. ‘Vodstvo’ skupine također se rotira tijekom vremena – osiguravajući da neispravan čvor ne može dugoročno utjecati na lanac.
  • Operativno fleksibilan. Skupinu validatora moguće je modificirati na vrijeme, osiguravajući da grupa sadrži samo potpuno pouzdane čvorove.

Ovdje smo dali pregled IBFT-a, uglavnom u netehničkom smislu. Za neke od izvornih prijedloga IBFT-a možete pregledati EIP-ove na GitHub-u:

Za ostatak ovog članka istražit ćemo tehnička razmatranja IBFT-a, raspravljajući o mnogim konceptima koji se nalaze u EIP-ovima i koje smo naučili vlastitim istraživanjem.


Napomena: IBFT kôd također se može naći u zahtjevu za povlačenje go-ethereuma # 16385.

Operacija

Mehanizam konsenzusa IBFT sastoji se od sljedećih komponenata:

  1. A PBFT nadahnuti grupni konsenzus model.
  2. Proces kojim se članovi mogu dodati / ukloniti iz grupe za provjeru valjanosti.

IBFT zahtijeva da se zaglavlje bloka (suptilno) preradi kako bi podržalo sve aspekte mogućnosti.

Model grupnog konsenzusa

Pregled

IBFT koristi skup čvorova za provjeru valjanosti (Validators) koji rade na mreži Ethereum kako bi utvrdio je li predloženi blok prikladan za dodavanje lancu.

Jedan čvor programa za provjeru valjanosti proizvoljno je odabran kao predlagatelj i odgovoran je za izgradnju bloka na intervalu bloka i dijeljenje navedenog bloka s grupom. Ako super-većina Provjerivača smatra da je blok valjan, dodaje se u blockchain.

Po završetku kruga konsenzusa, potvrditelji mogu odabrati novog predlagača koji će biti odgovoran za pružanje bloka kandidata u sljedećem intervalu bloka.

Konsenzusni mehanizam je sinkronizirani državni stroj koji je odgovoran za osiguravanje da svi validatori dodaju isti blok na lanac na istoj visini.

Ako blok ne uspije umetnuti, predlagač se mijenja i postupak započinje iznova.

Kako bi osigurao da se na državni stroj može dodati samo jedan blok, IBFT sprječava promjenu predloženog bloka nakon što se velika većina validatora složi s njegovim umetanjem (ali nije obavila navedeni posao), taj se postupak naziva ‘Blokiranje blokova’.

Mehanizam konsenzusa IBFT nudi stabilnost sustava pod uvjetom da se manje od 1/3 čvorova za provjeru valjanosti ponaša pogrešno (bilo zbog oštećenja ili zbog neispravnog koda). Tj. za toleriranje F neispravnih čvorova grupa za provjeru valjanosti mora sadržavati najmanje 3F + 1 čvorova (više od toga ne povećava integritet sustava).

Napomena: Ovdje F podrazumijeva broj neispravnih čvorova koje sustav podnosi.

Državni stroj

IBFT državni stroj

Države
  • Čeka prijedlog. Validator čeka novi blok koji će dostaviti trenutni predlagatelj. Ako je validator predlagatelj ovog kruga, oni pripremaju predloženi blok i prenose ga u poruci unaprijed pripremljene.
  • Priprema. Primio je (valjani) predloženi blok i obavijestio vršnjake ovjerivača; sada čeka da vršnjaci validatora obavijeste da prihvaćaju blok.
  • Spreman. Dobio je prihvaćanje bloka od strane validacijskog kolega i čeka da se nađu u sličnom položaju. U ovoj je fazi predloženi blok ‘zaključan’ i ne može se zamijeniti dok se ne izvede pokušaj umetanja.
  • Okrugla promjena. Vrijeme kruga isteklo je prije postizanja konsenzusa ili bloka nije uspjelo umetnuti. Pričekajte da se svi validatori dogovore oko broja sljedećeg kruga.
Prijelazi
  1. Ana čekanju Prijedlog → Priprema. Po prijemu novog bloka (Priprema poruke) od predlagača (tj. Blok je valjan u svom sadržaju, kao i predložena točka umetanja lanca).
  2. Čeka se prijedlog → Kružna promjena. Primljeni prijedlog nije bio valjani blok prema zadanom skupu pravila (npr. Nevaljani predlagatelj, netočno numeriranje kruga).
  3. Priprema → Spremno. Po prijemu 2F + 1 obavijesti (Priprema poruke) od vršnjaka validatora koji ukazuju da je predloženi blok pogodan za umetanje.
  4. Spremno → Čeka se prijedlog. Po prijemu 2F + 1 obavijesti (poruka o preuzimanju) od vršnjaka programa provjere valjanosti koji pokazuju da su spremni dodati blok lancu. Na prijelazu se izvodi postupak dodavanja bloka lancu (uspjeh).
  5. Spremno → Okrugla promjena. Kao po Ready->Čekajući prijedlog, međutim, umetanje bloka nije uspjelo.
  6. Kružna promjena → Čeka se prijedlog. 2F + 1 validatora slažu se oko broja sljedećeg kruga koji će se koristiti.

Napomena: Svi prijelazi u “RoundChange” rezultiraju time da Validator šalje poruku “RoundChange” svojim vršnjacima u validatoru.

Blokiranje zaključavanja

IBFT nalaže da se vilice ne stvaraju. U tu svrhu, nakon što se većina dogovori o bloku (tj. Pri ulasku u stanje pripravnosti), on postaje “zaključan”.

To znači da se drugi blokovi neće razmatrati za umetanje dok se ne pokuša pokušati dodati ovaj blok u lanac. Prema tome, ili se blok uspješno ubacuje (kada se primi dovoljno poruka urezivanja, bilo u ovom ili sljedećim krugovima), ili blok ne uspije umetanje, odbacuje se i predlaže se novi blok na trenutnoj visini lanca.

Članstvo u grupi za provjeru valjanosti

Članovi grupe za provjeru valjanosti mogu se s vremenom promijeniti putem mehanizma glasanja. Članovi se mogu dodati ili ukloniti većinom glasova (najniža razina (N / 2) + 1); svaki se glas bilježi u zaglavlju bloka.

Svaki čvor u mreži (uključujući čvorove koji ne provjeravaju valjanost) odgovoran je za praćenje broja glasova za svaki validator kako bi se utvrdili trenutni validatori i osiguralo da potpisi na miniranim blokovima spadaju u očekivanu grupu.

S obzirom na to da je svaki glas sadržan u zaglavlju bloka, samo je predlagatelj određenog kruga glasova u mogućnosti. Stoga je važno, ako se pravodobno dodaju / uklanjaju čvorovi, da se uloga predlagača redovito ažurira.

Jednom kada čvor postigne većinu glasova, oni se odmah pridružuju grupi validatora / napuštaju je.

IBFT prepoznaje Epohu o glasanju, koja definira točku u kojoj se uklanjaju svi glasovi koji još nisu postigli većinu, što prisiljava na ponovno pokretanje broja glasova. To podrazumijeva da pri sabiranju glasova, provjeri valjanosti trebaju započeti tek u najnovijoj epohi. Prema zadanim postavkama, Glasačka se epoha događa svakih 30 000 blokova.

Glasovi definiraju promjenu stanja (tj. Kandidati se glasaju, validatori izglasavaju), ne glasanje za određeni čvor podrazumijeva da Validator ne želi da čvor promijeni stanje (izričito glasanje nije potrebno za održavanje statusa quo).

Refaktor zaglavlja bloka

Da bi podržali IBFT u Ethereumu, potrebno je izvršiti brojne promjene u zaglavljima blokova. Te promjene uključuju:

  • korisnik: identificira čvor za koji se glasa.
  • nonce: određuje “smjer glasanja” – AUTH ili DROP.
  • mixHash: fiksni magični broj, identificirajući ovaj blok kao potvrđen IBFT-om.
  • ommersHash: mora biti hash praznog skupa, jer nema ommer blokova kada rade pod IBFT-om.
  • vremenska oznaka: mora biti barem vremenska oznaka + interval bloka nadređenog bloka.
  • poteškoća: mora se ispuniti s 0x0000000000000001.
  • extraData: sadrži podatke specifične za IBFT, uključujući popis adresa za provjeru valjanosti, ProposerSeal (identificira predlagača), CommisstingSeals (popis programa za provjeru valjanosti koji su izvijestili o “predaji” na ovom bloku).

Budući da se popis CommitingSeals za svaki validator (potencijalno) razlikuje, važno je da hash bloka ne uključuje te podatke – tj. Iako dva bloka imaju različita polja CommtingSeals, oni predstavljaju iste podatke (tj. Transakcije itd. Su identične).

Zaključak

Za kraj, IBFT je bizantsko rješenje otporno na kvarove koje nudi trenutnu konačnost transakcije što smanjuje potrebnu infrastrukturu koju PoW zahtijeva.

Iako je malo vjerojatno da će se ikad koristiti na mrežnoj mreži Ethereum (s mnogo širim, nepoznatim skupom sudionika), on nudi značajnu korist kada se koristi u privatnom lancu u kojem se pouzdani bazen vjeruje i odgovara; pruža idealno rješenje za lanac s fiksnom kadencom i predvidljivom brzinom obrade transakcija.

Procesi istraženi u ovom članku daju sigurnost da će mreža koja koristi IBFT biti tolerantna prema bizantskim čvorovima i može se oporaviti ako se vidi da ti čvorovi vrše nadzor nad mrežom.

Newsletter Pretplatite se na naš bilten za najnovije vijesti o Ethereumu, rješenja za poduzeća, resurse za programere i još mnogo toga. Adresa e-pošte Ekskluzivni sadržajCjelovit vodič za Blockchain poslovne mrežeVodič

Cjelovit vodič za Blockchain poslovne mreže

Uvod u tokenizacijuWebinar

Uvod u tokenizaciju

Budućnost financija Digitalna imovina i DeFiWebinar

Budućnost financija: digitalna imovina i DeFi

Što je Enterprise EthereumWebinar

Što je Enterprise Ethereum?

Središnje banke i budućnost novcaBijeli papir

Središnje banke i budućnost novca

Komgo Blockchain za robne trgovinske financijeSlučaj Stud

Komgo: Blockchain za financiranje robne trgovine

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