Kadenas, pirmā reālā privātā bloķēna evolūcija | LV.democraziakmzero.org

Kadenas, pirmā reālā privātā bloķēna evolūcija

Kadenas, pirmā reālā privātā bloķēna evolūcija

Džordžs Samman ir blockchain un kriptonauda konsultants un padomdevējs, kurš nesen līdzautors auglīga ziņojumu par blockchain arhitektūru ar KPMG.

Lūk, Samman paskaidrots, kā vienprātība algoritmu sasniegt ar plostu beidzot noteikta tās tālu radinieku, Kadena. 

Šajā rakstā ir Kadena s blockchain. Tas izmanto ScalableBFT piedāvāt augstas veiktspējas (8,000-12,000 darījumu sekundē) ar pilnu atkārtos un sadalījums iepriekš nebija svariem (spēju vairāk nekā 500 iesaistīto mezgliem).

Tas, kopā ar daudzpakāpju drošības modeli un papildu sajaukšanai ļauj patiesi spēcīgu blockchain. Pamatojoties uz Raft un Juno, Kadena iegulst pilnu smart līgumu valoda (PACT) tai paredzētajā blockchain, kas var darboties vai nu sabiedrības (teksta) vai privātas (divreiz sprūdrata šifrētiem) darījumiem.

Tas ir milzīgs solis uz priekšu blockchain telpā, iespējams, pārstāv jaunas paaudzes blockchain tehnoloģijas pilnībā tās ieviešot ideju par "izplatīto determinisma".

Līdzīgi Bitcoin, Kadena s blockchain ir cieši integrēta, un saprast, ko tā spēj, un ko šīs spējas netieši, prasa aptver ievērojamu daudzumu zemes. Tā, piemēram, es esmu sadalīti rakstu trīs daļās: 1) Ievads & Raft, 2) Kadena s priekšgājējiem - Tangaroa & Juno, un 3) Kadena s Blockchain - ScalableBFT, pakts un izplatās determinismu.

1.daļa: Ievads un Plosts Consensus algoritms

Vēsture aiz Kadena ir interesants gadījuma izpēte jaunajā jomā blockchain konsensa algoritmus un dalītās skaitļošanas.

Kadena ir "attāla radinieka no plosta konsensa algoritmu. Plosta vienprātība mehānisms sekoja Tangaroa (bizantiešu bojājumpiecietīga (BFT) Plosts) un JP Morgan projekts Juno (dakša no Tangaroa), no kurām neviena vairs aktīvi attīstību.

JP Morgan jaunais blockchain Quorumis ļoti atšķiras no Juno un izmanto kodolsintēzes ideju no sidechains un ethereum - publiskā gudri līgumi ir atļauts uz blockchain papildus privātiem līgumiem, kas tiek atspoguļotas kā šifrēts hashes un atkārtot pa sānu kanāliem.

Kadena ir "nākamās paaudzes Juno". Tas izmanto jaunu, bet saistītu, protokols sauc ScalableBFT kas bija radījuši no atvērtā pirmkoda Juno projektu un tika būvēts ar diviem galvenajiem izstrādātājiem, kas būvētas Juno. Pirms niršanas dziļi Kadena īss vēsture un apraksts Raft un priekšgājēji uz Kadena jāapspriež.

Plosts vienprātība

Plosta vienprātība algoritms ir viens līderis balstīta sistēma, lai pārvaldītu kopēti žurnālu. Tas izmanto atkārtot valsts mašīna arhitektūru un rada līdzvērtīgu rezultātu Paxos, bet ir strukturāli atšķirīgas.

Turot atkārtot log konsekventi ir darbs konsensa algoritmu. Šajā modelī, līderis dara lielākā daļa darbu, jo tā ir izdevusi visas žurnāla atjauninājumus, darījumu apstiprināšanu, un parasti pārvalda kopu. Plosts vienprātība garantē stingru pasūtīšanu un pārņemšana ziņojumus. Tas nav vienalga, ko ziņojumi satur.

Jaunais vadītājs ir ievēlēts, izmantojot nejaušības principa noildze, kurus izraisīja ja sekotājs nesaņem nekādu paziņojumu no līdera pirms taimautu ugunsgrēkiem. Tos sauc par "sirdsdarbību".

Ja sekotājs nesaņem nekādu paziņojumu šajā laika periodā, tas kļūst par kandidātu un sāk vēlēšanas. Kandidāts, kas saņem balsis no lielākās daļas pilna kopas (mezgliem tīklu) kļūst par jauno līderi. Līderi parasti darbojas līdz brīdim, kad viņi nespēj. Par sirdsdarbību tiek nosūtīti, lai pārliecinātos, līderis joprojām ir tur; ja nekas nav saņemta jauna vēlēšanas notiek.

Šādi posmi ir kā plosts nāk ar vienprātību:

  1. Klastera Raft mezglā serveriem tiek uzsākta ar katru mezglu uzsākšanu kā "sekotājs". Galu galā, viens mezgls taimautu, kļūt par kandidātu, iegūt balsu vairākumu un kļūt par līderi.
  2. Katrs mezgls saglabā žurnālu, kurā komandas. Tas ir līderis uzdevums pieņemt jaunus komandas, stingri pasūtīt komandas savā žurnālā, atkārtot savu žurnālu, lai saviem sekotājiem, un, visbeidzot, informējiet sekotāji, kad izdarīt žurnālus, ka tie ir kopēt. Tādējādi vienprātība algoritms nodrošina, ka katra servera žurnālos ir secība ir tāda pati.
  3. Logs ir "izdarīts", ja tie ir pārkopēts vairākuma mezglu. Vadītājs apkopo replikācijas skaits, un, kad lielākā daļa tiek uzskatīta, apņemas savu jauno žurnāla ierakstus un informē savus sekotājus darīt to pašu.
  4. Pēc "izdarīt" komanda katrā žurnāla ieraksta tiek vērtēta ar valsts mašīnām. Tā Plosts ir vienaldzīgs pret ķermeni komandu, jebkurš valsts iekārta var apstrādāt izdarījis ierakstus. Turklāt vienprātība apliecina, ka komandu izpilde vienmēr notiek tādā pašā kārtībā kā komandas nāk no Ieiet kura ir stingri pasūtīts.
  5. Valsts mašīnas paliks konsekventi, kamēr komanda nāvessodu izpilde determinēti.
  6. Kad klients sūta komandu ar vienu no serveriem, kas serveris vai nu nosūta komandu līderi, vai ir līderis. Līderis savāc jaunu komandu, piešķir to Log Index, rezumē to žurnāla ierakstu, un piebilst komandu nesaistošajai daļu savu žurnālu.
  7. Ikreiz, kad līderis ir nesadalīto ieraksti, tā atkārtojumu šo daļu žurnāla saviem sekotājiem. Kad vadītājs tiek informēts par veiksmīgu replikācijas vairākums kopas, tas uzliek jaunus ierakstus un rīkojumi savus sekotājus darīt to pašu.
  8. Ikreiz, kad jaunā žurnāla ieraksts ir izdarīts vienprātība par šo ierakstu ir sasniegts. Pēc tam tas tiek vērtēts ar valsts mašīnu uz katra servera.
  9. No šī brīža, Plosts ir pabeigta un īstenotāji var izlemt, kā rīkoties atbildes; atbildot uz klientu vai gaida klients vaicājumu par rezultātu.

Atbildes uz klientam parasti ir asinhrons.

Plosta vienprātība protokols ir tikai, ka - vienprātība algoritms. Tas nav priekšstatu un, pēc noklusējuma, pilnībā atvērti jebkuram klientam izsniegšanas komandas. Vienīgais dalība ierobežojums tas padara ir par to mezgli pastāv konkrētā brīdī.

Turklāt līderis ir absolūta vara pār klastera un pasūta sekotājus atkārtot un izdarīt. Tas nepretendē bizantiešu uzbrukumiem, tai ir tikai rīkoties avārijas defektiem, jo ​​mezgli tiek pieņemts nesavtīgs.

2. Daļa: Kadena s priekšgājējiem - Tangaroa un Juno

Tangaroa: Pirmais solis ceļā uz BFT Raft

Tangaroa ir bizantiešu bojājumpiecietīga (BFT) variants plosta konsensa algoritmu iedvesmojuši oriģinālā Plosts algoritmu un praktiskajos Bizantijas defektu pielaidēm (PBFT) algoritmu.

Bizantijas defektu pielaide attiecas uz A klases kļūmēm, ko izraisa ļaunprātīgu mezglu uzbrūk tīklam. Ja kāds no punktiem iet uz leju ir ļoti svarīgi, lai tīkla turpināt darbību bez apstāšanās.

Standarta Raft, jums ir nepieciešams atkārtot žurnāla ierakstu vairākuma mezglu klastera pirms izdarīšanai. Par BFT konsensa algoritmiem, tostarp Tangaroa, nepieciešamais klastera izmērs ir vismaz 2f + 1, kur f ir no neveiksmēm skaits, kuru vēlaties panest (ieskaitot gan avarēja mezglus un uzlauztās mezgli). Vienprātība ir panākta ar vairākuma balsojumu par klastera; ja f <= 3 tad klastera izmēru = 7 un ne-Bizantijas mezglu = 4. Daži BFT protokoli var pat pieprasīt 3F + 1.

Bizantijas Leader var nolemt patvaļīgi palielināt izdarīt indeksu citiem mezgliem pirms žurnāla ieraksti ir pietiekami atkārtot, tādējādi radot drošības pārkāpumiem, ja mezgli nespēj vēlāk. Tangaroa pārbīda izdarīt atbildību prom no līdera, un katru mezglu var pārbaudīt uz sevi, ka žurnāla ieraksts ir droši pārkopēts kvorumam mezglu un ka šis kvorums piekrīt uz pasūtījuma.

Tangaroa ļauj klientiem, kas pārtrauc pašreizējo vadību, ja tas neizdodas, lai panāktu progresu, tādā pašā veidā, ka citas BFT konsensa algoritmi ļauj klientam uzvesties kā uzticamu Oracle gāzt noteiktus mezgliem. Tas ļauj Tangaroa novērst bizantiešu līderiem badā sistēmu, bet ir sākuši uzticēties klienta.

Leader vēlēšanas un posmi

Tangaroa izmanto plostu, par pamatu vienprātībai; Tādējādi ir viens līderis. In Tangaroa, kā Raft, katrs mezgls ir viens no trim valstīm: līderim, sekotāju vai kandidātu.

Līdzīgi Raft katru mezglu sāk kā sekotājs, no kuriem viens tiks galā taimautu un zvanu vēlēšanas. Vēlēšanu uzvarētājs kalpo kā līderi par atlikušo pilnvaru laiku; termini beidzas, kad jauns līderis ir ievēlēts. Dažreiz vēlēšanas radīs balsošanai pa daļām, un termins beigsies bez līderi. Šādā gadījumā sekotājs atkal laiku (noildzes ir reset, kad balsojums tiek nodotas vai vēlēšanu sauc), un sākt balsošanas procesu vēlreiz.

Lai sāktu vēlēšanas sekotājs tiek palielināti tās pašreizējo pilnvaru termiņu, un nosūta RequestVote (RV) Remote Procedure Call (veiktu RPC izsaukumus) paralēli uz katru no pārējiem punktiem klastera lūdz savu balsojumu. Par veiktu RPC izsaukumus Tangaroa izmantošanas veidi ir līdzīgi plostu s veiktu RPC izsaukumus, izņemot, ka katrs RPC tiek parakstīti un apstiprināti ar PPK parakstiem.

Veiktu RPC izsaukumus ļauj datu apmaiņu starp dažādiem datoriem, kas dzīvo uz tīklu un paraksti ļauj saņemt mezglu, lai pārbaudītu, kas mezgls nosūtīja RPC papildus ļaujot jebkuru mezglu nosūtīt jebkuru citu mezglu ir RPC jebkurā laikā.

Kad Tangaroa mezglu saņem RV RPC ar derīgu parakstu, tā piešķir balsi uzreiz tikai tad, ja tas nav šobrīd ir līderis (tikai notiek starta). Pretējā gadījumā tas sākas process, kas Tangaroa prasa "LazyVote."

No LazyVote mērķis ir aizsargāt ne-bizantiešu sekotāji no ievēlot jaunu līderi, kad vadītājs nav bojāts; bez slinks balsošanas, bizantiešu mezglu varētu izraisīt atkārtotus vēlēšanas jebkurā laikā un badoties sistēmu. Kad jaunā RV ir saņemts sekotājs, tas ietaupa RV un gaida visus šādus nosacījumus, kas jāizpilda:

A) sekotājs vēlēšanu taimautu izraisa ugunsgrēku, pirms tā rīkojas sirdsdarbība no tā pašreizējā līdera. Ja tiek saņemts sirdsdarbība, tad LazyVote tiek noskaidroti.

B) RV jaunais termiņš ir lielāks nekā tās pašreizējā pilnvaru.

C) Pieprasījums sūtītājs ir tiesīgs kandidāts (derīgs PPK paraksts un klients nav aizliegta mezglā).

D) mezglu saņem RV nav balsojis par kādu citu līderi par ierosināto termiņu.

E) Kandidātam dalās žurnāla prefiksu ar mezglu, kas satur visus vēl neizlietotos ierakstus. Mezgls vienmēr noraida pieprasījumu, ja tas joprojām saņem sirdsdarbība ziņas no pašreizējā līdera, un tas ignorē RequestVote RPC ja piedāvātais termiņš jau ir sācies.

Ja RequestVote ir derīgs un jaunu termiņu, un kandidāts ir žurnāls pietiekoši up-to-datums, bet saņēmējs joprojām saņem sirdspuksti no pašreizējā līdera, tas reģistrē savu balsojumu uz vietas, un pēc tam nosūtīt balsot atbildi, ja mezgls pats notiek vēlēšanas taimautu vai dzird no klienta, ka pašreizējais līderis ir nereaģē.

Saskaņā slinks balsošanas mezgls nav piešķirt balsojumu kandidātu, ja tas uzskata, ka pašreizējais līderis ir kļūdains. Tas novērš mezglus, kas sākas nevajadzīgas vēlēšanas, neļaujot nepieciešamās balsis kļūt līderis un badoties sistēmu.

Mezgli jāgaida, līdz viņi uzskata vēlēšanas ir nepieciešams notikt, pirms kādreiz ar balsošanu. Kad balsojums tiek nosūtīts, mezglu atjauninās savu terminu numurs. Tas nav pieņemts, ka mezglu tā balsoja par uzvarēja vēlēšanās tomēr, un tas joprojām noraida AppendEntries (AAE) veiktu RPC izsaukumus no kandidātu, ja neviena no tām satur kopa balsu apliecina kandidāts uzvarēja vēlēšanās. AE s kalpo divkāršs mērķis sirdsdarbību un pārvadātāju jaunu žurnāla ierakstiem, kurus nepieciešams replikāciju. Kandidāts turpinās kandidātvalstī, kamēr viens no trim lietām notiek:

A) Tā uzvar vēlēšanās, saņemot balsu no kopas. Kandidātam ir saglabāt šīs balsis - RequestVoteResponse (RVR) veiktu RPC izsaukumus - turpmākai izplatīšanai.

B) Vēl viens mezgls izveido pats kā vadītājs

C) laiks iet bez uzvarētājs (ti: tā pieredze citu vēlēšanu taimautu)

Kandidāts, kas uzvar vēlēšanās, tad veicina sevi līderis valstī un nosūta AE sirdsdarbība ziņojumus, kas satur balsis, kas ievēlēti to un atjaunināto terminu numuru, lai noteiktu tās pilnvaras un novērst jaunas vēlēšanas. Noslēgtie balsis efektīvi novērš bizantiešu mezglu no patvaļīgi veicināt sevi kā līderis augstāku termiņu. Turklāt, katrs sekotājs veic atstāstīt par iepriekšminēto vairākuma balsojumu, apstiprināšanu un skaitot katru balsot jauno līderi nosūta patstāvīgi pārbaudīt uz vēlēšanām.

Valdīšana

Tāpat Raft, Tangaroa izmanto nejaušības principa noildzes lai iedarbinātu līdera vēlēšanas. Katra termina līderis periodiski sūta sirdsdarbība ziņas (tukšs AE veiktu RPC izsaukumus), lai saglabātu savu autoritāti. Ja sekotājs nesaņem nekādu paziņojumu no līdera vairāk nejauši izvēlētā laika periodā, tad vēlēšanu taimautu, tad tā kļūst par kandidātu un uzsāk jaunu vēlēšanas.

Papildus spontānām sekotāju-izraisīja vēlēšanām, Tangaroa arī ļauj klientam iejaukšanās: ja klients ievēro nekādu progresu ar līdera laiku sauc progress taimautu, to pārraida UpdateLeader veiktu RPC izsaukumus uz visiem mezgliem, darot tos ignorēt turpmākās sirdsdarbību no ko klients uzskata, ka pašreizējais līderis pašreizējā termiņā. Šie sekotāji ignorēs sirdsdarbība ziņas pašreizējā termiņa un laiku ārā, it kā pašreizējais līderis bija izdevies, sākot jaunu vēlēšanas.

Dati ir saņemti

Dati (Jaunie komandas) nāk no klientiem par Plosts klastera, kas sūta pieprasījumu uz līderis. Līderis kopē šos pieprasījumus kopas, un atbild uz klientu, kad kvorums ir sasniegts klastera par šo pieprasījumu.

Ko nozīmē "pieprasījums" ir sistēma atkarīga. Kā dati tiek glabāti, ir sistēma atkarīga. Tas ir svarīgi, lai valsts pastāvēt uz diska, lai mezgli var atgūt un atcerēties informāciju, ko viņi ir apņēmušies (ko mezgliem viņi balsoja par, ko log ieraksti viņi ir izdarījuši, uc). Bez tam, protokols nedarbosies.

Tangaroa piebilst BFT plostu attīstību

Juno

JP Morgan Projekts Juno ir dakša no Tangoroa un bija koncepcijas, kas varēja mēroga Tangaroa iekļaut līdz 50 mezgliem un paaugstināt darījuma ātrumu līdz 5000 darījumiem sekundē.

JPM komanda aiz Juno saskatīja, ka Tangaroa līdzīgu pieeju pārstāvēto - augstas veiktspējas privāto blockchain. Viņi atkārtoja uz ideju par vienu gadu, un atvērtā koda projekts, kas 2016. Gada februārī viņi pievienoja smart līguma valodu, fiksēto daži dizaina kļūdas un izdevies sasniegt 10x veiktspējas pieaugumu, kas ļāva skaitam mezglu balsot mainīt, bet sistēmai skrēja. Juno ļāva par pievienojot un noņemot mezglu, un bija permissioned izplatīts sistēma, kurā visas mezgliem tīklā bija zināmi.

Mehānisma un līdera vēlēšanu procesa posmi ir tādi paši kā Tangaroa (skatīt iepriekš). Līdzīgi, darījums tiek uzskatīts par dzīvu, kad tas ir pilnībā atkārtot un apņēmusies žurnālā.

Vadītājs izlemj secību komandas un katra mezgla apstiprina. Katrs mezgls patstāvīgi izlemj, kad izdarīt žurnāla ierakstu, pamatojoties uz pierādījumiem, ko tā saņem no citiem mezgliem. Katrs žurnāla ieraksts ir individuāli saplānota, un pakāpeniski jauktas pret iepriekšējo ierakstu. Tas aizņem aptuveni 5 ms par vienu žurnāla ierakstu aiziet no līdera saņemšanas ierakstu pilnīgu vienprātību tiek sasniegts un tīkla latentuma.

3.daļa: Kadena s Blockchain - ScalableBFT, pakts, un izplatās determinisms

Kriptogrāfija

Dažādas plostu, katra kopija tādā BFT Plosts sistēmai (ģimenes algoritmu, kas ietver Tangaroa, Juno un Kadean s ScalableBFT) aprēķina šifrēšanas jaukšanu katru reizi, kad tas pievieno jaunu ierakstu savā žurnālā. Hash tiek aprēķināta, salīdzinot ar iepriekšējo hash un nesen pievienotā žurnāla ierakstu.

Mezgli var pierakstīties savu pēdējo jaukšanu, lai pierādītu, ka tas ir kopēts visus ar žurnālu un citus serverus var pārbaudīt šo ātri, izmantojot parakstu un hash. BFT Raft mezgli un klienti vienmēr pierakstieties pirms sūtīt ziņas, un noraida ziņas, ka nav iekļaut derīgu parakstu.

BFT Plosti izmantot Inkrementāls jaukšanu ļauj mezglu, lai būtu pārliecināti, ka gan saturu un secību citu mezglu žurnālos atbilstu viņu pašu. Izmantojot šīs zināšanas, mezgli var patstāvīgi izdarīt žurnāla ierakstus droši, jo gan saturu un secību citu mezglu žurnālos apliecina, izmantojot atbilstošas ​​pieaugošajām jaukšanas.

BFT Plosti izmanto digitālos parakstus plaši autentiskumu ziņas un pārbaudīt to integritāti. Tas novērš Bizantijas līderis no modificējot ziņojuma saturu vai kalšanas ziņas un aizsargā kopu parasti no daudziem bizantiešu uzbrukumiem.

Vienprātība

In Raft, Leader tiek ievēlēts izmantojot pēc nejaušības principa taimautu, kas aktivizē sekotājs ierosināt sevi kā kandidātu un pieprasīt balsu. ScalableBFT arī dara, bet tādā šifrētā drošā veidā. Piemēram, ja Leader kļūst sasniedzams, taimauta izraisītu jaunas vēlēšanas, bet vēlēšanu process ir stabila pret Bizantijas mezgliem apgalvojuši vēlēšanas. ScalableBFT novērš problēmas, kas Juno un Tangaroa radušās saistībā slinks balsošanu.

Līderis ir tikai unikālās spējas, ir: 1) pasūtīšanas Jaunu darījumu pirms replikācijas un 2) replicē jaunus darījumus sekotājs mezgliem. No šī brīža, visi mezgli patstāvīgi pierādīt gan vienprātību derīgumu un individuālo darījumu godīgumu.

No anonīma dalības atcelšana ir prasība privātiem blockchains dizains, un tas ļāva augstas veiktspējas BFT Consensus mehānismu, lai aizstātu ieguvi. ScalableBFT galvenais papildinājums ģimenes BFT plostiem ir spēja mērogu vērā 1000 s mezglu, nesamazinot sistēmas caurlaidspēju.

Katrs darījums tiek pārkopēts katru mezglu. Kad lielākā daļa mezglu ir atkārtot darījumu, darījums tiek izdarīts. Mezgli apkopot un izplatīt informāciju (papildu hash), par to, ko viņi ir atkārtot un izmantot šo informāciju, lai patstāvīgi izlemt, kad izdarīt (> 50% no citiem mezgliem nosūtītu viņiem pieaugošajām jaucējkodus par nesadalīto darījumiem ka tās piekrīt).

Pamatā tas notiek, veicot vairākuma balsojumu par to, ko izdarīt. Apņemoties darījumu, tas nenozīmē, ka tā tiks izpildīts, tikai to, ka tas ir neatgriezeniski atkārtot vairākums kopas. Bad darījumus, tiem, kas kļūdu vai ir slikti parakstus, ir jāatkārto, kā arī vienprātība "uzdevums ir nodrošināt perfektu pasūtīt replikāciju.

Apņemoties darījums ļauj katru mezglu, lai pēc tam patstāvīgi izvērtēt (parsēt / atšifrēt / apstiprinātu kriptogrāfisko / izpildīt / etc.) Katrs darījums identiskā veidā. Katrs darījums kļūst pārī ar izejas, tas var būt no "slikto crypto" uz izejas gudras līguma slānis (kas var būt arī kļūda).

Visbeidzot, turklāt līderis replicē jaunus darījumus katram mezglam mezgli ir vairāk vai mazāk neatkarīgs. Tā vietā, lai "sinhronizēšana" viņi raidījuma "Man ir atkārtot līdz pieteiktos indeksa N, un tā ir papildu jaucējvērtību H" klasterim un apkopot šo informāciju no citiem mezgliem - pamatojoties uz rezultātiem no citiem mezgliem katrs mezgls var patstāvīgi nolemts, ja klasteris ir jāatkārto garām bāra nepieciešams izdarīt (vairākuma replikācijas dažiem no vēl nesaistošajai žurnāla indekss N).

Šeit ir smalks daļa: algas hash nozīmē vairošanos visu, kas nāca pirms tā. Ja līderis atkārtojumiem 8000 jaunus darījumus (kas ir tas, kas pašlaik dara), katrs mezgls ir nepieciešams tikai izplatīt un savākt pierādījumus par pēdējā darījuma šīs partijas, jo tas nozīmē pareizu replikācija tiem, kas nāca pirms tā. Tā vietā, lai nosūtītu 8000 īsziņas (viens katram darījumam), kas apliecinās atbilstošus replikācijas mezglu apspriest tikai jaunāko darījumu.

Tas ir iemesls, kāpēc Kadena nepieciešams tik daudz konveijera, jo komanda sapratu, kā izdarīt 8000 darījumiem tādā pašā ātrumā kā izdarot vienu darījumu.

ScalableBFT pārstāv izrāvienu jomā BFT vienprātības, jo tas ir pirmais un vienīgais deterministiskās BFT vienprātība mehānisms, kas var mērogu iepriekšējos simtiem mezglu ar pilnu replikāciju un šifrēšanu. ScalableBFT arī sniedz unikālu drošības modeli, kas pazīstama kā iespiedies determinisma, kas nodrošina drošību, ne tikai darījuma līmenī, bet pie konsensa līmenī, kā arī, kamēr šifrēšanas katru darījumu, izmantojot Noise protokolu (skatīt zemāk).

Kadena izmanto deterministisku vienprātību

Vienprātība mehānisms ir stingri noteikts, ja vienprātība process ir pilnībā norādīts protokolā, un šis process nenodarbina nejaušības. Kā tika minēts iepriekš, Plostu, piemēram, izmanto nejaušības principa noildzes aktivizēšanai vēlēšanas, kad vadītājs iet uz leju (jo vadītājs nevar sazināties "Es esmu par to crash", tur ir taimautu, kas ceļojumus pamudinājusi mezglu, lai pārbaudītu, vai līderis ir uz leju), bet vēlēšanas nav daļa no vienprātības pie darījuma līmenī, tas ir nevis līdzeklis, lai atrastu mezglu orķestrēt vienprātību.

ScalableBFT ir stingri noteikts, rūdīts tāds, ka:

  1. Mezgli saistības tikai tad, kad lielākā daļa klastera piekrīt tiem
  2. Pierādījumi par vienošanās jābūt pilnībā pārbaudāma jebkurā brīdī
  3. Ja trūkst pierādījumu par vienošanos, nekas nav jādara.

Kadena ir īpaši izstrādāta permissioned tīkliem, un kā tāds tas tiek pieņemts, ka daži uzbrukumi (piemēram, DOS), ir maz ticams, un ir ārpus tās kontroles. Ja viens bija notikt, sistēma vai nu bloķēšana (visi mezgli taimautu beidzot ar, bet pēc vēlēšanām nekad izdoties) vai sēdēt dīkstāvē.

Pēc tam, kad šāds pasākums beidzas, mezgli nāks atpakaļ vienprātība, un viss atgriezīsies normālā stāvoklī. Tomēr tādā permissioned tīkla administratoriem būtu pilnīga kontrole un nogalināt savienojumu, rada problēmu.

Leader vēlēšanu

Leader vēlēšanas ir ļoti līdzīgs plostu, jo jebkurā mezglā var ievēlēt līderi, katrs mezgls saņem vienu balsi par vienu termiņu, un vēlēšanas sauc kad randomizēts taimautu viens no mezgliem ugunsgrēkiem (taimeris tiek atiestatīts katru reizi, kad mezglu dzird no līdera ).

Lielākā atšķirība ir tā, ka Raft mezglu, kas saņem pietiekami daudz balsu uzņemas vadību, savukārt ScalableBFT mezglu, kas saņem lielāko balsu izplata šīs balsis uz katru citu mezglu, lai pierādītu (jo BFT veidā), ka tas ir ievēlēts līderis pēc klasteris.

ScalableBFT ir mehānisms novērš problēmas, kas novērotas Juno un Tangaroa, piemēram, par "bēguļojošs kandidāts", kur ne-Bizantijas mezglu ir beigusies, jo tīkla nodalījumā, bet, jo tās termiņš ir skaitītas, tā nevar atgriezties uz vienprātības, un tā vietā turpinās taimauts tad tiek palielināti savu vārdu ( "Runaway".)

Plosts vienprātība garantē stingru pasūtīšanu un replikācijas ziņojumu; tas nav svarīgi, kas ir katrā ziņojumā, un var būt no nejaušiem skaitļiem līdz ciphertext vienkāršā teksta viedos līgumiem. Kadena piesaista žurnāla slāni kā ziņojumapmaiņas pakalpojumu braucot šifrētā kontekstā; līdzīgi signālu var palaist Trokšņu protokolu šifrēšanu īsziņās. ScalableBFT darbojas trokšņu pār blockchain.

ScalableBFT piebilst vienprātību robustumu, kurā slānis, kas nodarbojas ar ziņojumus interpretējot uzņemas kā garantiju, bet arī pieaugošās jaucējkodus kas nodrošinātu perfektu replikācijas ziņojumus. Troksnis protokols spraugas starp vienprātībai un viedā līguma izpildi, šifrējot / atšifrētu ziņojumus, kā nepieciešams; jo ziņojumi ir ciphertext tikai ir nepieciešami daži no parastajiem trikiem izvairīties no Dekarta blowup dzīvu testu palaist vienu īsziņu bez informācijas noplūdi.

Drošība modelis / izplatīta determinisms

Kadena lieto terminu "iespiedies determinisms", lai aprakstītu "ideju par blockchain kas izmanto PPK-Sig balstīta kriptogrāfiju autorībai garantijām (piemēram Bitcoin) un sastāv no pilnībā deterministisko konsensa slāni papildus Turing-nepilnīga, viena uzdevuma smart līgums slāni.

Par "pervasively deterministiskām" blockchain sekas ir diezgan dziļa, jo tā ļauj Bitcoin virsgrāmatu klases pārbaudes iespējas jāpaplašina dziļi konsensa slāni Ķēžu kopā vairākus slāņus kriptogrāfijas uzticību.

