Corda — open source blockchain for business

Corda er et distribuert hovedbok for lagring, styring og synkronisering av finansielle forpliktelser mellom ulike finansinstitusjoner.
Corda — open source blockchain for business
Corda har ganske god dokumentasjon med videoforelesninger som kan finnes her. Jeg skal prĂžve Ă„ kort beskrive hvordan Corda er bygget opp.

La oss se pÄ de viktigste funksjonene ved Corda og dens unike egenskaper blant andre blokkjeder:

  • Corda har ingen egen kryptovaluta.
  • Corda bruker ikke konseptet med gruvedrift og Proof-of-Work-systemet.
  • DataoverfĂžring skjer kun mellom deltakerne i transaksjonen/kontrakten. Det finnes ingen global broadcast til alle noder i nettverket.
  • Det finnes ingen sentral kontroller som styrer alle transaksjonene.
  • Corda stĂžtter ulike konsensusmekanismer.
  • Konsensus oppnĂ„s mellom deltakerne pĂ„ nivĂ„et av en individuell avtale/kontrakt, og ikke pĂ„ nivĂ„et til hele systemet.
  • Transaksjonen bekreftes kun av deltakerne som er relevante for den.
  • Corda tilbyr en direkte forbindelse mellom formelt juridisk sprĂ„k og koden i smarte kontrakter.

Hovedboken

Begrepet hovedbok i Corda er subjektivt. Det finnes ingen enkelt sentral datalager. I stedet opprettholder hver node en individuell database med faktakunnskap.

For eksempel, forestill deg et nettverk med 5 noder, hvor sirkelen er et faktum kjent for noden.

Corda — open source blockchain for business

Som vi ser, vet Ed, Carl og Demi om faktum 3, mens Alice og Bob ikke engang mistenker det. Corda garanterer bevaring av felles fakta i hver nodens database, og dataene vil vĂŠre identiske.

Stater

En stat er en uendret objekt som representerer et faktum kjent for en eller flere noder i nettverket pÄ et bestemt tidspunkt.

Stater kan lagre vilkÄrlige data, for eksempel aksjer, obligasjoner, lÄn, identifikasjonsinformasjon.

For eksempel representerer fþlgende stat en IOU – en avtale om at Alice skylder Bob et belþp X:

Corda — open source blockchain for business
Livssyklusen til et faktum over tid er representert ved en sekvens av stater. NÄr det er nÞdvendig Ä oppdatere den nÄvÊrende staten, oppretter vi en ny, og den nÄvÊrende merkes som historisk.

Corda — open source blockchain for business

Transaksjoner

Transaksjoner er forslag om Ä oppdatere hovedboken. De sendes ikke til alle deltakerne i hovedboken og er kun tilgjengelige for de deltakerne i nettverket som har lovlig rett til Ä se og hÄndtere dem.

En transaksjon vil bli lagt til i hovedboken hvis den:

  • kontraktent gyldig
  • signert av alle nĂždvendige deltakere
  • inneholder ikke dobbelte utgifter (double-spends)

Corda bruker UTXO-modellen (unspent transaction output), der hver tilstand av ledger-en er uforanderlig.

Ved opprettelse sendes output-tilstanden fra den forrige transaksjonen til inngangen (via hash og indeks).

Corda — open source blockchain for business
Transaksjonens livssyklus:

  • Opprettelse (I Ăžyeblikket er transaksjonen kun et forslag til oppdatering av ledger-en)
  • Innsamling av signaturer (NĂždvendige deltakere i transaksjonen godkjenner forslaget om oppdatering ved Ă„ legge til signaturen til transaksjonen)
  • Forpliktelse av transaksjonen til ledger

Etter at transaksjonen er lagt til ledger-en, blir inngangstilstandene merket som historiske og kan ikke brukes i fremtidige transaksjoner.

Corda — open source blockchain for business
I tillegg til inngangs- og utgangstilstander kan en transaksjon inneholde:

  • Kommandoer (transaksjonsparameter som angir mĂ„let for transaksjonen)
  • Vedlegg (kalender for helligdager, valutakonverterer)
  • Tidsvinduer (gyldighetsperiode)
  • Notarius (Notary, spesielle deltakere i nettverket som validerer transaksjoner)

Corda — open source blockchain for business

Kontrakter

NÄr vi snakker om validiteten av en transaksjon, mener vi ikke bare at nÞdvendige signaturer er til stede, men ogsÄ validiteten i henhold til kontrakten. Hver transaksjon er knyttet til en kontrakt som aksepterer den og validerer inngangs- og utgangstilstandene. En transaksjon anses som gyldig kun hvis alle dens tilstander er gyldige.

Kontrakter i Corda er skrevet i hvilket som helst JVM-sprÄk (for eksempel Java, Kotlin).

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

Det mÄ arves fra klassen Contract og metoden mÄ overstyres verify. I tilfelle av ugyldig transaksjon, mÄ et unntak kastet.

Validering av transaksjoner mÄ vÊre deterministisk, det vil si at kontrakten alltid mÄ enten godta eller avvise transaksjonen. Derfor kan ikke validiteten av transaksjonen avhenge av tid, tilfeldige tall, nodesystemfiler osv.

I Corda kjþres kontrakter i det som kalles en sandkasse — en litt modifisert JVM som garanterer deterministisk avvikling av kontrakter.

TrÄder

For Ă„ automatisere kommunikasjonen mellom nettverksnoder, ble strĂžmmer lagt til.

En strÞm er en sekvens av trinn som informerer noden om hvordan man skal utfÞre en spesifikk oppdatering av ledger-en, nÄr det er nÞdvendig Ä signere og validere transaksjonen.

Corda — open source blockchain for business

Noen ganger tar det timer, dager fÞr transaksjonen er signert av alle parter og havner i ledgeren. Hva skjer hvis noden som deltar i transaksjonen blir frakoblet? StrÞmmer har kontrollpunkter der strÞmtilstandene lagres i nodens database. NÄr noden gjenopprettes i nettverket, vil den fortsette fra der den stoppet.

Konsensus

For Ä komme i ledgeren mÄ transaksjonen oppnÄ 2 konsenser: for gyldighet og for unikhet.

Beslutningen om gyldigheten av transaksjonen tas kun av de partene som er direkte involvert.

Notarius noder utfĂžrer kontroll av transaksjonen for unikhet og forhindrer dobbelbruk.

La oss si at Bob har 100$, og han vil overfĂžre 80$ til Charlie og 70$ til Dan, ved Ă„ bruke den samme inngangstilstanden.

Corda — open source blockchain for business

Slikt triks vil Corda ikke tillate. Selv om transaksjonen vil bestÄ gyldighetskontrollen, vil kontrollen for unikhet feile.

Konklusjon

Corda-plattformen, utviklet av blokkjedekonsortiet R3, er ikke et rent eksempel pÄ bruk av blokkjedeteknologi. Corda er et tilstrekkelig spesialisert verktÞy for finansorganisasjoner.

Kilde: habr.com

KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere đŸ”„ KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster