Corda - open source blockchain za poslovanje

Rope je distribuirana knjiga za čuvanje, upravljanje i sinhronizaciju finansijskih obaveza između različitih finansijskih organizacija.
Corda - open source blockchain za poslovanje
Corda ima prilično dobru dokumentaciju sa video predavanjima koja se mogu pronaći ovdje. Pokušat ću ukratko opisati kako Corda radi unutra.

Pogledajmo glavne karakteristike Corde i njenu jedinstvenost među ostalim blockchainovima:

  • Corda nema vlastitu kriptovalutu.
  • Corda ne koristi koncept rudarenja i Proof-of-Work sistem.
  • Prijenos podataka se dešava samo između strana u transakciji/ugovoru. Ne postoji globalno emitovanje na sve mrežne čvorove.
  • Ne postoji centralni kontrolor koji upravlja svim transakcijama.
  • Corda podržava različite mehanizme konsenzusa.
  • Konsenzus se postiže između učesnika na nivou pojedinačnog sporazuma/ugovora, a ne na nivou čitavog sistema.
  • Transakciju potvrđuju samo učesnici u njoj povezani.
  • Corda nudi direktnu vezu između formalnog ljudskog pravnog jezika i koda pametnog ugovora.

Knjiga

Koncept glavne knjige u Cordi je subjektivan. Ne postoji jedinstveno centralno spremiš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 uobičajene činjenice pohranjene u bazi podataka svakog čvora, a podaci će biti identični.

Države

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

Države mogu pohraniti proizvoljne podatke, na primjer, dionice, obveznice, zajmove, identifikacijske informacije.

Na primjer, sljedeća država predstavlja IOU—ugovor da Alice duguje Bobu iznos od X:

Corda - open source blockchain za poslovanje
Životni ciklus činjenice tokom vremena predstavljen je nizom stanja. Kada je potrebno ažurirati trenutno stanje, kreiramo novo i označavamo trenutno kao istorijsko.

Corda - open source blockchain za poslovanje

Transakcije

Transakcije su prijedlozi za ažuriranje glavne knjige. Oni se ne emituju svim učesnicima glavne knjige i dostupni su samo onim učesnicima mreže koji imaju zakonsko pravo da ih pregledaju i upravljaju njima.

Transakcija će biti dodata u knjigu ako:

  • ugovorno važeći
  • potpisan od strane svih potrebnih učesnika
  • ne sadrži duple potrošnje

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

Kada se transakcija kreira, izlazno stanje prethodne transakcije (po hash-u i indeksu) se prenosi na ulaz.

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

  • Kreiranje (Trenutno je transakcija samo prijedlog za ažuriranje knjige)
  • Prikupite potpise (obavezne strane u transakciji odobravaju prijedlog ažuriranja dodavanjem potpisa transakciji)
  • Zakažite transakciju u knjigu

Jednom kada se transakcija doda u knjigu, ulazna stanja se označavaju kao istorijska 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 (transakcioni parametar koji ukazuje na svrhu transakcije)
  • Prilozi (praznični kalendar, konverter valuta)
  • Vremenski okviri (period važenja)
  • Bilježnik (bilježnik, posebni učesnici mreže koji potvrđuju transakcije)

Corda - open source blockchain za poslovanje

Ugovori

Kada govorimo o valjanosti transakcije, ne mislimo samo na postojanje potrebnih potpisa, već i na ugovornu valjanost. Svaka transakcija je povezana 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 verifikuj. Ako je transakcija nevažeća, bit će izbačen izuzetak.

Validacija transakcije mora biti deterministička, tj. ugovor uvijek mora ili prihvatiti ili odbiti transakciju. S tim u vezi, valjanost transakcije ne može zavisiti od vremena, slučajnih brojeva, host fajlova itd.

U Cordi, ugovori se izvršavaju u takozvanom sandboxu - malo modificiranom JVM-u koji garantuje determinističko izvršenje ugovora.

Streams

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

Tok je niz koraka koji čvoru govori kako da izvrši određeno ažuriranje glavne knjige i u kom trenutku transakcija treba da bude potpisana i potvrđena.

Corda - open source blockchain za poslovanje

Ponekad su potrebni sati, dani dok transakciju ne potpišu sve strane i uđe u knjigu. Šta se dešava ako isključite čvor koji učestvuje u transakciji? Niti imaju kontrolne tač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 punovažnosti transakcije donose samo strane direktno uključene u nju.

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

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

Corda - open source blockchain za poslovanje

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

zaključak

Corda platforma, koju je razvio R3 blockchain konzorcij, nije čist slučaj korištenja blockchain tehnologije. Corda je visoko specijalizovan alat za finansijske institucije.

izvor: www.habr.com

Dodajte komentar