Corda — avatud lĂ€htekoodiga plokiahel Ă€riks

Corda on jagatud lepingute raamat erinevate finantsasutuste vaheliste rahaliste kohustuste hoidmiseks, haldamiseks ja sĂŒnkroniseerimiseks.
Corda — avatud lĂ€htekoodiga plokiahel Ă€riks
Corda-l on piisavalt hea dokumentatsioon koos videoloengutega, mida saab leida siit. Proovin kokkuvÔtlikult selgitada, kuidas Corda seestpoolt töötab.

Vaatame Corda peamisi omadusi ja selle ainulaadsust teiste plokiahelate seas:

  • Corda-l puudub oma krĂŒptovaluuta.
  • Corda ei kasuta kaevandamise kontseptsiooni ega Proof-of-Work sĂŒsteemi.
  • Andmete edastamine toimub ainult tehingu/kontakti osaliste vahel. Siin ei ole globaalsed edastamised kĂ”igile vĂ”rgu sĂ”lmedele.
  • Puudub keskasutaja, kes juhiks kĂ”iki tehinguid.
  • Corda toetab erinevaid konsensuse mehhanisme.
  • Konsensus saavutatakse osaliste vahel ĂŒksikute kokkulepete/lepete tasandil, mitte kogu sĂŒsteemi tasandil.
  • Tehingu kinnitavad vaid osalised, kes on seotud sellega.
  • Corda pakub otsest seost formaalse inimĂ”igusliku keele ja nutilepingute koodi vahel.

The ledger

Corda ledgeri mĂ”isted on subjektiivsed. Ei ole ĂŒhtekesksest andmehoidlast. Selle asemel toetab iga sĂ”lm oma andmebaasi tuntud faktide kohta.

Kujutage ette nĂ€iteks 5 sĂ”lmega vĂ”rku, kus ring tĂ€histab tuntud fakti ĂŒhe sĂ”lme jaoks.

Corda — avatud lĂ€htekoodiga plokiahel Ă€riks

Kuidas me nĂ€eme, Ed, Carl ja Demi teavad fakti 3, kuid Alice ja Bob ei kahtlustagi selle olemasolu. Corda tagab, et iga sĂ”lme andmebaas sisaldab jagatud fakte ning andmed on ĂŒhesugused.

Oleksed

Olek on muutmatu objekt, mis esindab fakti, mis on tuntud ĂŒhele vĂ”i mitmele vĂ”rgu sĂ”lmele kindlal ajahetkel.

Oleksed vÔivad salvestada meelevaldset teavet, nÀiteks aktsiaid, vÔlakirju, laene, isikuandmeid.

NĂ€iteks jĂ€rgnev olek esindab IOU-d — kokkulepet, et Alice peab Bobile summa X:

Corda — avatud lĂ€htekoodiga plokiahel Ă€riks
Fakti eluiga ajas on esitatud olekute jÀrjestikusega. Kui praegust olekut on vaja uuendada, loome uue ja mÀrgime praeguse ajalooliseks (historic).

Corda — avatud lĂ€htekoodiga plokiahel Ă€riks

Tehingud

Tehingud on ettepanekud ledgeri uuendamiseks. Need ei edastata kÔigile ledgeri osalejatele ja on kÀttesaadavad vaid neile vÔrgu liikmetele, kellel on seaduslik Ôigus neid vaadata ja hallata.

Tehing lisatakse ledgerisse, kui see:

  • on lepinguliselt kehtiv
  • on allkirjastatud kĂ”ikide vajalike osalejate poolt
  • ei sisalda topeltkasutusi (double-spends)

Corda kasutab UTXO (kasutamata tehingu vÀljundi) mudelit, kus iga ledgeri olek on muutumatu.

Tehingu loomisel edastatakse sisendina eelmise tehingu vÀljundi olek (haƥi ja indeksi kaudu).

Corda — avatud lĂ€htekoodiga plokiahel Ă€riks
Tehingu elutsĂŒkkel:

  • Loomine (Praegu on tehing vaid ettepanek ledgeri uuendamiseks)
  • Allkiri kogumine (Tehingu vajalikud osalejad kinnitavad uuendamise ettepaneku, lisades tehingule allkirja)
  • Tehingu sidumine ledgerisse

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

Corda — avatud lĂ€htekoodiga plokiahel Ă€riks
Lisaks sisend- ja vÀljundolekutele vÔib tehing sisaldada:

  • KĂ€sklusi (tehingu parameeter, mis nĂ€itab tehingu sihti)
  • Manused (pĂŒhade kalendrid, valuutakonverter)
  • Ajaraamid (kehtivusaeg)
  • Notaar (Notary, erilised vĂ”rgu osalised, valideerivad tehingud)

Corda — avatud lĂ€htekoodiga plokiahel Ă€riks

Lepingud

Kui rÀÀgime tehingu kehtivusest, siis mÔtleme mitte ainult vajalike allkiri olemasolule, vaid ka lepingu kehtivusele. Iga tehing on seotud lepingu, mis aktsepteerib ja valideerib sisendi ja vÀljundi olekud. Tehingut peetakse kehtivaks ainult siis, kui kÔik selle olekud on kehtivad.

Corda lepingud on kirjutatud igas JVM keeles (nÀiteks Java, Kotlin).

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

On vajalik pĂ€rida klassist Contract ja ĂŒletada meetod verify. Juhul, kui tehing on kehtetu, tuleb vĂ€lja visata erand.

Tehingute valideerimine peab olema deterministlik, st leping peab alati kas aktsepteerima vĂ”i tagasi lĂŒkkama tehingu. SeetĂ”ttu ei saa tehingu kehtivus sĂ”ltuda ajast, juhuslikest numbritest, sĂ”lmefailidest ja muudest.

Cordas tÀidetakse lepingud nii kutsutud liivakastis - veidi muudetud JVM-is, mis tagab lepingute deterministliku tÀitmise.

Vooged

Selleks, et automatiseerida vÔrgu sÔlmede suhtlust, lisati voogusid.

Voog on sammude jada, mis ĂŒtleb sĂ”lmele, kuidas teatud ledger-i vĂ€rskendust teostada, millal tuleb tehing allkirjastada ja valideerida.

Corda — avatud lĂ€htekoodiga plokiahel Ă€riks

MĂ”nikord kulub tundide vĂ”i pĂ€evade kaupa, kuni kĂ”ik osalised tehingu allkirjastavad ja see ledgerisse jĂ”uab. Mis juhtub, kui keegi osalevat sĂ”lme vĂ€lja lĂŒlitab? Voogudel on kontrollpunktid, kuhu voogude olek salvestatakse sĂ”lme andmebaasi. Kui sĂ”lm taastub vĂ”rgus, jĂ€tkab see sealt, kus jĂ€i.

Konsensus

Et jÔuda ledgerisse, peab tehing saavutama 2 konsensust: kehtivuse ja unikaalsuse osas.

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

Notariaalsed sÔlmed kontrollivad tehingu unikaalsust, et vÀltida kahekordset kulutamist.

Kujutage ette, et Bob’il on 100$ ja ta soovib edastada 80$ Charlie’le ja 70$ Dan’ile, kasutades sama sisendolekut.

Corda — avatud lĂ€htekoodiga plokiahel Ă€riks

Sellise triki Corda ei luba. Kuigi tehing lÀbib kehtivuse kontrolli, kukub unikaalsuse kontroll lÀbi.

KokkuvÔte

Corda platvorm, mida arendab R3 blockchain-konsortsium, ei ole puhas nÀide blockchain-tehnoloogia kasutamisest. Corda on piisavalt kitsas spetsialiseeritud tööriist finantsorganisatsioonidele.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster