Corda - open source blockchain za poslovanje

corda je distribuirana knjiga za pohranu, upravljanje i sinkronizaciju financijskih obveza između različitih financijskih organizacija.
Corda - open source blockchain za poslovanje
Corda ima prilično dobru dokumentaciju s video predavanjima koja se mogu pronaći здесь. Pokušat ću ukratko opisati kako Corda radi unutra.

Pogledajmo glavne značajke Corde i njezinu jedinstvenost među ostalim blockchainovima:

  • Corda nema vlastitu kriptovalutu.
  • Corda ne koristi koncept rudarenja i Proof-of-Work sustav.
  • Prijenos podataka događa se samo između strana u transakciji/ugovoru. Ne postoji globalno emitiranje na sve mrežne čvorove.
  • Ne postoji središnji kontrolor koji upravlja svim transakcijama.
  • Corda podržava različite mehanizme konsenzusa.
  • Konsenzus se postiže između sudionika na razini pojedinačnog sporazuma/ugovora, a ne na razini cijelog sustava.
  • Transakciju potvrđuju samo sudionici koji su s njom povezani.
  • Corda nudi izravnu vezu između formalnog ljudskog pravnog jezika i koda pametnog ugovora.

Glavna knjiga

Koncept glavne knjige u Cordi je subjektivan. Ne postoji jedinstveno središnje skladište podataka. Umjesto toga, svaki čvor održava zasebnu bazu podataka o činjenicama koje su mu poznate.

Na primjer, zamislite mrežu od 5 čvorova, gdje je krug činjenica poznata čvoru.

Corda - open source blockchain za poslovanje

Kao što vidimo, Ed, Carl i Demi znaju za činjenicu 3, ali Alice i Bob toga nisu ni svjesni. Corda jamči da su zajedničke činjenice pohranjene u bazi podataka svakog čvora, a podaci će biti identični.

Države

Država je nepromjenjiv objekt koji predstavlja činjenicu poznatu jednom ili više mrežnih čvorova u određenom trenutku u vremenu.

Države mogu pohranjivati ​​proizvoljne podatke, na primjer, dionice, obveznice, zajmove, identifikacijske podatke.

Na primjer, sljedeće stanje predstavlja IOU—sporazum da Alice duguje Bobu iznos od X:

Corda - open source blockchain za poslovanje
Životni ciklus činjenice kroz vrijeme predstavljen je nizom stanja. Kada je potrebno ažurirati trenutno stanje, kreiramo novo i označimo postojeće kao povijesno.

Corda - open source blockchain za poslovanje

Transakcije

Transakcije su prijedlozi za ažuriranje glavne knjige. Ne emitiraju se svim sudionicima glavne knjige i dostupni su samo onim sudionicima mreže koji imaju zakonsko pravo pregledavanja i upravljanja njima.

Transakcija će biti dodana u knjigu ako:

  • ugovorno valjano
  • potpisan od strane svih potrebnih sudionika
  • ne sadrži dvostruke troškove

Corda koristi UTXO (nepotrošeni transakcijski izlaz) model, u kojem je svako stanje glavne knjige nepromjenjivo.

Kada se kreira transakcija, izlazno stanje prethodne transakcije (prema hashu i indeksu) prenosi se na ulaz.

Corda - open source blockchain za poslovanje
Životni ciklus transakcije:

  • Izrada (Trenutno je transakcija samo prijedlog za ažuriranje glavne knjige)
  • Prikupite potpise (potrebne strane u transakciji odobravaju prijedlog ažuriranja dodavanjem potpisa transakciji)
  • Upućivanje transakcije u knjigu

Nakon što se transakcija doda u knjigu, stanja unosa označavaju se kao povijesna i ne mogu se koristiti u budućim transakcijama.

Corda - open source blockchain za poslovanje
Osim ulaznih i izlaznih stanja, transakcija može sadržavati:

  • Naredbe (parametar transakcije koji označava svrhu transakcije)
  • Prilozi (kalendar praznika, pretvarač valuta)
  • Vremenski prozori (razdoblje valjanosti)
  • Javni bilježnik (javni bilježnik, posebni sudionici mreže koji potvrđuju transakcije)

Corda - open source blockchain za poslovanje

ugovori

Kada govorimo o valjanosti transakcije, ne mislimo samo na prisutnost potrebnih potpisa, već i na ugovornu valjanost. Svaka transakcija povezana je s ugovorom koji je prihvaća i potvrđuje ulazna i izlazna stanja. Transakcija se smatra valjanom samo ako su sva njena stanja važeća.

Ugovori u Cordi napisani su na bilo kojem JVM jeziku (na primjer, Java, Kotlin).

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

Potrebno je naslijediti od klase Ugovor i nadjačati metodu provjeriti. Ako je transakcija nevažeća, bit će izbačena iznimka.

Validacija transakcije mora biti deterministička, tj. ugovor uvijek mora ili prihvatiti ili odbiti transakciju. S tim u vezi, valjanost transakcije ne može ovisiti o vremenu, slučajnim brojevima, host datotekama itd.

U Cordi se ugovori izvršavaju u takozvanom sandboxu - malo modificiranom JVM-u koji jamči determinističko izvršavanje ugovora.

Potoci

Za automatizaciju komunikacije između mrežnih čvorova dodane su niti.

Tijek je slijed koraka koji govori čvoru kako izvesti određeno ažuriranje glavne knjige i u kojem trenutku transakciju treba potpisati i potvrditi.

Corda - open source blockchain za poslovanje

Ponekad su potrebni sati, dani dok transakciju ne potpišu sve strane i ne uđe u glavnu knjigu. Što se događa ako odspojite čvor koji sudjeluje u transakciji? Niti imaju kontrolne točke na kojima se stanje niti upisuje u bazu podataka čvora. Kada se čvor vrati u mrežu, nastavit će tamo gdje je stao.

Konsenzus

Da bi ušla u knjigu, transakcija mora postići 2 konsenzusa: valjanost i jedinstvenost.

Odluku o valjanosti transakcije donose samo strane koje su izravno uključene u nju.

Notarski čvorovi provjeravaju jedinstvenost transakcije i sprječavaju dvostruku potrošnju.

Zamislimo da Bob ima 100 USD i želi prenijeti 80 USD Charlieju i 70 USD Danu koristeći isto stanje unosa.

Corda - open source blockchain za poslovanje

Corda vam neće dopustiti da izvedete takav trik. Iako će transakcija proći provjeru valjanosti, provjera jedinstvenosti neće uspjeti.

Zaključak

Platforma Corda, koju je razvio R3 blockchain konzorcij, nije čista upotreba blockchain tehnologije. Corda je visoko specijalizirani alat za financijske institucije.

Izvor: www.habr.com

Dodajte komentar