Corda - odprtokodna veriga blokov za podjetja

Corda je distribuirana knjiga za shranjevanje, upravljanje in sinhronizacijo finančnih obveznosti med različnimi finančnimi organizacijami.
Corda - odprtokodna veriga blokov za podjetja
Corda ima precej dobro dokumentacijo z video predavanji, ki jih je mogoče najti tukaj. Poskušal bom na kratko opisati delovanje Corde v notranjosti.

Oglejmo si glavne značilnosti Corde in njeno edinstvenost med drugimi verigami blokov:

  • Corda nima lastne kriptovalute.
  • Corda ne uporablja koncepta rudarjenja in sistema Proof-of-Work.
  • Do prenosa podatkov pride le med strankama transakcije/pogodbe. Globalnega oddajanja do vseh omrežnih vozlišč ni.
  • Ni centralnega krmilnika, ki bi upravljal vse transakcije.
  • Corda podpira različne mehanizme soglasja.
  • Soglasje med udeleženci se doseže na ravni posameznega dogovora/pogodbe in ne na ravni celotnega sistema.
  • Transakcijo potrdijo samo z njo povezani udeleženci.
  • Corda ponuja neposredno povezavo med formalnim človeškim pravnim jezikom in kodo pametne pogodbe.

Knjiga

Koncept glavne knjige v Cordi je subjektiven. Enotnega centralnega skladišča podatkov ni. Namesto tega vsako vozlišče vzdržuje ločeno zbirko podatkov o dejstvih, ki so mu znana.

Na primer, predstavljajte si mrežo 5 vozlišč, kjer je krog dejstvo, ki ga vozlišče pozna.

Corda - odprtokodna veriga blokov za podjetja

Kot lahko vidimo, Ed, Carl in Demi vedo za dejstvo 3, Alice in Bob pa se tega niti ne zavedata. Corda zagotavlja, da so skupna dejstva shranjena v bazi podatkov vsakega vozlišča in da bodo podatki enaki.

Državah

Država je nespremenljiv objekt, ki predstavlja dejstvo, znano enemu ali več omrežnim vozliščem v določenem trenutku.

Države lahko hranijo poljubne podatke, na primer delnice, obveznice, posojila, identifikacijske informacije.

Naslednje stanje na primer predstavlja IOU – dogovor, da Alice Bobu dolguje znesek X:

Corda - odprtokodna veriga blokov za podjetja
Življenjski cikel dejstva skozi čas je predstavljen z zaporedjem stanj. Ko je potrebno ažurirati trenutno stanje, ustvarimo novo in trenutno označimo kot zgodovinsko.

Corda - odprtokodna veriga blokov za podjetja

Posel

Transakcije so predlogi za posodobitev glavne knjige. Ne oddajajo se vsem udeležencem glavne knjige in so na voljo samo tistim udeležencem omrežja, ki imajo zakonsko pravico do ogleda in upravljanja z njimi.

Transakcija bo dodana v knjigo, če:

  • pogodbeno veljavna
  • podpisali vsi zahtevani udeleženci
  • ne vsebuje dvojne porabe

Corda uporablja model UTXO (neporabljen rezultat transakcije), v katerem je vsako stanje glavne knjige nespremenljivo.

Ko je transakcija ustvarjena, se izhodno stanje prejšnje transakcije (z razpršitvijo in indeksom) prenese na vhod.

Corda - odprtokodna veriga blokov za podjetja
Življenjski cikel transakcije:

  • Ustvarjanje (trenutno je transakcija le predlog za posodobitev glavne knjige)
  • Zberite podpise (zahtevane stranke v transakciji odobrijo predlog posodobitve tako, da transakciji dodajo podpis)
  • Prenesi transakcijo v knjigo

Ko je transakcija dodana v knjigo, so stanja vnosa označena kot zgodovinska in jih ni mogoče uporabiti v prihodnjih transakcijah.

Corda - odprtokodna veriga blokov za podjetja
Poleg vhodnih in izhodnih stanj lahko transakcija vsebuje:

  • Ukazi (transakcijski parameter, ki označuje namen transakcije)
  • Priloge (koledar praznikov, pretvornik valut)
  • Časovna okna (obdobje veljavnosti)
  • Notar (Notar, posebni udeleženci omrežja, ki potrjujejo transakcije)

Corda - odprtokodna veriga blokov za podjetja

Pogodbe

Ko govorimo o veljavnosti posla, ne mislimo samo na prisotnost potrebnih podpisov, temveč tudi na pogodbeno veljavnost. Vsaka transakcija je povezana s pogodbo, ki jo sprejme in potrdi vhodna in izhodna stanja. Transakcija se šteje za veljavno le, če so veljavna vsa njena stanja.

Pogodbe v Cordi so napisane v katerem koli jeziku JVM (na primer Java, Kotlin).

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

Treba je dedovati iz razreda Naročilo in preglasite metodo preverjanje. Če je transakcija neveljavna, bo vržena izjema.

Validacija transakcij mora biti deterministična, tj. pogodba mora vedno sprejeti ali zavrniti transakcijo. V zvezi s tem veljavnost transakcije ne more biti odvisna od časa, naključnih števil, gostiteljskih datotek itd.

V Cordi se pogodbe izvajajo v tako imenovanem peskovniku - nekoliko spremenjenem JVM, ki zagotavlja deterministično izvajanje pogodb.

Tokovi

Za avtomatizacijo komunikacije med omrežnimi vozlišči so bile dodane niti.

Tok je zaporedje korakov, ki pove vozlišču, kako izvesti določeno posodobitev glavne knjige in na kateri točki je treba transakcijo podpisati in potrditi.

Corda - odprtokodna veriga blokov za podjetja

Včasih traja ure, dneve, dokler transakcijo ne podpišejo vse stranke in ta pride v glavno knjigo. Kaj se zgodi, če odklopite vozlišče, ki sodeluje v transakciji? Niti imajo kontrolne točke, na katerih se stanje niti zapiše v bazo podatkov vozlišča. Ko je vozlišče obnovljeno v omrežje, bo nadaljevalo tam, kjer je končalo.

Soglasje

Za vstop v knjigo mora transakcija doseči 2 soglasja: veljavnost in edinstvenost.

O veljavnosti posla odločajo samo stranke, ki so pri njem neposredno udeležene.

Notarska vozlišča preverijo edinstvenost transakcije in preprečijo dvojno porabo.

Predstavljajmo si, da ima Bob 100 $ in želi nakazati 80 $ Charlieju in 70 $ Danu z istim vnosnim stanjem.

Corda - odprtokodna veriga blokov za podjetja

Corda vam ne bo dovolila, da izvedete tak trik. Čeprav bo transakcija prestala preverjanje veljavnosti, preverjanje edinstvenosti ne bo uspelo.

Zaključek

Platforma Corda, ki jo je razvil konzorcij R3 blockchain, ni čisti primer uporabe tehnologije blockchain. Corda je visoko specializirano orodje za finančne institucije.

Vir: www.habr.com

Dodaj komentar