Corda — atvērta koda blokķēde biznesam

Corda ir decentralizēta virsgrāmata, lai uzglabātu, pārvaldītu un sinhronizētu finanšu saistības starp dažādām finanšu organizācijām.
Corda — atvērta koda blokķēde biznesam
Corda ir pietiekami labi dokumentēta ar video lekcijām, ko var atrast šeit. Es centīšos īsi aprakstīt, kā iekšēji darbojas Corda.

Pārskatīsim galvenās Corda iezīmes un tās unikālumu salīdzinājumā ar citiem blokķēdēm:

  • Corda nav savas kriptovalūtas.
  • Corda neizmanto ieguves koncepciju un Proof-of-Work sistēmu.
  • Datu pārsūtīšana notiek tikai starp darījuma/sadarbības dalībniekiem. Šeit nav globālas apraides visiem tīkla mezgliem.
  • Nav centrāla kontroliera, kas pārvalda visus darījumus.
  • Corda atbalsta dažādus konsensa mehānismus.
  • Konsenss tiek panākts starp dalībniekiem atsevišķu vienošanos/sadarbību līmenī, nevis visā sistēmā.
  • Darījumu apstiprina tikai tie dalībnieki, kas attiecas uz to.
  • Corda piedāvā tiešu sasaisti starp formālu cilvēku juridisko valodu un viedos līgumus.

Virsgramata

Termins virsgrāmata Corda ir subjektīvs. Nav vienota centrālā datu krātuve. Tā vietā katrs mezgls atbalsta atsevišķu datu bāzi ar viņiem zināmiem faktiem.

Piemēram, iedomājieties tīklu ar 5 mezgliem, kur aplis ir zināms faktam mezglam.

Corda — atvērta koda blokķēde biznesam

Kā redzam, Ed, Carl un Demi zina par faktu 3, bet Alice un Bob par to vispār nenojauš. Corda garantē kopīgu faktu saglabāšanu katra mezgla datu bāzē, turklāt dati būs identiski.

Stāvokļi

Stāvoklis ir nemaināms objekts, kas pārstāv faktu, kas zināms vienam vai vairākiem tīkla mezgliem noteiktā brīdī.

Stāvokļi var glabāt dažādus datus, piemēram, akcijas, obligācijas, aizdevumus, identifikācijas informāciju.

Piemēram, šis stāvoklis pārstāv IOU — vienošanos par to, ka Alisei ir jāatdod Bobam summa X:

Corda — atvērta koda blokķēde biznesam
Fakta dzīves ciklu laika gaitā attēlo stāvokļu secība. Kad nepieciešams atjaunināt pašreizējo stāvokli, mēs izveidojam jaunu, bet esošo atzīmējam kā vēsturisku.

Corda — atvērta koda blokķēde biznesam

Transakcijas

Darījumi ir priekšlikumi virsgrāmatas atjaunināšanai. Tie netiek pārraidīti visiem virsgrāmatas dalībniekiem un ir pieejami tikai tiem tīkla dalībniekiem, kuriem ir likumīgas tiesības tos skatīt un pārvaldīt.

Darījums tiks pievienots virsgrāmatai, ja tas:

  • līgumam ir spēkā
  • parakstījusi visi nepieciešamie dalībnieki
  • nesatur dubultus izdevumus (double-spends)

Corda izmanto UTXO (neiztērētās darījumu izejas) modeli, kurā katrs ledger stāvoklis ir nemainīgs.

Veidojot, darījuma ieejā tiek nodota iepriekšējā darījuma izejas stāvoklis (pēc hash un indeksa).

Corda — atvērta koda blokķēde biznesam
Darījuma dzīves cikls:

  • Izveide (Pašlaik darījums ir tikai piedāvājums atjaunot ledger)
  • Parakstu vākšana (Nepieciešamie darījuma dalībnieki apstiprina atjauninājuma piedāvājumu, pievienojot parakstu darījumam)
  • Darījuma apstiprināšana ledgerā

Pēc darījuma pievienošanas ledgeram ieejas stāvokļi tiek marķēti kā vēsturiski un vairs nevar tikt izmantoti nākotnē.

Corda — atvērta koda blokķēde biznesam
Papildus ieejas un izejas stāvokļiem, darījums var saturēt:

  • Komandas (darījuma parametrs, kas norāda darījuma mērķi)
  • Pielikumi (svētku kalendārs, valūtas konvertētājs)
  • Laika logus (derīguma termiņš)
  • Notārs (Notary, īpaši tīkla dalībnieki, kas validē darījumus)

Corda — atvērta koda blokķēde biznesam

Līgumus

Kad mēs runājam par darījuma spēkā esamību, mēs domājam ne tikai par nepieciešamo parakstu esamību, bet arī par līguma spēkā esamību. Katrs darījums ir saistīts ar līgumu, kurš to pieņem un validē ieejas un izejas stāvokļus. Darījums tiek uzskatīts par spēkā esošu, tikai ja visi tā stāvokļi ir spēkā esoši.

Līgumi Corda tiek rakstīti jebkurā JVM valodā (piemēram, Java, Kotlin).

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

Jāmanto no klases Contract un jāaizpilda metode verify. Ja darījuma spēkā esamība nav derīga, jāizmet izņēmums.

Darījumu validācija jābūt determinētai, t.i., līgumam vienmēr jāpieņem vai jāatgriež darījums. Saistībā ar to darījuma spēkā esamība nedrīkst būt atkarīga no laika, nejaušiem skaitļiem, tīkla mezglu failiem utt.

Corda līgumi tiek izpildīti tā sauktajā smilškastē — nedaudz modificētā JVM, kas garantē līgumu determinētu izpildi.

Plūsmas

Lai automatizētu tīkla mezglu saziņu, tika pievienotas plūsmas.

Plūsma — tas ir soļu secība, kas informē mezglu, kā veikt konkrētu atjauninājumu ledger-a, kad parakstīt un validēt darījumu.

Corda — atvērta koda blokķēde biznesam

Dažkārt, lai transakcija tiktu parakstīta visām pusēm un iekļauta ledger, ir nepieciešamas stundas vai pat dienas. Kas notiks, ja izslēgs mezglu, kas piedalās transakcijā? Plūsmām ir kontrolpunkti, kuros plūsmas stāvokļi tiek ierakstīti mezgla datu bāzē. Atjaunojot mezglu tīklā, tas turpinās no vietas, kur tas apstājās.

Konsensus

Lai iekļūtu ledger, transakcijai jāpanāk 2 konsensusi: par derīgumu un unikālumu.

Lēmumu par transakcijas derīgumu pieņem tikai puses, kas tieši piedalās tajā.

Notāru mezgli veic transakcijas unikāluma pārbaudi, novēršot divkāršas izsniegšanas iespēju.

Iedomāsimies, ka Bobam ir 100$, un viņš vēlas pārskaitīt 80$ Čārlijam un 70$ Danam, izmantojot to pašu izejas stāvokli.

Corda — atvērta koda blokķēde biznesam

Šādu triku Corda nepieļaus. Lai arī transakcija iziet derīguma pārbaudi, unikāluma pārbaude neizdosies.

Secinājums

Corda platforma, ko izstrādājusi blokķēdes konsorcijs R3, nav tīrs blokķēdes tehnoloģijas piemērs. Corda ir pietiekami specializēts rīks finanšu organizācijām.

Avots: habr.com

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster