Corda - open source blockchain para sa negosyo

Corda ay isang distributed Ledger para sa pag-iimbak, pamamahala at pag-synchronize ng mga obligasyong pinansyal sa pagitan ng iba't ibang organisasyong pinansyal.
Corda - open source blockchain para sa negosyo
Ang Corda ay may magandang dokumentasyon na may mga video lecture na makikita dito. Susubukan kong ilarawan nang maikli kung paano gumagana ang Corda sa loob.

Tingnan natin ang mga pangunahing tampok ng Corda at ang pagiging natatangi nito sa iba pang mga blockchain:

  • Ang Corda ay walang sariling cryptocurrency.
  • Hindi ginagamit ng Corda ang konsepto ng pagmimina at ang sistemang Proof-of-Work.
  • Ang paglilipat ng data ay nangyayari lamang sa pagitan ng mga partido sa transaksyon/kontrata. Walang pandaigdigang pagsasahimpapawid sa lahat ng node ng network.
  • Walang sentral na controller na namamahala sa lahat ng mga transaksyon.
  • Sinusuportahan ng Corda ang iba't ibang mekanismo ng pinagkasunduan.
  • Ang pinagkasunduan ay nakakamit sa pagitan ng mga kalahok sa antas ng isang indibidwal na kasunduan/kontrata, at hindi sa antas ng buong sistema.
  • Ang isang transaksyon ay kinumpirma lamang ng mga kalahok na may kaugnayan dito.
  • Nag-aalok ang Corda ng direktang koneksyon sa pagitan ng pormal na legal na wika ng tao at smart contract code.

Ang ledger

Ang konsepto ng ledger sa Corda ay subjective. Walang iisang central data repository. Sa halip, ang bawat node ay nagpapanatili ng isang hiwalay na database ng mga katotohanang kilala nito.

Halimbawa, isipin ang isang network ng 5 node, kung saan ang isang bilog ay isang katotohanan na kilala sa node.

Corda - open source blockchain para sa negosyo

Tulad ng nakikita natin, alam nina Ed, Carl at Demi ang tungkol sa katotohanan 3, ngunit hindi ito alam nina Alice at Bob. Ginagarantiyahan ng Corda na ang mga karaniwang katotohanan ay nakaimbak sa database ng bawat node, at ang data ay magiging magkapareho.

Mga Estado

Ang estado ay hindi nababago isang bagay na kumakatawan sa isang katotohanang kilala sa isa o higit pang mga network node sa isang tiyak na punto ng oras.

Ang mga estado ay maaaring mag-imbak ng di-makatwirang data, halimbawa, mga stock, mga bono, mga pautang, impormasyon ng pagkakakilanlan.

Halimbawa, ang sumusunod na estado ay kumakatawan sa isang IOUβ€”isang kasunduan na may utang si Alice kay Bob ng halagang X:

Corda - open source blockchain para sa negosyo
Ang siklo ng buhay ng isang katotohanan sa paglipas ng panahon ay kinakatawan ng isang pagkakasunud-sunod ng mga estado. Kapag kinakailangan na i-update ang kasalukuyang estado, gumawa kami ng bago at markahan ang kasalukuyan bilang makasaysayan.

Corda - open source blockchain para sa negosyo

Mga Transaksyon

Ang mga transaksyon ay mga panukala upang i-update ang ledger. Ang mga ito ay hindi bino-broadcast sa lahat ng kalahok sa ledger at magagamit lamang sa mga kalahok sa network na may legal na karapatang tingnan at pamahalaan ang mga ito.

Ang isang transaksyon ay idaragdag sa ledger kung ito ay:

  • may bisa sa kontrata
  • nilagdaan ng lahat ng kinakailangang kalahok
  • ay hindi naglalaman ng dobleng paggastos

Ginagamit ng Corda ang modelong UTXO (unspent transaction output), kung saan ang bawat estado ng ledger ay hindi nababago.

Kapag nalikha ang isang transaksyon, ang estado ng output ng nakaraang transaksyon (sa pamamagitan ng hash at index) ay ililipat sa input.

Corda - open source blockchain para sa negosyo
Ikot ng buhay ng transaksyon:

  • Paglikha (Sa ngayon, ang transaksyon ay isang panukala lamang upang i-update ang ledger)
  • Mangolekta ng mga lagda (Inaprubahan ng mga kinakailangang partido sa transaksyon ang panukala sa pag-update sa pamamagitan ng pagdaragdag ng lagda sa transaksyon)
  • Mag-commit ng transaksyon sa ledger

Kapag naidagdag na ang isang transaksyon sa ledger, ang mga estado ng input ay mamarkahan bilang historikal at hindi magagamit sa mga transaksyon sa hinaharap.

Corda - open source blockchain para sa negosyo
Bilang karagdagan sa mga estado ng input at output, ang isang transaksyon ay maaaring maglaman ng:

  • Mga utos (parameter ng transaksyon na nagsasaad ng layunin ng transaksyon)
  • Mga Attachment (kalendaryo ng holiday, currency converter)
  • Mga palugit ng oras (panahon ng bisa)
  • Notaryo (Notaryo, mga espesyal na kalahok sa network na nagpapatunay ng mga transaksyon)

Corda - open source blockchain para sa negosyo

Kontrata

Kapag pinag-uusapan natin ang bisa ng transaksyon, ibig sabihin hindi lamang ang pagkakaroon ng kinakailangang mga lagda, kundi pati na rin ang bisa ng kontraktwal. Ang bawat transaksyon ay nauugnay sa isang kontrata na tumatanggap nito at nagpapatunay sa mga estado ng input at output. Ang isang transaksyon ay itinuturing na wasto lamang kung ang lahat ng mga estado nito ay wasto.

Ang mga kontrata sa Corda ay nakasulat sa anumang wikang JVM (halimbawa, Java, Kotlin).

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

Kinakailangang magmana mula sa isang klase Kontrata at i-override ang pamamaraan patunayan. Kung ang transaksyon ay hindi wasto, ang isang pagbubukod ay itatapon.

Ang pagpapatunay ng transaksyon ay dapat na deterministiko, i.e. dapat palaging tanggapin o tanggihan ng kontrata ang transaksyon. Kaugnay nito, ang bisa ng transaksyon ay hindi maaaring depende sa oras, mga random na numero, mga file ng host, atbp.

Sa Corda, ang mga kontrata ay isinasagawa sa isang tinatawag na sandbox - isang bahagyang binagong JVM na ginagarantiyahan ang tiyak na pagpapatupad ng mga kontrata.

Mga Stream

Upang i-automate ang komunikasyon sa pagitan ng mga node ng network, idinagdag ang mga thread.

Ang daloy ay isang pagkakasunud-sunod ng mga hakbang na nagsasabi sa isang node kung paano magsagawa ng isang partikular na pag-update ng ledger at kung anong punto ang transaksyon ay kailangang lagdaan at patunayan.

Corda - open source blockchain para sa negosyo

Minsan tumatagal ng mga oras, araw hanggang sa mapirmahan ng lahat ng partido ang transaksyon at makapasok sa ledger. Ano ang mangyayari kung idiskonekta mo ang isang node na kalahok sa isang transaksyon? Ang mga thread ay may mga checkpoint, kung saan ang estado ng thread ay nakasulat sa database ng node. Kapag ang isang node ay naibalik sa network, ito ay magpapatuloy kung saan ito tumigil.

Pinagkasunduan

Upang makapasok sa ledger, ang isang transaksyon ay dapat umabot sa 2 consensuses: validity at uniqueness.

Ang desisyon tungkol sa bisa ng isang transaksyon ay ginawa lamang ng mga partidong direktang kasangkot dito.

Sinusuri ng mga notary node ang transaksyon para sa pagiging natatangi at maiwasan ang dobleng paggastos.

Isipin natin na si Bob ay may $100 at gustong maglipat ng $80 kay Charlie at $70 kay Dan gamit ang parehong input state.

Corda - open source blockchain para sa negosyo

Hindi ka papayagan ni Corda na gawin ang ganoong trick. Bagama't ang transaksyon ay papasa sa validity check, ang uniqueness check ay mabibigo.

Konklusyon

Ang platform ng Corda, na binuo ng R3 blockchain consortium, ay hindi isang purong kaso ng paggamit para sa teknolohiya ng blockchain. Ang Corda ay isang napaka-espesyal na tool para sa mga institusyong pampinansyal.

Pinagmulan: www.habr.com

Magdagdag ng komento