Corda – open source-blockkedja för företag

Corda Àr en distribuerad Ledger för lagring, hantering och synkronisering av finansiella förpliktelser mellan olika finansiella organisationer.
Corda – open source-blockkedja för företag
Corda har tillrÀckligt bra dokumentation med video-förelÀsningar som gÄr att hitta hÀr. Jag ska försöka kort beskriva hur Corda fungerar internt.

LÄt oss titta pÄ de huvudsakliga egenskaperna hos Corda och dess unikhet bland andra blockkedjor:

  • Corda har ingen egen kryptovaluta.
  • Corda anvĂ€nder inte konceptet med mining och Proof-of-Work-system.
  • Dataöverföring sker endast mellan deltagarna i transaktionen/kontraktet. Det finns ingen global broadcasting till alla noder i nĂ€tverket.
  • Det finns ingen central controller som styr alla transaktioner.
  • Corda stödjer olika konsensusmekanismer.
  • Konsensus nĂ„s mellan deltagarna pĂ„ nivĂ„n av enskild överenskommelse/kontrakt, snarare Ă€n pĂ„ systemets nivĂ„.
  • Transaktionen bekrĂ€ftas endast av de deltagare som berörs av den.
  • Corda erbjuder en direkt koppling mellan formellt mĂ€nskligt juridiskt sprĂ„k och kod av smarta kontrakt.

Ledger

Begreppet ledger i Corda Àr subjektivt. Det finns inget enhetligt centralt datalager. IstÀllet stödjer varje nod en separat databas av kÀnda fakta.

TÀnk dig till exempel ett nÀtverk med 5 noder, dÀr cirkeln Àr ett faktum som Àr kÀnt för noden.

Corda – open source-blockkedja för företag

Som vi ser vet Ed, Carl och Demi om faktum 3, medan Alice och Bob inte ens misstÀnker det. Corda garanterar att gemensamma fakta bevaras i varje nods databas, och att data Àr identiska.

TillstÄnd

Ett tillstÄnd Àr en oförÀnderlig objekt som representerar ett faktum som Àr kÀnt för en eller flera noder i nÀtverket vid en viss tidpunkt.

TillstÄnd kan lagra godtycklig information, som aktier, obligationer, lÄn och identifikationsinformation.

Till exempel representerar följande tillstĂ„nd ett IOU – en överenskommelse om att Alice Ă€r skyldig Bob beloppet X:

Corda – open source-blockkedja för företag
Livscykeln för ett faktum över tid representeras av en sekvens av tillstÄnd. NÀr det Àr nödvÀndigt att uppdatera det aktuella tillstÄndet, skapar vi ett nytt, och det aktuella mÀrks som historiskt.

Corda – open source-blockkedja för företag

Transaktioner

Transaktioner Àr förslag för att uppdatera ledgern. De sÀnds inte till alla deltagare i ledgern och Àr tillgÀngliga endast för de nÀtverksdeltagare som har laglig rÀtt att se och hantera dem.

En transaktion kommer att lÀggas till i ledgern om den Àr:

  • kontraktsmĂ€ssigt giltig
  • undertecknad av alla nödvĂ€ndiga deltagare
  • innehĂ„ller inga dubbla spenderingar (double-spends)

Corda anvÀnder UTXO-modellen (unspent transaction output), dÀr varje tillstÄnd av ledger Àr oförÀnderligt.

Vid skapande överförs previous transactions output state (genom hash och index) som input till transaktionen.

Corda – open source-blockkedja för företag
Livscykeln för en transaktion:

  • Skapande (just nu Ă€r transaktionen bara ett förslag till en uppdatering av ledger)
  • Samla in underskrifter (de nödvĂ€ndiga deltagarna godkĂ€nner förslaget till uppdatering genom att lĂ€gga till sin underskrift pĂ„ transaktionen)
  • Commit av transaktionen till ledger

Efter att transaktionen har lagts till i ledger, markeras ingÄende tillstÄnd som historiska och kan inte anvÀndas i framtida transaktioner.

Corda – open source-blockkedja för företag
Utöver ingÄende och utgÄende tillstÄnd kan transaktionen innehÄlla:

  • Kommandon (transaktionsparameter som anger mĂ„let för transaktionen)
  • Bifogningar (kalender för helgdagar, valutasystem)
  • Tidsfönster (aktualitetsperiod)
  • Notarius (Notary, sĂ€rskilda deltagare i nĂ€tverket som validerar transaktioner)

Corda – open source-blockkedja för företag

Kontrakt

NÀr vi talar om transaktionens giltighet, avser vi inte bara att nödvÀndiga underskrifter finns, utan ocksÄ giltighet enligt kontrakt. Varje transaktion Àr kopplad till ett kontrakt som accepterar och validerar ingÄende och utgÄende tillstÄnd. Transaktionen anses vara giltig endast om alla dess tillstÄnd Àr giltiga.

Kontrakt i Corda kan skrivas pÄ valfritt JVM-sprÄk (t.ex. Java, Kotlin).

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

MĂ„ste Ă€rva frĂ„n klassen Contract och skriva över metoden — körning av tester av den resulterande konfigurationen med hjĂ€lp av. Vid ogiltighet av transaktionen ska ett undantag kastas.

Valideringen av transaktioner mÄste vara deterministisk, dvs. kontraktet ska alltid antingen acceptera eller avvisa transaktionen. DÀrför kan transaktionens giltighet inte bero pÄ tid, slumpmÀssiga tal, nodens filer i nÀtverket, osv.

I Corda körs kontrakt i en sÄ kallad sandlÄda - en nÄgot modifierad JVM som garanterar deterministisk körning av kontrakt.

TrÄdar

För att automatisera kommunikationen mellan nÀtverksnoder har flöden lagts till.

Ett flöde Àr en sekvens av steg som instruerar en nod hur man utför en specifik uppdatering av ledger, nÀr det Àr dags att skriva under och validera transaktionen.

Corda – open source-blockkedja för företag

Ibland tar det timmar eller dagar för en transaktion att signeras av alla parter och hamna i ledger. Vad hÀnder om noden som deltar i transaktionen stÀngs av? Strömmar har kontrollpunkter dÀr strömmens tillstÄnd sparas i nodens databas. Vid ÄterstÀllning av noden i nÀtverket fortsÀtter den frÄn dÀr den slutade.

Konsensus

För att hamna i ledger mÄste transaktionen uppnÄ 2 konsensus: för giltighet och för unikt.

Beslutet om huruvida en transaktion Àr giltig fattas endast av de parter som Àr direkt involverade i den.

Notarie-noder kontrollerar transaktionen för unikhet och förhindrar dubbelutgifter.

LÄt oss sÀga att Bob har 100$ och han vill överföra 80$ till Charlie och 70$ till Dan, med hjÀlp av samma ingÄngstillstÄnd.

Corda – open source-blockkedja för företag

En sĂ„dan trick Ă€r Corda inte kapabel till. Även om transaktionen klarar giltighetskontrollen, kommer unikhetskontrollen att misslyckas.

Slutsats

Corda-plattformen, utvecklad av blockchain-konsortiet R3, Àr inte ett rent exempel pÄ anvÀndning av blockchain-teknologi. Corda Àr ett tillrÀckligt specialiserat verktyg för finansorganisationer.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster