Kadena, pirmasis nekilnojamasis privatus blokinis raida, raida | LT.democraziakmzero.org

Kadena, pirmasis nekilnojamasis privatus blokinis raida, raida

Kadena, pirmasis nekilnojamasis privatus blokinis raida, raida

George'as Samman yra blockchain ir cryptocurrency konsultantas ir patarėjas, kuris neseniai bendrai parašė sėklos ataskaitą blockchain architektūros su KPMG.

Čia Samman paaiškina, kaip pasiekti Plaustas sutarimas algoritmas pagaliau buvo nustatyta jo tolimas giminaitis, KADENA. 

Šis straipsnis apima KADENA anketa blockchain. Jis naudoja ScalableBFT pasiūlyti aukštos kokybės (8,000-12,000 sandoriai per sekundę) su pilna replikacijos ir pasiskirstymo anksčiau neįmanoma Svarstyklės (už daugiau nei 500 dalyvaujančių mazgų talpos).

Tai, kartu su daugiasluoksnės saugumo modelio ir pavienių nurodykite domenų leisti tikrai tvirtos blockchain. Remiantis Plaustas ir "Juno", Kadena įdeda visą protingas sutarties kalba (paktas) į savo blockchain, kad gali būti paleisti arba kaip visuomenės (paprasto teksto) ar privačių (dukart reketas šifruotų) sandorių.

Tai didžiulis žingsnis į priekį blockchain erdvėje, galbūt atstovauja naujos kartos iš blockchain technologijos visiškai jo įvedimo į "visur determinizmo" idėja.

Panašus į Bitcoin, KADENA anketa blockchain yra glaudžiai integruotas ir suprasti, kas ji yra pajėgi, ir ką šie gebėjimai reiškia, reikalauja, apimantis nemažai žemės. Kaip, pavyzdžiui, aš sulaužiau straipsnį į tris dalis: 1) Įvadas & Plaustas, 2) KADENA pirmtakų - Tangaroa & Juno ", 3) KADENA anketa Blockchain - ScalableBFT, paktas ir Autonominis determinizmas.

1 dalis: Įvadas ir plausto konsensusas algoritmas

Už KADENA istorija yra įdomi atvejo tyrimas naujame srityje blockchain konsensuso algoritmų ir paskirstyto skaičiavimo.

Kadena yra "tolimas giminaitis" iš plausto sutarimo algoritmas. Plausto sutarimas mechanizmas buvo po Tangaroa (Bizantijos Gedimas Tolerantiško jūra (BFT) Plaustas) ir "JP Morgan" projektas "Juno (iš Tangaroa šakutė), iš kurių nė vienas yra ilgesnis aktyviai plėtrai.

JP Morgan nauja blockchain Quorumis labai skiriasi nuo "Juno" ir naudoja idėjų sintezė iš sidechains ir ethereum - visuomenės protingų sutartys yra leidžiamos ant to privačių sutarčių, kurios yra atstovaujama, kaip saugiame masyvuose ir pakartotas per šalutinio kanalų blockchain.

Kadena yra "naujos kartos" Juno ". Jis naudoja naują, bet susiję, protokolas vadinamas ScalableBFT kad buvo pagimdė iš atviro kodo Juno projektą ir buvo pastatytas dviejų pagrindinių kūrėjų, kurie pastatytų Juno. Prieš nardymo giliai į KADENA, reikia aptarti trumpa istorija ir aprašymas Plaustas ir pirmtakų KADENA.

Plaustas sutarimas

Plausto sutarimas algoritmas yra vienas vadovas pagrįsta sistema administruoti pakartotas žurnalą. Jis naudoja pakartoti Būsenų architektūrą ir gaunamas rezultatas, atitinkantis Paxos, bet yra struktūriškai skiriasi.

Laikydami pakartotas Prisijungti nuosekliai yra konsensuso algoritmo darbas. Šiame modelyje lyderis daro didžiąją darbo dalį, nes ji yra išduoti visi žurnalo atnaujinimus, tvirtinant sandorius, ir paprastai valdyti klasterius. Plaustas sutarimas garantuoja griežtą Užsakymas ir replikacijos pranešimus. Tai nerūpi, ką pranešimai yra.

Naujas vadovas yra išrinktas naudojant atsitiktinės atrankos laikus, kurie yra susiję, jei pasekėjų negauna pranešimo iš lyderis prieš skirtojo gaisrų. Tai vadinama "širdies plakimas".

Jei pasekėjų negauna pranešimo per šį laikotarpį, jis tampa kandidatas ir inicijuoja rinkimus. Kandidatas, kuris gauna balsus iš viso klasterio (tinklo mazgams) dauguma tampa naujas lyderis. Lyderiai paprastai veikia, kol jie nesugeba. Į širdies plakimas yra siunčiami iš įsitikinti lyderis vis dar egzistuoja; jei yra gautas nieko nauja rinkimai vyksta.

Šie etapai yra kaip Plaustas ateina sutarimu:

  1. A Plaustas mazgo serverių klasteris pradedamas su kiekvienu mazgo pradėti kaip "pasekėjas". Galų gale, vienas mazgas laikui, tampa kandidatas, įgyti balsų dauguma ir tapti lyderiu.
  2. Kiekvienas mazgas saugo žurnalą, kuriame komandas. Jis yra lyderis darbas priimti naujas komandas, griežtai užsisakyti į savo žurnalą komandas, atkartoti savo žurnalą savo pasekėjų ir galiausiai informuoti pasekėjų kai įsipareigoti rąstus, kad jie pakartoti. Taigi sutarimas algoritmas užtikrina, kad kiekvienas serveris žurnaluose yra tokia tvarka.
  3. Rąstai "įsipareigojusi", kai jie buvo pakartotas su mazgų dauguma. Lyderis renka replikacijos skaičių ir, gavusi dauguma to nemato, įsipareigoja savo naujų žurnalo įrašus ir informuoja savo pasekėjų daryti tą patį.
  4. Po "įsipareigoti" Kiekvienoje žurnalo įrašą komanda įvertino valstybė mašinos. Kadangi Plaustas yra abejingi komandą kūno, bet valstybės aparatas gali apdoroti atsidavusius įrašus. Be to, sutariama tikina, kad komanda vykdymas visada vyksta ta pačia tvarka kaip komandos ateiti iš žurnalo, kuris yra griežtai Užsakyta.
  5. Valstybės mašinos išliks nuosekli tol, kol komanda bausmė yra deterministinis.
  6. Kai klientas siunčia komandą į vieną iš serverių, kad serveris bus arba perduoti komandą lyderis arba lyderis. Lyderis renka naują komandą, priskiria jį žurnalo puslapis, apimantis jį į žurnalo įrašas, ir prideda komandą nepaskirstytos dalį savo žurnale.
  7. Kai vadovas turi nepaskirstytas įrašus, jis atkartoja šį žurnalą į savo pasekėjų dalį. Kai vadovas yra informuojamas apie sėkmingą replikacijos pagal klasterius balsų dauguma, ji įsipareigoja naujus įrašus ir užsakymų savo pasekėjų daryti tą patį.
  8. Kai naujas žurnalo įrašas yra pasiekiamas įsipareigojusi sutarimas apie šį įrašą. Jis tada įvertino valstybės mašina kiekviename serveryje.
  9. Nuo šio taško, Plaustas yra baigtas ir vykdytojai gali nuspręsti, kaip elgtis atsakymus; atsakant į kliento arba laukia klientas užklausą rezultato.

Atsakymai į kliento paprastai asinchroninis.

Plausto sutarimas protokolas yra tik, kad - sutarimas algoritmas. Jis neturi sąvoką ir yra, pagal nutylėjimą, visiškai atviras bet klientų išdavimo komandas. Vienintelis dalyvavimas apribojimas ji daro yra tai, ką mazgai egzistuoja tam tikrą laiką.

Be to, vadovas turi absoliučią valdžią klasterius ir užsakymų pasekėjų atkartoti ir įsipareigoti. Ji neprisiima Bizantijos atakas, jis turi tik rankena avarijos gedimus, nes mazgai prielaida altruistinis.

2 dalis: KADENA pirmtakų - Tangaroa ir "Juno"

Tangaroa: Pirmasis žingsnis link BFT Plaustas

Tangaroa yra Bizantijos Gedimas Tolerantiško jūra (BFT) variantas plausto sutarimo algoritmas įkvėptas originalo plaustas algoritmas ir praktinio Bizantijos Fault Tolerance (PBFT) algoritmas.

Bizantijos gedimui atsparūs nurodo A klasės gedimų sukelia piktybinių mazgų puola tinklą. Jei kai kurie iš mazgų eiti būtina tinklui toliau veikia be sustojimo.

Be standartinio Plaustas, jums reikia atkartoti žurnalo įrašą į mazgų dauguma klasterius prieš įsipareigojant ją. Dėl BFT konsensuso algoritmams, įskaitant Tangaroa, reikalinga grupių dydis yra bent 2f + 1, kur f yra gedimų skaičius norite toleruoti (įskaitant tiek sudužo mazgai ir pažeistas mazgai). Konsensusas yra pasiekiamas balsavimui klasterius dauguma; jeigu F <= 3 tada grupių dydis = 7 ir ne-byzantine mazgų = 4. Kai BFT protokolai gali net reikalauti 3f + 1 ".

Bizantijos Leader gali nuspręsti savavališkai padidinti įsipareigoti indeksą kitų mazgų prieš žurnalo įrašai buvo pakankamai pakartotas, todėl sukelia saugumo pažeidimus, kai mazgai nesugeba vėliau. Tangaroa pastumia įsipareigoti atsakomybę nuo lyderio, o kiekvienas mazgas gali patikrinti pats už save, kad žurnalo įrašas buvo saugiai pakartotas prie mazgų kvorumo ir tai kvorumo sutinka ant užsakymo.

Tangaroa leidžia klientams, kad nutraukti dabartinę vadovybę, jeigu ji neatitinka padaryti pažangą, taip pat, kad kiti BFT Consensus algoritmai leidžia klientui elgtis kaip patikima Oracle liudyti tam tikrus mazgus. Tai leidžia Tangaroa išvengti Bizantijos lyderius iš badauja sistemą, bet yra labai pasitiki klientui.

Vadovas rinkimai ir etapai

Tangaroa naudoja plaustas kaip konsensuso pamatų; taigi yra vieno vadovas. Be Tangaroa, kaip Plaustas, kiekvienas mazgas yra vienas iš trijų narių: lyderio, sekėjo, ar kandidato.

Panašus į Plaustas, kiekvienas mazgas prasideda kaip pasekėjų, vienas kurių ilgainiui timeout ir skambinti rinkimus. Iš rinkimų nugalėtojas tarnauja kaip termino poilsio lyderis; terminai baigiasi, kai yra išrinktas naujas lyderis. Kartais, rinkimai lems Balsams pasiskirsčius, o terminas baigsis be lyderio. Šiuo atveju, pasekėjas vėl laikas pasibaigė (skirtasis laikas yra naujo, kai balsuojama ar rinkimai yra vadinamas) ir vėl pradėti balsavimo procesą.

Norėdami pradėti rinkimus, pasekėjas padidina savo dabartinį terminą ir siunčia RequestVote (RV) nuotolinių procedūrų iškvietimo (RPC) lygiagrečiai vieni nuo kitų mazgų klasterius klausia savo balsavimu. Į RPC Tangaroa naudojimas yra panašus į plaustą anketa RPC išskyrus tai, kad kiekvienas RPC pasirašytus ir patvirtintus per PPK parašų.

RPC leisti keitimosi duomenimis tarp skirtingų kompiuterių, gyvenantis ant tinklo ir parašai leidžia gauti mazgus patikrinti, kuris mazgas išsiuntė RPC be leidžianti bet mazgas perduoti bet kurio kito mazgas RPC bet kuriuo metu.

Kai Tangaroa mazgas gauna RV RPC su galiojančiu pasirašymo, ji suteikia balsuoti iš karto, tik jeigu jis šiuo metu neturi lyderis (atsiranda tik paleidus). Priešingu atveju, jis pradeda procesą, Tangaroa vadina "LazyVote".

Iš LazyVote tikslas yra apsaugoti ne Bizantijos pasekėjų iš išrinkti naują lyderį, kai vadovas nėra sugedęs; be tingus balsavimo, Bizantijos mazgas gali sukelti pakartotinius rinkimus bet kuriuo metu ir badauti sistemą. Kai naujas RV gavo pasekėjas, jis išsaugo RV ir laukia visų šių sąlygų, kurias turi atitikti:

A) pasekėjas rinkimų pauzės sukelia gaisrus, kol ji tvarko širdies plakimas nuo dabartinio lyderio. Jei gavo širdies plakimas, The LazyVote yra išvalytas.

B) RV naujas terminas ilgesnis nei dabartinės kadencijos.

C) prašymas siuntėjas yra tinkama kandidatė (galioja PPK parašas ir klientas nėra uždrausta mazgas).

D) mazgas gauna RV nebuvo balsavo už kitą lyderis siūlomo termino.

E) kandidatas dalijasi žurnalo priešdėlį su mazge, kuriame visas atsidavusius įrašus. Mazgas visada atmeta prašymą, jei jis vis dar gauna širdies plakimas pranešimus nuo dabartinio lyderio, ir ji ignoruoja RequestVote RPC jei siūlomas terminas jau prasidėjo.

Jeigu RequestVote galioja ir naujai kadencijai, o kandidatas turi pakankamai up-to-data žurnalą, bet gavėjas vis dar gauna širdies plakimą nuo dabartinio lyderio, jis įrašys savo balsą vietoje, ir tada siųsti balsavimas atsakui, jei pati mazgas patiria rinkimų laiką, ar girdi iš kliento, kad dabartinis vadovas neatsako.

Pagal tingus balsavimo, mazgas nesuteikia balsavimo į kandidatu, jei jis mano, kad dabartinė lyderė yra klaidingas. Tai apsaugo mazgus, kurie prasideda nereikalingų rinkimus iš vis reikiamų balsų tapti lyderiu ir badauti sistemą.

Mazgai laukti, kol jie tiki rinkimai turi įvykti iki kada mesdami balsą. Kai balsas siunčiamas, mazgas bus atnaujinti terminą skaičių. Jis neturi manyti, kad mazgas jis balsavo už laimėjo rinkimus, tačiau ir ji vis dar atmeta AppendEntries (AE) RPC iš kandidato, jei nė vienas iš jų yra tiek pat balsų, įrodančių kandidatas laimėjo rinkimus rinkinį. AA s tarnauti dvigubą tikslą širdies plakimą ir vežėjų naujas žurnalo įrašus, kad reikia daugintis. Kandidatas tęsiasi šalies kandidatės, kol vienas iš trijų dalykų atsitinka:

A) ji laimi rinkimus gaunant balsas daugumos iš klasterius. Kandidatas turi išsaugoti šiuos balsus - RequestVoteResponse (RVR) RPC - ateities platinimo.

B) kitas mazgas įsitvirtina kaip lyderis

C) laikotarpis eina be laimėtojo (ty: jis patiria dar vieną rinkimų timeout)

