Corda - open source blockchain pro podnikání

Corda je distribuovaná kniha pro ukládání, správu a synchronizaci finančních závazků mezi různými finančními organizacemi.
Corda - open source blockchain pro podnikání
Corda má docela dobrou dokumentaci s video přednáškami, které lze najít zde. Pokusím se stručně popsat, jak Corda uvnitř funguje.

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

  • Corda nemá vlastní kryptoměnu.
  • Corda nepoužívá koncept těžby a systém Proof-of-Work.
  • K přenosu dat dochází pouze mezi stranami transakce/smlouvy. Neexistuje žádné globální vysílání do všech síťových uzlů.
  • Neexistuje žádný centrální kontrolér, který by spravoval všechny transakce.
  • Corda podporuje různé mechanismy konsenzu.
  • Konsensu mezi účastníky je dosaženo na úrovni individuální dohody/smlouvy, nikoli na úrovni celého systému.
  • Transakci potvrzují pouze účastníci, kteří jsou s ní spojeni.
  • Corda nabízí přímé spojení mezi formálním lidským právním jazykem a kódem inteligentních smluv.

Hlavní kniha

Koncept účetní knihy v Cordě je subjektivní. Neexistuje jediné centrální úložiště dat. Místo toho každý uzel udržuje samostatnou databázi skutečností, které jsou mu známy.

Představte si například síť 5 uzlů, kde kruh je skutečnost známá uzlu.

Corda - open source blockchain pro podnikání

Jak vidíme, Ed, Carl a Demi vědí o skutečnosti 3, ale Alice a Bob si toho ani neuvědomují. Corda garantuje, že v databázi každého uzlu jsou uložena společná fakta a data budou totožná.

Státy

Stát je neměnný objekt, který představuje skutečnost známou jednomu nebo více síťovým uzlům v určitém časovém okamžiku.

Státy mohou uchovávat libovolná data, například akcie, dluhopisy, půjčky, identifikační informace.

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

Corda - open source blockchain pro podnikání
Životní cyklus skutečnosti v čase je reprezentován posloupností stavů. Když je potřeba aktualizovat aktuální stav, vytvoříme nový a označíme aktuální jako historický.

Corda - open source blockchain pro podnikání

Transakce

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

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

  • smluvně platný
  • podepsané všemi požadovanými účastníky
  • neobsahuje dvojí útratu

Corda používá model UTXO (unspent transaction output), ve kterém je každý stav hlavní knihy neměnný.

Při vytvoření transakce se výstupní stav předchozí transakce (podle hashe a indexu) přenese na vstup.

Corda - open source blockchain pro podnikání
Životní cyklus transakce:

  • Vytvoření (v tuto chvíli je transakce pouze návrhem na aktualizaci účetní knihy)
  • Sbírejte podpisy (povinné strany transakce schvalují návrh aktualizace přidáním podpisu k transakci)
  • Potvrdit transakci do hlavní knihy

Jakmile je transakce přidána do hlavní knihy, vstupní stavy jsou označeny jako historické a nelze je použít v budoucích transakcích.

Corda - open source blockchain pro podnikání
Kromě stavů vstupu a výstupu může transakce obsahovat:

  • Příkazy (parametr transakce označující účel transakce)
  • Přílohy (prázdninový kalendář, převodník měn)
  • Časová okna (období platnosti)
  • Notář (Notář, účastníci zvláštní sítě ověřující transakce)

Corda - open source blockchain pro podnikání

Smlouvy

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

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

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

Je nutné dědit od třídy Smlouva a přepsat metodu ověřit si. Pokud je transakce neplatná, bude vyvolána výjimka.

Validace transakce musí být deterministická, tzn. smlouva musí vždy transakci buď přijmout, nebo odmítnout. V souvislosti s tím nemůže platnost transakce záviset na čase, náhodných číslech, hostitelských souborech atd.

V Cordě se smlouvy realizují v tzv. sandboxu – mírně upraveném JVM, který zaručuje deterministické plnění smluv.

Proudy

Pro automatizaci komunikace mezi síťovými uzly byla přidána vlákna.

Tok je posloupnost kroků, která říká uzlu, jak provést konkrétní aktualizaci účetní knihy a v jakém okamžiku je třeba transakci podepsat a ověřit.

Corda - open source blockchain pro podnikání

Někdy to trvá hodiny, dny, než je transakce podepsána všemi stranami a dostane se do účetní knihy. Co se stane, když odpojíte uzel účastnící se transakce? Vlákna mají kontrolní body, ve kterých je stav vlákna zapsán do databáze uzlu. Když je uzel obnoven do sítě, bude pokračovat tam, kde skončil.

Konsensus

Aby se transakce dostala do účetní knihy, musí dosáhnout 2 konsenzu: platnosti a jedinečnosti.

O platnosti transakce rozhodují pouze strany přímo zúčastněné na transakci.

Notářské uzly kontrolují jedinečnost transakce a zabraňují dvojímu utrácení.

Představme si, že Bob má 100 $ a chce převést 80 $ Charliemu a 70 $ Danovi pomocí stejného vstupního stavu.

Corda - open source blockchain pro podnikání

Corda vám nedovolí takový trik vytáhnout. Přestože transakce projde kontrolou platnosti, kontrola jedinečnosti selže.

Závěr

Platforma Corda, kterou vyvinulo blockchainové konsorcium R3, není čistým případem použití technologie blockchain. Corda je vysoce specializovaný nástroj pro finanční instituce.

Zdroj: www.habr.com

Přidat komentář