â Ă«shtĂ« njĂ« Ledger i shpĂ«rndarĂ« pĂ«r ruajtjen, menaxhimin dhe sinkronizimin e detyrimeve financiare midis organizatave tĂ« ndryshme financiare.

Corda ka dokumentacion mjaft të mirë me video-leksione, të cilin mund ta gjeni . Do të përpiqem të përshkruaj shkurtimisht si funksionon Corda brenda.
Le të shqyrtojmë karakteristikat kryesore të Corda dhe unikësinë e tij në mesin e blockchain-ëve të tjerë:
- Corda nuk ka një kriptovalutë të vetën.
- Corda nuk përdor konceptin e minierës dhe sistemin Proof-of-Work.
- Transferimi i të dhënave ndodh vetëm mes pjesëmarrësve të transaksionit/kontratës. Nuk ka një transmetim global për të gjitha nyjat e rrjetit.
- Nuk ka një kontrollues qendror që menaxhon të gjitha transaksionet.
- Corda mbështet mekanizma të ndryshëm konsensusi.
- Konsensusi arrihet mes pjesëmarrësve në nivelin e marrëveshjes/kontratës, dhe jo në nivelin e sistemit tërësor.
- Transaksioni konfirmohet vetëm nga pjesëmarrësit që i përkasin atij.
- Corda ofron një lidhje të drejtpërdrejtë midis gjuhës juridike të njohur njerzore dhe kodit të kontratave të mençura.
Ledger-i
Koncepci i ledger-it në Corda është subjektiv. Nuk ka një depo qendrore të dhënash. Në vend të kësaj, çdo nyje mbështet një bazë të dhënash të veçanta të fakteve që i janë të njohura.
Për shembull, imagjinoni një rrjet prej 5 nyjesh, ku rrethi është një fakt i njohur për nyjen.

Siç e shohim, Ed, Carl dhe Demi dinë për faktin 3, ndërsa Alice dhe Bob nuk e kanë as idenë. Corda garanton ruajtjen e fakteve të zakonshme në bazën e çdo nyjeje, dhe të dhënat do të jenë identike.
Shtetet
Shteti â Ă«shtĂ« i pandryshueshĂ«m objekt, qĂ« pĂ«rfaqĂ«son njĂ« fakt tĂ« njohur pĂ«r njĂ« ose disa nyje tĂ« rrjetit nĂ« njĂ« moment tĂ« caktuar.
Shtetet mund të ruajnë të dhëna të rastësishme, për shembull, aksione, obligacione, kredi, informacion identifikimi.
PĂ«r shembull, gjendja e mĂ«poshtme pĂ«rfaqĂ«son njĂ« IOU â njĂ« marrĂ«veshje se si Alice i detyrohet Bob-it shumĂ«n X:

Cikli i jetës së një fakti me kalimin e kohës përfaqësohet nga një sërë shtetesh. Kur është e nevojshme të përditësohet gjendja aktuale, krijojmë një të re, ndërsa aktualja e etiketojmë si historike (historic).

Transaksionet
Transaksionet janë propozuar për përditësimin e ledger-it. Ato nuk transmetohen të gjithë pjesëmarrësve të ledger-it dhe janë të aksesueshme vetëm për ata pjesëmarrës të rrjetit që kanë të drejta legjitime për t'i parë dhe menaxhuar.
Transaksioni do të shtohet në ledger nëse ai:
- është kontraktualisht i vlefshëm
- është nënshkruar nga të gjithë pjesëmarrësit e nevojshëm
- nuk përmban shpenzime të dyfishta (double-spends)
Corda përdor modelin UTXO (output i transaksionit të papërdorur), ku çdo gjendje e ledger-it është e pandryshueshme.
Kur krijohet, transaksioni merr gjendjen e output-it të transaksionit të mëparshëm (përmes hash-it dhe indeksit).

Cikli i jetës së transaksionit:
- Krijimi (Në këtë moment, transaksioni është thjesht një propozim për përmirësimin e ledger-it)
- Marrja e nënshkrimeve (Pjesëmarrësit e nevojshëm të transaksionit miratojnë propozimin për përmirësim duke shtuar nënshkrimin në transaksion)
- Angazhimi i transaksionit në ledger
Pas shtimit të transaksionit në ledger, gjendjet hyrëse shënoheshin si historike dhe nuk mund të përdoren në transaksionet e ardhshme.

Përveç gjendjeve hyrëse dhe dalëse, transaksioni mund të përmbajë:
- Komanda (parametri i transaksionit që tregon qëllimin e transaksionit)
- Shkarkime (kalendari i festave, konvertuesi i monedhave)
- Dritare kohore (periudha e vlefshmërisë)
- Notari (Notary, pjesëmarrës të veçantë të rrjetit që validon transaksionet)

Kontratat
Kur flasim pĂ«r vlefshmĂ«rinĂ« e transaksionit, nĂ«nkuptojmĂ« jo vetĂ«m praninĂ« e nĂ«nshkrimeve tĂ« nevojshme, por edhe vlefshmĂ«rinĂ« nĂ« lidhje me kontratĂ«n. Ădo transaksion Ă«shtĂ« i lidhur me njĂ« kontratĂ« qĂ« e pranon dhe validon gjendjet hyrĂ«se dhe dalĂ«se. NjĂ« transaksion konsiderohet i vlefshĂ«m vetĂ«m nĂ«se tĂ« gjitha gjendjet e tij janĂ« tĂ« vlefshme.
Kontratat në Corda shkruhen në çdo gjuhë JVM (p.sh. Java, Kotlin).
class CommercialPaper : Contract {
override fun verify(tx: LedgerTransaction) {
TODO()
}
}
Duhet të trashëgohet nga klasa Contract dhe të kalojë metoden verify. Në rast të një transaksioni të pavlefshëm, do të hidhet një përjashtim.
Validimi i transaksioneve duhet të jetë deterministik, domethënë kontrata gjithmonë duhet të pranojë ose refuzojë transaksionin. Në këtë mënyrë, vlefshmëria e transaksionit nuk mund të varet nga koha, numra të rastësishëm, skedarë të nodit të rrjetit dhe të tjera.
NĂ« Corda kontratat ekzekutohen nĂ« atĂ« qĂ« quhet Sandbox â njĂ« version i modifikuar i JVM qĂ« garanton ekzekutimin deterministik tĂ« kontratave.
Fluxet
Për të automatizuar komunikimin midis nodave të rrjetit, janë shtuar fluxet.
Fluksi është një seri hapash që i tregon nodit se si të realizojë një përditësim të caktuar të ledger-it, në cilin moment duhet të nënshkruhet dhe të validohen transaksioni.

NdonjĂ«herĂ« kĂ«rkohen orĂ«, ditĂ« derisa transaksioni tĂ« nĂ«nshkruhet nga tĂ« gjitha palĂ«t dhe tĂ« kalojĂ« nĂ« ledger. ĂfarĂ« do tĂ« ndodhte nĂ«se do tĂ« çaktivizohej nyja qĂ« merr pjesĂ« nĂ« transaksion? Fluxet kanĂ« pika kontrolli, ku gjendjet e fluxit shkruhen nĂ« bazĂ«n e tĂ« dhĂ«nave tĂ« nyjĂ«s. Kur nyja ridimensionohet nĂ« rrjet, ajo do tĂ« vazhdojĂ« nga pika ku u ndal.
Konsensusi
Për të kaluar në ledger, transaksioni duhet të arrijë 2 konsensuse: për vlefshmërinë dhe për unikalisht.
Vendimi për vlefshmërinë e transaksionit merret vetëm nga palët e përfshira drejtpërdrejt në të.
Nyjat notariale kryejnë verifikimin e transaksionit për unikalisht, duke parandalizuar shpenzimet e dyfishta.
Le të imagjinojmë se Bob ka 100$, dhe ai dëshiron t'i transferojë 80$ Charlie-t dhe 70$ Dan-it, duke përdorur të njëjtin gjendje hyrëse.

Një hile e tillë Corda nuk do të lejojë të realizohet. Edhe pse transaksioni do të kalojë verifikimin për vlefshmërinë, verifikimi për unikalisht do të dështojë.
Përfundim
Platforma Corda, zhvilluar nga konsorciumi blockchain R3, nuk është një shembull i pastër i përdorimit të teknologjisë blockchain. Corda është një mjet mjaft i specializuar për organizatat financiare.
Burimi: habr.com
