Podroben pogled na non-blockchain blockchain
Ko čas mineva, se blockchain svet ločuje na dva različna dela. Po eni strani so javni blockchains s pripadajočimi kripto valutami doživeli izjemno nedavno vrnitev, ki je marsikomu prinesla večmilijonarje. Po drugi strani pa uporaba pooblaščenih ali podjetniških blokov raste tiho, a vztrajno, saj je bila njihova prva uvajanja v živo v več panogah v letu 2017.
Eno zanimivo vprašanje, ki ga je treba upoštevati, je primerna raven podobnosti med tema dvema vrstama verig. Oba izvajata skupno bazo podatkov z uporabo medsebojnega povezovanja, kriptografije javnih in zasebnih ključev, pravil transakcij in mehanizmov soglasja, ki lahko preživijo zlonamerne akterje. To je veliko skupno stališče. Kljub temu imajo javni in zasebni blockchains različne zahteve glede zaupnosti, razširljivosti in upravljanja. Morda te razlike kažejo na potrebo po korenito različno oblikovanih modelih.
O Corda platforma, ki jo je razvil R3 bančni konzorcij zavzema jasno stališče do tega vprašanja. Medtem ko so bili nekateri vidiki navdihnjeni z javnimi blockchainsi, je bila Corda zasnovana iz nič, glede na potrebe članov R3. Čeprav R3 še vedno uporablja besedo "blockchain" obširno za pomoč pri trženju svojega izdelka Corda sploh nima verige blokov. Corda se bolj kot katero koli drugo platformo »distribuirane knjige« korenito oddaljuje od arhitekture običajnih blockchainov.
Moj cilj v tem delu je razložiti te razlike in razpravljati o njihovih posledicah, za dobro in slabo. Pravzaprav je dobro in slabo napačen način, ker je bolj zanimivo vprašanje "dobro in slabo za kaj?" Ta članek še zdaleč ni kratek. Na koncu pa upam, da bodo bralci spoznali razlike v Cordi in njihovih posledičnih kompromisih. Corda je pomembna, ker njene oblikovalske odločitve marsikatero dilemo podjetniških verig močno olajšajo.
Še zadnja stvar, preden se potopimo noter. Kot direktor podjetja zadaj MultiChain, priljubljena podjetniška platforma blockchain, zakaj tako globoko pišem o domnevno konkurenčnem izdelku? Standardni razlog bi bil, da zagovarjam superiornost MultiChaina, vendar to ni moja motivacija. Pravzaprav Corde in MultiChaina ne vidim kot tekmeca, saj se po dizajnu, arhitekturi in občinstvu bistveno razlikujeta. Corda in MultiChain tekmujeta enako kot križarke in letalske smuči - medtem ko oba prevažata ljudi po morju, v resničnih situacijah, v katerih bi oboje lahko uporabljali, skorajda ni.
Bolj osebno ugotavljam, da sem se v zadnjih nekaj letih naučil tehničnega vodstva Corde, bodisi prek srečanj, dopisovanja ali njihovih javnih zapisov, od katerih se je veliko zgodilo, preden so se pridružili R3. Nekaj mojega zanimanja za Cordo izvira iz mojega spoštovanja do te ekipe in samo zaradi tega je Corda vredna študija za vse, ki iščejo razumevanje področja porazdeljene knjige.
Predstavljamo blockchains
Da bi razumeli Corda, je koristno začeti z običajnimi blockchains. Namen blockchaina je omogočiti neposredno in varno skupno rabo baze podatkov ali knjige, ki ji ne zaupajo stranke. To je v nasprotju s centraliziranimi bazami podatkov, ki jih shranjuje in nadzoruje ena organizacija. Blokovna veriga ima več "vozlišč", od katerih vsaka shranjuje kopijo baze podatkov in lahko pripada drugi organizaciji. Vozlišča se med seboj povežejo na gosto enakovreden način z uporabo "gossip protokola", v katerem vsako vozlišče svojim vrstnikom nenehno pove vse, kar se nauči. Posledično lahko katero koli vozlišče sporočilo hitro odda v celotno omrežje po številnih alternativnih poteh.
Baza podatkov, bodisi centralizirana ali z blokovno verigo, se začne v praznem stanju in se posodobi s „transakcijami“. Transakcija je opredeljena kot niz sprememb baz podatkov, ki so "atomske", kar pomeni, da uspejo ali ne uspejo kot celota. Predstavljajte si bazo podatkov, ki predstavlja finančno knjigo z eno vrstico na račun. Transakcija, v kateri Alice plača Bobu 10 USD, ima tri korake: (1) preveri, ali Alicein račun vsebuje vsaj 10 USD, (2) odšteje 10 $ od Aliceinega računa, in (3) doda 10 $ na Bob-ov račun. Vsaka platforma baze podatkov mora kot osnovna zahteva zagotoviti, da nobena transakcija ne posega v drugo. To "izolacijo" dosežemo z zaklepanjem vrstic za Alice in Bob, medtem ko plačilo poteka. Vsaka druga transakcija, ki vključuje te vrstice, mora počakati, da se ta konča.
V blockchainu vsako vozlišče neodvisno obdela vsako transakcijo na svoji kopiji baze podatkov. Transakcije se ustvarijo kjer koli v omrežju in se samodejno razširijo na vsa ostala vozlišča. Ker imajo organizacije, ki vodijo vozlišča, različne (ali celo nasprotujoče si) interese, si med seboj ne morejo zaupati, da bi pošteno poslovale. Blockchains zato potrebujejo pravila, ki določajo, ali je določena transakcija veljavna ali ne. V skupni finančni knjigi ta pravila uporabnikom preprečujejo, da bi drug drugemu porabili denar ali si sredstva privoščili iz zraka.
Skupaj s pravili, ki določajo veljavnost transakcij, mora blockchains določiti tudi, kako bodo naročene transakcije, saj je v večini primerov to naročanje kritično. Če ima Alice 15 dolarjev in poskuša Bobu in Charlieju poslati 10 USD v dveh ločenih transakcijah, lahko le eno od teh plačil uspe. Čeprav bi radi rekli, da ima prva transakcija prednost, pa enakomerno omrežje nima objektivne definicije "prvi", saj sporočila lahko pridejo na različna vozlišča v različnih zaporedjih.
Pravila o transakcijah
V splošnem smislu so podatki v kateri koli bazi podatkov ločeni na zapise ali "vrstice" in transakcija lahko naredi tri različne stvari: brisanje vrstic, ustvarjanje vrstic in / ali spreminjanje vrstic. Te je mogoče zmanjšati na dve, saj je sprememba vrstice enakovredna brisanju te vrstice in ustvarjanju nove na njenem mestu. Če se vrnete k plačilu Alice Bobu, se črta njena vrstica, ki vsebuje 15 dolarjev, in nastaneta dve novi vrstici - ena vsebuje 10 USD za Boba, druga pa s 5 $ za spremembo za Alice.
Po terminologiji bitcoina in Corde označujemo vrstice, izbrisane s transakcijo, kot njihove "vhode", tiste, ki so ustvarjene kot njihove "izhode". Vsaka vrstica, izbrisana s transakcijo, mora biti ustvarjena s predhodno transakcijo. Zato vsak vnos transakcije porabi (ali "porabi") rezultat prejšnje transakcije. Posodobljena vsebina baze podatkov je določena z nizom "neporabljenih izhodov transakcij" ali "UTXOs".
V blockchainu je transakcija veljavna, če izpolnjuje naslednje tri pogoje:
- Pravilnost. Transakcija mora predstavljati zakonito preobrazbo iz vhodov v izhode. Na primer, v finančni knjigi se mora skupna količina sredstev v vložkih ujemati s skupno količino izidov, da se prepreči, da bi se denar čarobno pojavil ali izginil. Edine izjeme so posebne "izdaje" ali "upokojitvene" transakcije, pri katerih se sredstva izrecno dodajo ali odstranijo.
- Dovoljenje. Transakcijo mora odobriti lastnik vsakega rezultata, ki ga porabijo njegovi vložki. V finančni knjigi to udeležencem preprečuje, da bi brez dovoljenja drug drugemu porabili denar. Pooblastilo za transakcije se upravlja z asimetrično (ali javno-zasebnim ključem) kriptografijo. Vsaka vrstica ima lastnika, ki ga prepozna javni ključ, katerega zasebni ključ je skriven. Za odobritev transakcije mora lastnik vsakega svojega vnosa digitalno podpisati transakcijo. (Upoštevajte, da imajo lahko vrstice tudi bolj zapletene lastnike "več podpisov", na primer kadar lahko vsaka od treh strank pooblasti njihovo uporabo.)
- Edinstvenost. Če transakcija porabi določen izid, potem nobena druga transakcija ne more znova porabiti tega rezultata. Tako Alici preprečujemo, da bi Bobu in Charlieju plačevala nasprotujoča si plačila. Medtem ko bi bile transakcije za obe plačili lahko pravilne in dovoljene, pravilo o edinstvenosti zagotavlja, da bo baza podatkov obdelala le enega.
V običajnem blockchainu vsako vozlišče preveri vsako transakcijo v smislu teh treh pravil. Kasneje bomo videli, kako Corda razdeli to odgovornost drugače.
Gradniki
Blockchain je dobesedno veriga blokov, v kateri se vsak blok poveže s prejšnjim prek "hash-a", ki enotno prepozna njegovo vsebino. Vsak blok vsebuje urejen niz transakcij, ki ne smejo biti v nasprotju med seboj ali s tistimi iz prejšnjih blokov, pa tudi časovni žig in nekatere druge informacije. Tako kot transakcije se tudi bloki hitro širijo po omrežju in jih vsako vozlišče neodvisno preveri. Ko se transakcija pojavi v bloku, je "potrjena", kar vodi v vozlišča, da zavrnejo vsako konfliktno transakcijo.
Kdo je odgovoren za ustvarjanje teh blokov in kako smo lahko prepričani, da se bodo vsa vozlišča strinjala v verodostojni verigi? To vprašanje o »soglasnih algoritmih« je že sam po sebi ogromen predmet, napolnjen s čudovitimi kraticami, kot so PoW (Dokaz o delu), PBFT (Praktična toleranca bizantinskih napak) in DPoS (Delegirani dokaz o deležu). Tu se ne bomo spuščali v vse to. Dovolj je reči, da podjetji s pooblaščenimi verižnimi verigami uporabljajo nekakšno shemo glasovanja, kjer se glasovi dodelijo "potrjevalnim vozliščem", ki so kolektivno odgovorne. Shema zagotavlja, da če dobra večina korektnih vozlišč deluje pravilno in pošteno, bodo transakcije vstopile v verigo po (blizu) poštenem vrstnem redu, časovne žige bodo (približno) pravilne in potrjenih transakcij ni mogoče naknadno razveljaviti.
Preden razpravljamo o nekaterih izzivih blockchainov, bi rad razjasnil tri dodatne točke. Prvič, čeprav v tem delu uporabljam finančno knjigo kot primer, model vhodno-izhodnih transakcij podpira veliko širšo paleto primerov uporabe. Vsaka vrstica lahko vsebuje bogat podatkovni objekt (mislite JSON), ki vsebuje veliko različnih vrst informacij - Corda pravzaprav zaradi tega uporablja besedo „država“ in ne „vrstica“. Bogatejše države ne spreminjajo ničesar bistvenega o pravilih transakcij: pravilnost je še vedno definirana v smislu vhodov in izhodov, za vsak vložek je še vedno potrebno pooblastilo, edinstvenost pa zagotavlja, da se lahko vsak rezultat porabi samo enkrat.
Drugič, obstaja veliko primerov uporabe blockchain, v katerih so vrstice ustvarjene samo v bazi in nikoli izbrisane. Te aplikacije se nanašajo na splošno shranjevanje podatkov, časovno označevanje in notarizacijo, ne pa na vzdrževanje neke knjige, ki je v toku. V teh aplikacijah samo za podatke transakcije dodajajo podatke v svoje izhode, vendar v svojih vhodih ne porabijo nobenega, kar omogoča poenostavitev pravil za pravilnost, avtorizacijo in edinstvenost. Čeprav so primeri uporabe samo na podatkih vse večja usmeritev našega lastnega razvoja v podjetju MultiChain, jih omenim le mimogrede, saj Corda očitno ni bil zasnovan z njimi.
Na koncu je treba opozoriti, da nekatere platforme blockchain ne uporabljajo vhodno-izhodnega modela. Ethereum predstavlja alternativno paradigmo, v kateri veriga nadzoruje virtualni računalnik z globalnim stanjem, ki ga upravljajo »pogodbe«, transakcije pa se med seboj ne povezujejo izrecno. Razprava o Ethereumovem modelu v dovoljenih blockchainsih je zunaj našega obsega, vendar glejte ta članek za podrobno razlago in kritiko. Ključna prednost paradigme vhod / izhod je, da je večino transakcij mogoče obdelati vzporedno in neodvisno drug od drugega. Ta lastnost je za Corda ključna, kot bomo videli kasneje.
Blockchain izzivi
Predstavljajmo si, da so svetovne banke ustvarile skupno knjigo, da bi predstavljale lastništvo, prenos in zamenjavo različnih finančnih sredstev. Teoretično bi to lahko izvedli na običajnem blockchainu, kot je opisano zgoraj. Vsaka vrstica bi vsebovala tri stolpce - identifikator premoženja, kot sta GOOG ali USD, količina v lasti in javni ključ lastnika. Vsaka transakcija bi prenesla eno ali več sredstev iz svojih vložkov v svoje izide, s posebnimi primeri za izdajo in umik.
Vsaka banka v omrežju bi izvajala eno ali več vozlišč, ki se povezujejo z drugimi, razmnoževanje in preverjanje transakcij. Starejši člani bi delovali kot potrditelji, s skupno odgovornostjo za potrjevanje, naročanje in časovno žigosanje transakcij. Vsako vedenje veljavnika bi bilo vidno vsem vozliščem v mreži, kar bi vodilo v nezaupnico, izgon in / ali sodne postopke. Ob vsem tem bi lahko vsako finančno sredstvo v nekaj sekundah prenesli po vsem svetu, pravila pravilnosti, pooblastila in edinstvenosti pa zagotavljajo celovitost knjige.
Kaj je narobe s to sliko? Pravzaprav obstajajo tri težave: razširljivost, zaupnost in interoperabilnost. Vprašanje razširljivosti je dovolj preprosto. Naš predlagani medbančni blockchain bi moral od vsakega člana preveriti, obdelati in shraniti vsako transakcijo, ki jo opravi vsaka banka na svetu. Tudi če bi bilo to tehnično izvedljivo za največje finančne institucije, bi stroški izračunavanja in skladiščenja mnogim ustvarili pomembno oviro. Zagotovo bi raje sistem, v katerem udeleženci vidijo samo tiste transakcije, v katere so takoj vključeni.
A pustimo skalabilnost ob strani, saj jo je na koncu mogoče rešiti z dragimi računalniki in pametnim inženiringom. Temeljnejše vprašanje je zaupnost. Čeprav je morda zveni utopično, da je vsaka transakcija vidna povsod, je v resničnem svetu tako radikalna preglednost neprimerna za konkurenco in regulacijo. Če si JP Morgan in HSBC izmenjata nekaj premoženja, verjetno Citi in Bank of China ne bosta želela, da bi videli, kaj sta storila. Če bi bila transakcija izvedena v imenu strank teh bank, bi bilo lahko nezakonito, da bi jo izpostavili na tak način.
Ena od rešitev problema zaupnosti so „kanali“, kot je implementirana v tkanini Hyperledger. Vsak kanal ima določene člane, ki so podmnožica vozlišč v omrežju kot celoti. Transakcije na kanalu so vidne samo njegovim članom, tako da vsak kanal dejansko deluje kot ločena blokovna veriga. Čeprav to pomaga pri zaupnosti, pa tudi spodkopava celotno točko vaje. Sredstva ni mogoče premikati z enega kanala na drugega brez pomoči zaupanja vrednega posrednika, ki je aktiven na obeh. Težavnost tega pristopa je nedavno poudarila SWIFT dokazilo o usklajevanju, ki je ocenil, da bo v proizvodnji potrebno več kot 100,000 kanalov. To je 100,000 otokov, med katerimi premoženja ni mogoče neposredno premikati.
V primerih uporabe samo podatkov, kadar transakcije ne porabijo podatkov v vhodih, je mogoče težavo z zaupnostjo odpraviti tako, da šifrira ali širi podatke v izhodih ter dostavi ključ za dešifriranje ali nepoškodovane podatke zunaj verige. Toda za transakcijo, katere vnosi porabijo izide drugih transakcij, mora vsako vozlišče videti te vhode in izhode, da lahko potrdi transakcijo. Medtem ko napredne kriptografske tehnike, kot so zaupno premoženje in nič dokazila znanja so bile razvite, da bi delno ali v celoti rešile to težavo za finančne knjige, pomenijo veliko breme uspešnosti in / ali jih ni mogoče posplošiti na nobeno pravilo o pravilnosti.
Na koncu se pogovorimo o interoperabilnosti. V idealnem svetu bi se vsaka banka takoj pridružila našemu globalnemu verižnemu bloku na dan, ko se je začela. V resnici pa bi različne skupine bank prevzele več blockchainov, ki temeljijo na zemljepisu ali obstoječih odnosih. Sčasoma bi član ene skupine morda želel začeti sklepati posle s članom druge s prenosom sredstva med verige. Tako kot pri kanalih, je to mogoče doseči le s pomočjo zaupanja vrednega posrednika in premagati namen blockchaina.
Corda želi rešiti te medsebojno povezane težave skalabilnosti, zaupnosti in interoperabilnosti z radikalnim premislekom o delovanju razdeljenih knjig.
Delni pogled Corde
Temeljno razliko v Cordi je enostavno razložiti: vsako vozlišče vidi le nekatere, namesto vseh, transakcij, obdelanih v omrežju. Medtem ko ena izmed logičnih in konceptualnih knjig definirajo vse te transakcije, nobeno posamezno vozlišče te knjige ne vidi v celoti. Če primerjamo, je v vsakem trenutku vsaka dolarska blagajna na svetu na določenem mestu, vendar nihče ne ve, kje vse so.
Torej katere transakcije vidi vozlišče Corda? Najprej tiste, v katere je neposredno vpleten, ker ima v lasti enega od vnosov ali izhodov te transakcije. V finančni knjigi to vključuje vsako transakcijo, v kateri vozlišče pošilja ali prejema sredstva. Recimo, da Alice ustvari transakcijo, za katero porabi 15 dolarjev in ima dva izhoda: enega z 10 dolarji zame, drugega pa s 5 dolarjev za "spremembo" zanjo. Ko mi Alice pošlje to transakcijo, jo lahko preverim glede pravilnosti in avtorizacije ter preverim, ali vhodi in izhodi uravnotežijo in ali je Alice podpisala.
Vendar ta transakcija sama po sebi ni dovolj. Preveriti moram tudi, da vhodno stanje Alice v vrednosti 15 USD resnično obstaja, in ni samo nadoknadila. To pomeni, da moram videti transakcijo, ki je ustvarila to stanje, in ga tudi preveriti glede pravilnosti in pooblastila. Če ima ta prejšnja transakcija, ki je poslala Alice 15 dolarjev, vložek 10 USD, ki pripada Denzelu, in Eric še en vložek 5 USD, potem moram preveriti tudi transakcije, ki so jih ustvarile. In tako naprej, vse do prvotne transakcije "izdaje", v kateri je sredstvo ustvarjeno. Število transakcij, ki jih moram preveriti, je odvisno od tega, kolikokrat so se sredstva zamenjala in od obsega razvejanja nazaj.
Ker Corda vozlišča ne vidijo samodejno vsake transakcije, kako pridobiti tiste, ki jih potrebujejo? Odgovor je pošiljatelj vsake nove transakcije. Preden Alice ustvari transakcijo, ki porabi 15 USD, mora že preveriti transakcijo, v kateri jo je prejela. In ker mora biti Alice zgoraj uporabila rekurzivno tehniko, bo imela kopijo vsake transakcije, ki je potrebna za to preverjanje. Bob te transakcije preprosto zahteva od Alice kot del njihove interakcije. Če se Alice ne odzove ustrezno, Bob sklepa, da ga Alice skuša prevarati, in zavrne dohodno plačilo. V primeru, da Bob pošlje novo transakcijo, katere vnosi imajo več lastnikov, lahko od vsakega pridobi potrebna dokazila.
Uvajanje notarjev
Do zdaj smo razložili, kako lahko Bob preveri pravilnost in odobritev dohodne transakcije, vključno s ponavljajočim se pomikom izvora svojih vložkov. Toda še eno pravilo je, o katerem moramo razmišljati: edinstvenost. Recimo, da je Alice zlonamerna. Lahko ustvari eno transakcijo, v kateri plača Bobu 10 dolarjev, in drugo, v kateri Charlieju plača enakih 10 dolarjev. Te transakcije lahko pošlje Bobu in Charlieju skupaj s popolnim dokazom o pravilnosti in pooblastilu vsakega. Medtem ko sta obe transakciji med seboj v nasprotju s porabo iste države, Bob in Charlie tega ne vesta.
Običajni blockchains to težavo reši vsako vozlišče, ki vidi vsako transakcijo, zaradi česar je konflikte enostavno zaznati in zavrniti. Kako torej Corda s svojo delno vidnostjo transakcije reši isti problem? Odgovor je s pomočjo notarja. Notar je zaupanja vredna stranka (ali stranke, ki sodelujejo skupaj), ki zagotavlja, da se določena država porabi samo enkrat. Vsaka država ima posebnega notarja, ki mora podpisati vsako transakcijo, v kateri se ta država porabi. Ko notar to stori, ne sme podpisati druge transakcije za isto državo. Notarji so varuhi edinstvenosti transakcij.
Medtem ko ima lahko vsaka država drugačnega notarja, morajo biti vse države, ki jih porabi določena transakcija, dodeljene istemu. S tem se izognete težavam v zvezi z zastoji in sinhronizacijo, ki bi jih morali poznati tisti, ki imajo izkušnjo z razdeljeno bazo podatkov. Recimo, da se Alice in Bob dogovorita, da bosta Alice zamenjala 10 dolarjev za Bobova 7 funtov. Transakcijo za to izmenjavo morajo podpisati notarji obeh držav, toda katera gre najprej? Če Alicin notar podpiše, vendar Bob iz nekega razloga odpove, potem bo Alice ostala nepopolna transakcija in nikoli več ne bo mogla porabiti svojih 10 USD. Če se Bob najprej podpiše, je podobno izpostavljen. Čeprav bomo morda želeli, da bi notarji preprosto sodelovali, v praksi to zahteva medsebojno zaupanje in uporabo konsenzusnega protokola, zapletov, ki se jih Cordajevi oblikovalci odločijo izogniti.
Če se za vložek v posamezno transakcijo zahtevajo države z različnimi notarji, njihovi lastniki najprej izvedejo posebne "notarske spremembe" transakcije, ki premikajo državo od enega notarja k drugemu in ničesar drugega ne spreminjajo. Ko stranke gradijo transakcijo z več vložki, se morajo najprej dogovoriti o notarju, ki ga bodo uporabljali, nato pa opraviti potrebne notarske spremembe. Medtem ko je razvijalec v meni ob branju tega rešitve začutil majhno bolečino, ni razloga, da ne bo delovalo tako dolgo, kot se notarji igrajo.
Pojasniti je treba tudi, da kljub temu, da je vsak notar en logičen akter v smislu podpisovanja poslov, ga ni treba pod nadzorom ene same stranke. Skupina organizacij lahko notarja vodi kolektivno z uporabo ustreznega konsenzusnega protokola, v katerem je potrebna večina udeležencev, da ustvarijo veljaven podpis. To bi preprečilo, da bi vsaka posamezna zlonamerna stranka spodbudila edinstvenost s podpisom transakcij, ki so v sporu. Teoretično bi lahko celo dovolilo vsakemu vozlišču v omrežju, da sodeluje v tovrstni deljeni notarji, čeprav bi se v tem primeru bolj ali manj vrnili k običajni verigi blokov.
Rezultat
Naredimo ključne razlike med Corda in običajnimi blockchains. V Cordi ne obstaja enotna veriga blokov, ki bi vsebovala vse potrjene transakcije. Vozlišča vidijo samo tiste transakcije, v katere so neposredno vpletene, ali od katerih so zgodovinsko odvisne. Vozlišča so odgovorna za preverjanje pravilnosti transakcij in pooblastil, vendar se za preverjanje edinstvenosti zanašajo na zaupanja vredne notarje.
Za Corda je seveda veliko več kot to: uporaba digitalnih potrdil za overjanje identitete, "mrežni zemljevidi" za pomoč vozlišč pri iskanju in zaupanju drug drugemu, "državne pogodbe", ki določajo pravilnost z vidika vsake države, deterministična različica navideznega stroja Java, ki izvaja te pogodbe, "tokovi", ki avtomatizirajo pogajanja o transakcijah, "časovna okna", ki omejujejo transakcije s časom, "oraki", ki potrjujejo zunanja dejstva, in "CorDapps", ki združujejo veliko stvari skupaj za enostavno distribucijo . Čeprav je vsaka od teh funkcij zanimiva, je enakovredne za vse mogoče najti na drugih platformah blockchain. Moj cilj tega članka je osredotočiti se na tisto, zaradi česar je Corda edinstvena.
Ali Corda izpolnjuje svojo obljubo? Ali rešuje težave z razširljivostjo, zaupnostjo in interoperabilnostjo blockchain? In pri svojih določenih odločitvah, koliko cene plača Corda?
Včasih bolj prilagodljiv
Začnimo s povečljivostjo. Tu se zdi prednost Corde očitna, saj vozlišča vidijo le nekatere transakcije v omrežju. V običajni blokovni verigi je največji pretok omejen s hitrostjo najpočasnejšega vozlišča pri obdelavi transakcij. Nasprotno pa bi lahko omrežje Corda obdelalo milijon transakcij na sekundo, medtem ko vsako vozlišče vidi le majhen del tega. Prilagodljivost sega tudi na notarje, saj se lahko naloga podpisovanja enoličnih transakcij razširi med številne notarje, od katerih je vsak odgovoren za majhen delež držav mreže.
Če to povem, obstaja ena situacija, v kateri Corda deluje precej slabše kot blockchain. To se zgodi, ko vozlišče prejme novo transakcijo, kar je odvisno od mnogih drugih transakcij, ki jih še ni videl. Predstavljajte si zelo likvidno premoženje, ki je bilo izdano pred 10 leti in se spreminja v roke vsakih pet minut. Pot od vsake nove transakcije do izdaje tega sredstva bo dolga več kot milijon transakcij. Ko vozlišče prvič prejme to sredstvo, mora od teh pošiljateljev pridobiti te milijone transakcij in vsako posebej preveriti. Pri (dokaj optimistični) hitrosti 1000 transakcij na sekundo bi prišlo do 17-minutne zamude, preden bi prejemnik lahko poslal sredstvo - očitno predolgo za nekaj tako likvidnega.
Zakaj blockchains ne trpi zaradi te težave? Ker vozlišča vidijo in preverijo vsako transakcijo, ko se zgodi, nenehno posodabljajo knjigo in natančno vedo, kdo je trenutno lastnik vsakega sredstva. Tudi če vozlišče še nikoli ni imelo določenega sredstva, lahko takoj preveri transakcijo, v kateri ga prejme, in ga takoj pošlje naprej. Povedano drugače: blockchain vozlišča morajo preveriti transakcije, ki zanje morda niso pomembne, vendar pri tem vnaprej plačajo stroške preverjanja morebitne prihodnje transakcije. Čeprav so vozlišča Corda na splošno manj zasedena, vodijo tveganje, da bo treba takoj opraviti ogromno dela. Pri tem ni nič zastrašujočega.
Nekoliko bolj zaupno
Pojdimo na zaupnost. V Cordi vozli vidijo le nekatere transakcije v omrežju, kar nedvomno pomeni boljšo zasebnost kot običajne blockchains. Kljub temu pa Corda še zdaleč ne rešuje problema zaupnosti, saj vozlišča še vedno vidijo nekatere transakcije, ki niso njihova dejavnost. Če vzamemo preprost primer, če Alice plača Bobu 10 USD, nato pa Bob pošlje Charlieju 10 USD, mora Charliejevo vozlišče prikazati transakcijo med Alice in Bobom, čeprav ta ne vključuje njega. V času, ko je Alice plačevala Bobu, ni mogla vedeti, kdo bo morda videl to transakcijo v prihodnosti, in kdo bi jo lahko kadar koli poslal.
Da bi bilo pošteno, Corda razvijalci poznajo to težavo in o njej razpravljajo v 15. poglavju Tehnična bela knjiga. V prispevku so predlagane preproste strategije, kot sta uporaba več javnih ključev na entiteto ali zmanjšanje sledljivosti z vrnitvijo sredstev izdajateljem v ponovno izdajo (podobno kot „mešalniki kovancev“). Prav tako omenja bolj napredne prihodnje možnosti, kot je uporaba Tor-likeevih omrežij za anonimizacijo za skrivanje IP-naslovov udeležencev in uporaba ničelnih dokazov znanja ali Intelovih varne enklave da potrdijo transakcije, ne da bi razkrili njihovo vsebino. Čeprav so vsi ti predlogi veljavni, jih je mogoče uporabiti tudi za navadne blokovne verige z uporabo vhodno-izhodnega modela in so bili v kripto valutah, kot so Dash, Zcash in Verge. Edina edina prednost Corde v smislu zaupnosti ostaja zmanjšana prepoznavnost transakcij - v najboljšem primeru nepopolna rešitev.
Vsi v vzreji
Da bi lažje razumeli prednost razširljivosti in zaupnosti Corde, moramo upoštevati, kako je to odvisno od gostote in prekrivanja odnosov med transakcijami. Predstavljajte si „družinsko drevo“ transakcij, opravljenih v omrežju, v katerih so starši vsake transakcije prejšnji, od katerih je takoj odvisno. Natančneje, ko izhod ene transakcije porabi vhod drugega, narišemo puščico, ki predstavlja odnos starša do otroka. Transakcije imajo lahko poljubno število staršev in otrok, čeprav bi v večini primerov pričakovali le nekaj.
Glede na to družinsko drevo definiramo prednike transakcije kot njegove starše, stare starše, praprababce in tako naprej. "Adam in Eva" našega drevesa sta posli izdajanja, ki sta ustvarili premoženje in nimata staršev. Tako kot v običajnih družinskih drevesih tudi dva transakcija ne moreta biti prednika drug drugega. V formalnem smislu informatika je to usmerjeni aciklični graf ali DAG, pri katerem je prednik opredeljen kot prehodno zapiranje matičnega odnosa.
Spomnimo se, da ko Corda vozlišče obdela transakcijo, mora prenesti in preveriti vse prednike te transakcije, razen tistih, ki jih je videl že prej. Če je družinsko drevo globoko, ima lahko nova prihajajoča transakcija veliko število prednikov, ki jih je treba preveriti, kar sproži Corda-ov problem z razširljivostjo. Če družinsko drevo vsebuje visoko stopnjo križanja, lahko predniki nove transakcije vključujejo številne ali več preteklih transakcij v omrežju. V tem primeru bo Corda zagotovila malo prednosti v smislu zasebnosti.
Nasprotno, če je družinsko drevo transakcij plitvo in vsebuje veliko otokov, ki se med seboj ne povezujejo, prednosti Corde pridejo do izraza. Vozlom nikoli ne bo treba preveriti večjega števila transakcij hkrati in jih je mogoče hraniti v temi glede večine transakcij, ki niso povezane s svojimi. Če ga uporabljamo kot finančno knjigo, lahko rečemo, da je Corda idealna za zelo razdrobljene trge, katerih sredstva se redko zamenjajo.
Interoperabilnost za zmago
Tu je eno področje, na katerem Corda resnično sije. Predstavljajte si dve ločeni mreži Corda, z različnimi nabori sredstev in udeleženci. V nekem trenutku želi udeleženec v eni mreži poslati sredstvo nekomu v drugem. Za razliko od običajnih blockchainov ni pričakovanja, da bo vozlišče preverilo vse pretekle transakcije, zato vozlišče, ki prejme to novo sredstvo, ne bo doživelo nič nenavadnega. Ko transakcija pride, preprosto zahteva in preveri ustrezno zgodovino, ne da bi se zavedala, da gre za "ločeno omrežje". Če želite raztegniti kliše, bi lahko rekli, da v Cordi ni tujcev - le prijatelji, ki se še niso srečali.
V resnici stvari niso tako preproste. Vsako Corda vozlišče izrecno odloči, katerim notarjem zaupati, saj lahko notar, ki se slabo ravna, povzroči finančno škodo. Poleg tega vozlišča potrebujejo "potrdilo", ki ga je dodal "domobranec", da se povežejo z drugimi vozlišči v omrežju, saj ne moremo dovoliti, da se naključni člani javnosti začnejo povezovati z vozlišči in zapravljajo svoje vire. Preden bo vozlišče v enem omrežju začelo zahtevati in preverjati transakcije iz drugega omrežja, bo moralo dodati svoj seznam zaupanja vrednih notarjev in pridobiti ustrezno potrdilo. Čeprav gre za nekaj ročne konfiguracije in upravljanja, je to sistem, ki ga lahko pričakujemo, minimalno. Na splošno je pošteno sklepati, da je interoperabilnost največja zmaga Corde v primerjavi z običajnimi blockchains.
Ponovno posredovanje
Čas je za pogovor o neurejenosti, slonu v Cordini sobi. V okviru blockchain disintermediation pomeni, da lahko vsak udeleženec preveri vsako transakcijo zase, ne da bi bil odvisen od dobrega vedenja tretjih oseb. V moj pogled, disintermediacija je glavna prednost blockchain pred centraliziranimi bazami podatkov, v katerih so vsi udeleženci v celoti odvisni od lastnika te baze podatkov. Če imajo udeleženci v omrežju posrednika, na katerega se lahko zanesejo, in ni nobenega poslovnega ali regulativnega primera za neomejevanje, potem obstaja nima smisla pri uporabi blockchaina. Centralizirane baze podatkov so hitrejše in učinkovitejše ter preprečujejo zaupnost transakcij.
Torej udeleženci mreže Corda dosegajo disintermediacijo? No, da, da in da, vendar ne. Za oddajo transakcij Corda odkljuka polje, saj se vozlišča, ki sodelujejo v transakciji, pogovarjajo med seboj. Glede na pravilnost in pooblastilo je tudi v dobri formi, saj lahko vsako vozlišče te lastnosti preveri zase. Kadar pa gre za preverjanje edinstvenosti transakcije, Corda ne opravi preizkusa disintermediacije. Vozlišča ne morejo potrditi edinstvenosti zase, saj ne vidijo vsake transakcije v omrežju, naloga pa je dodeljena pooblaščenim notarjem.
Udeleženci Corde so notarji na več načinov naklonjeni notarjem. Prvič, notar lahko zavrne podpis transakcije, tudi če njeni vložki porabijo izide, ki niso bili nikoli uporabljeni. V finančni knjigi to preprečuje, da bi nekdo poslal ali zamenjal svoje premoženje. Drugič, notar bi lahko podpisal dve nasprotujoči si transakciji, ki porabljata isto proizvodnjo, kar bi dve strani prepričalo, da sta prejela isto stvar. Ker ga oba prejemnika podvojenega sredstva pošljeta ali izmenjata v nadaljnjih transakcijah, se lahko okužba širi in celovitost celotne knjige bi lahko kmalu bila ogrožena. Končno lahko notar zavrne podpis transakcije "notarske spremembe" za prenos države na konkurenta, pri čemer ima lastnik sredstva dejansko talca. Za transakcijo, ki vključuje države z različnimi notarji, je daleč reči, da Corda uvaja več posredovanja kot centralizirane baze podatkov, ker je pod nadzorom več tretjih oseb.
Da bi to tveganje postavili v perspektivo, je treba opozoriti, da notarskih notarjev ne sme nadzorovati ena organizacija. Lahko so sestavljeni tudi iz skupine vozlišč, ki vodijo soglasni algoritem, ki lahko prenaša slabe akterje. V tem primeru bo notar deloval v redu, dokler večina njegovih členov upošteva pravila. Na površini to zveni kot blockchain, kar je odvisno od tega, da se večina validatorjev dobro obnaša. Vendar so v Cordi tveganja bistveno večja. Najslabše, kar lahko stori varovalec veriženja blokov, je, da se nekatere transakcije ne potrdijo. Zlonamerni notar iz Corde lahko podpiše tudi nasprotujoče si transakcije in pošlje knjigo v nedosledno brezno.
Čudna žival
Sestavljivost skalabilnosti, zaupnosti, interoperabilnosti in neomejenosti je težko doseči preprosto razsodbo o alternativi Cordi. Na splošno se zdi z vidika tega razvijalca platforme blockchain dobro ... prepričljivo, a nenavadno. Rešitve Corde so zasnovane za reševanje ključnih problemov skalabilnosti in zaupnosti, saj so nepopolne in so močno odvisne od oblike transakcijskega "družinskega drevesa". Toda za dosego teh delnih zmag Corda izgubi osnovno lastnost blockchain - odstranitev transakcijskih posrednikov. Čeprav Corda nedvomno odlikuje interoperabilnost, je to res dovolj?
Če bi želeli biti skeptični, bi lahko rekli, da je bila Cordejeva ekipa nemogoča naloga - oblikovati okus blockchaina, ki bi ustrezal bankam, ki financirajo R3. Ključna prednost blokovnih verig pred centraliziranimi bazami podatkov je disintermediacija, ki pride po ceni zmanjšane zaupnosti. Kako bi ta kompromis lahko pomenil finančne institucije, ki zaslužijo, če delujejo kot posredniki in so zelo občutljive glede zasebnosti? Če gledamo v tej luči, bi Corda lahko hvalili kot junaški, a na koncu nezadovoljiv kompromis med željo članov R3, da storijo nekaj blokade, in komercialnimi in regulativnimi omejitvami, v katerih obstajajo.
Skrbnik 2.0
Raje pa sprejemam bolj pozitiven pristop. Namesto da bi se osredotočali na primerjavo z blockchainsom, lahko Corda vidimo kot pomembno tehnično nadgradnjo finančnega stanja. Preprosto zamenjajte besedo "notar" s "skrbnik", in vse to postane lepo. (A skrbnik je finančna institucija, ki ima sredstva v imenu drugih.) Da, notarji so posredniki, ki lahko blokirajo transakcije in dovolijo, da pride do konfliktov, vendar to velja tudi za današnje skrbnike. "Transakcija menjave notarja" se lahko obravnava kot prenos premoženja z enega skrbnika na drugega. Transakcije v Cordi podpisuje samo en notar iz istega razloga, kot bi radi, da se menjave premoženja dogajajo na enem mestu - da se prepreči, da bi bila ena stranka iz žepa.
Če pogledamo Corda na ta način, lahko vidimo, kako se izboljša na tradicionalnem modelu skrbništva:
- Opredeljuje standardno računsko paradigmo in obliko izražanja finančnih sredstev in drugih pogodbenih obveznosti.
- Ponuja odprtokodno programsko opremo za razlago in izvrševanje teh obveznosti, saj jamči, da se pogodbene stranke in skrbniki dogovorijo o izidu vsake transakcije.
- Zapletene skrbnike večstranskih strank, ki ščitijo pred zlorabo, je mogoče ustvariti (samo s programsko opremo!) Z uporabo algoritmov soglasja, ki so odporni na napake.
- Za prenos premoženja med skrbniki je določen standardni postopek ("notarska sprememba") in noben skrbnik ne sme zavrniti.
- Skrbniki ne morejo uporabljati premoženja pod skrbništvom brez lastnikovega soglasja, saj morajo transakcije podpisati tudi lastniki njihovih vložkov.
Še zdaleč nisem bankir, vendar se mi vse skupaj zdi precej obetavno. Morda bi Corda enako lahko uporabili tudi za druge panoge s kompleksnimi skrbniškimi strukturami, kot sta zavarovanje ali ladijski promet. Čeprav oblikovanje Corde morda ne zagotavlja popolnega posredovanja blokovne verige, predlaga močno preobrazbo za panoge, v katerih imajo posredniki bistveno vlogo.
Ko se spustimo po tej razmišljanji, se neizogibno poraja vprašanje: Če notarjem že zaupamo, da bodo preverjali edinstvenost v življenju in smrti, zakaj se ne bi zanašali tudi na njihovo pravilnost in dovoljenje? Corda že ima pojem „notarskega notarskega overitelja“, ki v celoti preveri transakcije, preden doda svoj podpis. Zakaj ne bi namesto rednih Cordenih vozlišč prenašali in preverjali prednike svojih transakcij, zakaj ne bi vprašali notarja? To bi lahko pomagalo pri razširljivosti in zaupnosti, saj večina vozlišč ne bi videla nobenih drugih transakcij razen njihovih. Lahko celo predlagamo, da notarji v omrežju popolnoma zaupajo drug drugemu, zato ni treba skrbeti za prednike. Notar vsake države bi lahko potrdil veljavnost in preveril le transakcijo, ki jo je ustvaril, s pomočjo drugih notarjev.
Naj bo Corda Corda
Vse to nas popelje nazaj k temu, kjer smo začeli: Corda v resnici ni konkurenca običajnim blockchainsom, vključen je tudi MultiChain. Corda je Corda - zanimiva nova vrsta porazdeljene knjige, ki je bila optimizirana za potrebe tistih, ki jo financirajo. Nimam pojma, ali bo Corda na koncu uspel ali ne, ker ne vem njegovih stroškov in koristi v resničnem svetu v primerjavi s trenutnim načinom početja. A ne glede na to, kaj se bo zgodilo v prihodnosti, je vsekakor vredno študirati v smislu filozofije in oblikovanja.
Kar zadeva MultiChain, uporabljamo drugačen pristop. Da bi ukradel linijo od West Wing, odločeni smo "pustiti blockchain blockchain". Blockchains so takšni, kot so, in nimamo načrtov, da bi jih spremenili v nekaj drugačnega. Kot podatkovna infrastruktura skupne aplikacije predstavlja blockchain poseben kompromis v primerjavi s centralizirano bazo podatkov - dobiček pri disintermediaciji na ceno zmanjšane zaupnosti. In trdo delamo, da bi MultiChain 2.0 naredili najboljše blockchain platforma za uporabo razvijalcev aplikacij.
Prosimo, pošljite kakršne koli pripombe na LinkedIn.
Vir: https://www.multichain.com/blog/2018/05/r3-corda-deep-dive-and-technical-review/
- Račun
- Kratice
- aktivna
- Dodatne
- Prednost
- algoritem
- algoritmi
- uporaba
- aplikacije
- Arhitektura
- OBMOČJE
- članek
- sredstvo
- Sredstva
- Občinstvo
- pooblastilo
- Banka
- Bank of China
- Bančništvo
- Banke
- BEST
- Bill
- blockchain
- Pasovi
- Building
- Sveženj
- poslovni
- primeri
- Vzrok
- ceo
- potrdilo
- Potrdila
- spremenite
- kanali
- preverjanje
- Pregledi
- otrok
- Otroci
- Kitajska
- Citi
- Zaprtje
- komentarji
- komercialna
- Skupno
- podjetje
- Tekmovanje
- tekmovalci
- Računalništvo
- računalniki
- konflikt
- Soglasje
- Soglasje
- porabijo
- vsebina
- Vsebina
- pogodbe
- Corda
- stroški
- Ustvarjanje
- križarjenje
- cryptocurrencies
- cryptocurrency
- kriptografija
- Trenutna
- Skrbništvo
- Stranke, ki so
- DAG
- Dash
- datum
- shranjevanje podatkov
- Baze podatkov
- baze podatkov
- dan
- ponudba
- zamuda
- dostavo
- dostava
- Oblikovanje
- Razvojni
- Razvijalci
- Razvoj
- DID
- digitalni
- Distribuirana knjiga
- Dollar
- slon
- Inženiring
- Podjetje
- ethereum
- Izmenjava
- Izmenjave
- Vaja
- tkanina
- sejem
- družina
- Moda
- Lastnosti
- končno
- finančna
- Finančne ustanove
- konec
- prva
- prvič
- Osredotočite
- format
- polno
- Financiranje
- Skladi
- Prihodnost
- splošno
- Globalno
- globalno blokiranje
- dobro
- upravljanje
- veliko
- skupina
- Pridelovanje
- tukaj
- Skrij
- visoka
- Poudarjeno
- zgodovina
- Kako
- HTTPS
- velika
- Ideja
- identiteta
- nezakonito
- Vključno
- industrij
- Podatki
- Infrastruktura
- ustanova
- Institucije
- zavarovanje
- interakcije
- obresti
- Interoperabilnost
- vključeni
- IP
- izdaja
- Vprašanja
- IT
- Java
- Job
- pridružite
- Ključne
- tipke
- znanje
- velika
- vodi
- Vodstvo
- vodi
- naučili
- Ledger
- Pravne informacije
- Stopnja
- light
- vrstica
- Tekočina
- Seznam
- Long
- velika
- Večina
- Izdelava
- Tržna
- Prisotnost
- Stave
- sestanki
- člani
- omenja
- milijonov
- Model
- Denar
- premikanje
- več verig
- mreža
- mreženje
- omrežij
- vozlišča
- Pojem
- odprite
- open source
- Da
- naročila
- Ostalo
- drugi
- Lastnik
- Lastniki
- bolečina
- Papir
- paradigma
- Starši
- Plačajte
- Plačilo
- Plačila
- ljudje
- performance
- perspektiva
- filozofija
- slika
- platforma
- Platforme
- Popular
- predstaviti
- Cena
- zasebnost
- zasebna
- Izdelek
- proizvodnja
- dokazilo
- nepremičnine
- zaščito
- javnega
- R3
- bralci
- reading
- Reality
- Rekapitulacija
- evidence
- Uredba
- Razmerja
- Oprostitev
- Zahteve
- viri
- upokojitev
- pregleda
- Tveganje
- pravila
- Run
- tek
- Prilagodljivost
- Znanost
- MORJE
- vidi
- Občutek
- nastavite
- deli
- Dostava
- Kratke Hlače
- Znaki
- Enostavno
- majhna
- So
- Software
- rešitve
- SOLVE
- hitrost
- Poraba
- namaz
- delež
- Začetek
- začel
- Država
- Države
- Status
- shranjevanje
- trgovina
- trgovine
- Podpira
- Površina
- sistem
- tehnični
- Test
- Prihodnost
- Razmišljanje
- tretje osebe
- čas
- toleranca
- Sledljivost
- transakcija
- Transakcije
- Preoblikovanje
- Preglednost
- prevoz
- Zaupajte
- Nezgoščeno
- us
- ameriški dolar
- Uporabniki
- bankinah
- Preverjanje
- Poglej
- Virtual
- virtualni stroj
- vidljivost
- Glasovanje
- Počakaj
- West
- WHO
- Wikipedia
- zmago
- delo
- svet
- vredno
- pisanje
- let
- Zcash
- nič