Corda - open source blockchain za podjetja

Corda je razdeljen knjigovodsko orodje za shranjevanje, upravljanje in usklajevanje finančnih obveznosti med različnimi finančnimi organizacijami.
Corda - open source blockchain za podjetja
Corda ima precej dobro dokumentacijo z videoposnetki, ki jih lahko najdete ovde. Poskušal bom na kratko opisati, kako deluje Corda znotraj.

Oglejmo si glavne značilnosti Corda in njegovo edinstvenost med drugimi blockchaini:

  • Corda nima svoje kriptovalute.
  • Corda ne uporablja koncepta rudarjenja in sistema Proof-of-Work.
  • Prenos podatkov se odvija le med udeleženci transakcije / pogodbe. Tukaj ni globalnega broadcasting-a za vse vozlišča omrežja.
  • Ni centralnega nadzornika, ki bi upravljal vse transakcije.
  • Corda podpira različne mehanizme konsenza.
  • Konsenz se doseže med udeleženci na ravni posameznega dogovora / pogodbe, ne na ravni celotnega sistema.
  • Transakcijo potrdijo le tisti, ki so do nje povezani.
  • Corda ponuja neposredno povezavo med formalnim človeškim pravnim jezikom in kodo pametnih pogodb.

Knjiga

Koncept knjige v Corda je subjektiven. Ne obstaja enotna centralna baza podatkov. Namesto tega vsak vozlišče podpira ločeno podatkovno bazo znanih dejstev.

Na primer, predstavljajte si omrežje s 5 vozlišči, kjer je krog znano dejstvo za vozlišče.

Corda - open source blockchain za podjetja

Kot vidimo, Ed, Carl in Demi poznajo dejstvo 3, medtem ko Alice in Bob o njem niti ne sluta. Corda zagotavlja ohranjanje skupnih dejstev v bazo vsakega vozlišča, pri čemer so podatki identični.

Stanja

Stanje je nepremakljiv objekt, ki predstavlja dejstvo, znano enemu ali več vozliščem v omrežju v določenem trenutku.

Stanja lahko shranijo poljubne podatke, na primer delnice, obveznice, kredite, identifikacijske informacije.

Na primer, naslednje stanje predstavlja IOU — dogovor, da Alice dolguje Bobu znesek X:

Corda - open source blockchain za podjetja
Življenjski cikel dejstva skozi čas je predstavljen s sekvenčnimi stanji. Ko je potrebno posodobiti trenutno stanje, ustvarimo novo, trenutno pa označimo kot zgodovinsko (historic).

Corda - open source blockchain za podjetja

Transakcije

Transakcije so predlogi za posodobitev knjige. Ne prenašajo se vsem udeležencem knjige in so na voljo le tistim udeležencem omrežja, ki imajo zakonito pravico, da jih vidijo in upravljajo.

Transakcija bo dodana v knjigo, če je:

  • kontraktno validna
  • potpisana od svih potrebnih učesnika
  • ne sadrži dvostruke potrošnje (double-spends)

Corda koristi UTXO model (neiskorišćeni izlaz transakcije), gde je svako stanje knjige nepromenljivo.

Prilikom kreiranja, transakciji se na ulaz prosleđuje izlazno stanje prethodne transakcije (po hash-u i indeksu).

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

  • Kreiranje (Trenutno je transakcija samo predlog za ažuriranje knjige)
  • Prikupljanje potpisa (Potrebni učesnici transakcije odobravaju predlog za ažuriranje dodavanjem potpisa na transakciju)
  • Komitovanje transakcije u knjigu

Nakon dodavanja transakcije u knjigu, ulazna stanja se označavaju kao istorijska i ne mogu se koristiti u budućim transakcijama.

Corda - open source blockchain za podjetja
Pored ulaznih i izlaznih stanja, transakcija može sadržati:

  • Komande (parametar transakcije koji označava cilj transakcije)
  • Prilozi (kalendar praznika, konverter valuta)
  • Vremenska okna (rok trajanja)
  • Notarius (Notary, posebni učesnici mreže koji validiraju transakcije)

Corda - open source blockchain za podjetja

Ugovori

Kada govorimo o validnosti transakcije, mislimo ne samo na prisustvo potrebnih potpisa, već i na validnost prema ugovoru. Svaka transakcija je povezana sa ugovorom koji je prihvata i validira ulazna i izlazna stanja. Transakcija se smatra validnom samo ako su sva njena stanja validna.

Ugovori u Corda se pišu na bilo kom JVM jeziku (na primer, Java, Kotlin).

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

Potrebno je naslediti od klase Contract i override-ovati metodu verify. U slučaju nevalidnosti transakcije, baca se izuzetak.

Validacija transakcija mora biti deterministička, tj. ugovor uvek mora ili prihvatiti ili odbiti transakciju. U vezi s tim, validnost transakcije ne može zavisiti od vremena, slučajnih brojeva, datoteka čvora mreže i dr.

U Corda, ugovori se izvršavaju u takozvanom peskovniku — malo izmenjenoj JVM, koja garantuje determinističko izvršenje ugovora.

Tokovi

Da bi se automatizovala komunikacija čvorova mreže, dodati su tokovi.

Tok je niz koraka koji obaveštava čvor kako da izvrši konkretno ažuriranje knjige, u kom trenutku je potrebno potpisati i validirati transakciju.

Corda - open source blockchain za podjetja

Včasih potrebujemo ure ali dni, da transakcija pridobi podpise vseh strani in pride v knjigo. Kaj se zgodi, če izključimo vozlišče, vključeno v transakcijo? Tokovi imajo kontrolne točke, kjer se stanja toka zapisujejo v podatkovno bazo vozlišča. Ko se vozlišče ponovno priključi v mrežo, bo nadaljevalo od mesta, kjer je bilo ustavljeno.

Konsenz

Da transakcija pride v knjigo, mora doseči 2 konsenza: o veljavnosti in o edinstvenosti.

Odločitev o veljavnosti transakcije sprejemajo le tiste strani, ki so v to neposredno vključene.

Notarske vozliščne točke preverjajo transakcijo na edinstvenost in preprečujejo dvojne porabe.

Predstavljajmo si, da Bob ima 100$ in želi prenesti 80$ Charlieju in 70$ Danu, pri čemer uporablja isto vhodno stanje.

Corda - open source blockchain za podjetja

Tak trik v Cordi ne bo mogoč. Čeprav bo transakcija prestala preverjanje veljavnosti, bo preverjanje edinstvenosti spodletelo.

Zaključek

Platforma Corda, ki jo je razvila blockchain konzorcij R3, ni čisti primer uporabe tehnologije blockchain. Corda je dovolj ozko specializirano orodje za finančne organizacije.

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster