Corda – open source blockchain pre podnikanie

Corda je distribuovaná účtovná kniha na ukladanie, správu a synchronizáciu finančných záväzkov medzi rôznymi finančnými organizáciami.
Corda – open source blockchain pre podnikanie
Corda má celkom dobrú dokumentáciu s video prednáškami, ktoré sa dajú nájsť tu. Pokúsim sa stručne popísať, ako Corda vo vnútri funguje.

Pozrime sa na hlavné črty Cordy a jej jedinečnosť medzi ostatnými blockchainmi:

  • Corda nemá vlastnú kryptomenu.
  • Corda nepoužíva koncept ťažby a systém Proof-of-Work.
  • Prenos údajov prebieha iba medzi stranami transakcie/zmluvy. Neexistuje žiadne globálne vysielanie do všetkých sieťových uzlov.
  • Neexistuje žiadny centrálny kontrolór, ktorý by spravoval všetky transakcie.
  • Corda podporuje rôzne mechanizmy konsenzu.
  • Konsenzus sa medzi účastníkmi dosahuje na úrovni individuálnej dohody/zmluvy, a nie na úrovni celého systému.
  • Transakciu potvrdzujú iba účastníci, ktorí sú s ňou spriaznení.
  • Corda ponúka priame prepojenie medzi formálnym ľudským právnym jazykom a kódom inteligentných zmlúv.

Účtovná kniha

Koncept účtovnej knihy v Corde je subjektívny. Neexistuje jediné centrálne úložisko údajov. Namiesto toho každý uzol udržiava samostatnú databázu faktov, ktoré sú mu známe.

Predstavte si napríklad sieť 5 uzlov, kde kruh je skutočnosť známa uzlu.

Corda – open source blockchain pre podnikanie

Ako vidíme, Ed, Carl a Demi vedia o skutočnosti 3, ale Alice a Bob si to ani neuvedomujú. Corda garantuje, že v databáze každého uzla sú uložené spoločné fakty a údaje budú identické.

Štátoch

Štát je nemenný objekt, ktorý predstavuje skutočnosť známu jednému alebo viacerým sieťovým uzlom v určitom časovom bode.

Štáty môžu uchovávať ľubovoľné údaje, napríklad akcie, dlhopisy, pôžičky, identifikačné informácie.

Napríklad nasledujúci stav predstavuje IOU – dohodu, že Alice dlhuje Bobovi sumu X:

Corda – open source blockchain pre podnikanie
Životný cyklus skutočnosti v čase je reprezentovaný sledom stavov. Keď je potrebné aktualizovať aktuálny stav, vytvoríme nový a označíme aktuálny ako historický.

Corda – open source blockchain pre podnikanie

Transakcie

Transakcie sú návrhy na aktualizáciu účtovnej knihy. Nie sú vysielané všetkým účastníkom účtovnej knihy a sú dostupné len tým účastníkom siete, ktorí majú zákonné právo ich prezerať a spravovať.

Transakcia sa pridá do účtovnej knihy, ak:

  • zmluvne platný
  • podpísané všetkými požadovanými účastníkmi
  • neobsahuje dvojité výdavky

Corda používa model UTXO (nespotrebovaný transakčný výstup), v ktorom je každý stav účtovnej knihy nemenný.

Po vytvorení transakcie sa výstupný stav predchádzajúcej transakcie (podľa hashu a indexu) prenesie na vstup.

Corda – open source blockchain pre podnikanie
Životný cyklus transakcie:

  • Vytvorenie (v súčasnosti je transakcia len návrhom na aktualizáciu účtovnej knihy)
  • Zhromažďovanie podpisov (povinné strany transakcie schvaľujú návrh aktualizácie pridaním podpisu k transakcii)
  • Potvrdiť transakciu do knihy

Po pridaní transakcie do účtovnej knihy sa vstupné stavy označia ako historické a nemožno ich použiť v budúcich transakciách.

Corda – open source blockchain pre podnikanie
Okrem stavov vstupu a výstupu môže transakcia obsahovať:

  • Príkazy (parameter transakcie označujúci účel transakcie)
  • Prílohy (sviatočný kalendár, prevodník mien)
  • Časové okná (obdobie platnosti)
  • Notár (Notár, účastníci špeciálnej siete potvrdzujúci transakcie)

Corda – open source blockchain pre podnikanie

zmluvy

Keď hovoríme o platnosti transakcie, máme na mysli nielen prítomnosť potrebných podpisov, ale aj zmluvnú platnosť. Každá transakcia je spojená so zmluvou, ktorá ju akceptuje a overuje stavy vstupu a výstupu. Transakcia sa považuje za platnú iba vtedy, ak sú platné všetky jej stavy.

Zmluvy v Corde sú napísané v akomkoľvek jazyku JVM (napríklad Java, Kotlin).

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

Je potrebné dediť z triedy zmluva a prepísať metódu overiť si. Ak je transakcia neplatná, vyvolá sa výnimka.

Validácia transakcie musí byť deterministická, t.j. zmluva musí vždy transakciu buď prijať alebo odmietnuť. V súvislosti s tým nemôže platnosť transakcie závisieť od času, náhodných čísel, hostiteľských súborov atď.

V Corde sa zmluvy realizujú v takzvanom sandboxe – mierne upravenom JVM, ktorý zaručuje deterministické vykonávanie zmlúv.

Prúdy

Na automatizáciu komunikácie medzi sieťovými uzlami boli pridané vlákna.

Tok je postupnosť krokov, ktoré oznamujú uzlu, ako vykonať konkrétnu aktualizáciu účtovnej knihy a kedy je potrebné transakciu podpísať a overiť.

Corda – open source blockchain pre podnikanie

Niekedy to trvá hodiny, dni, kým transakciu podpíšu všetky strany a dostane sa do účtovnej knihy. Čo sa stane, ak odpojíte uzol zúčastňujúci sa na transakcii? Vlákna majú kontrolné body, v ktorých sa stav vlákna zapisuje do databázy uzla. Keď sa uzol obnoví v sieti, bude pokračovať tam, kde skončil.

Konsenzus

Aby sa transakcia dostala do účtovnej knihy, musí dosiahnuť 2 konsenzusy: platnosť a jedinečnosť.

O platnosti transakcie rozhodujú iba strany, ktoré sa na nej priamo podieľajú.

Notárske uzly kontrolujú jedinečnosť transakcie a zabraňujú dvojitému výdavku.

Predstavme si, že Bob má 100 USD a chce previesť 80 USD Charliemu a 70 USD Danovi pomocou rovnakého stavu vstupu.

Corda – open source blockchain pre podnikanie

Corda vám nedovolí vytiahnuť takýto trik. Hoci transakcia prejde kontrolou platnosti, kontrola jedinečnosti zlyhá.

Záver

Platforma Corda, ktorú vyvinulo blockchainové konzorcium R3, nie je čistým prípadom použitia technológie blockchain. Corda je vysoko špecializovaný nástroj pre finančné inštitúcie.

Zdroj: hab.com

Pridať komentár