Corda - blockchain open source pentru afaceri

Corda este un registru distribuit pentru stocarea, gestionarea și sincronizarea obligațiilor financiare între diferite organizații financiare.
Corda - blockchain open source pentru afaceri
Corda are o documentație destul de bună cu prelegeri video care pot fi găsite aici. Voi încerca să descriu pe scurt cum funcționează Corda în interior.

Să ne uităm la principalele caracteristici ale Corda și unicitatea sa printre alte blockchain-uri:

  • Corda nu are propria sa criptomonedă.
  • Corda nu folosește conceptul de minerit și sistemul Proof-of-Work.
  • Transferul de date are loc numai între părțile la tranzacție/contract. Nu există o difuzare globală către toate nodurile rețelei.
  • Nu există un controlor central care să gestioneze toate tranzacțiile.
  • Corda sprijină diverse mecanisme de consens.
  • Consensul se realizează între participanți la nivelul unui acord/contract individual, și nu la nivelul întregului sistem.
  • O tranzacție este confirmată doar de participanții aferenti acesteia.
  • Corda oferă o legătură directă între limbajul juridic uman formal și codul contractului inteligent.

Registrul

Conceptul de registru în Corda este subiectiv. Nu există un singur depozit central de date. În schimb, fiecare nod menține o bază de date separată de fapte cunoscute de el.

De exemplu, imaginați-vă o rețea de 5 noduri, unde un cerc este un fapt cunoscut de nod.

Corda - blockchain open source pentru afaceri

După cum putem vedea, Ed, Carl și Demi știu despre fapta 3, dar Alice și Bob nici măcar nu sunt conștienți de asta. Corda garantează că faptele comune sunt stocate în baza de date a fiecărui nod, iar datele vor fi identice.

State

Statul este imuabil un obiect care reprezintă un fapt cunoscut de unul sau mai multe noduri de rețea la un anumit moment în timp.

Statele pot stoca date arbitrare, de exemplu, acțiuni, obligațiuni, împrumuturi, informații de identificare.

De exemplu, următoarea stare reprezintă un IOU - un acord prin care Alice îi datorează lui Bob o sumă de X:

Corda - blockchain open source pentru afaceri
Ciclul de viață al unui fapt în timp este reprezentat de o succesiune de stări. Când este necesar să actualizăm starea curentă, creăm una nouă și o marchem pe cea actuală ca istorică.

Corda - blockchain open source pentru afaceri

Tranzacție

Tranzacțiile sunt propuneri de actualizare a registrului. Acestea nu sunt difuzate tuturor participanților la registru și sunt disponibile numai pentru acei participanți la rețea care au dreptul legal de a le vizualiza și gestiona.

O tranzacție va fi adăugată în registru dacă:

  • valabil contractual
  • semnat de toți participanții solicitați
  • nu conține cheltuieli duble

Corda folosește modelul UTXO (ieșire de tranzacție necheltuită), în care fiecare stare de registru este imuabilă.

Când este creată o tranzacție, starea de ieșire a tranzacției anterioare (prin hash și index) este transferată la intrare.

Corda - blockchain open source pentru afaceri
Ciclul de viață al tranzacției:

  • Creare (În acest moment, tranzacția este doar o propunere de actualizare a registrului)
  • Strângeți semnături (părțile solicitate la tranzacție aprobă propunerea de actualizare prin adăugarea unei semnături la tranzacție)
  • Trimiteți tranzacția în registru

Odată ce o tranzacție este adăugată în registru, stările de intrare sunt marcate ca istorice și nu pot fi utilizate în tranzacții viitoare.

Corda - blockchain open source pentru afaceri
Pe lângă stările de intrare și de ieșire, o tranzacție poate conține:

  • Comenzi (parametrul tranzacției care indică scopul tranzacției)
  • Atașamente (calendar de sărbători, convertor valutar)
  • Ferestre de timp (perioada de valabilitate)
  • Notar (Notar, participanți la rețea specială care validează tranzacțiile)

Corda - blockchain open source pentru afaceri

contracte

Când vorbim despre valabilitatea tranzacției, ne referim nu doar la prezența semnăturilor necesare, ci și la valabilitatea contractuală. Fiecare tranzacție este asociată cu un contract care o acceptă și validează stările de intrare și de ieșire. O tranzacție este considerată validă numai dacă toate stările sale sunt valide.

Contractele în Corda sunt scrise în orice limbaj JVM (de exemplu, Java, Kotlin).

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

Este necesar să se moștenească dintr-o clasă Contract și anulați metoda verifica. Dacă tranzacția este nevalidă, va fi lansată o excepție.

Validarea tranzacției trebuie să fie deterministă, adică contractul trebuie să accepte sau să respingă întotdeauna tranzacția. În legătură cu aceasta, valabilitatea tranzacției nu poate depinde de timp, numere aleatorii, fișiere gazdă etc.

În Corda, contractele sunt executate într-un așa-numit sandbox - o JVM ușor modificată care garantează executarea deterministă a contractelor.

Fluxuri

Pentru a automatiza comunicarea între nodurile de rețea, au fost adăugate fire.

Un flux este o secvență de pași care îi spune unui nod cum să efectueze o anumită actualizare a registrului și în ce moment tranzacția trebuie să fie semnată și validată.

Corda - blockchain open source pentru afaceri

Uneori durează ore, zile până când tranzacția este semnată de toate părțile și intră în registru. Ce se întâmplă dacă deconectați un nod care participă la o tranzacție? Firele au puncte de control, la care starea firului este scrisă în baza de date a nodului. Când un nod este restabilit în rețea, acesta va continua de unde a rămas.

Consens

Pentru a intra în registru, o tranzacție trebuie să ajungă la 2 consensuri: valabilitate și unicitate.

Decizia privind valabilitatea unei tranzacții este luată numai de părțile direct implicate în aceasta.

Nodurile notarilor verifică unicitatea tranzacției și previn dublarea cheltuielilor.

Să ne imaginăm că Bob are 100 USD și dorește să transfere 80 USD lui Charlie și 70 USD lui Dan folosind aceeași stare de intrare.

Corda - blockchain open source pentru afaceri

Corda nu vă va permite să realizați un astfel de truc. Deși tranzacția va trece de verificarea validității, verificarea de unicitate va eșua.

Concluzie

Platforma Corda, dezvoltată de consorțiul blockchain R3, nu este un caz de utilizare pur pentru tehnologia blockchain. Corda este un instrument foarte specializat pentru instituțiile financiare.

Sursa: www.habr.com

Adauga un comentariu