Corda – open source blockchain pro byznys

Corda je rozdělená kniha pro ukládání, správu a synchronizaci finančních závazků mezi různými finančními institucemi.
Corda – open source blockchain pro byznys
Corda má dostatečně dobrou dokumentaci s video přednáškami, které lze najít zde. Pokusím se stručně popsat, jak je Corda vnitřně uspořádána.

Podívejme se na hlavní rysy Corda a jeho jedinečnost mezi ostatními blockchainy:

  • Corda nemá vlastní kryptoměnu.
  • Corda nepoužívá koncept těžby a systém Proof-of-Work.
  • Přenos dat probíhá pouze mezi účastníky transakce/smlouvy. Neexistuje zde globální broadcasting pro všechny uzly sítě.
  • Není zde žádný centrální kontroler, který by řídil všechny transakce.
  • Corda podporuje různé mechanismy konsensu.
  • Konsensus je dosažen mezi účastníky na úrovni jednotlivého ujednání/smlouvy, nikoli na úrovni celého systému.
  • Transakci potvrzují pouze účastníci, kterých se to týká.
  • Corda nabízí přímé spojení mezi formálním lidským právním jazykem a kódem chytrých smluv.

Kniha

Pojem kniha v Corda je subjektivní. Neexistuje zde jednotné centrální úložiště dat. Místo toho každý uzel podporuje samostatnou databázi faktů, které zná.

Například si představte síť se 5 uzly, kde kruh je známý fakt uzlu.

Corda – open source blockchain pro byznys

Jak vidíme, Ed, Carl a Demi znají fakt 3, zatímco Alice a Bob o něm ani netuší. Corda zaručuje, že společné fakty budou uloženy do databáze každého uzlu a data budou identická.

Stavy

Stav je neměnný objekt, který představuje fakt známý jednomu nebo více uzlům sítě v určitém okamžiku.

Stavy mohou uchovávat libovolná data, například akcie, dluhopisy, úvěry, identifikační informace.

Například následující stav představuje IOU – dohodu, že Alice dluží Bobovi částku X:

Corda – open source blockchain pro byznys
Životní cyklus faktu v průběhu času je představován sekvencí stavů. Když je nutné aktualizovat aktuální stav, vytvoříme nový a aktuální označujeme jako historický.

Corda – open source blockchain pro byznys

Transakce

Transakce jsou návrhy na aktualizaci knihy. Nejsou vysílány všem účastníkům knihy a jsou dostupné pouze těm účastníkům sítě, kteří mají právo je vidět a spravovat.

Transakce bude přidána do knihy, pokud:

  • smluvně platná
  • podepsaná všemi potřebnými účastníky
  • neobsahuje dvojí výdaje (double-spends)

Corda používá model UTXO (nevyčerpaný výstup transakce), kde každý stav ledgeru je neměnný.

Při vytváření transakce se na vstup předává výstup stavu předchozí transakce (podle hash a indexu).

Corda – open source blockchain pro byznys
Životní cyklus transakce:

  • Vytvoření (v tuto chvíli je transakce pouze návrh na aktualizaci ledgeru)
  • Sbírání podpisů (Potřební účastníci transakce schvalují návrh na aktualizaci přidáním podpisu k transakci)
  • Závazek transakce v ledgeru

Po přidání transakce do ledgeru jsou vstupní stavy označeny jako historické a nelze je používat v budoucích transakcích.

Corda – open source blockchain pro byznys
Kromě vstupních a výstupních stavů může transakce obsahovat:

  • Příkazy (parametr transakce, který uvádí cíl transakce)
  • Přílohy (kalendář svátků, převodník měn)
  • Časová okna (platnost)
  • Notář (Notary, speciální účastníci sítě, kteří ověřují transakce)

Corda – open source blockchain pro byznys

Smlouvy

Když mluvíme o platnosti transakce, máme na mysli nejen přítomnost potřebných podpisů, ale také platnost podle smlouvy. Každá transakce je spojena se smlouvou, která ji přijímá a ověřuje vstupní a výstupní stavy. Transakce je považována za platnou, pouze pokud jsou všechny její stavy platné.

Smlouvy v Cordě jsou psány v jakémkoli jazyce JVM (např. Java, Kotlin).

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

Je třeba dědit z třídy Contract a přepsat metodu verify. V případě neplatnosti transakce by mělo být vyvoláno výjimkou.

Validace transakcí musí být deterministická, tj. smlouva by vždy měla transakci buď přijmout, nebo odmítnout. Vzhledem k tomu, že platnost transakce nemůže záviset na čase, náhodných číslech, souborech uzlu sítě atd.

V Cordě jsou smlouvy prováděny ve tzv. pískovišti – mírně upravené JVM, která zaručuje deterministické vykonávání smluv.

Vlákna

Aby se automatizovala komunikace mezi uzly sítě, byly přidány proudy.

Proud je sekvence kroků, která sděluje uzlu, jak provést konkrétní aktualizaci ledgeru, kdy je třeba podepsat a ověřit transakci.

Corda – open source blockchain pro byznys

Někdy trvá hodiny nebo dny, než transakce získá podpisy od všech stran a dostane se do ledgeru. Co se stane, pokud se odpojí uzel, který se podílí na transakci? Toky mají kontrolní body, do kterých jsou stavy toku zapisovány do databáze uzlu. Po obnovení uzlu v síti bude pokračovat tam, kde přestal.

Konsensus

Aby se transakce dostala do ledgeru, musí dosáhnout 2 konsensů: o platnosti a o jedinečnosti.

Rozhodnutí o platnosti transakce přijímají pouze strany přímo zapojené do ní.

Notářské uzly provádějí kontrolu transakce na jedinečnost a zabraňují dvojímu utracení.

Představme si, že Bob má 100 dolarů a chce převést 80 dolarů Charliemu a 70 dolarů Danovi, přičemž použije stejný vstupní stav.

Corda – open source blockchain pro byznys

Takový trik Corda neumožní. I když transakce projde kontrolou platnosti, kontrola jedinečnosti selže.

Závěr

Platforma Corda, vyvinutá blockchainovým konsorciem R3, není čistým příkladem využití technologie blockchain. Corda je dostatečně úzce specializovaný nástroj pro finanční organizace.

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster