Corda — nyílt forráskódú blokklánc az üzleti élet számára

Corda — egy elosztott főkönyv a pénzügyi kötelezettségek tárolására, kezelésére és szinkronizálására különböző pénzügyi intézmények között.
Corda — nyílt forráskódú blokklánc az üzleti élet számára
A Cordának elég jó dokumentációja van videóelőadásokkal, amelyeket itt. Röviden próbálom összefoglalni, hogyan működik a Corda a háttérben.

Nézzük meg a Corda főbb jellemzőit és egyediségét más blokkláncokkal szemben:

  • A Cordának nincs saját kriptovalutája.
  • A Corda nem használ bányászati koncepciót és Proof-of-Work rendszert.
  • Az adatok átadása csak a tranzakció / szerződés résztvevői között történik. Itt nincs globális adásvétel az összes csomópont számára a hálózatban.
  • Nincs központi irányító, amely az összes tranzakciót kezelné.
  • A Corda különféle konszenzusmechanizmusokat támogat.
  • A konszenzus az egyes megállapodás/szerződés szintjén, és nem az egész rendszer szintjén valósul meg.
  • A tranzakciót csak a hozzá kapcsolódó résztvevők erősítik meg.
  • A Corda közvetlen kapcsolatot kínál a formális emberi jogi nyelv és a okos szerződések kódja között.

A főkönyv

A főkönyv fogalma a Cordában szubjektív. Nincs egyetlen központi adatbázis. Ehelyett minden csomópont fenntart egy külön adatbázist a neki ismert tényekről.

Például képzeljünk el egy 5 csomópontból álló hálózatot, ahol a kör egy a csomópont számára ismert tény.

Corda — nyílt forráskódú blokklánc az üzleti élet számára

Amint látjuk, Ed, Carl és Demi tud a 3-as tényről, míg Alice és Bob még csak nem is sejtik. A Corda garantálja, hogy a közös tényeket minden csomópont adatbázisába rögzítik, és az adatok azonosak lesznek.

Állapotok

Az állapot egy változtathatatlan objektum, amely egy tényt képvisel, amely egy vagy több csomópont számára ismert egy adott időpontban.

Az állapotok tetszőleges adatokat tárolhatnak, például részvényeket, kötvényeket, hiteleket, azonosító információkat.

Például a következő állapot egy IOU — egy megegyezés arról, hogy Alice tartozik Bobnak X összeget:

Corda — nyílt forráskódú blokklánc az üzleti élet számára
A tény életciklusa az idő múlásával állapotok sorozataként van ábrázolva. Amikor szükséges a jelenlegi állapot frissítése, új állapotot hozunk létre, és a jelenlegit történelminek (historic) jelöljük.

Corda — nyílt forráskódú blokklánc az üzleti élet számára

Tranzakciók

A tranzakciók a főkönyv frissítésére vonatkozó ajánlatok. Ezeket nem sugározzák a főkönyv minden résztvevőjének, és csak azok a hálózati tagok férhetnek hozzá, akiknek törvényes joga van megtekinteni és kezelni azokat.

A tranzakció akkor kerül hozzáadásra a főkönyvhöz, ha:

  • szerződésileg érvényes
  • minden szükséges résztvevő által aláírt
  • nem tartalmaz duplázott költéseket (double-spends)

A Corda UTXO (fel nem használt tranzakciós kimenet) modellt használ, amelyben a főkönyv minden állapota változatlan.

A tranzakció létrehozásakor a belépő a korábbi tranzakció kimeneti állapotát (hash és index alapján) kapja.

Corda — nyílt forráskódú blokklánc az üzleti élet számára
A tranzakció életciklusa:

  • Létrehozás (Jelenleg a tranzakció csak egy javaslat a főkönyv frissítésére)
  • Aláírások gyűjtése (A tranzakció szükséges résztvevői jóváhagyják a frissítési javaslatot az aláírások hozzáadásával)
  • A tranzakció elkötelezése a főkönyvben

A tranzakció főkönyvbe való beillesztése után a belépő állapotok történeti jelölést kapnak és nem használhatóak a jövőbeli tranzakciókban.

Corda — nyílt forráskódú blokklánc az üzleti élet számára
A belépő és kimeneti állapotokon kívül a tranzakció tartalmazhat:

  • Útmutatók (a tranzakció paramétere, amely megjelöli a tranzakció célját)
  • Mellékletek (ünnepi naptár, valuta átváltó)
  • Időkeretek (lejárati idő)
  • Notárius (Notary, a hálózat különleges tagjai, akik érvényesítik a tranzakciókat)

Corda — nyílt forráskódú blokklánc az üzleti élet számára

Szerződések

Amikor a tranzakció érvényességéről beszélünk, nemcsak a szükséges aláírások meglétét értjük, hanem a szerződéssel való érvényességet is. Minden tranzakció egy olyan szerződéshez van kötve, amely azt elfogadja és érvényesíti a belépő és kimeneti állapotokat. A tranzakció csak akkor tekinthető érvényesnek, ha minden állapota érvényes.

A Corda szerződései bármely JVM nyelven írhatóak (például Java, Kotlin).

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

Származnia kell a Contract osztályból verify. Érvénytelen tranzakció esetén kivételt kell dobni.

A tranzakciók validálásának determinisztikusnak kell lennie, azaz a szerződésnek mindig el kell fogadnia vagy el kell utasítania a tranzakciót. Ezért a tranzakció érvényessége nem függhet az időtől, véletlen számoktól, a hálózat csomópontjainak fájljaitól és másoktól.

A Cordában a szerződések egy úgynevezett homokozóban hajtódnak végre - egy enyhén módosított JVM, amely a szerződések determinisztikus végrehajtását garantálja.

Folyamatok

A hálózati csomópontok közötti kommunikáció automatizálására folyamatokat vezettek be.

A folyamat egy lépések sorozata, amely megmondja a csomópontnak, hogyan hajtson végre egy adott frissítést a főkönyvben, mikor kell aláírni és validálni a tranzakciót.

Corda — nyílt forráskódú blokklánc az üzleti élet számára

Néha órákra, napokra van szükség, amíg a tranzakció aláírásra került minden fél által, és bekerül a ledgerbe. Mi történik, ha leállítunk egy csomópontot, amely részt vesz a tranzakcióban? A folyamatok ellenőrzési pontokkal rendelkeznek, amelyeken a folyamat állapotát a csomópont adatbázisába rögzítik. Amikor a csomópont visszaáll a hálózatba, ott folytatja, ahol abbahagyta.

Konszenzus

Ahhoz, hogy a tranzakció bekerüljön a ledgerbe, el kell érnie a 2 konszenzust: a validitás és az egyediség tekintetében.

A tranzakció validitásáról csak a közvetlenül érintett felek döntenek.

A notárius csomópontok ellenőrzik a tranzakció egyediségét, megakadályozva a kettős kiadást.

Képzeljük el, hogy Bob-nak van 100 dollárja, és 80 dollárt szeretne átutalni Charlie-nak és 70 dollárt Dan-nek, ugyanazzal a bemeneti állapottal dolgozva.

Corda — nyílt forráskódú blokklánc az üzleti élet számára

Ez a trükk a Cordával nem működik. Bár a tranzakció átmegy a validitási ellenőrzésen, az egyediség ellenőrzése megbukik.

Zárás

A Corda platform, amelyet az R3 blockchain konzorcium fejlesztett ki, nem tiszta példája a blockchain technológia használatának. A Corda egy meglehetősen specializált eszköz pénzügyi intézmények számára.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster