Kohaletoimetamine versus maksmine plokiahelas PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.

Kohaletoimetamine versus maksmine plokiahelas

Kuidas plokiahelad saavad lahendada raamatu vanima probleemi

Inimestevaheline kauplemine on sama vana kui inimkond ise. See sai alguse hetkel, kui koopamees Ogg ütles koopamees Uggile: "ma annan sulle kivi, anna mulle marju". Kuid kauplemisega kaasneb põhiprobleem: see nõuab usaldada. Mis takistab Oggil kasutada kivi Uggi peksmiseks, haarates seejärel mõlemad kivid ja marju enne ära jooksmist? Kuidas tõlkida suuline vahetusleping jõustamismehhanismiks, mis tagab, et mõlemad pooled hoiavad oma sõna?

Kui nüüdisaegset näidet võtta, siis paar aastat tagasi müüsin auto vanakraamiturul maha. Interneti kaudu leidsin ostja, kohtusime isiklikult, tema lasi autot kontrollida ja leppisime hinnas kokku. Nii läks ta oma panka, et hankida kassatšekk, mis on sisuliselt sularaha kompaktsemal kujul. Jalutasime koos postkontorisse, kus saan allkirjastada ja esitada ametliku valitsuse vormi, mis annab üle auto seadusliku omandiõiguse.

Nii me siis seisame postkontori aknal ja jõuame ebamugavasse ummikseisu. Tšekk on endiselt taskus ja ma hoian käes allkirjastatud ankeeti. Kohtusime paar tundi tagasi ja meil pole põhjust üksteist usaldada. Kas ma annan kõigepealt vormi ja siis loodan, et ta annab mulle tšeki, mitte ei jookse minema? Või annab ta mulle tšeki ja loodab, et annan selle vormi? Mõlemal juhul seab keegi end reetmise ohule.

Ja siis jõudis mulle kohale, et peaksin muretsemise lõpetama ja lihtsalt vormi andma. Miks? Sest järgmisena võib juhtuda üks kahest asjast. Kas ostja ulatab mulle tšeki, sel juhul on kõik rahul ja vahetus on lõppenud. Aga mis siis, kui ta hoopis põgeneb? Sel juhul näeb postkontori ametnik ja rebib vormi, mille ma talle just andsin. Bingo, meil on turvaline vahetus.

Kas sa nägid, mis seal juhtus? Meie dilemma lahendati vahendaja, antud juhul postkontoriametniku abil. Kohtusekretär tagab, et kas toimub õiglane tehing või tehingut ei toimu üldse. Ja mitte ainult ükski vahendaja ei saa seda teenust pakkuda. See peab olema keegi, keda mõlemad pooled usaldavad. Valitsusse kuuluva postkontori töötaja puhul tuleneb see meie usaldusest valitsuse enda vastu. Kui postkontoriametnikke saaks altkäemaksu anda, võiksime nii mina kui ka ostja kujundada olukorra, kus meil on lõppkokkuvõttes nii sularaha kui ka auto. Tõepoolest, sisse paljud riigid, selline korruptsioon võib õitsengule tohutult kurnata.

Koopainimesed ja autod on üks asi, kuid keskendugem finantsmaailmale, kus kauplemine mängib keskne roll. Muidugi ei maksa pangad oma töötajatele selle eest, et nad kellegi teise aktsiatega ära jookseksid. Finantsvarade turvaline vahetamine jääb aga oluliseks probleemiks, sest on vähem karikatuurseid viise, kuidas tehingus osalejad ei suuda oma lubadust täita. Näiteks võib üks osapool muutuda maksejõuetuks või turutingimuste järsk muutus võib takistada neil vara tagamist. Nad võivad kannatada tehniliste vigade või an raamatupidamispettused teise vastaspoole juures.

Nende „arveldusriskid”, Arveldatakse enamik finantstehinguid kasutades kohaletoimetamine versus makse (DvP). See on lihtsalt väljamõeldud termin ülalkirjeldatud postkontori protsessi kohta. DvP tagab, et kui tehingu üks osapool ei täida seda, mida lubati, võib teine ​​​​pool jätta vahetuseks pakutud vara.

Ja kuidas rakendatakse rahanduse maailmas kättetoimetamist makse vastu? Arvasite seda usaldusväärsete vahendajate kaudu. Need võivad olla muud pangad, arvelduskojad või väärtpaberite keskdepositooriumid. Kuna enamik tänapäeva tehingutest toimub digitaalselt, ei ole see füüsiliste sertifikaatide või sularaha ülekandmise haldamine. Pigem saavutatakse DvP nii, et vahendaja ajakohastab samaaegselt mitmeid oma andmebaasis olevaid kirjeid ja/või edastab juhiseid teistele institutsioonidele.

Kohaletoimetamine versus maksmine plokiahela kaudu

Andmebaasidest rääkimine viib meid kenasti blockchainide teema juurde. Plokiahel võimaldab pearaamatut või andmebaasi jagada ja sünkroonida paljude osapoolte vahel. Erinevalt tavalistest andmebaasidest saavad blockchain-andmebaase aga mitmed kasutajad ohutult ja otse muuta, isegi kui nad on omavahel tihedas konkurentsis. Kui töötate ettevõtte infotehnoloogia valdkonnas, võiksite mõelda selle lause tagajärgedele.

Et mõista, kuidas kohaletoimetamine ja maksmine plokiahelas toimib, peame alustama bitcoini tehingumudeli mõistmisest. Siinkohal tuleb märkida, et teiste plokiahela kujunduste puhul kasutatakse tehingute tegemiseks teistsugust mudelit ja nendest erinevustest räägime edaspidi lähemalt.

Bitcoini tehingul on sisendite ja väljundite komplekt. Iga sisend on ühendatud eelmise tehingu ühe väljundiga, kusjuures kogu eelmise väljundi bitcoin voolab sisse. Tehingu sisendites olev bitcoin jaotatakse seejärel ümber selle väljundite vahel vastavalt sisse kirjutatud kogustele. Lisaks sisaldab iga tehingu väljund selle uue omaniku avalikku identifikaatorit, mille jaoks omanikul on vastav privaatvõti. Bitcoini tehing kehtib ainult siis, kui:

  • Tehingu sisendites olev bitcoini kogus on suurem või võrdne selle väljunditesse kirjutatud kogusega. Kõikide vahede kogub tasuna “kaevandaja”, kes kinnitab tehingu plokis, luues turumehhanismi, mille abil saab tehingute kinnituseks pakkumisi teha.
  • Tehingu kinnitavad iga eelneva väljundi omanikud, mille see tehing "kulutab". Seda heakskiitu väljendatakse uue tehingu sisu krüptograafilise allkirjaga. Eelneva väljundi allkirja saab luua ainult privaatvõtme abil, mis ühtib selle avaliku identifikaatoriga.

Mõlemad reeglid on otsustava tähtsusega finantsreskontras, mida jagatakse mitteusaldavate osapoolte vahel. Ilma esimeseta võiks igaüks luua bitcoine tühjaks. Ja ilma teiseta saaksid kõik kulutada kõigi teiste bitcoine. Kuid vajame ka kolmandat reeglit, mida jõustatakse pigem globaalselt kui üksikute tehingute raames:

  • Igat tehingutoodangut saab kasutada ainult üks järgnev tehing. See hoiab ära rünnaku, mida nimetatakse topeltkulu milles samad bitcoinid saadetakse mitmele adressaadile.

Selle reegli jõustamiseks sisaldab plokiahel kehtivate tehingute kronoloogilist logi, mis ei ole üksteisega vastuolus, ja seda logi kontrollib sõltumatult iga võrgusõlm.

Bitcoini tehingumudelit saab hõlpsasti laiendada, et see esindaks mis tahes finantsvara. Bitcoine sisaldava tehinguväljundi asemel võib see sisaldada vara identifikaatorit ja kogust. Endiselt kehtivad kõik bitcoin-tehinguid käsitlevad reeglid, mis takistavad osalejatel (a) tühjalt varade loomist, (b) teiste inimeste varade kulutamist ja (c) sama vara kaks korda kulutamist. Mitte-krüptovaluuta varade puhul kaldume nõudma, et sisend- ja väljundkogused oleksid täpselt tasakaalus, selle asemel, et lubada kaevuritel vahet koguda.

Kuidas siis seda mudelit kasutades luua turvalise tarne ja maksetehingu? Oletame, et Alice ja Bob on kokku leppinud vahetama Alice'i 10 naela Bobi 15 dollari vastu. Mugavuse huvides eeldame, et Alice'il on juba täpselt 10 naela ühe tehingu väljundis ja Bobil on samuti 15 dollarit. (Kui see nii ei ole, saavad nad lihtsalt oma raha ümber paigutada, et see nii oleks.)

Alustuseks koostab kumbki pool tehingu kahe sisendi ja kahe väljundiga. Kaks sisendit kulutavad eelnevad väljundid, mis sisaldavad vastavalt Alice'i 10 naela ja Bobi 15 dollarit. Mis puutub väljunditesse, siis esimene sisaldab Alice'i identifikaatorit ja 15 dollarit ning teine ​​läheb Bobile, mis sisaldab 10 naela. Kuna sisend- ja väljundkogused mõlemas valuutas on tasakaalus, vastab meie tehing ülaltoodud esimesele tingimusele. Teise täitmiseks peavad nii Alice kui ka Bob nüüd tehingu allkirjastama, kuna see kulutab neile kummalegi kuuluvad eelnevad väljundid.

Tehingu saab nüüd lõpule viia, lisades selle plokiahelasse, kuid me peame siiski arvestama topeltkulu probleemiga. Mis siis, kui Alice oleks teinud vastuolulise tehingu, vahetades sama 10 naela teise osapoolega, kes pakkus talle paremat tehingut? Siin tuleb mängu kolmas reegel, mille puhul plokiahel tagab, et iga väljundit saab kulutada vaid korra. Kui konkureeriv tehing edastatakse pärast seda, kui Alice'i ja Bobi vahetus on plokiahelas, siis seda lihtsalt ei kinnitata. Ja kui konkureeriv tehing kinnitati esimesena, ebaõnnestub hoopis Alice'i vahetus Bobiga. Mõlemal juhul tagab plokiahel nii Alice'i ja Bobi kui ka muu vahetuse eest tarnimise ja maksmise. Kui Bob ei saa Alice'i 10 naela, siis Alice ei saa oma 15 dollarit.

Osaliste tehingute jõud

Nii et plokiahelad annavad meile võimaluse kahel osapoolel kokku tulla, luua ja allkirjastada vahetustehing ning tagada, et see tervikuna õnnestub või ebaõnnestub. See võimaldab jagatud pearaamatus tarnimist ja maksmist, ilma et oleks vaja protsessi haldamiseks usaldusväärset vahendajat. Kaevuritel, kes kinnitavad tehinguid plokkidena, on endiselt teatud jõud, kuid see on palju väiksem kui traditsioonilisel vahendajal. Halvim, mida nad teha saavad, on keelduda konkreetset tehingut kinnitamast tervikuna, ja see ei riku DvP-d. Kui kaevandamine jagunevad tehinguid tegelikult tegevate osapoolte vahel, kaob see risk täielikult, kuna kõigil on võimalus kinnitada oma tegevust.

Siiamaani on kõik korras. Kuid bitcoini stiilis blockchainidel on varrukast rohkem nippe. Tuletame meelde, et tehingule peab alla kirjutama iga eelneva väljundi omanik, kellele see tehing kulub. Vaikimisi lukustab see allkiri tehingu sisendite ja väljundite täieliku loendi. Krüptograafia tagab, et sisendi või väljundi väikseim muutmine muudaks allkirja kehtetuks. Ülaltoodud näite järgimiseks, kui Bob asendataks Caroliga pärast seda, kui Alice oli tehingule alla kirjutanud, siis tehing ebaõnnestuks.

Aga mis siis, kui Alice'il pole vahet, kellega ta vahetust teeb? Enamikul eesmärkidel miks ta peaks hoolima? Kui Alice ei ole otsustanud Bobiga konkreetselt koostööd teha, on tehingul ainult kaks osa, mis teda tõeliselt puudutavad. Esiteks asjaolu, et tema 10 naelane toodang kulub ära, mitte erinev kogus või vara. Teiseks, et ta saab vastutasuks 15 dollarit uue väljundina. Kuni kogu süsteemis olev raha on puhas, ei huvita Alice tegelikult, kust see 15 dollarit pärineb, või mis võib veel juhtuda, mis hõlbustaks tema vahetamist.

Võib-olla tuleb üks pidu koos 15 dollariga ja vahetab Alice'i 10 naela vastu. Kuid võib-olla tahavad Bob ja Carol vahetada ainult 7.50 dollarit. Sel juhul lisaksid nad tehingule kaks sisendit ja kaks väljundit, millest igaüks kogub 5 naela. Või äkki tahab Carol tegelikult vahetada 15 dollarit 950 rubla vastu, samal ajal kui Sashal Moskvas on 950 rubla ja ta otsib 10 naela. Sel juhul võib toimuda 3-suunaline vahetus, kus kumbki osapool hoolib ikkagi ainult oma pusletükist. Alice'i alustatud tehingut saab lõpule viia lõpmatul hulgal erinevatel viisidel. Kuid Alice'i vaatenurgast on neil kõigil sama eesmärk, andes talle 15 naela vastu 10 dollarit, ja need kõik teevad ta võrdselt õnnelikuks.

Börsistsenaariumid

Kuidas plokiahel seda hõlbustab? Osaliste tehingute ja osaliste allkirjade kaudu. Alice alustab tehingut ühe sisendiga (tema 10 naela) ja ühe väljundiga (talle 15 dollarit). Ta lukustab tehingu need osad digitaalallkirjaga, mis ütleb, et saab lisada suvalise arvu muid sisendeid või väljundeid. Ta annab selle osalise tehingu Bobile ja ütleb: "Vaadake, mida saate teha". Võib-olla annab ta selle üle ka Carolile ja paljudele teistele potentsiaalsetele vastaspooltele või sündikaadiehitajatele. Igaüks neist võib lisada oma sisendite ja väljundite paare, et tasakaalustada vahetust või luua suurem osaline tehing, mida saab uuesti üle anda. Ükskõik, mida keegi teeb, saab tehingu sooritada (st arveldada plokiahela kinnituse kaudu) alles siis, kui sisend- ja väljundvarad on tasakaalus.

Plokiahela tehing on lihtsalt digitaalsete andmete osa, nii et neid osalisi tehinguid saab saata e-posti või muu sidevahendi kaudu. Neid saab isegi avalikult postitada, sest potentsiaalses tehingus osalejad teavad seda plokkkett hoolitseb nende eest. Alice'i allkiri tagab, et ta kulutab ainult 10 naela, kui keegi annab talle 15 dollarit.

Lõpuks, kui Alice otsustab pakkumise keelata, ei pea ta tegema muud, kui kulutama sama 10 naelsterlingit mõnele muule tehingule, kõige enam lihtsalt saates selle endale tagasi. Kuna plokiahel ei luba sama väljundit kaks korda kulutada, muudab see tema olemasoleva osalise tehingu väärtusetuks. Kõik teised plokiahelas osalejad näevad seda ja lõpetavad oma aja raiskamise vahetuse lõpuleviimiseks.

Alates DvP-st kuni nutikate lepinguteni

Nagu mul on väitis varem, võib bitcoini stiilis plokiahelat vaadelda kui võimalust sünkroonimise ja turvalisuse haldamiseks jagatud relatsiooniandmebaasis. Nii bitcoini kui ka andmebaasitehinguid käsitletakse aatomis, mis tähendab, et tervikuna õnnestub või ebaõnnestub. Analoogia võti on samaväärsus plokiahelas asuva tehingu väljundi ja andmebaasi rea vahel. Plokiahela tehing, mis kulutab mõned väljundid ja loob mõned teised, on sama kui andmebaasi tehing, mis kustutab mõned read ja loob selle asemel mõne teise. (Andmebaasitoiming, mis muudab olemasolevat rida, on samaväärne selle rea kustutamise ja selle asemele uue värskendatud loomisega. Selle samaväärsuse aluseks on populaarne MVCC paralleelsuse juhtimise meetod andmebaasides, millest bitcoini stiilis plokiahelaid võib vaadelda hajutatud kujul.)

Kujutagem ette, et meie finantsandmeid hoitakse andmebaasis, mille igal real on kolm teavet: selle omaniku identifikaator, vara identifikaator ja vara kogus. Plokiahel võimaldab seda pearaamatut osalejate vahel turvaliselt jagada, isegi kui nad üksteist üldse ei usalda. Andmebaaside keeles tagab see, et:

  • Tehinguga kustutatud ridade varakogused vastavad nende loodud ridade varade kogustele.
  • Iga tehinguga kustutatud (või muudetud) rea jaoks peab tehing olema selle rea omaniku allkiri.
  • Kui ühe tehinguga kustutati andmebaasirida, takistab see teisel tehingul selle uuesti kustutamist.

Vaatame neist reeglitest esimest, nimelt seda, et tehingud peavad säilitama varade koguseid. Me võime seda laiendada üldiseks mõisteks "tehingupiirangud". Tehingupiirang on musta kasti kujul, mis näeb iga tehingu jaoks kahte rida: (a) tehinguga kustutatud ridu, (b) ridu, mille see loob. Musta kasti ülesanne on vaadata neid kahte komplekti ja vastata "jah" või "ei" selle kohta, kas tehing on kehtiv. Meie konkreetsel juhul vastab see jaatavalt ainult siis, kui mõlema komplekti varade kogumaht kattub täpselt.

Kui meil on võimalus rakendada tehingupiiranguid, saab neid laiendada, et need sisaldaksid mis tahes reeglite kogumit. Mõned näited võivad olla "selle vara üksuse saab luua ainult siis, kui need kolm muud vara on samaaegselt tingdeponeerimiskontoga lukustatud" või "seda vara saab üle kanda ainult siis, kui vastav rida teatab ebapiisavast vihmast". Plokiahela hajutatud arhitektuuri vaatenurgast ei oma kasti sees olev loogika vahet seni, kuni see annab meile kindla ja järjepideva hinnangu iga tehingu kohta, mida ta näeb.

Selle tulemusena võivad tehingupiirangud olla üldiseks meetodiks andmete teisenduste piiramiseks, mida plokiahelas osalejad saavad teha. Selline lähenemine nutikatele lepingutele pakub alternatiivi salvestatud protseduurid kasutatud Ethereum ja selle Eris tuletis. Tulevases artiklis sukeldume sügavamale nende kahe paradigma eelistesse ja puudustesse lihtsuse, mastaapsuse ja samaaegsuse osas.

Võite jälgige mind siin Twitteris. Vaata ka: Bitcoin vs blockchain arutelu lõpetamine.

Tehniline lisa

DvP osaliste tehingute loomiseks kasutage a allkirja tüüp of SINGLE|ANYONECANPAY. Kui kasutate MultiCin, preparelockunspent, createrawexchange ja appendrawexchange API-kõned hoolitseme detailide eest. Vaadake Alustamine lehel on lihtne näide nende kasutamise kohta.

Palun postitage kõik kommentaarid LinkedIn.

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

Ajatempel:

Veel alates Mitmeharuline