Corda - blockchain med öppen källkod för företag

Corda är en distribuerad Ledger för lagring, hantering och synkronisering av finansiella förpliktelser mellan olika finansiella organisationer.
Corda - blockchain med öppen källkod för företag
Corda har ganska bra dokumentation med videoföreläsningar som går att hitta här. Jag ska försöka kortfattat beskriva hur Corda fungerar inuti.

Låt oss titta på huvuddragen hos Corda och dess unika bland andra blockkedjor:

  • Corda har ingen egen kryptovaluta.
  • Corda använder inte konceptet gruvdrift och Proof-of-Work-systemet.
  • Dataöverföring sker endast mellan parter i transaktionen/avtalet. Det finns ingen global sändning till alla nätverksnoder.
  • Det finns ingen central controller som hanterar alla transaktioner.
  • Corda stöder olika konsensusmekanismer.
  • Samförstånd uppnås mellan deltagare på nivån för ett individuellt avtal/kontrakt, och inte på nivån för hela systemet.
  • En transaktion bekräftas endast av de deltagare som är relaterade till den.
  • Corda erbjuder en direkt koppling mellan formellt mänskligt juridiskt språk och smart avtalskod.

Bokboken

Begreppet reskontra i Corda är subjektivt. Det finns inget centralt datalager. Istället upprätthåller varje nod en separat databas med fakta som den känner till.

Föreställ dig till exempel ett nätverk av 5 noder, där en cirkel är ett faktum som noden känner till.

Corda - blockchain med öppen källkod för företag

Som vi kan se vet Ed, Carl och Demi om fakta 3, men Alice och Bob är inte ens medvetna om det. Corda garanterar att vanliga fakta lagras i databasen för varje nod, och att data kommer att vara identiska.

stater

Staten är oföränderlig ett objekt som representerar ett faktum som är känt för en eller flera nätverksnoder vid en viss tidpunkt.

Stater kan lagra godtyckliga data, till exempel aktier, obligationer, lån, identifieringsinformation.

Till exempel representerar följande stat en IOU – ett avtal om att Alice är skyldig Bob ett belopp på X:

Corda - blockchain med öppen källkod för företag
Ett faktums livscykel över tid representeras av en sekvens av tillstånd. När det är nödvändigt att uppdatera den nuvarande statusen skapar vi en ny och markerar den nuvarande som historisk.

Corda - blockchain med öppen källkod för företag

Transaktioner

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

En transaktion läggs till i reskontran om den:

  • avtalsenligt giltigt
  • undertecknad av alla nödvändiga deltagare
  • innehåller inte dubbla utgifter

Corda använder modellen UTXO (oanvänd transaktionsutdata), där varje reskontratillstånd är oföränderligt.

När en transaktion skapas överförs utdatatillståndet för den föregående transaktionen (genom hash och index) till ingången.

Corda - blockchain med öppen källkod för företag
Transaktionens livscykel:

  • Skapande (för tillfället är transaktionen bara ett förslag för att uppdatera reskontran)
  • Samla in signaturer (Obligatoriska parter i transaktionen godkänner uppdateringsförslaget genom att lägga till en signatur i transaktionen)
  • Bekräfta transaktionen till reskontra

När en transaktion väl har lagts till i reskontran markeras indatatillstånden som historiska och kan inte användas i framtida transaktioner.

Corda - blockchain med öppen källkod för företag
Förutom ingångs- och utdatatillstånd kan en transaktion innehålla:

  • Kommandon (transaktionsparameter som anger syftet med transaktionen)
  • Bilagor (semesterkalender, valutaomvandlare)
  • Tidsfönster (giltighetsperiod)
  • Notarie (notarie, särskilda nätverksdeltagare som validerar transaktioner)

Corda - blockchain med öppen källkod för företag

kontrakt

När vi talar om transaktionsgiltighet menar vi inte bara närvaron av nödvändiga signaturer, utan också avtalsgiltighet. Varje transaktion är associerad med ett kontrakt som accepterar det och validerar ingångs- och utdatatillstånden. En transaktion anses giltig endast om alla dess tillstånd är giltiga.

Kontrakt i Corda är skrivna på vilket JVM-språk som helst (till exempel Java, Kotlin).

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

Det är nödvändigt att ärva från en klass Kontrakt och åsidosätt metoden verifiera. Om transaktionen är ogiltig kommer ett undantag att skapas.

Transaktionsvalidering måste vara deterministisk, d.v.s. avtalet måste alltid antingen acceptera eller förkasta transaktionen. I samband med detta kan transaktionens giltighet inte bero på tid, slumptal, värdfiler etc.

I Corda utförs kontrakt i en så kallad sandlåda – en något modifierad JVM som garanterar deterministisk utförande av kontrakt.

Strömmar

För att automatisera kommunikationen mellan nätverksnoder lades trådar till.

Ett flöde är en sekvens av steg som talar om för en nod hur den ska utföra en specifik reskontrauppdatering och vid vilken tidpunkt transaktionen måste signeras och valideras.

Corda - blockchain med öppen källkod för företag

Ibland tar det timmar, dagar innan transaktionen är undertecknad av alla parter och hamnar i reskontran. Vad händer om du kopplar bort en nod som deltar i en transaktion? Trådar har kontrollpunkter, där tillståndet för tråden skrivs till nodens databas. När en nod återställs till nätverket fortsätter den där den slutade.

Konsensus

För att komma in i reskontran måste en transaktion nå 2 konsensus: giltighet och unikhet.

Beslutet om giltigheten av en transaktion fattas endast av de parter som är direkt involverade i den.

Notarius noder kontrollerar transaktionens unika karaktär och förhindrar dubbla utgifter.

Låt oss föreställa oss att Bob har $100 och vill överföra $80 till Charlie och $70 till Dan med samma inmatningsläge.

Corda - blockchain med öppen källkod för företag

Corda kommer inte att tillåta dig att göra ett sådant trick. Även om transaktionen kommer att klara giltighetskontrollen misslyckas unikhetskontrollen.

Slutsats

Corda-plattformen, utvecklad av R3 blockchain-konsortiet, är inte ett rent användningsfall för blockchain-teknik. Corda är ett mycket specialiserat verktyg för finansiella institutioner.

Källa: will.com

Lägg en kommentar