Corda – atvirojo kodo blokų grandinė verslui

Virvė yra paskirstyta knyga, skirta finansiniams įsipareigojimams tarp skirtingų finansinių organizacijų saugoti, tvarkyti ir sinchronizuoti.
Corda – atvirojo kodo blokų grandinė verslui
Corda turi gana gerą dokumentaciją su vaizdo paskaitomis, kurias galima rasti čia. Pabandysiu trumpai apibūdinti kaip Corda veikia viduje.

Pažvelkime į pagrindines Corda savybes ir jos unikalumą tarp kitų blokų grandinių:

  • „Corda“ neturi savo kriptovaliutos.
  • „Corda“ nenaudoja kasybos sąvokos ir darbo įrodymo sistemos.
  • Duomenų perdavimas vyksta tik tarp sandorio/sutarties šalių. Nėra visuotinio transliavimo į visus tinklo mazgus.
  • Nėra centrinio valdiklio, valdančio visas operacijas.
  • „Corda“ palaiko įvairius konsensuso mechanizmus.
  • Dalyvių sutarimas pasiekiamas individualaus susitarimo/sutarties, o ne visos sistemos lygmeniu.
  • Sandorį patvirtina tik su juo susiję dalyviai.
  • „Corda“ siūlo tiesioginį ryšį tarp oficialios žmogaus teisinės kalbos ir išmaniojo sutarties kodo.

Knyga

„Corda“ knygos sąvoka yra subjektyvi. Nėra vienos centrinės duomenų saugyklos. Vietoj to, kiekvienas mazgas turi atskirą jam žinomų faktų duomenų bazę.

Pavyzdžiui, įsivaizduokite 5 mazgų tinklą, kuriame apskritimas yra mazgui žinomas faktas.

Corda – atvirojo kodo blokų grandinė verslui

Kaip matome, Edas, Carlas ir Demi žino apie 3 faktą, bet Alisa ir Bobas to net nežino. Corda garantuoja, kad kiekvieno mazgo duomenų bazėje bus saugomi bendri faktai, o duomenys bus identiški.

Valstybes

Valstybė yra nekintamas objektas, vaizduojantis faktą, žinomą vienam ar keliems tinklo mazgams tam tikru momentu.

Valstybės gali saugoti savavališkus duomenis, pavyzdžiui, akcijas, obligacijas, paskolas, identifikavimo informaciją.

Pavyzdžiui, ši būsena reiškia IOU – susitarimą, kad Alisa yra skolinga Bobui X sumą:

Corda – atvirojo kodo blokų grandinė verslui
Fakto gyvavimo ciklas laikui bėgant pavaizduotas būsenų seka. Kai reikia atnaujinti esamą būseną, sukuriame naują, o esamą pažymime kaip istorinę.

Corda – atvirojo kodo blokų grandinė verslui

Sandoriai

Sandoriai – tai pasiūlymai atnaujinti didžiąją knygą. Jie netransliuojami visiems knygos dalyviams ir yra prieinami tik tiems tinklo dalyviams, kurie turi įstatyminę teisę juos peržiūrėti ir tvarkyti.

Operacija bus įtraukta į knygą, jei:

  • sutartimi galiojantys
  • pasirašo visi reikalingi dalyviai
  • nėra dvigubų išlaidų

„Corda“ naudoja UTXO (neišnaudotos operacijos išvesties) modelį, kuriame kiekviena knygos būsena yra nekintanti.

Sukūrus operaciją, ankstesnės operacijos išvesties būsena (pagal maišą ir indeksą) perkeliama į įvestį.

Corda – atvirojo kodo blokų grandinė verslui
Sandorio gyvavimo ciklas:

  • Kūrimas (šiuo metu operacija yra tik pasiūlymas atnaujinti knygą)
  • Rinkti parašus (privalomos sandorio šalys patvirtina atnaujinimo pasiūlymą, pridėdamos parašą prie operacijos)
  • Įtraukti operaciją į knygą

Kai operacija įtraukiama į knygą, įvesties būsenos pažymimos kaip istorinės ir negali būti naudojamos būsimose operacijose.

Corda – atvirojo kodo blokų grandinė verslui
Be įvesties ir išvesties būsenų, operacijoje gali būti:

  • Komandos (operacijos parametras, nurodantis operacijos tikslą)
  • Priedai (švenčių kalendorius, valiutos keitiklis)
  • Laiko langai (galiojimo laikotarpis)
  • Notaras (Notaras, specialūs tinklo dalyviai, tvirtinantys sandorius)

Corda – atvirojo kodo blokų grandinė verslui

Sutartys

Kai kalbame apie sandorio galiojimą, turime omenyje ne tik reikiamų parašų buvimą, bet ir sutarties galiojimą. Kiekviena operacija yra susieta su sutartimi, kuri ją priima ir patvirtina įvesties ir išvesties būsenas. Sandoris laikomas galiojančiu tik tada, kai galioja visos jo būsenos.

Sutartys Corda yra parašytos bet kuria JVM kalba (pavyzdžiui, Java, Kotlin).

class CommercialPaper : Contract {
    override fun verify(tx: LedgerTransaction) {
        TODO()
    }
}

Būtina paveldėti iš klasės Sutartis ir nepaisyti metodo patikrinti. Jei sandoris negalioja, bus taikoma išimtis.

Sandorio patvirtinimas turi būti deterministinis, t.y. sutartis visada turi arba priimti, arba atmesti sandorį. Atsižvelgiant į tai, operacijos galiojimas negali priklausyti nuo laiko, atsitiktinių skaičių, pagrindinio kompiuterio failų ir kt.

Cordoje sutartys vykdomos vadinamojoje smėlio dėžėje – šiek tiek modifikuotoje JVM, garantuojančioje deterministinį sutarčių vykdymą.

Srautai

Siekiant automatizuoti ryšį tarp tinklo mazgų, buvo pridėtos gijos.

Srautas yra veiksmų seka, nurodanti mazgui, kaip atlikti konkretų knygos atnaujinimą ir kada reikia pasirašyti ir patvirtinti operaciją.

Corda – atvirojo kodo blokų grandinė verslui

Kartais prireikia valandų, dienų, kol sandorį pasirašo visos šalys ir jis patenka į knygą. Kas atsitiks, jei atjungsite sandoryje dalyvaujantį mazgą? Gijos turi kontrolinius taškus, kuriuose gijos būsena įrašoma į mazgo duomenų bazę. Kai mazgas atkuriamas tinkle, jis tęsis ten, kur buvo baigtas.

Sutarimas

Norint patekti į knygą, sandoris turi pasiekti 2 konsensusus: galiojimą ir unikalumą.

Sprendimą dėl sandorio galiojimo priima tik su juo tiesiogiai susijusios šalys.

Notarų mazgai patikrina sandorio unikalumą ir neleidžia dvigubai išleisti.

Įsivaizduokime, kad Bobas turi 100 USD ir nori pervesti 80 USD Charlie ir 70 USD Danui naudodamas tą pačią įvesties būseną.

Corda – atvirojo kodo blokų grandinė verslui

Corda neleis jums pasidaryti tokio triuko. Nors operacijos galiojimo patikrinimas bus atliktas, unikalumo patikra nepavyks.

išvada

„Corda“ platforma, sukurta R3 blokų grandinės konsorciumo, nėra grynas „blockchain“ technologijos naudojimo atvejis. „Corda“ yra labai specializuota priemonė finansų įstaigoms.

Šaltinis: www.habr.com

Добавить комментарий