Corda – avatud lĂ€htekoodiga plokiahel Ă€ri jaoks

Corda on detsentraliseeritud Ledger, mis on mĂ”eldud erinevate finantsasutuste vaheliste finantskohustuste hoidmiseks, haldamiseks ja sĂŒnkroniseerimiseks.
Corda – avatud lĂ€htekoodiga plokiahel Ă€ri jaoks
Cordal on piisavalt hea dokumentatsioon koos videoloengutega, mida saab leida siin. PĂŒĂŒan lĂŒhidalt selgitada, kuidas Corda seestpoolt töötab.

Vaatame Cordat peamisi omadusi ja selle ainulaadsust teiste plokiahelate seas:

  • Cordal ei ole oma krĂŒptovaluutat.
  • Corda ei kasuta kaevandamise kontseptsiooni ega Proof-of-Work sĂŒsteemi.
  • Andmete edastamine toimub ainult tehingu/kontakti osaliste vahel. Siin ei toimu globaalset edastamist kĂ”igile vĂ”rgu sĂ”lmedele.
  • Ei ole keskset haldurit, kes juhib kĂ”iki tehinguid.
  • Corda toetab erinevaid konsensuse mehhanisme.
  • Konsensus saavutatakse osaliste vahel eraldi kokkuleppe/kontakti tasandil, mitte kogu sĂŒsteemi tasandil.
  • Tehing kinnitatakse ainult osaliste poolt, kes on sellega seotud.
  • Corda pakub otsest seost formaalse inimeste juriidilise keele ja nutilepingute koodi vahel.

Ledger

Corda mĂ”iste ledger on subjektiivne. Ei ole ĂŒhtset keskset andmehoidlat. Selle asemel toetab iga sĂ”lm eraldi andmebaasi tuntud faktide osas.

NÀiteks kujutame ette 5 sÔlmest koosnevat vÔrku, kus ring on tuntud sÔlme fakt.

Corda – avatud lĂ€htekoodiga plokiahel Ă€ri jaoks

Nagu nĂ€eme, teavad Ed, Carl ja Demi faktist 3, kuid Alice ja Bob sellest isegi ei kahtle. Corda tagab, et iga sĂ”lme andmebaasis sĂ€ilivad ĂŒhiselt tuntud faktid ning andmed on identsed.

Oleku

Olek on muutmatu objekt, mis esindab fakti, mis on tuttav ĂŒhele vĂ”i sĂ”ltumatule sĂ”lmest sellise aja hetkel.

Oleku andmed vÔivad sisaldada erinevaid teavet, nagu aktsiad, vÔlakirjad, laenud ja isikutÔendavad andmed.

NÀiteks esindab jÀrgmine olek IOU - kokkulepe, et Alice peab Bobile summa X:

Corda – avatud lĂ€htekoodiga plokiahel Ă€ri jaoks
Fakti elutsĂŒkkel ajas on esindatud olekute jĂ€rjestusega. Kui praegust olekut tuleb ajakohastada, loome uue ja mĂ€rkame praeguse ajalooliseks (historic).

Corda – avatud lĂ€htekoodiga plokiahel Ă€ri jaoks

Tehingud

Tehingud on ettepanekud ledgeri ajakohastamiseks. Need ei edastata kÔigile ledgeri osalistele ja on kergesti kÀtte saadavad ainult neile, kellel on seaduslik Ôigus neid vaadata ja hallata.

Tehing lisatakse ledgerisse, kui see:

  • lepinguliidina
  • kĂ”igi vajalike osaliste poolt allkirjastatud
  • ei sisalda kahekordset kulutamist (double-spends)

Corda kasutab UTXO (kasutamata tehingu vÀljund) mudelit, kus iga ledger-i olek on muutumatu.

Tehingu loomisel edastatakse sisendina eelneva tehingu vÀljundi olek (hashi ja indeksi kaudu).

Corda – avatud lĂ€htekoodiga plokiahel Ă€ri jaoks
Tehingu elutsĂŒkkel:

  • Loomine (Praegu on tehing vaid ettepanek ledger-i uuendamiseks)
  • Allkirjade kogumine (Tehingu vajalikud osalised kinnitavad ettepaneku uuendamiseks, lisades tehingule allkirja)
  • Tehingu kinnitamine ledger-is

PÀrast tehingu lisamist ledger-isse mÀrgitakse sisendolekud ajaloolisteks ja neid ei saa tulevastes tehingutes kasutada.

Corda – avatud lĂ€htekoodiga plokiahel Ă€ri jaoks
Lisaks sisend- ja vÀljundolekutele vÔib tehing sisaldada:

  • KĂ€sklused (tehingu parameeter, mis mÀÀrab tehingu sihi)
  • Manused (pĂŒhade kalender, valuutakonverter)
  • Ajaraamid (kehtivusaeg)
  • Notar (Notary, erilised vĂ”rgu osalised, kes valideerivad tehinguid)

Corda – avatud lĂ€htekoodiga plokiahel Ă€ri jaoks

Lepingud

Kui rÀÀgime tehingu kehtivusest, siis mÔtleme mitte ainult vajalike allkirjade olemasolule, vaid ka kehtivusele lepingu jÀrgi. Igal tehingul on leping, mis aktsepteerib seda ja valideerib sisend- ja vÀljundolekud. Tehingut peetakse kehtivaks ainult siis, kui kÔik selle olekud on kehtivad.

Corda lepingud kirjutatakse igasugustes JVM keeles (nÀiteks Java, Kotlin).

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

Tuleb pĂ€rida klassist Leping ja ĂŒletada meetod verify. Kui tehing on kehtetu, peavad nad viskama vĂ€lja erandi.

Tehingute valideerimine peab olema deterministlik, t.j. leping peab alati kas aktsepteerima vĂ”i tagasi lĂŒkkama tehingu. SeetĂ”ttu ei tohi tehingu kehtivus sĂ”ltuda ajast, juhuslikest numbritest, vĂ”rgu sĂ”lme failidest jne.

Cordas kĂ€ivad lepingud nii-öelda liivakastis — veidi muudetud JVM-is, mis tagab lepingute deterministliku tĂ€itmise.

Voogud

VÔrgu sÔlmede suhtlemise automatiseerimiseks on lisatud voogusid.

Vool on tegemise sammude jada, mis ĂŒtleb sĂ”lmele, kuidas konkreetset ledger-i uuendamist teostada, millal on vaja tehingut allkirjastada ja valideerida.

Corda – avatud lĂ€htekoodiga plokiahel Ă€ri jaoks

MĂ”nikord on vajalik oodata tunde vĂ”i pĂ€evi, kuni tehing on kĂ”ikide osaliste poolt allkirjastatud ja jĂ”uab pearaamatusse. Mis juhtub, kui tehingus osalev sĂ”lm vĂ€lja lĂŒlitatakse? Voogudel on kontrollpunktid, kuhu voogude seisund salvestatakse sĂ”lme andmebaasi. Kui sĂ”lm ressursside vĂ”rgus taastub, jĂ€tkab see sealt, kus see jĂ€i.

Konsensus

Tehing peab jÔudma 2 konsensusele, et sattuda pearaamatusse: kehtivuse ja ainulaadsuse suhtes.

Tehingu kehtivuse otsuse teevad vaid osalised, kes on otseselt seotud.

Notaari sÔlmed kontrollivad tehingu ainulaadsust ja ennetavad kahekordset raiskamist.

Kujutame ette, et Bob'il on 100$ ja ta soovib edastada 80$ Charliele ja 70$ Danielile, kasutades sama sisendseisundit.

Corda – avatud lĂ€htekoodiga plokiahel Ă€ri jaoks

Selline trikk ei toimi Corda sĂŒsteemis. Kuigi tehing lĂ€bib kehtivuse kontrolli, ebaĂ”nnestub ainulaadsuse kontroll.

KokkuvÔte

Corda, mida arendab R3 blockchain-konsortsium, ei ole puhas nÀide blockchain-tehnoloogia kasutamisest. Corda on piisavalt kitsalt spetsialiseeritud vahend finantsorganisatsioonidele.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster