Ta članek govori o tehnološkem konceptu, ki temelji na predlagani nadgradnji protokola Taproot. Če še niste seznanjeni z osnovami delovanja Taproot, priporočamo, da najprej preberete ta razlagalnik.

Taproot, potencialna nadgradnja protokola Bitcoin, ki ga je prvi predlagal sodelavec Bitcoin Core Gregory Maxwell, je v pozni fazi razvoja. Tehnologija je sestavljena iz pametne kombinacije kripto trikov, ki bi uporabnikom omogočili, da zapletejo pametne pogodbe v transakcijah običajnega videza – zapletenost se razkrije le, če pogodbene stranke ne sodelujejo.

S pomočjo te ideje so sodelujoči Bitcoin Core, vključno z (vendar ne omejeno na) Jeremyjem Rubinom, Antoineom Riardom, Glebom Naumenkom in samim Gregoryjem Maxwellom, ugibali o splošnem konceptu, imenovanem plačilni skladi, združeni bazeni ali coinpooli. Ti skladi – zaenkrat se bomo držali, da jih imenujemo plačilni skladi – skupinam uporabnikov omogočajo, da si delijo lastništvo nad istimi kovanci (tehnično: UTXO), kot so zabeleženi v verigi Bitcoin, hkrati pa omogočajo, da kateri koli od teh uporabnikov plačuje (ali prejema) z njimi. Ko se skupina in njeni posamezni člani “skrivajo” v strukturi Taproot, vsi uživajo več zasebnosti, prilagodljivosti pametnih pogodb in druge ugodnosti … in te ugodnosti lahko celo uživajo zunaj verige, zaradi česar so plačilni skladi novi rešitvi drugega sloja..

Čeprav se posebnosti oblikovanja od predloga do plačilnega sklada nekoliko razlikujejo, je splošni koncept enak. Tu je osnovna ideja …

Skupna raba kovanca

Prvič, da ustvarijo plačilno področje, uporabniki kombinirajo svoje (delce) kovance, tako da jih združijo v naslov Taproot, ki si ga delijo. Recimo, da je Alice lastnica treh kovancev, Bob ima dva kovanca, Carol pa en kovanec, skupaj šest. Skupaj ustvarijo transakcijo, ki te kovance pošlje na naslov v skupni rabi, s čimer postane plačilni sklad s šestimi kovanci.

Na verigi blokov je naslov plačilnega bazena videti kot običajni naslov Bitcoin, v katerem je zdaj šest kovancev. Toda pod površjem so Alice, Bob in Carol pametno uporabili Taproot, da bi zagotovili, da vsak od njih še naprej nadzoruje svoj lastni delež kovancev v plačilnem skladu. Alice lahko kadar koli zahteva tri kovance z naslova, Bob lahko kadar koli zahteva dva, Carol pa enega.

To je zato, ker obstajata samo dve glavni možnosti porabe kovancev z naslova.

Prva možnost je, da porabite neposredno z naslova, v tehničnem smislu pot ključa Taproot. To zahteva sodelovanje (torej kriptografske podpise) vseh treh udeležencev. Če se Alice, Bob in Carol strinjajo, lahko šest kovancev porabijo, kakor želijo, in to bo videti kot katera koli druga redna transakcija v Bitcoin omrežju. Trio se lahko na primer odloči, da bo svoje stanje poslal nazaj na posamezne naslove: tri za Alice, dva za Boba in enega za Carol. Če pa bi se tako odločili, bi lahko sodelovali tudi pri podaritvi vseh šestih kovancev Julianu ali pa jih porabili na kakršen koli drug način, o katerem bi se lahko dogovorili. Pomembno je, da morajo sodelovati vsi trije, zato nihče ne preživi ravnotežja brez lastnega sodelovanja.

Druga glavna možnost je dejansko sestavljena iz več podmožnosti. Preden so Alice, Bob in Carol svoje kovance poslali v plačilni sklad, so nekaj skrili v kriptografskem drevesu za naslovom Taproot: vključevali so alternativne načine pošiljanja sredstev iz plačilnega sklada. (Trenutno bi to lahko uresničili tako, da bi vsi trije udeleženci predhodno podpisali transakcije s teh poti, kar bi zahtevalo določeno zapletenost, da bi nastavili vse možnosti, in se ne spreminja zelo dobro; predlagane nadgradnje protokola bi to lahko v prihodnosti olajšale .)

Če bi se eden od udeležencev odločil, da kovance porabi v plačilnem skladu po alternativni poti Taproot, običajno pošlje znesek, ki ustreza stanju tega udeleženca, na naslov, ki ga izbere, na primer na naslov posameznika, ki ga nadzira. (V primeru Alice tri kovance na svoj naslov, v primeru Boba dva na njegov naslov in v primeru Carol enega.)

Po tej alternativni poti se samodejno porabijo tudi preostali kovanci. To je mogoče storiti na več načinov, odvisno od zasnove plačilnega sklada, ki ponuja različne kompromise glede na zapletenost in razširljivost.

Najenostavnejša rešitev je, da vsakemu drugemu udeležencu pošljete tudi svoj delež kovancev na izbrani naslov. Z drugimi besedami: če en uporabnik zapusti bazen, vsi zapustijo bazen.

Druga rešitev, ki jo imata Riard in Naumenko, je pošiljanje vseh preostalih kovancev v nov plačilni sklad, ki je videti popolnoma enako kot prvi plačilni sklad, ki je bil pravkar odstranjen iz vsega, kar je vključevalo uporabnika, ki je že izšel. Ta zasnova ponuja najboljšo uporabniško izkušnjo, vendar jo je najtežje prilagoditi, kar je najpomembneje, ker se je treba pripraviti na vse možne scenarije izstopa, vključno z vsemi možnimi scenariji izstopa za vse potencialne nove bazene. Lestvico pa bi lahko dosegli s še imenovano potencialno nadgradnjo protokola Bitcoin, s čimer bi zagotovili, da se pravila iz prejšnjega plačilnega sklada prenesejo v katero koli novo plačilno področje..

Rubin meni, da je ta druga rešitev nepraktična in raje poseže po nečem med prvo in drugo rešitvijo: nekateri udeleženci takoj prejmejo svoje kovance na izbrani naslov, drugi udeleženci pošljejo svoje kovance v nov plačilni sklad. Ta zasnova ponuja manj idealno uporabniško izkušnjo, vendar bi se bolje razširila, potencialna nadgradnja protokola OP_CHECKTEMPLATEVERIFY pa bi pripomogla k poenostavitvi zasnove in še večjemu obsegu. (Izstopi bi se zgodili prek drevesnih plačil; te vrste plačil podrobneje preučujemo v tem članku.)

(Med drugo in tretjo rešitvijo je več kompromisov, vendar podrobnosti vseh prednosti in slabosti ne spadajo v področje uporabe tega članka; preberite razprava o poštnem seznamu bitcoin-dev za podrobnosti.)

Če želite videti, kaj pomeni, ko se preostali kovanci pošljejo v nov plačilni sklad, recimo, da Alice, Bob in Carol izberejo drugo možnost, kjer se vsi preostali kovanci pošljejo v nov plačilni sklad. Če pri tej zasnovi Alice zapusti prvi plačilni sklad, se trije kovanci pošljejo na naslov, ki si ga ona izbere, drugi trije kovanci pa v nov plačilni sklad med Bobom in Carol. Takrat ima Alice edini nadzor nad lastnimi kovanci, medtem ko se za Boba in Carol ni kaj dosti spremenilo. Oba lahko še vedno sodelujeta pri porabi preostalih treh kovancev, kakor koli želita, ali pa lahko kateri koli od njih enostransko izstopi, kot je to že storila Alice.

Če Bob nato enostransko izstopi iz drugega plačilnega sklada, pošlje dva kovanca na naslov, ki ga je izbral, en kovanec pa v še novejši plačilni sklad (tretji), pri čemer ostane samo Carol. (Seveda bi bil v tem poenostavljenem primeru dizajn, pri katerem se zadnji sklop plačil nadomesti z naslovom, ki ga je izbrala Carol, dejansko bolj smiseln, vendar je to podrobnost izvedbe.)

Pomembno je, da lahko udeleženci v plačilnem naboru sodelujejo pri izvedbi kakršne koli vrste plačila iz želenega sklada, medtem ko lahko kateri koli izmed njih kadar koli izstopi s svojimi kovanci, drugi udeleženci pa imajo nadzor nad svojimi.

Vnos plačila v plačilni sklad

Ugotovili smo torej, da lahko vsi udeleženci individualno dvignejo svoje stanje iz plačilnega sklada ali – če se vsi strinjajo – porabijo iz sklada. Ta druga možnost dejansko omogoča nekaj pametnega: sklad plačil je lahko dinamičen. Dokler se vsi udeleženci strinjajo, si ne morejo samo vrniti sredstev ali plačati drugim (na primer Julianu), lahko pa naredijo še bolj zanimivo. Svoja sredstva lahko premaknejo v novejše različice plačilnega sklada z različnimi oblikami.

To na primer omogoča, da kdo od njih preživi iz bazena.

Recimo, da Alice kupuje nov avto in ga želi plačati z enim bitcoinom. Alice, Bob in Carol bi nato lahko ustvarili transakcijo iz plačilnega sklada, ki pošlje en kovanec v prodajalno avtomobilov, preostalih pet kovancev pa pošlje v nov plačilni sklad, ki je videti enak prvemu, le da lahko Alice tokrat zapusti le od nje enostransko z dvema kovancema, enim manj kot prej.

Transakcija je medtem izgledala kot katera koli druga običajna transakcija Bitcoin. Avtohiša ​​(ali vohuni blockchain) lahko sklepa, da je bila Alice lastnica vseh šestih kovancev in je eno preprosto uporabila za nakup avtomobila, ostalih pet pa je obdržala kot drobiž. Pojma ne bi imeli, da nekateri kovanci pripadajo Bobu in Carol ali da so sploh sodelovali pri transakciji.

Naslednjič, ko Bob izvede plačilo in Alice in Carol sodelujeta, se izvede iz istega plačilnega sklada, kar je spet videti kot običajna Bitcoin transakcija v zunanji svet. V ponavljajoči se skupini plačil lahko Bob izstopi z enim kovancem namesto z dvema. Medtem so isti vohuni blockchain morda mislili, da Alice znova plačuje, kar jih je še bolj zmedlo. (In tudi če bi vohuni blockchain nekako ugotovili, da je naslov resnično plačilno sredstvo med Alice, Bobom in Carol, še vedno ne bi mogli vedeti, kateri od treh je opravil zadnje plačilo.)

Vsakič, ko Alice, Bob ali Carol zapravijo kovance, lahko transakcija prihaja od katerega koli izmed njih in nihče zunaj plačilnega sklada ne more ugotoviti razlike.

Plačilni skladi ne omogočajo le porabe. Če želi Alice dopolniti svoje “stanje” v plačilnem skladu, bi lahko tudi to storila. Alice, Bob in Carol bi v tem primeru sodelovali pri selitvi sedanjih petih kovancev na nov naslov Taproot, kamor bi Alice v isti transakciji poslala en dodaten kovanec z enega od svojih (posameznih) naslovov. Novi naslov Taproot bi znova vseboval šest kovancev, od katerih tri pripadajo Alice, kar se kaže v njeni enostranski možnosti izstopa.

Na enak način bi se lahko tudi novi uporabniki pridružili plačilnemu sredstvu. Če se Alice, Bob in Carol strinjajo, da Dave sodeluje, vsi trije sodelujejo z Daveom, da ustvarijo transakcijo, ki pošlje sredstva v plačilni sklad skupaj z novimi Daveovimi kovanci v nov plačilni sklad, zasnovan tako, da tudi Dave sodeluje – in zapusti če bi se tako odločil.

Poleg tega lahko udeleženci znotraj plačilnega sklada plačajo drug drugemu. Če bi Alice na primer Bobu plačala en kovanec, bi lahko tri sodelovale pri pošiljanju sredstev v nov plačilni sklad, kjer je Alice od njenega stanja odštet kovanec, Bob pa dodan kovanec. Na blockchainu bi spet izgledalo kot redno plačilo, blockchain vohuni pa ne bi imeli pojma, kdo je plačal ali koliko. (Omeniti velja, da bi lahko Dave na podoben način vstopil v bazen, tako da bi prejel interno plačilo enega od obstoječih udeležencev.)

Z malo dodatne zapletenosti (in v idealnem primeru z vsaj eno dodatno nadgradnjo protokola Bitcoin, kot je Noinput), bi lahko prenose izvedli tudi zunaj verige. Ko Alice plača Bobu, bi vsi udeleženci v tem primeru ustvarili enaka sredstva za transakcijo, ki bi porabila sredstva za nov plačilni sklad, vendar bi to transakcijo delili le med njimi – in ne bi bili predvajani v omrežje (razen če kdo kadar koli poskuša varati). Na ta način bi lahko Alice, Bob in Carol še naprej posodabljali ravnotežje “interno” in Davea v določenem trenutku celo spustili v bazen. Ko se vsi dogovorijo, da bodo zaprli sklad, lahko ustvarijo končno transakcijo, ki se porabi iz prvotnega plačilnega sklada, in vsakemu dodelijo svoje zadnje stanje.

Podobno kot pri starejši ideji, imenovani Channel Factories, bi lahko te vrste plačilnih skladov sčasoma celo uporabili za gostovanje kanalov Lightning, trezorjev ali drugih protokolov drugega sloja. To lahko nudi možnost, da se v takšne bazene “zavije” katera koli dodatna plast protokola, s čimer se njihova zapletenost skrije v enakih in pravilnih transakcijah.