Konsensus Blockchain-järjestelmissä. Lyhyesti.

Blockchain-tekniikat ovat kärjessä vuoden 2017 kuumimpien suuntausten luetteloissa. Monet yritykset takaavat tuotteitaan jo blockchain-tekniikoilla. Kilpailijat käyttävät blockchain-tekniikoihin erilaisia ​​lähestymistapoja, korostaen erilaisia ​​näkökohtia ja piirtämällä niitä asiakkaidensa ominaisuuksiin. Tässä postituksessa annan yleiskatsauksen yhden niistä erityisistä blockchain-tekniikoiden näkökohdista - ”konsensus”.

Blockchains ovat erilaisia, ja niihin voidaan lähestyä monia näkökulmia. Tämän artikkelin vuoksi haluaisin määritellä lohkoketjun julkiseksi hajautettuna tietokannana, joka pitää julkisia rekistereitä vain lisäyksellä. Lisäksi, kun tietuetta on lisätty tietokantaan (blockchain), sitä ei voi muokata, ja merkintöjen väärentäminen on erittäin vaikeaa. Tätä viimeistä ominaisuutta kutsutaan pysyvyydeksi. Kun tietokannan merkintä (lohkoketju) on päivitettävä, olemassa olevaan tietoon on lisättävä uusi tietue. Lopuksi, jokainen yleisö voi tarkastella kutakin tietuetta, jolloin kuka tahansa henkilö voi todentaa erikseen kunkin tietokantaan (lohkoketju) tallennetun tapahtuman aitouden. Tämä läpinäkyvyys tarkoittaa, että lohkoketjut ovat tarkastettavissa.

CC-BY-3 Theymos Bitcoin-wiki -vektorisoinnista: Pääketju (musta) koostuu pisimmästä lohkosarjasta ensimmäisestä (geneesi) lohkosta (vihreä) nykyiseen lohkoon. Orvojen lohkoja (violetti) on pääketjun ulkopuolella.

Mutta miksi häiritset lohkoketjuja perinteisten tietokantojen yli? Blockchainsista tulee houkuttelevia heti, kun tietokanta on hajautettava. Organisaatio, joka haluaa välttää liiallisen painottamisen yhdelle potentiaaliselle virhepisteelle ja luoda yleisesti tehokkaamman järjestelmän tiedoilleen, saattaa löytää blockchain-tietokannan houkuttelevamman kuin perinteinen. Hajautettua tietokantaa ei voida hakkeroida, manipuloida tai muuten häiritä tapaa, jolla tietokanta rakentuu yhdelle operaattorille.
Lisäksi perinteinen keskitetty tietokanta vaatii käyttäjän ohjaaman käyttöjärjestelmän. Toisin sanoen se vaatii järjestelmän, jota suoraan käyttävät tunnetut ja luotettavat henkilöt (onko kyse sitten henkilöstä, organisaatiosta, tietokoneesta tai muusta tutusta käyttöyksiköstä). Blokkiketjua puolestaan ​​käyttävät tuntemattomat ja epäluotetut osapuolet (toisin sanoen et voi tietää onko kyse yksittäisestä henkilöstä ja organisaatiosta, automaattisesti toimivasta tietokoneesta tai muusta) - puhumattakaan tuntea heidät tarpeeksi hyvin luottaa päätöksiin ja toimiin epäsuorasti).

Lohkoketjujärjestelmään kuuluva luottamuksen puute on erityisen huomionarvoinen aiheemme 'yksimielisyydessä'. Koska kukin yksikkö, henkilö tai osapuoli voi lähettää tietoja lohkoketjuun (toisin sanoen yrittää lisätä tietoja tietokantaan), lohkoketjun hajautettujen operaattoreiden on arvioitava ja sovittava kaikista lisäyksistä ennen kuin ne ovat pysyvästi sisällytetty lohkoketjuun (tietokantaan). Koska emme voi olla varmoja kirjoittajan luotettavuudesta, on tärkeää, että kaikki uudet tiedot on tarkistettava ja vahvistettava ennen niiden hyväksymistä. Tämä arvostelu johtaa 'yksimielisyyteen', jota tutkin täällä.

On olemassa neljä päämenetelmää yksimielisyyden löytämiseksi lohkoketjussa (ja kaikissa hajautetuissa järjestelmissä): käytännöllinen bysanttilainen vikasietoisuusalgoritmi (PBFT), työn todistusalgoritmi (PoW), vaakavarmuusalgoritmi (PoS) ja delegoitu vaarnanvarmistusalgoritmi (DPoS).

Bysanttilainen vikatoleranssin algoritmi (PBFT) suunniteltiin ratkaisuksi ongelmaan, joka esitetään allegoinnin muodossa (lähde):

Kuvittele, että useita Bysantin armeijan divisioita leiriytyy viholliskaupungin ulkopuolelle, ja kukin jako on omien kenraaliensa käskyllä. Kenraalit voivat kommunikoida keskenään vain lähettilällä. Tarkkailtuaan vihollista, heidän on päätettävä yhteisestä toimintasuunnitelmasta. Jotkut kenraalit voivat kuitenkin olla pettureita, yrittäen estää uskollisia kenraaleja pääsemästä sopimukseen. Kenraalien on päätettävä, milloin hyökätään kaupunkiin, mutta he tarvitsevat armeijan vahvan enemmistön hyökkäykseen samanaikaisesti. Kenraalilla on oltava algoritmi taata, että (a) kaikki uskolliset kenraalit päättävät samasta toimintasuunnitelmasta ja (b) pieni määrä pettureita ei voi aiheuttaa uskollisia kenraaleja hyväksymään huonoa suunnitelmaa. Uskolliset kenraalit tekevät kaikki algoritmin mukaan, mutta petturit voivat tehdä mitä haluavat. Algoritmin on taattava ehto (a) riippumatta siitä, mitä petturit tekevät. Uskollisten kenraalien ei tulisi päästä yksimielisyyteen, vaan myös sopia kohtuullisesta suunnitelmasta.

Tarkoituksena olevan allegoinnin selventämiseksi: tarinan 'kenraalit' ovat osapuolia, jotka osallistuvat hajautettuun verkkoon, joka käyttää kyseistä blockchain-tietokantaa (tietokantaa). Lähettäjät, jotka he lähettävät edestakaisin, ovat viestintävälineitä sen verkon kautta, jolla lohkoketju toimii. ”Lojaalien kenraalien” yhteinen tavoite on päättää, hyväksytäänkö lohkoketjuun (tietokantaan) toimitetut tiedot pätevinä vai ei. Kelvollinen tieto olisi allelegioissamme oikea mahdollisuus päättää hyökkäyksen puolesta. Lojaalit kenraalit puolestaan ​​ovat uskollisia blockchain-osallistujia, jotka ovat kiinnostuneita varmistamaan blockchain (tietokanta) eheys ja varmistamaan siten, että vain oikeat tiedot hyväksytään. Petolliset kenraalit puolestaan ​​olisivat kaikki osapuolet, jotka yrittävät väärentää tietoja lohkoketjussa (tietokanta). Niiden potentiaaliset motiivit ovat lukemattomat - kyse voi olla BitCoin-rahaa käyttävästä henkilöstä, jota hän ei itse omista, tai toiselle henkilölle, joka haluaa päästä eroon sopimussitoumuksista, kuten hän on jo allekirjoittanut ja lähettänyt älykkäässä sopimuksessa.

Eri tietotekniikan tutkijat ovat allegoinnista esittäneet useita mahdollisia ratkaisuja Bysantin kenraalien ongelmaan. Käytännöllinen bysantiini-viankestävyysalgoritmi (PBFT), jota käytetään konsensuksen aikaansaamiseksi blockchain-järjestelmissä, on vain yksi näistä mahdollisista ratkaisuista. Kolme esimerkkiä lohkoketjuista, jotka tukeutuvat PBFT: hen konsioihin, ovat Hyperledger, Stellar ja Ripple. Hyvin karkeasti ja selittämättä koko algoritmia (joka vaatisi usean sivun tutkimuspaperia) PBFT tekee seuraavan: Jokainen 'yleinen' ylläpitää sisäistä tilaa (meneillään olevat tietotiedot tai tila). Kun 'kenraali' vastaanottaa viestin, hän käyttää viestiä sisäisen tilansa yhteydessä laskennan tai operaation suorittamiseen. Tämä laskenta puolestaan ​​kertoo yksilölle 'yleisesti' mitä ajatella kyseessä olevaa viestiä. Saatuaan henkilökohtaisen päätöksen uudesta viestistä, kyseinen "kenraali" jakaa päätöksen kaikkien muiden järjestelmän "kenraalien" kanssa. Konsensuspäätös määritetään kaikkien kenraalien esittämien kokonaispäätösten perusteella.

Tämä tavoite konsensuksen saavuttamiseksi vaatii muiden näkökohtien lisäksi vähemmän vaivaa kuin muut menetelmät. Se maksaa kuitenkin järjestelmän nimettömyyden kustannuksella.

Tunnetuin tapa päästä yksimielisyyteen blockchain-järjestelmässä on todistus työstä (PoW), jota Bitcoin käyttää. Toisin kuin PBFT: n ratkaisussa, PoW ei vaadi kaikkia verkon osapuolia (kaikkia solmuja) toimittamaan yksilölliset päätelmänsä yksimielisyyden saavuttamiseksi. Pikemminkin PoW on järjestelmä, joka käyttää ”hajautusfunktiota” luodakseen olosuhteet, joissa yksittäinen osallistuja saa ilmoittaa päätelmänsä toimitetuista tiedoista, ja kaikki muut järjestelmän osallistujat voivat sitten todentaa ne. Virheelliset johtopäätökset estetään hash-toiminnon parametreillä, jotka varmistavat, että väärät tiedot eivät laske laskelmissa hyväksyttävällä tavalla. (Lisätietoja, seuraa minua tai tilaa alla.) Erityisesti Bitcoin-järjestelmässä osallistuja, joka verkon puolesta on todennut tiedot julkisesti, palkitaan puolestaan ​​osallistumisestaan ​​(joka on kallis todellisissa energiakustannuksissa) ja laskentaresurssit) vasta luotuilla (louhituilla) bitcoineilla. Siksi tätä kelvollisten hashien (ratkaisut viestin syötteen luomaan hash-toimintoon) etsimisprosessia kutsutaan nimellä "kaivostoiminta". Verkkoon osallistumisen edistäminen takaa laajan osallistumisen, mikä puolestaan ​​takaa vahvemman verkon ja turvallisemman blockchain (tietokanta).

Tämä Bitcoin-tyylinen PoW-järjestelmä mahdollistaa helpon ja laajan osallistumisen, mikä puolestaan ​​varmistaa suuremman verkon vakauden vähimmäisvaatimuksilla jokaiselle osallistujalle, jolloin osallistujat voivat pysyä esimerkiksi nimettöminä.

Kolmas muunnos konsensuksen aikaansaamiseksi blockchain-järjestelmistä on erittäin samanlainen kuin edellä mainittu PoW-järjestelmä, mutta osallistuminen konsensuksen rakentamisprosessiin on rajoitettu osapuolille, joiden on tunnistettu olevan oikeutettu osuus blokkiketjussa (esim. Henkilöt, jotka omistavat bitcoineja, tai yhteisöt, joilla on älykäs samaan lohkotietokantaan tallennetut sopimukset). Tämä kolmas variaatio, nimeltään varmistuskertoimen (PoS) algoritmeilla, korvaa hash-funktiolaskelman yksinkertaisella digitaalisella allekirjoituksella, joka todistaa panoksen omistajuuden. Verkko valitsee henkilön hyväksymään uusia viestejä (toisin sanoen vahvistamaan tietokantaan toimitetun uuden tiedon paikkansapitävyyden) heidän verrannollisen osuutensa perusteella verkossa. Toisin sanoen, sen sijaan, että yksittäiset yrittäisivät laskea arvoa valittavaksi konsensuspisteen saavuttamiseksi, verkko itse suorittaa arpajaisen päättääkseen kuka ilmoittaa tulokset, ja järjestelmän osallistujat osallistuvat yksinomaan ja automaattisesti kyseiseen arpajaiseen suora osuus heidän kokonaismäärästä verkossa. Kuten Bitcoinin ylläpitämässä PoW-järjestelmässä, myös Peercoinin kaltaisten organisaatioiden ylläpitämässä PoS-järjestelmässä kannustetaan osallistumista, mikä varmistaa laajimman mahdollisen verkon osallistumisen ja siten kaikkein tehokkaimman mahdollisen verkkoturvan. Peercoin-järjestelmässä valittu osapuoli palkitaan uudella Peercoin-prosessilla nimeltä "minting" (eikä BitCoin's "mining").

Tämä järjestelmä luo kuitenkin yhä keskitetyn järjestelmän palkitsemalla niitä, jotka ovat jo syvimmin mukana verkossa. Tämä on haitallista todella vahvalle verkolle. Siksi PoS-järjestelmien kannattajat ovat esittäneet useita erilaisia ​​muutoksia varmistaakseen, että heidän verkkojensa perusta pysyy mahdollisimman laajana (ja siten turvallisena).

Lopullinen menetelmä konsensuksen aikaansaamiseksi on ehkä keskitettynä, mutta se on vastapaino PoS-järjestelmien aiheuttamalle suurelle sidosryhmien voimalle ja mahdollistaa järjestelmän toiminnan paljon nopeammin. Tämä menetelmä, jota kutsutaan delegoituksi osto-todisteeksi (DPoS), toimii samalla linjalla kuin PoS-järjestelmä, paitsi että yksilöt valitsevat kattava yksikön edustamaan osuuttaan järjestelmässä. Joten kuvittele, kukin henkilö päättää, edustaako yksikkö 1, 2 tai 3 (nämä voivat olla esimerkiksi tietokonepalvelimia ja joita kutsutaan DPoS-järjestelmän 'edustajasolmuiksi') hänen henkilökohtaisen panoksensa järjestelmässä. Tämä antaa henkilöille, joilla on pienemmät panokset, ryhmittyä suurentaakseen edustustaan, luomalla siten mekanismin, joka auttaa tasapainottamaan suurten sidosryhmien valtaa. Tämä tulee kustannuksin, mutta verkon keskittämisen lisääntyminen. Bitshares on yksi yritys, joka käyttää DPoS-järjestelmää.

Vaikka nämä neljä konsensuksen saavuttamista varten tarkoitettua järjestelmää ovat tällä hetkellä hallitsevimpia, kenttä on edelleen avoin innovaatioille. Kun blockchain-järjestelmät ovat edelleen suosittuja, niiden laajuus ja monimutkaisuus kasvavat edelleen. Mikä näistä neljästä yksimielisyyden rakentamisjärjestelmästä (jos sellainen on) on parhaiten varusteltu jatkuvaan laajentumiseen, on vielä nähtävissä. Tällä hetkellä yritykset valitsevat tuotteelleen järjestelmän, joka parhaiten vastaa heidän (tai asiakkaidensa) tarpeita nopeuden, tehokkuuden ja turvallisuuden kannalta.

On tärkeätä huomata, että nämä järjestelmät eroavat paitsi niiden yksimielisyyttä rakentavien yhteisöjen muodostumisen yksityiskohdista, mutta tärkeätä on myös se, miten ne käsittelevät mahdollisia hyökkäyksiä. Tämä on itse asiassa yksi selkeimmistä tunnusmerkeistä neljän konsensusta rakentavan järjestelmän välillä: järjestelmään kohdistuvan hyökkäyksen mahdollinen koko, jota voidaan helposti hallita. Palatakseni Bysantin yleiseen analogiaan, jonka avasin, toisin sanoen jokainen näistä neljästä järjestelmästä selviää erilaisesta osuudesta "petollisia kenraaleja" ennen kuin se alkaa tehdä huonoja valintoja.

Järjestelmiä, joissa ei käytetä todisteita työstä, kutsutaan usein myös virtuaalisiksi kaivosjärjestelmiksi, koska niillä ei ole kaivostoimintoa. Tällä hetkellä ei tiedetä, onko työongelman ratkaisemisella todellista turvallisuusetua verrattuna virtuaalisiin kaivosjärjestelmiin.

Jos pidit artikkelista, seuraa minua ja suosittele sitä. Jos sinä tai organisaatiosi tarvitsee tukea päästäksesi päähän blockchain-peliin, tutustu webinaareihimme ja konsultointipalveluihimme alatus sigma -konsultoinnissa.
 Jos haluat lukea lisää blockchainista ja siihen liittyvästä tekniikasta, harkitse kyselyn täyttämistä ja tilaa alla olevasta postituslistastani. Kerro minulle, mistä aiheista haluat kuulla lisää - ei-teknisellä, sulavalla tasolla.