Kandidatas, kad laimėjo rinkimus, tada skatina pati lyderis valstybės ir siunčia į AA širdies plakimas pranešimus, kuriame yra balsų, kad išrinktų jį ir atnaujintą laikotarpio skaičių nustatyti savo valdžią ir užkirsti kelią naujų rinkimų. Pasirašomi balsų efektyviai apsaugo Bizantijos mazgas iš savavališkai skatinti save kaip aukštesnio kadencijos lyderis. Be to, kiekvienas pasekėjas atlieka perskaičiuoti į minėtą balsų dauguma, tvirtinimą ir skaičiuoti kiekvieną balsuoti naują lyderį perduota nepriklausomai patikrinti rinkimų galiojimą.

Valdymas

Kaip Plaustas, Tangaroa naudoja atsitiktinius laikus sukelti lyderis rinkimus. Kiekvienos kadencijos vadovas periodiškai siunčia širdies plakimas pranešimus (tuščia AE RPC) išlaikyti savo valdžią. Jeigu pasekėjų negauna pranešimo iš lyderis per atsitiktinai pasirinktą laiką, rinkimai pauzės, tada ji tampa kandidatas ir pradeda naują rinkimus.

Be to, spontaniškas Sekėjas-sukėlė rinkimus, Tangaroa taip pat leidžia kliento intervencija: kai klientas pastebi, jokios pažangos su už tam tikrą laikotarpį, vadinamą pažanga pauzės lyderis, jis transliuoja UpdateLeader RPC visiems mazgų, pasakoja jiems ignoruoti ateities širdies plakimą iš ką klientas mano, kad dabartinis lyderis dabartinės kadencijos. Šie pasekėjai ignoruoja širdies plakimas pranešimus dabartinės kadencijos ir laiko, kaip nors dabartinis vadovas nesugebėjo, pradedant naują rinkimus.

Duomenys, gauti

Duomenys (naujas komandas) iš klientų plausto grupės, kurios siunčia užklausas į lyderio. Lyderis atkartoja šiuos prašymus į klasterius, ir reaguoja į kliento, kai kvorumo pasiektas klasterius dėl šio prašymo.

Kas yra "prašymą" yra sistema priklausoma. Kaip duomenys yra saugomi yra sistemos priklauso. Svarbu, kad valstybė išlieka į diską, kad mazgai gali susigrąžinti ir prisiminti informaciją, kad jie įsipareigojo (kuris mazgai jie balsavo už, ką žurnalo įrašus jie padarė, ir tt). Be to, protokolas neveiks.

Tangaroa prideda BFT plaustas raidą

Junona

JP Morgan projektas "Juno yra šakutės Tangoroa ir buvo koncepcijos įrodymas, kad galėjo masto Tangaroa įtraukti iki 50 mazgų ir didinti operacijų greitis iki 5000 operacijų per sekundę.

JPM komanda už "Juno pamatė potencialą, kad Tangaroa panašus požiūris atstovauja - tai aukštos kokybės asmeninį blockchain. Jie pakartota idėja už metus ir atvira gaunami iš vasario mėn 2016 m projektą jie pridūrė Smart sutarties kalba, fiksuotą kai projektavimo klaidų ir pavyko pasiekti 10x našumo pagerėjimas, kurie leido mazgų skaičius balsuoti pakeisti, o sistemos buvo paleista. Juno leidžiama už pridedant ir šalinant mazgų, ir buvo permissioned paskirstytos sistemos, kurioje visi iš tinklo mazgų buvo žinomas.

Mechanizmo ir lyderio rinkimų proceso etapai yra tokie patys kaip Tangaroa (žiūrėti aukščiau). Be to, sandoris laikomas gyvas, kai jis yra visiškai pakartotas ir įsipareigojo žurnalo.

Lyderis nusprendžia į komandas ir kas mazgo įteisina tvarką. Kiekvienas mazgas atskirai nusprendžia, kada įsipareigoti žurnalo įrašą remiantis įrodymais ji gauna iš kitų mazgų. Kiekvienas žurnalo įrašas yra individualiai įsipareigojęs ir palaipsniui sumaišytas su ankstesnio įrašo. Tai trunka maždaug 5ms vieno žurnalo įrašą pereiti nuo lyderio gauti įrašą į visišką sutarimą yra pasiekiamas ir tinklo latency.

3 dalis: KADENA anketa Blockchain - ScalableBFT, paktas, o Autonominis determinizmas

Kriptografija

Įvairūs plaustas, kiekvienas replika į BFT plaustas sistema (algoritmų, kurie apima Tangaroa, Juno, ir Kadean anketa ScalableBFT šeimos) apskaičiuoja kriptografinis maišos kiekvieną kartą jis prideda naują įrašą į savo žurnalą. Maišos yra skaičiuojamas per praėjusius maišos ir naujai pridėtą žurnalo įrašą.

Mazgas gali pasirašyti savo paskutinį maišos įrodyti, kad ji pakartotas į žurnalą visumą, ir kiti serveriai gali patikrinti tai greitai, naudojant parašu ir maišos. BFT Plaustas mazgai ir klientai visada pasirašyti prieš siunčiant laiškus ir atmesti pranešimus, kad neapima galiojantį parašą.

BFT Plaustai naudoti Pavienis maišą leidžianti mazgus būti tikri, kad abu turinys ir užsakymo kitų mazgas žurnaluose atitiktų jų pačių. Naudojant šias žinias, mazgai gali savarankiškai įsipareigoti žurnalo įrašus saugiai, nes abi turinys ir užsakymo kitų mazgas žurnaluose liudija per atitikimo papildomas maišų.

BFT Plaustai naudoja skaitmeninius parašus plačiai autentifikuoti laiškus ir patikrinti jų vientisumą. Tai apsaugo nuo Bizantijos lyderis iš dalies keičiantis pranešimo turinį ar kalimo laiškus ir apsaugo branduolį, paprastai iš didelio skaičiaus Bizantijos atakų.

Sutarimas

Be Plaustas, Lyderiu išrinktas per randomizuotų praėjęs laikas, kurios sukelia pasekėjas pasiūlyti save kaip kandidatas ir Užklausus balsų. ScalableBFT taip pat tai daro, bet į kriptografiškai saugiu būdu. Pavyzdžiui, jei Lyderiu tampa nepasiekiamas, timeout sukels naują rinkimus, tačiau rinkimų procesas yra tvirta kovoti su Bizantijos mazgų deklaravo rinkimus. ScalableBFT išsprendžia problemas, Juno "ir Tangaroa, su kuriomis susiduriama dėl tingus balsavimo.

LEADER anketa tik unikalias galimybes: 1) užsakymas naujų sandorių Prieš replikacijos ir 2) atkartojantis naujų sandorių pasekėjų mazgai. Nuo to momento, visi mazgai nepriklausomai įrodyti sutarimo galiojimą ir individualus sandoris vientisumą.

Anonimiškai dalyvavimo pašalinimas yra dizainas reikalavimas privačių blockchains, o tai leido už aukštos kokybės BFT Consensus mechanizmą pakeisti kasyba. ScalableBFT pagrindinis papildymas BFT plaustai šeimos yra galimybė mastelį į 1000-ųjų mazgų nemažinant sistemos pralaidumą.

Kiekvienas sandoris yra pakartotas kiekvienam mazgas. Kai mazgų dauguma pakartotas sandorį, toks sandoris yra įsipareigojusi. Mazgai surinkti ir išplatinti informaciją (pavienių maišos) apie tai, ką jie pakartotas ir naudoti šią informaciją, nepriklausomai nuspręsti, kada įsipareigoti (> 50% kitų mazgų siųsti jiems papildomas maišų dėl nepaskirstytų sandorių, kad jie sutinka su).

Tai iš esmės veikia atlikdami balsavimą dėl ko įsipareigoti dauguma. Padarius operaciją, nereiškia, kad jis bus įvykdytas, tik, kad ji buvo nuolat pakartotas pagal klasterius balsų dauguma. Bad sandoriai, tie, kurie klaida arba turite blogų parašus, yra pakartotas taip pat sutariama "darbas yra teikti geriausią užsisakyti replikaciją.

Padarius operaciją leidžia kiekvienas mazgas tada nepriklausomai įvertinti (parse / iššifruoti / patvirtinti koduotės / vykdyti / etc.) Kiekvieną sandorį tapataus būdu. Kiekvienas sandoris bus suporuotas su galia, tai gali svyruoti nuo "blogos kriptografiją" į išmaniųjų sutarties sluoksnio produkcijos (kurie taip pat gali būti klaida).

Galiausiai, be lyderiu atkartojantis naujų sandorių prie kiekvieno mazgo mazgai yra daugiau ar mažiau nepriklausomi. Vietoj "sinchronizavimo" jie transliavo "Aš pakartotas iki prisijungti indekso n ir ji turi pavienių maišos H" į klasterį ir rinkti šią informaciją iš kitų mazgų - remiantis rezultatų iš kitų mazgų kiekvienas mazgas gali savarankiškai nusprendė, jei klasteris buvo pakartotas pro barą reikia įsipareigoti (daugumos replikacijos už kai kol kas nepaskirstytos žurnalo indeksą N).

Štai subtilus dalis: pavienį maišos reiškia replikacijos visa tai buvo prieš jį. Jei vadovas atkartoja 8000 naujų sandorių (tai, ką šiuo metu daro), kiekvienas mazgas reikia tik platinti ir rinkti įrodymus dėl paskutinio sandorio tos partijos, nes ji reiškia teisingą replikacijos tie, kurie buvo prieš jį. Vietoj siunčiant 8000 pranešimus (po vieną kiekvienam sandoriui), kad patvirtinančius tinkamą replikacijos mazgų tik aptarti naujausią sandorį.

Tai kodėl Kadena reikia tiek daug "pipelining", nes komanda išsiaiškino, kaip įvykdyti 8000 sandorius tuo pačiu greičiu, kaip padarius vieną sandorį.

ScalableBFT atstovauja proveržį srityje BFT sutarimo, nes ji yra pirmoji ir vienintelė deterministinis BFT sutarimas mechanizmas, kuris gali masto praeities šimtus mazgų su visu replikacijos ir šifravimas. ScalableBFT taip pat suteikia unikalią saugumo modelį, žinomą kaip visur determinizmo, kuris suteikia saugumo ne tik sandorio lygiu, bet ne sutarimo lygį, taip pat, o šifravimo kiekvieną sandorį, naudojant triukšmo protokolo (žiūrėti žemiau).

Kadena naudoja deterministinis sutarimo

Sutarimas mechanizmas yra deterministinis, jei sutariama procesas yra pilnai nurodyta protokole, ir šis procesas nėra įdarbinti atsitiktinumą. Kaip jau buvo minėta, Plaustas, pavyzdžiui, naudoja atsitiktinius laikus sukelti rinkimus, kai vadovas krinta (nes vadovas negali bendrauti "Aš apie į avariją", ten timeout, kad kelionės į greitai mazgas patikrinti, ar lyderis yra žemyn), bet rinkimai nepriklauso sutarimu sandorio lygio, tai vietoj priemonė rasti mazgas muzikinės sutarimą.

ScalableBFT yra deterministinis ir grūdinto toks, kad:

  1. Mazgai įsipareigos tik tada, kai iš grupės dalis su jomis sutinka
  2. Iš susitarimo įrodymai turi būti visiškai patikrinama bet kuriuo metu
  3. Kai trūksta įrodymų susitarimą, nieko.

Kadena yra specialiai sukurta permissioned tinkluose, ir kaip toks jis daro prielaidą, kad tam tikri priepuoliai (kaip DOS) vargu ir iš jo kontrolės. Jei viena įvyktų, sistema būtų arba spyna (visi mazgai timeout galiausiai su bet rinkimai niekada pavyks) arba sėdėti nenaudojamas.

Kai toks įvykis baigėsi, mazgai grįš į konsensusą ir viskas bus grįžti prie normalaus. Tačiau į permissioned tinklo administratoriai turėtų visiškai kontroliuoti ir nužudyti ryšį sukelti šią problemą.

Vadovas rinkimai

Vadovas rinkimai yra labai panašus į plaustas, kad bet koks mazgas gali būti išrinktas lyderis, kiekvienas mazgas gauna vieną balsą už semestrą, o rinkimai yra vadinamas, kai atsitiktiniu pauzės vienas iš mazgų gaisrų (laikmatis yra naujo kiekvieną kartą, kai mazgas girdi nuo lyderio ).

Didžiausias skirtumas yra tai, kad Plaustas mazgas, kuris pasireiškia pakankamai balsų prisiima lyderio, o ScalableBFT mazgas, kad gauna balsų daugumą platina tuos balsus į kiekvieną kito mazgo parodyti (tam BFT būdu), kad jis buvo išrinktas pagal lyderis klasterius.

ScalableBFT mechanizmas nustato klausimus vertinami Juno ir Tangaroa, pavyzdžiui, "išbėgęs kandidato", kur ne Bizantijos mazgas laikas baigėsi dėl tinklo pertvara, bet todėl, kad jos terminas buvo padidintas, ji negali grįžti į bendru sutarimu, o vietoj to toliau pertrauka tada padidina jo terminą ( "išbėgęs").

Plaustas sutarimas garantuoja griežtą Užsakymas ir replikacijos pranešimus; nesvarbu, kas yra kiekvieno pranešimo ir gali svyruoti nuo atsitiktinių skaičių iki ciphertext paprasto teksto išmaniųjų sutartis. Kadena naudoja žurnalo sluoksnį, kaip prane ¹ imù paslauga, kai veikia užšifruoti kontekste; panašiai kaip signalas gali paleisti Triukšmo protokolo šifravimas per SMS. ScalableBFT veikia Triukšmas per tam blockchain.

ScalableBFT prideda sutarimo tvirtumą, kurio sluoksnis, kuris susijęs su žodžiu pranešimus prisiima kaip garantija, bet ir pavienių maišų, užtikrinančias geriausią replikaciją pranešimų. Triukšmo protokolas lizdai tarp konsensuso ir išmaniųjų sutarties vykdymo, kodavimo / pranešimus, kiek reikia; nes pranešimai ciphertext tik keletas įprastų triukų, skirtų išvengti Dekarto Išsiplėtus gyvų bandymų reikalingi paleisti už pranešimą be nesandarus informaciją.

Saugumo modelis / plintantis determinizmas

Kadena naudoja terminą "plintantis determinizmas" apibūdinti "A blockchain, kuri naudoja PPK-SIG remiantis kriptografiją už autorines garantijos (kaip Bitcoin) ir susideda iš visiškai determinuota sutarimo sluoksnio Be Tiuringo-neišsamios, vieno užduoties idėja protingas sutartis sluoksnis.

A "pervasively determinuota" blockchain pasekmės yra gana gilus, nes ji leidžia Bitcoin-Didžiosios knygos klasei kontroliuojamumas būti pratęstas giliai į konsensuso sluoksnio susiejant kartu kelis sluoksnius kriptografinės pasitikėjimo.

Paimkite kaip pavyzdį sandorį, kuri įkelia naujas modernus sutarties modulį, vadinamą "paskolos". Pasakykite "paskolas" importuoja kitas modulis vadinamas "išmokos", kad jau yra grandinėje. Vien sėkmingai importas "išmokos" reiškia taip (su kiekviena yra visiškai patikrinama pagal kriptografinių priemonių):

  • Kas pasirašė sandorį, kad pakrauta "mokėjimus"
  • Kas sutarimas mazgai buvo klasterius pakrovimo metu
  • Kas sutarimas mazgai sutiko, kad sandoris buvo galioja
  • Kas mazgai balsavo už dabartinį lyderį pakrovimo metu
  • Kas lyderis buvo
  • Kas ankstesnis vadovas buvo
  • Ir tt

Pervasively deterministinis sistema leidžia naujus sandorius sverto ne tik kriptografinio pasitikėjimą, kad natūraliai atsiranda kaip sandoriai grandinines kartu blockchain, bet taip pat, kaip tie sandoriai atbrailos į pirmąją vietą pasitikėjimą. Tai darydama, galite sukurti sistemą saugesnę nei Bitcoin, nes sutariama procesas tampa kaip kriptografiškai pasitiki, patikrinama ir pasiklydo, taip pat, su sandoris lygio egzekucijų tai reiškia, kad konkretūs sutarimo lygis įvykiai įvyko ir vienas su POVEIKIS yra kriptografiškai patikrinami.

Tai suteikia BFT ne tik konsensuso sluoksnio, bet sandorio sluoksniu (Bitcoin jau tai daro), taip pat. Tai skiriasi nuo, tarkim, PBFT kuri prisiima, kad siunčiami iš kliento serverio sandoriai galioja, kurie juos palieka su gebėjimu būti pažeista. Be to, ne Plaustas BFTs paprastai patiki klientas su galimybe liudyti / draudimu mazgai. Autonominis determinizmas trunka alternatyvų požiūrį: pasitikėjimas nieko, audito viską.

Leidimas ScalableBFT įtraukti plintantį determinizmas sukuria visiškai paranoid sistemą, kuri yra tvirta ne kiekvieną sluoksnį per nuolatinę saugumo (ty: kriptografinės apsaugos forma, kuri gali būti įrašyti į diską). Ji Bitcoin s saugumo modelis sandorių, tęsiasi šį modelį į konsensuso lygį, ir priduria Smart sutartis be kasybos poreikio ar kompromisų, kad dauguma pramonėje jau įprato. Tai tikra blockchain tai greitai ir keičiamo dydžio.

Aš paklausiau Will Martino ( "įkūrėjų KADENA) už tai, kaip ši dirbo kiekvieno sluoksnio specifiką:

Kokia jūsų sutarimo lygis saugumo modelis?

Replikacijai, Kadena naudoja palaipsniui naudojant maišos žurnalą sandorių, kad yra identiškai pakartotas kiekvienas mazgas. Tai susitarti dėl "Via išplatintų pasirašytų pranešimų, kuriuose yra padidintą maišos tam tikro žurnalo indeksas, kitų mazgų tada renkami ir naudojami atskirai samprotauti apie kai įsipareigoti yra pagrįstas žurnalo turinį. Nėra dublikatai leidžiama žurnale ir replikacijos pranešimus nuo lyderio kurioje yra bet kokių pasikartojančių atmesti iš karto.

Mes naudojame blake2 maišų ir terminuotieji skaičių apibrėžti unikalumą, todėl klientai sistemos ne nerimauti siunčiant pasikartojančius atsitiktinai arba apie kenkėjišką mazgas / vyras-in-the-viduryje (MITM) pateikdami paraišką komandų. Mes naudojame nuolatinį saugumą, yra PPK-SIG-pagrįstą požiūrį į autorystės patikra (ar konkrečiam artėjimo tūpti tipui, kurie gali būti įrašyti į diską), kuris yra labai panašus į tai, kaip Bitcoin patikrina sandorių, bet ne sutarimo lygį (be sandorio lygio) ,

Tai ne efemerišką saugumui, kuri naudoja saugius kanalus (TLS) autorystės pripažinimo - tai žymiai prastesnės požiūrio kur klausimas "kas atsiuntė sandorio X?" būtų atsakyta ne per PPK kriptografija, tačiau per sutarimas lygio užklausą, nes bet koks individualus mazgas yra nepajėgi teikti BFT atsakymą.

Kokia jūsų sandoris lygio saugumo modelis?

Iš efemerišką ir nuolatinės saugumo span tiek konsensuso ir sandorio lygio idėjos, kaip ji yra sutariama, kad rankose protingų sutarties vykdymo sluoksnis individualius sandorius. Tuo išmaniųjų sutartis / sandorio lygio mes taip pat naudoti nuolatinį saugumą, taip pat, remiant eilutė lygio viešojo rakto leidimą gimtoji į paktą.

Tai svarbu, nes efemeriška reiškia, kad užpuolikas yra vienas serveris nuo apsimesti subjektas; užtikrintos kanalai darbas taško į tašką paskirstymą naujiems sandoriams kliento / rengėju į klasterio mazgų per TLS ir sutarimas užtikrina, kad atitinkamas sandoris turėtų būti įsipareigojusi ir pakartotas. Tačiau, jei užpuolikas hacks kliento serverio turintis kitą galą TLS ryšį, jie gali sudaryti sandorius, jei jie buvo klientas be klasterio Būdamas išmintingesnė.

Nuolatinė saugumo, kita vertus, turi daug raktus atskirų vaidmenų tam tikro subjekto todėl reikia užpuolikas gauti prieigą prie atskirų raktų; Be to, su nuolatinio saugumo generalinis direktorius sandoriai yra pasirašyta su kitu raktu, nei pašto Tarnautojas sandorius vs efemeriška kur ", kuris siunčia šis sandoris" yra nustatomas pagal "iš: X" srityje.

Jei tas pats TLS jungtis naudojama pateikti tiek CEO ir klerkas sandoriai, tada autorystę ir leidimo logika yra "nes aš taip pasakiau / pasitikėk manimi" modelis vs PPK-sig požiūrio, kur jūs patikrinti prieš atitinkamą raktą prieš egzekuciją , KADENA anketa blockchain sukurta pasitikėti kuo mažiau; jei mes žinojo daugiau paranojikas arba smulkiagrūdžio požiūrio nei eilutė lygio PPK parašų mes norime naudoti, kad vietoj.

Kokia jūsų konfidenciali sandoris modelis?

Mes naudojame Double-Ratchet protokolą (ką signalas, "WhatsApp", ir tt naudoti šifruotų ryšių) įdėta į blockchain (šifruotų sandorio organų) kelių šalies privatumo išsaugant naudojimo atvejus. Mes dirbame su nesusikertantysis duomenų bazių sąvoką per toliau paktas "primityvu pakto - jie apibūdinti daugiafaziniai įsipareigoti darbo eigą per nesusikertantysis duomenų bazių per šifruotų laiškų.

Smart sutartys

Paktas yra visiškai protingas sutartis kalba, vertėjas, kuris yra pastatytas Haskell. Be KADENA, kiekvienas sandoris yra protingas sutartis ir paktas protingas sutartis kalba yra atvira gaunami. Paktas yra duomenų, orientuota, sandorio, Tiuringo-neišsami, vieno priskyrimas (kintamieji negali būti keičiamos per savo gyvenimą), ir tokiu būdu labai linkusios į statinio patikrinimo.

Paktas taip pat aiškinama - kodas rašote, kas atlieka nuo grandinės - o Vientisumo kaupiami, todėl sunku patikrinti kodą, ir taip pat neįmanoma ištaisyti saugumo klausimus senuose kalbomis, kai surinktais. Pakto laivai su savo vertėjo, tačiau gali paleisti bet deterministinis įvesties blockchain, ir palaiko įvairias backends, įskaitant komercinio RDBVS. Į ScalableBFT blockchain, ji veikia su greito SQLite saugojimo sluoksniu.

Charakteristikos KADENA Blockchain

Kadena blockchain yra visas šias funkcijas:

Taigi, Kadena sukūrė visiškai atkartoti, keičiamo dydžio ir deterministinis sutarimo algoritmas privačių blockchains su aukštos kokybės. Tai blockchain sprendimas gali būti milžiniškas žingsnis į priekį finansinių paslaugų įmonėms, norinčioms įdarbinti tikrą asmeninį sprendimą, kuris lieka ištikimas daugelis rakto Bitcoin blockchain funkcijų be kasybos (įrodymas darbą), anonimiškumas ir atsparumas cenzūra, o maitinimo pagrindinių dizaino savybių kad finansinės paslaugos troškimas ypač mastelio ir konfidencialumą.

Anksčiau šis straipsnis buvo paskelbtas Sammantics blogand čia buvo atgaminti leidus. Kai kurie pakeitimai buvo padaryti dėl stiliaus ir glaustumo.

Privati ​​BlockchainsKadena

Susiję straipsniai


Post Blockchain

3 priežastys Hyperledger turi Blockchain geriausią plėtros modelį

Post Blockchain

Apple patvirtina bitWallet iOS programą, užblokuota BTC siuntimo funkcija

Post Blockchain

Eris COO: Privatūs ir viešieji blokchains turi bendradarbiauti

Post Blockchain

Blockchain adresai Saugumo ginčai: mums reikia geriau

Post Blockchain

Tinklas atveria Blockchain platformą, sukurtą ir finansinei pramonei

Post Blockchain

Bitcoin antraštėse: Blockchain Drumbeat auga garsiau

Post Blockchain

Deloitte tyrimai Blockchain technologija kliento auditui

Post Blockchain

Blockchain išverčia Bitcoin mokėjimų programą prekybininkams

Post Blockchain

Blockai paleidžia Netscape už Bitcoin su Blockchain naršykle

Post Blockchain

Niekas neturėtų kontroliuoti Blockchain tiekimo grandinės

Post Blockchain

6 dalykai, kuriuos praleidote iš Bitcoin valstijos

Post Blockchain

7 Besikeičiančios tendencijos Bitcoinui ir Blockchain