Corda - malfermfonta blokĉeno por komerco

Ŝnuro estas distribuita Ĉeflibro por stoki, administri kaj sinkronigi financajn devontigojn inter malsamaj financaj organizoj.
Corda - malfermfonta blokĉeno por komerco
Corda havas sufiĉe bonan dokumentadon kun videoprelegoj troveblaj tie. Mi provos mallonge priskribi kiel Corda funkcias interne.

Ni rigardu la ĉefajn trajtojn de Corda kaj ĝian unikecon inter aliaj blokĉenoj:

  • Corda ne havas sian propran kriptan moneron.
  • Corda ne uzas la koncepton de minado kaj la Proof-of-Work-sistemon.
  • Transdono de datumoj okazas nur inter partioj al la transakcio/kontrakto. Ne estas tutmonda elsendo al ĉiuj retaj nodoj.
  • Ne ekzistas centra regilo administranta ĉiujn transakciojn.
  • Corda subtenas diversajn konsentmekanismojn.
  • Interkonsento estas atingita inter partoprenantoj sur la nivelo de individua interkonsento/kontrakto, kaj ne sur la nivelo de la tuta sistemo.
  • Transakcio estas konfirmita nur de la partoprenantoj rilataj al ĝi.
  • Corda ofertas rektan ligon inter formala homa jura lingvo kaj inteligenta kontraktokodo.

La ĉeflibro

La koncepto de ĉeflibro en Corda estas subjektiva. Ne ekzistas ununura centra datumdeponejo. Anstataŭe, ĉiu nodo konservas apartan datumbazon de faktoj konataj al ĝi.

Ekzemple, imagu reton de 5 nodoj, kie cirklo estas fakto konata al la nodo.

Corda - malfermfonta blokĉeno por komerco

Kiel ni povas vidi, Ed, Carl kaj Demi scias pri fakto 3, sed Alice kaj Bob eĉ ne konscias pri ĝi. Corda garantias, ke komunaj faktoj estas konservitaj en la datumbazo de ĉiu nodo, kaj la datumoj estos identaj.

ŝtatoj

Ŝtato estas neŝanĝebla objekto kiu reprezentas fakton konatan al unu aŭ pluraj retnodoj en certa momento en tempo.

Ŝtatoj povas stoki arbitrajn datumojn, ekzemple, akciojn, obligaciojn, pruntojn, identigan informon.

Ekzemple, la sekva ŝtato reprezentas IOU - interkonsento ke Alico ŝuldas al Bob kvanton de X:

Corda - malfermfonta blokĉeno por komerco
La vivociklo de fakto dum tempo estas reprezentita per sekvenco de statoj. Kiam necesas ĝisdatigi la nunan staton, ni kreas novan kaj markas la nunan kiel historian.

Corda - malfermfonta blokĉeno por komerco

Transakcioj

Transakcioj estas proponoj por ĝisdatigi la ĉeflibron. Ili ne estas elsenditaj al ĉiuj registritaj partoprenantoj kaj disponeblas nur al tiuj retaj partoprenantoj, kiuj havas la laŭleĝan rajton rigardi kaj administri ilin.

Transakcio estos aldonita al la ĉeflibro se ĝi:

  • kontrakte valida
  • subskribita de ĉiuj postulataj partoprenantoj
  • ne enhavas duoblajn elspezojn

Corda uzas la modelon UTXO (neeluzita transakcioproduktaĵo), en kiu ĉiu ĉeflibroŝtato estas neŝanĝebla.

Kiam transakcio estas kreita, la produktaĵstato de la antaŭa transakcio (per hash kaj indekso) estas transdonita al la enigo.

Corda - malfermfonta blokĉeno por komerco
Transakcia vivociklo:

  • Kreado (Momente, la transakcio estas nur propono ĝisdatigi la ĉeflibron)
  • Kolektu subskribojn (La postulataj partioj al la transakcio aprobas la ĝisdatigproponon aldonante subskribon al la transakcio)
  • Transdonu transakcion al ĉeflibro

Post kiam transakcio estas aldonita al la ĉeflibro, la enigŝtatoj estas markitaj kiel historiaj kaj ne povas esti uzataj en estontaj transakcioj.

Corda - malfermfonta blokĉeno por komerco
Aldone al enigo kaj produktaĵoŝtatoj, transakcio povas enhavi:

  • Komandoj (transakcia parametro indikanta la celon de la transakcio)
  • Aldonaĵoj (feria kalendaro, valuttransformilo)
  • Tempofenestroj (valideca periodo)
  • Notario (Notario, specialaj retaj partoprenantoj validantaj transakciojn)

Corda - malfermfonta blokĉeno por komerco

Kontraktoj

Kiam ni parolas pri transakcia valideco, ni signifas ne nur la ĉeeston de la necesaj subskriboj, sed ankaŭ kontraktan validecon. Ĉiu transakcio estas rilata al kontrakto, kiu akceptas ĝin kaj validas la enigajn kaj eligajn ŝtatojn. Transakcio estas konsiderata valida nur se ĉiuj ĝiaj statoj validas.

Kontraktoj en Corda estas skribitaj en iu ajn JVM-lingvo (ekzemple, Java, Kotlin).

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

Estas necese heredi de klaso kontrakto kaj superregi la metodon kontroli. Se la transakcio estas malvalida, escepto estos ĵetita.

Transakcia validumado devas esti determinisma, t.e. la kontrakto devas ĉiam aŭ akcepti aŭ malakcepti la transakcion. Lige kun ĉi tio, la valideco de la transakcio ne povas dependi de tempo, hazardaj nombroj, gastigaj dosieroj ktp.

En Corda, kontraktoj estas efektivigitaj en tielnomita sablokesto - iomete modifita JVM kiu garantias determinisman plenumon de kontraktoj.

riveretoj

Por aŭtomatigi komunikadon inter retaj nodoj, fadenoj estis aldonitaj.

Fluo estas sekvenco de paŝoj, kiuj diras al nodo kiel fari specifan ĝisdatigon de ĉeflibro kaj je kiu punkto la transakcio devas esti subskribita kaj validigita.

Corda - malfermfonta blokĉeno por komerco

Kelkfoje necesas horoj, tagoj ĝis la transakcio estas subskribita de ĉiuj partioj kaj eniras la ĉeflibron. Kio okazas se vi malkonektas nodon partoprenantan en transakcio? Fadenoj havas transirejojn, ĉe kiuj la stato de la fadeno estas skribita al la datumbazo de la nodo. Kiam nodo estas restarigita al la reto, ĝi daŭros kie ĝi ĉesis.

Interkonsento

Por eniri la ĉeflibron, transakcio devas atingi 2 konsentojn: valideco kaj unikeco.

La decido pri la valideco de transakcio estas farita nur de la partioj rekte implikitaj en ĝi.

Notariaj nodoj kontrolas la transakcion pri unikeco kaj malhelpas duoblan elspezadon.

Ni imagu, ke Bob havas $100 kaj volas transdoni $80 al Charlie kaj $70 al Dan uzante la saman enigŝtaton.

Corda - malfermfonta blokĉeno por komerco

Corda ne permesos al vi eltiri tian ruzon. Kvankam la transakcio trapasos la valideckontrolon, la unikeckontrolo malsukcesos.

konkludo

La platformo Corda, evoluigita de la R3-blokĉena konsorcio, ne estas pura uzkazo por blokĉena teknologio. Corda estas tre speciala ilo por financaj institucioj.

fonto: www.habr.com

Aldoni komenton