Delivery versus payment on a blockchain PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Dostava proti plačilu na blockchain

Kako lahko verige blokov rešijo najstarejši problem v knjigi

Trgovanje med ljudmi je staro toliko kot človeštvo samo. Začelo se je v trenutku, ko je jamski človek Ogg rekel jamskemu človeku Ugg: "Jaz ti dam kamen, ti meni jagode". Toda trgovanje nosi s seboj temeljni problem: zahteva zaupate. Kaj preprečuje Ogg-u, da s kamenjem udari Ugga in nato zgrabi oba kamna in jagode pred begom? Kako ustni dogovor o izmenjavi prevedemo v izvršilni mehanizem, ki zagotavlja, da obe strani držita besedo?

Če vzamem sodoben primer, pred nekaj leti sem prodal avto na trgu rabljenih vozil. Preko interneta sem našel kupca, osebno sva se srečala, dal je avto na test in dogovorila sva se za ceno. Zato je šel na svojo banko po blagajniški ček, ki je dejansko gotovina v bolj kompaktni obliki. Skupaj sva šla do pošte, kjer lahko podpišem in oddam uradni vladni obrazec, ki prenaša pravno lastništvo avtomobila.

In tako stojiva pred poštnim okencem in zaideva v nerodno slepo ulico. Ček je še vedno v njegovem žepu, jaz pa držim podpisan obrazec. Spoznala sva se pred nekaj urami in nimava razloga, da bi si zaupala. Ali najprej oddam obrazec, potem pa upam, da mi bo dal ček, namesto da pobegnem? Ali pa mi izroči ček in potem upa, da ga dam v obrazec? Kakor koli že, nekdo se izpostavlja tveganju izdaje.

In potem se mi je posvetilo, da naj neham skrbeti in kar oddam obrazec. Zakaj? Ker se lahko zgodi ena od dveh stvari. Ali mi kupec izroči ček, v tem primeru so vsi zadovoljni in zamenjava je končana. Kaj pa, če namesto tega pobegne? V tem primeru bo poštni uradnik videl in raztrgal obrazec, ki sem mu ga pravkar dal. Bingo, imamo varno menjavo.

Ste videli, kaj se je tam zgodilo? Našo dilemo smo rešili s pomočjo posrednika, v tem primeru poštnega uradnika. Uslužbenec zagotovi, da se transakcija opravi pošteno ali da transakcije sploh ni. In te storitve ne more zagotoviti kateri koli posrednik. To mora biti nekdo, ki mu obe strani zaupata. V primeru uslužbenca državne pošte je to posledica našega zaupanja v samo vlado. Če bi bilo mogoče podkupiti poštne uslužbence, bi jaz ali kupec lahko ustvarili situacijo, ko bi imeli na koncu gotovino in avto. Dejansko v državah, lahko takšna korupcija močno zmanjša blaginjo.

Jamski ljudje in avtomobili so ena stvar, vendar se osredotočimo na finančni svet, v katerem ima trgovanje pomembno vlogo. osrednjo vlogo. Banke seveda ne plačujejo svojih uslužbencev, da bežijo s tujimi delnicami. Toda varna menjava finančnih sredstev ostaja pomemben problem, saj obstajajo manj karikaturalni načini, na katere udeleženci v transakciji lahko ne izpolnijo svoje obljube. Na primer, ena stranka lahko postane insolventna ali pa ji nenadna sprememba tržnih pogojev prepreči zavarovanje sredstva. Lahko trpijo zaradi pisnih napak ali zaradi posrednih učinkov računovodske goljufije pri drugi nasprotni stranki.

Kot rezultat teh "tveganja poravnave«, se večina finančnih transakcij poravna z uporabo dostava v primerjavi s plačilom (DvP). To je samo modni izraz za zgoraj opisan postopek pošte. DvP zagotavlja, da lahko druga stranka obdrži sredstvo, ki ga je ponudila v zameno, če ena stranka v transakciji ne izpolni obljubljenega.

In kako je dostava proti plačilu implementirana v svetu financ? Uganili ste, prek zaupanja vrednih posrednikov. To so lahko druge banke, klirinške hiše oz centralni depozitarji vrednostnih papirjev. Ker se večina današnjih poslov odvija digitalno, ne gre za upravljanje prenosa fizičnih potrdil ali gotovine. Namesto tega se DvP doseže tako, da posrednik hkrati posodablja številne zapise v svoji bazi podatkov in/ali posreduje navodila drugim institucijam.

Dostava proti plačilu z blockchainom

Govor o bazah podatkov nas lepo pripelje do teme verig blokov. Blockchain omogoča skupno rabo in sinhronizacijo glavne knjige ali baze podatkov med številnimi strankami. Vendar pa lahko za razliko od običajnih baz podatkov baze podatkov blockchain varno in neposredno spreminja več uporabnikov, tudi če so med seboj v hudi konkurenci. Če delate v podjetjih IT, boste morda želeli razmisliti o posledicah tega stavka.

Da bi razumeli, kako dostava proti plačilu deluje v verigi blokov, moramo začeti z razumevanjem transakcijskega modela bitcoina. Tu je treba opozoriti, da druge zasnove verige blokov uporabljajo drugačen model za transakcije, o teh razlikah pa bomo več govorili kasneje.

Transakcija z bitcoinom ima niz vhodov in izhodov. Vsak vhod je povezan z enim izhodom prejšnje transakcije, pri čemer teče ves bitcoin iz prejšnjega izhoda. Bitcoin v vhodih transakcije se nato prerazporedi po njenih izhodih glede na količine, zapisane znotraj. Poleg tega vsak izhod transakcije vsebuje javni identifikator svojega novega lastnika, za katerega ima lastnik ustrezen zasebni ključ. Transakcija z bitcoinom je veljavna le, če:

  • Skupna količina bitcoina v vhodih transakcije je večja ali enaka količini, zapisani v njenih izhodih. Vsako razliko pobere kot provizijo »rudar«, ki potrdi transakcijo v bloku, s čimer ustvari tržni mehanizem, s katerim lahko transakcije licitirajo za potrditev.
  • Transakcijo odobrijo lastniki vsakega predhodnega izhoda, ki ga ta transakcija »porabi«. Ta odobritev je izražena s kriptografskim podpisom vsebine nove transakcije. Podpis za predhodni izhod je mogoče ustvariti le z uporabo zasebnega ključa, ki se ujema z njegovim javnim identifikatorjem.

Obe pravili sta ključni v finančni knjigi, ki si jo delijo stranke, ki ne zaupajo. Brez prvega bi lahko vsak ustvaril bitcoine iz nič. In brez drugega bi lahko vsi porabili bitcoine vseh drugih. Potrebujemo pa tudi tretje pravilo, ki se uveljavlja globalno in ne znotraj posameznih transakcij:

  • Vsak izhod transakcije lahko uporabi samo ena naslednja transakcija. To prepreči napad, znan kot dvojna poraba pri katerem so isti bitcoini poslani več kot enemu prejemniku.

Za uveljavitev tega pravila vsebuje veriga blokov kronološki dnevnik veljavnih transakcij, ki niso v nasprotju med seboj, in ta dnevnik neodvisno preveri vsako vozlišče v omrežju.

Transakcijski model bitcoina je mogoče enostavno razširiti, da predstavlja katero koli finančno sredstvo. Namesto izhoda transakcije, ki vsebuje bitcoine, lahko vsebuje identifikator sredstva in količino. Vsa pravila, ki zajemajo transakcije z bitcoini, še vedno veljajo in udeležencem preprečujejo, da bi (a) ustvarili sredstva iz nič, (b) porabili sredstva drugih ljudi in (c) dvakrat porabili isto sredstvo. Pri sredstvih, ki niso kriptovalute, ponavadi vztrajamo, da so vhodne in izhodne količine natančno uravnotežene, namesto da rudarjem dovolimo, da poberejo razliko.

Kako torej s tem modelom ustvarimo transakcijo varne dostave v primerjavi s plačilom? Recimo, da sta se Alice in Bob dogovorila, da bosta Alicinih 10 funtov zamenjala za Bobovih 15 dolarjev. Zaradi udobja bomo predpostavili, da ima Alice že natanko 10 GBP v izhodu ene same transakcije, Bob pa ima prav tako 15 $. (Če temu ni tako, lahko zlahka preusmerijo svoja sredstva, da bo tako.)

Za začetek vsaka stranka zgradi transakcijo z dvema vhodoma in dvema izhodoma. Oba vhoda porabita predhodne izhode, ki vsebujejo Alicinih 10 £ oziroma Bobovih 15 $. Kar zadeva rezultate, prvi vsebuje Alicin identifikator in 15 $, drugi pa gre Bobu in vsebuje 10 £. Ker sta vhodni in izhodni količini v obeh valutah uravnoteženi, naša transakcija izpolnjuje prvi zgornji pogoj. Za izpolnitev drugega morata tako Alice kot Bob zdaj podpisati transakcijo, saj porabi predhodne izhode, ki pripadajo vsakemu od njiju.

Transakcijo je zdaj mogoče zaključiti z vključitvijo v verigo blokov, vendar moramo še vedno upoštevati problem dvojne porabe. Kaj pa, če bi Alice ustvarila nasprotujočo si transakcijo z izmenjavo istih 10 GBP z drugo nasprotno stranko, ki ji je ponudila boljšo ponudbo? Tukaj pride v poštev tretje pravilo, v katerem veriga blokov zagotavlja, da se lahko vsak izhod porabi samo enkrat. Če se konkurenčna transakcija prenese po Aliceini izmenjavi z Bobom v verigi blokov, preprosto ne bo potrjena. In če je bila konkurenčna transakcija najprej potrjena, Aliceina izmenjava z Bobom namesto tega ne bo uspela. V vsakem primeru veriga blokov zagotavlja dostavo v primerjavi s plačilom za izmenjavo Alice in Boba, pa tudi za katero koli drugo. Če Bob ne dobi Alicinih 10 £, potem Alice ne dobi njegovih 15 $.

Moč delnih transakcij

Blockchains nam torej omogočajo, da se dve strani združita, zgradita in podpišeta menjalno transakcijo ter zagotovita, da kot celota uspe ali ne uspe. To omogoča dostavo v primerjavi s plačilom v skupni knjigi, ne da bi za upravljanje postopka potrebovali zaupanja vrednega posrednika. Rudarji, ki potrjujejo transakcije v blokih, imajo še vedno nekaj moči, vendar je to veliko manj kot tradicionalni posrednik. Najslabše, kar lahko storijo, je, da zavrnejo potrditev določene transakcije v celoti, in to ne krši DvP. Poleg tega, če si rudarjenje delijo stranke, ki dejansko ustvarjajo transakcije, to tveganje popolnoma odpade, saj bo vsak dobil priložnost potrditi svoje.

Zaenkrat je vse v redu. Toda blokovne verige v slogu bitcoina imajo v rokavu več trikov. Spomnimo se, da mora transakcijo podpisati lastnik vsakega predhodnega izhoda, ki ga ta transakcija porabi. Ta podpis privzeto zaklene celoten seznam vhodov in izhodov znotraj transakcije. Kriptografija zagotavlja, da bi že najmanjša sprememba vhoda ali izhoda naredila podpis neveljaven. Če sledimo zgornjemu primeru, če bi Bob zamenjal Carol, potem ko je Alice podpisala transakcijo, bi transakcija popolnoma propadla.

Kaj pa, če Alice ni vseeno, s kom bo opravila izmenjavo? Za večino namenov, zakaj bi ji bilo mar? Razen če je Alice odločena sodelovati posebej z Bobom, jo ​​resnično skrbita le dva dela transakcije. Prvič, dejstvo, da bo porabljenih njenih 10 GBP, ne pa druga količina ali sredstvo. Drugič, da v zameno prejme 15 dolarjev novega rezultata. Dokler je ves denar v sistemu čist, Alice pravzaprav ne moti, od kod izvira teh 15 dolarjev, ali kaj drugega se lahko zgodi, da olajša njeno menjavo.

Morda bo ena stranka prišla s 15 $ in izvedla neposredno zamenjavo za Alicinih 10 £. Morda pa želita Bob in Carol zamenjati le po 7.50 USD. V tem primeru bi transakciji dodali dva vhoda, skupaj z dvema izhodoma, pri čemer bi vsak zbral 5 GBP. Ali pa morda Carol dejansko želi zamenjati 15 dolarjev za 950 rubljev, medtem ko ima Sasha v Moskvi 950 rubljev in išče 10 funtov. V tem primeru lahko pride do 3-smerne izmenjave, pri kateri vsaka stranka še vedno skrbi samo za svoj košček sestavljanke. Transakcija, ki jo je začela Alice, se lahko zaključi na neskončno veliko različnih načinov. Toda z Alicinega vidika vsi ti dosežejo isti namen, da ji dajo 15 dolarjev v zameno za 10 funtov, in vsi jo osrečujejo enako.

Izmenjava scenarijev

Kako blockchain to olajša? Z delnimi transakcijami in delnimi podpisi. Alice začne transakcijo z enim vnosom (njenih 10 £) in enim izhodom (15 $ zanjo). Te dele transakcije zaklene z digitalnim podpisom, ki navaja, da je mogoče dodati poljubno število drugih vhodov ali izhodov. To delno transakcijo preda Bobu in reče "poglej, kaj lahko narediš". Mogoče ga preda tudi Carol in poljubnemu številu drugih potencialnih nasprotnih strank ali graditeljev sindikatov. Vsak od teh lahko doda svoje pare vhodov in izhodov, bodisi za uravnoteženje izmenjave ali za ustvarjanje večje delne transakcije, ki jo je mogoče ponovno predati. Ne glede na to, kaj kdo počne, je transakcijo mogoče izvesti (tj. poravnati s potrditvijo v verigi blokov) šele, ko sta vhodna in izhodna sredstva uravnotežena.

Transakcija blockchain je le kos digitalnih podatkov, zato je te delne transakcije mogoče poslati po e-pošti ali katerem koli drugem komunikacijskem mediju. Lahko so celo javno objavljeni, saj udeleženci morebitne transakcije to vedo blockchain bo poskrbel zanje. Alicin podpis zagotavlja, da bo porabila samo 10 funtov, če ji nekdo v zameno da 15 dolarjev.

Nazadnje, če se Alice odloči onemogočiti ponudbo, mora teh istih 10 GBP porabiti v drugi transakciji, najpreprosteje tako, da jih pošlje nazaj sebi. Ker veriga blokov ne dovoli, da bi se isti rezultat porabil dvakrat, je zaradi tega njena obstoječa delna transakcija brez vrednosti. Vsi drugi udeleženci v verigi blokov bodo to videli in nehali izgubljati čas, da bi dokončali izmenjavo.

Od DvP do pametnih pogodb

Kot sem trdili prej, lahko na verigo blokov v slogu bitcoina gledate kot na način za upravljanje sinhronizacije in varnosti v skupni relacijski bazi podatkov. Tako bitcoin kot transakcije baze podatkov se obravnavajo atomsko, kar pomeni, da uspejo ali ne uspejo kot celota. Ključ do analogije je enakovrednost med izhodom transakcije v verigi blokov in vrstico v bazi podatkov. Transakcija blockchain, ki porabi nekaj izhodov in ustvari nekaj drugih, je enaka transakciji baze podatkov, ki izbriše nekatere vrstice in namesto tega ustvari nekatere druge. (Operacija zbirke podatkov, ki spremeni obstoječo vrstico, je enakovredna brisanju te vrstice in ustvarjanju nove posodobljene na njenem mestu. Ta enakovrednost je osnova priljubljenega MVCC metoda nadzora sočasnosti v bazah podatkov, od katerih lahko blokovne verige v slogu bitcoina vidimo kot porazdeljeno obliko.)

Predstavljajmo si torej, da so naši finančni podatki shranjeni v zbirki podatkov, v kateri vsaka vrstica vsebuje tri informacije: identifikator lastnika, identifikator sredstva in količino sredstva. Blockchain omogoča varno deljenje te knjige med udeleženci, tudi če si sploh ne zaupajo. V jeziku baz podatkov zagotavlja, da:

  • Količine sredstev v vrsticah, ki jih je transakcija izbrisala, se ujemajo s količinami v vrsticah, ki jih ustvari.
  • Za vsako vrstico, ki jo transakcija izbriše (ali spremeni), mora transakcijo podpisati lastnik te vrstice.
  • Če je bila vrstica zbirke podatkov izbrisana z eno transakcijo, to prepreči drugi transakciji, da bi jo znova izbrisala.

Poglejmo prvo od teh pravil, in sicer, da morajo transakcije ohranjati količine sredstev. To lahko razširimo v splošen pojem "transakcijske omejitve". Transakcijska omejitev je v obliki črne škatle, ki vidi dva niza vrstic za vsako transakcijo: (a) vrstice, ki jih transakcija izbriše, (b) vrstice, ki jih ustvari. Naloga črne skrinjice je, da pogleda ta dva niza in odgovori z "da" ali "ne" glede veljavnosti transakcije. V našem specifičnem primeru bo odgovor pritrdilen le, če se skupne količine sredstev v obeh nizih natančno ujemajo.

Ko imamo možnost uporabiti omejitve transakcij, jih lahko razširimo tako, da vsebujejo kateri koli nabor pravil. Nekaj ​​primerov je lahko »enoto tega sredstva je mogoče ustvariti le, če so ta tri druga sredstva hkrati zaklenjena v hrambi« ali »to sredstvo je mogoče prenesti le, če obstaja ustrezna vrstica, ki poroča o premajhnem dežju«. Z vidika porazdeljene arhitekture verige blokov logika v škatli ni pomembna, dokler nam lahko da dokončno in dosledno oceno vsake transakcije, ki jo vidi.

Posledično lahko omejitve transakcij služijo kot splošna metoda za omejevanje transformacij podatkov, ki jih lahko izvajajo udeleženci verige blokov. Ta pristop k "pametnim pogodbam" ponuja alternativo shranjenih postopkov uporabljeni pri Ethereum in njegove Eris izpeljanka. V prihodnjem delu se bomo poglobili v prednosti in slabosti teh dveh paradigem v smislu preprostosti, razširljivosti in sočasnosti.

Ti lahko sledite mi na Twitterju tukaj. Poglej tudi: Konec razprave o bitcoinu proti blockchainu.

Tehnični dodatek

Če želite zgraditi delne transakcije DvP, uporabite a vrsta podpisa of SINGLE|ANYONECANPAY. Če uporabljate MultiChainje preparelockunspent, createrawexchange in appendrawexchange API klici poskrbi za podrobnosti namesto vas. Glej Začetek stran za preprost primer, kako jih je mogoče uporabiti.

Prosimo, pošljite kakršne koli pripombe na LinkedIn.

Source: https://www.multichain.com/blog/2015/09/delivery-versus-payment-blockchain/

Časovni žig:

Več od Večnamenska veriga