Veikt kā piemēru darījumu, kas ielādē jaunu smart līgumu moduli sauc par "aizdevumi". Say "aizdevumi" imports cita moduļa sauc par "maksājumiem", kas ir jau klāt ķēdē. Sekmīga imports "maksājumi" vien nozīmē sekojošo (ar katru ir pilnībā pārbaudāma ar kriptogrāfijas līdzekļiem):

  • Kas parakstīja darījumu, kas piekrauts "maksājumus"
  • Kas vienprātība mezgli bija klastera brīdī iekraušanas
  • Kas vienprātība mezglu piekrita, ka darījums bija spēkā
  • Kas mezgli balsoja par pašreizējo līderi brīdī iekraušanas
  • Kas līderis bija
  • Kas iepriekšējais līderis bija
  • Utt

Pervasively Deterministiskās sistēma ļauj jauniem darījumiem, lai piesaistītu ne tikai kriptogrāfisko uzticību, kas dabiski rodas, jo darījumi pieķēdēts kopā blockchain, bet arī uzticību, kā šie darījumi ienāca dzega pirmajā vietā. To darot, jūs varat izveidot sistēmu drošāku nekā Bitcoin jo vienprātība process kļūst par šifrētā uzticams, pārbaudāmas, un sapinušies kā arī ar darījumu līmeņa nāvessodiem netieši norādot, ka specifiski vienprātība līmeņa notikumi, un ar katru Ietekme ir šifrētā pārbaudāmi.

Tas nodrošina BFT ne tikai par konsensa slānim, bet darījuma slāņa (Bitcoin jau to dara), kā arī. Tas atšķiras no, teiksim, PBFT kas pieņem, ka darījumi nosūtīti no klienta servera ir spēkā, kas atstāj tos ar spēju tikt apdraudēta. Turklāt, kas nav Plosts BFTs parasti uztic klientam ar spēju gāzt / Aizlieguma mezglu. Pervasive determinisms notiek alternatīvu viedokli: uzticība nekas, pārbaudīt visu.

Ļaujot ScalableBFT iekļaut visaptverošā determinisma rada pilnīgi paranojas sistēmu, kas ir stabila uz katru slāni, izmantojot pastāvīgu drošību (ti: forma kriptogrāfijas drošību, kas var tikt saglabāti uz diska). Tā ir Bitcoin ir drošības modelis darījumiem, paplašina šo modeli uz vienprātības līmeni, un piebilst smart līgumus bez nepieciešamības ieguvei vai kompromisus, ka lielākā daļa šajā nozarē, ir pieraduši. Tas ir reāls blockchain kas ir ātri un pielāgojamiem.

Es jautāju Will Martino (līdzdibinātājs Kadena), lai specifiku, kā tas darbojās katram slānim:

Kāds ir jūsu vienprātība līmeņa drošības modelis?

Par replikācijas, Kadena izmanto pakāpeniski sajauktā žurnālu darījumu, kas ir identiski atkārtot katrā mezglā. Tās vienojas par saturu žurnāla starpniecību izplata parakstījušas ziņojumus, kas satur papildu hash konkrētā žurnāla indekss, kas pēc tam tiek savākti ar citiem mezgliem un izmanto individuāli spriest par to, kad izdarīt, ir pamatota. Nav dublikāti ir atļauta žurnāla un replikācijas ziņojumus no līdera, kas satur jebkādas dublikāti tiek noraidīti nekavējoties.

Mēs izmantojam blake2 jaukšanas un Termiņnoguldījumu numuru definēt unikalitāti, kas ļauj klientiem sistēmā, lai nav jāuztraucas par sūtīšanu dublikātus nejauši vai par ļaunprātīgu mezglu / man-in-the-vidū (MITM) Atkārtoti iesniedzot komandas. Mēs izmantojam pastāvīgu nodrošinājumu, PPK-sig balstītu pieeju autora pārbaudi (vai jebkuru pieeju, kuras var tikt saglabātas uz diska), kas ir ļoti līdzīgs tam, kā Bitcoin pārbauda darījumus, bet pie konsensa līmenī (papildus darījuma līmeņa).

Tas ir pretstatā īslaicīgam drošību, kas izmanto drošus kanālus (TLS) par autora validācijas - ir ievērojami zemākas pieeju, kurā jautājums ", kurš nosūtīja darījuma X?" ir atbilde nav pa PPK kriptogrāfiju bet caur vienprātība līmeņa vaicājumu, jo jebkurš indivīds mezglā nespēj nodrošināt BFT atbildi.

Kāda ir jūsu darījuma līmeņa drošība modelis?

Par īslaicīgam un pastāvīgu drošības posmu gan konsensa un darījumu līmenī idejas, kā tas ir vienprātība, ka rokas smart līguma izpilde slāņa atsevišķus darījumus. Pie viedā līgumu / darījumu līmenī, mēs arī izmantot pastāvīgu drošību, kā arī, atbalstot rinda līmeņa publisko atslēgu atļauju natively pakts.

Tas ir svarīgi, jo īslaicīgs nozīmē, ka uzbrucējs ir viens serveris attālumā no uzdodas par citu vienību; nodrošināti kanāli darbs punkta uz punktu, jaunu darījumu sadalījums pēc klienta / iesniedzējam uz klastera mezgliem pār TLS un vienprātība nodrošina, ka attiecīgais darījums būtu izdarīts un atkārtot. Tomēr, ja uzbrucējs hacks klienta servera turot otru galu TLS savienojumu, tās var veikt darījumus, it kā tie būtu klients bez klastera pagaidām gudrāks.

Pastāvīga drošību, no otras puses, ir daudz atslēgas atsevišķām lomām konkrētajā vienībai, tādējādi nepieciešama uzbrucēju, lai iegūtu piekļuvi atsevišķām atslēgām; turklāt, ar pastāvīgu drošības šefa darījumi tiek parakstīti ar citu atslēgu, kā pasta darbinieks darījumiem vs efemers kur ", kurš sūta šis darījums" ir noteikta ar "no: X" laukā.

Ja tas pats TLS savienojums tiek izmantots, lai iesniegtu gan CEO un kancelejas darījumu, tad autora un atļauja loģika ir ", jo es tā teicu / ticiet man" modelis vs PPK-sig pieeju, kur jūs pārbaudīt pret atbilstošo taustiņu pirms izpildes. Kadena s blockchain ir paredzēts uzticēties pēc iespējas mazāk; ja mēs zinājām par vairāk paranojas vai smalkgraudaina pieeju nekā rindu līmeņa PPK parakstu, mēs gribētu izmantot šo vietā.

Kāds ir jūsu konfidenciāls darījums modeli?

Mēs izmantojam Double-Ratchet protokolu (ko Signal, WhatsApp utt izmantot šifrētu komunikāciju) iekļaujas blockchain (šifrēto darījuma struktūras) par daudzpartiju privātuma saglabāšanu lietošanas gadījumiem. Mēs strādājam ar jēdzienu izmežģīt datubāzēm, izmantojot "pakts" primitīvākas paktā - tās aprakstīt daudzfāžu izdarīt darbplūsmu pāri izmežģīt datu bāzēm, izmantojot šifrētus ziņojumus.

Smart līgumi

Pakts ir pilna smart-līgumu valoda, tulks, kura ir celta Haskell. In Kadena, katrs darījums ir gudrs līgums un pakts smart līgums valoda ir atvērtā koda. Pakts ir datu bāze vērsta, darījumu, Turing-nepilnīga, viena uzdevuma (mainīgie nevar mainīt savā dzīvē), un līdz ar to ļoti pakļauti statiskai pārbaudei.

Pakts arī interpretēts - kods, ko jūs rakstīt ir tas, ko izpilda uz ķēdi - tā stiprību, tiek apkopota, padarot to grūti pārbaudīt kodu, kā arī nav iespējams labot drošības problēmas vecajās valodu versijās, reizi apkopoti. Pakts kuģiem ar savu tulka, bet var darboties jebkurā Deterministiskās-ieejas blockchain, un var atbalstīt dažādas aizmugures, ieskaitot komerciālo RDBMS. Jo ScalableBFT blockchain, tā darbojas ar ātru SQLite uzglabāšanas slāni.

Raksturojums Kadena Blockchain

Kadena blockchain satur visas šīs iezīmes:

Noslēgumā, Kadena ir izstrādājusi pilnīgi replicē, mērogojamu un deterministisku konsensa algoritms privātiem blockchains ar augstu veiktspēju. Šo blockchain risinājums var būt milzu solis uz priekšu, lai finanšu pakalpojumu uzņēmumiem, kas vēlas izmantot reālu privātu risinājumu, kas paliek uzticīgi daudzi atslēgu Bitcoin blockchain pazīmes bez kalnrūpniecību (pierādījums darbā), anonimitāte un cenzūras pretestība, bet ēdināšana uz galvenajiem konstrukcijas iezīmēm ka finanšu pakalpojumi ir vēlēšanās īpaši mērogojamību un konfidencialitāti.

Šis raksts iepriekš tika publicēts Sammantics blogand ir šeit atveidots ar atļauju. Daži labojumi ir veikti par stilu un īsums.

Privāts BlockchainsKadena

Saistītās ziņas


Post Blockchain

2018. gada virsraksti: gada 13 lielākie Blockchain stāsti

Post Blockchain

Apple noņem no lietotņu veikala Blockchain Bitcoin maku lietotnes

Post Blockchain

Eris COO: privātās un publiskās bloķēzes ir nepieciešamas līdzāspastāvēšanai

Post Blockchain

Bitcoin ieies prakses laikmetā

Post Blockchain

Accenture direktori: Blockchains jāpārvietojas ārpus Bitcoin

Post Blockchain

27 finanšu uzņēmumi veido Korejas Blockchain konsorciju

Post Blockchain

Bitcoin galvenajos virsrakstos: Blockchain Reigns Supreme

Post Blockchain

6 Takeaways no CoinDesk Q3 valsts Blockchain

Post Blockchain

Bitcoin un Litecoin Top WikiLeaks avotu avoti

Post Blockchain

Blockchain Adreses Drošības strīds: mums jādara labāk

Post Blockchain

Bitcoin 2018 ziņojums analizē jaunās tendences

Post Blockchain

Symbiont Demos Blockchain Akciju emisija DC likumdevējiem