1. Utangulizi
Mtindo wa Matokeo ya Muamala Yasiyotumiwa (UTXO) wa Bitcoin, ingawa ni mzuri kwa uhamishaji wa sarafu sambamba, unaonyesha mipaka muhimu katika kutekeleza mikataba changamano ya akili yenye hali kutokana na ukosefu wake wa hali ya kubadilika inayoshirikiwa. Agano linajitokeza kama msingi muhimu wa lugha unaopendekezwa kupanua Bitcoin Script, kuruhusu muamala kuweka vikwazo kwenye hati za muamala wa baadaye wa kufidia. Karatasi hii inashughulikia pengo katika miundo rasmi na ya kinadharia ya agano, ambayo imeelezwa hasa kutoka kwa mtazamo wa kiwango cha chini, unaolenga utekelezaji tangu kuanzishwa kwake karibu 2013. Kwa kutoa msingi rasmi, kazi hii inalenga kurahisisha hoja kuhusu sifa za mkataba, kuwezesha ubainishaji wa matumizi ya hali ya juu yanayozidi uwezo wa sasa wa Bitcoin, na kuwezesha muundo wa dhana za juu za programu.
2. Mtindo Safi wa Bitcoin
Karatasi hii inarekebisha ufafanuzi wa mtindo wa msingi wa muamala wa Bitcoin. Katika mtindo wa UTXO, hali ya mnyororo wa vitalu inafafanuliwa na seti ya matokeo ya muamala yasiyotumiwa. Kila pato lina thamani (kiasi cha bitcoin) na scriptPubKey (hati ya kufunga) ambayo inabainisha masharti yanayohitajika kuitumia. Muamala wa matumizi hutoa scriptSig (hati ya kufungua) na hurejelea UTXO anayotaka kutumia. Uthibitishaji unahusisha kutekeleza hati zilizounganishwa. Muhimu zaidi, Bitcoin Script ya kawaida ni mwepesi: haiwezi kujichunguza au kudhibiti muundo wa muamala unaotumia isipokuwa kwa uthibitishaji wa saini na hesabu za msingi/mantiki, na hivyo kuzuia uundaji wa mikataba inayotekeleza itifaki za hatua nyingi.
3. Mtindo Rasmi wa Agano
Mchango wa msingi ni mtindo rasmi unaotenganisha opcodes za agano zilizopendekezwa (kama OP_CHECKTEMPLATEVERIFY).
3.1. Msingi wa Agano & Sintaksia
Mtindo huu unaanzisha vihusishi vya agano kama nyongeza kwa Bitcoin Script. Agano kimsingi ni kikwazo $C(T_x, T_{next})$ kinachotathminiwa kuwa kweli au si kweli, ambapo $T_x$ ni muamala wa sasa unaotumiwa na $T_{next}$ ni muamala unaopendekezwa wa matumizi. Kihusishi kinaweza kukagua sehemu za $T_{next}$, kama hati za pato lake, viwango, au nyakati za kufunga.
3.2. Semantiki ya Uendeshaji
Kanuni ya uthibitishaji imepanuliwa: Kwa UTXO yenye agano, uthibitishaji wa muamala wa matumizi $T_{next}$ unahitaji sio tu kwamba scriptSig yake inakidhi scriptPubKey ya asili bali pia kwamba kihusishi cha agano $C$ kinafaa kwa jozi $(T_x, T_{next})$. Hii imefafanuliwa rasmi kwa kutumia kanuni za semantiki ya uendeshaji zinazounganisha ukaguzi wa agano katika mantiki ya uthibitishaji ya Bitcoin iliyopo.
3.3. Agano la Kurudia & Mashine za Hali
Tofauti yenye nguvu ni agano la kurudia, ambapo $C$ linaweza kulazimisha kwamba pato la $T_{next}$ lenyewe lina agano lile lile (au linalohusiana) $C'$. Hii inawezesha utekelezaji wa mashine za hali kwenye Bitcoin: kila muamala huwakilisha mpito wa hali, na agano linalohakikisha sheria za mashine ya hali zinazifuatwa katika mnyororo wa miamala. Karatasi hii inaifafanua hii kama mlolongo wa miamala $T_1, T_2, ..., T_n$ ambapo kwa kila $i$, $C(T_i, T_{i+1})$ inashikilia.
4. Kubainisha Mikataba Changamano ya Bitcoin
Mtindo rasmi unatumika kubainisha mikataba ambayo kwa sasa haiwezi kuonyeshwa au ni ngumu katika Bitcoin safi.
4.1. Vaults & Utoaji wa Fedha Wenye Kizuizi cha Muda
Agano linaweza kuunda "vaults" ambapo fedha zilizoibiwa zinaweza kurejeshwa. Muamala unaweza kuhitaji kwamba utoaji wowote mkubwa lazima kwanza uende kwenye pato lenye kizuizi cha muda, kuruhusu mmiliki kuufuta ikiwa haukuidhinishwa. Hii inabainishwa na agano linalokagua sehemu ya nLockTime na muundo wa pato la $T_{next}$.
4.2. Vichaneli vya Malipo & Mtandao wa Lightning
Ingawa Mtandao wa Lightning upo, agano linaweza kurahisisha na kulinda muundo wake wa msingi. Linaweza kulazimisha kwamba muamala wa kufunga chaneli lazima uwe hali ya hivi karibuni, kuzuia matangazo ya hali ya zamani, kwa kudhibiti muamala wa matumizi ulingane na sasisho lililosainiwa mapema.
4.3. Msingi wa Fedha Zisizo na Kituo Kimoja (DeFi)
Miundo rahisi ya DeFi kama deni lenye dhamana au ubadilishanaji usio na ulinzi inawezekana. Agano linaweza kufunga fedha katika muamala ambao unaweza kutumiwa tu na muamala unaowasilisha uthibitisho halali wa kriptografia wa malipo kutoka kwa mshirika au wa kufutwa kwa deni.
5. Msingi wa Lugha ya Kiwango cha Juu
Karatasi hii inajadili jinsi agano linaweza kutumika kama lengo la ukusanyaji kwa lugha za hali ya juu za mikataba. Msingi kama "toa baada ya muda T", "tumia tu ikiwa mshirika amesaini", au "badilisha hali kutoka A hadi B" inaweza kupelekwa moja kwa moja kwenye vikwazo maalum vya agano, na hivyo kuinua kiwango cha dhana kwa watengenezaji wa mikataba ya Bitcoin.
6. Uelewa wa Msingi & Mtazamo wa Mchambuzi
Uelewa wa Msingi: Bartoletti na wenzake hawapendekezi tu opcode nyingine ya agano; wanatoa nadharia rasmi iliyokosekana ambayo inageuza ujanja kuwa mfano unaoweza kuchambuliwa na halali wa programu kwa Bitcoin. Hii ndiyo ufunguo unaofungua uhandisi wa kimfumo wa mikataba changamano na salama kwenye mnyororo wa vitalu wa UTXO, na kuacha hati za kawaida.
Mtiririko wa Mantiki: Hoja hii ni rahisi na ya kulazimisha: 1) Mtindo wa UTXO wa Bitcoin hauna hali, na hivyo kudhibiti mikataba. 2) Agano lililopendekezwa kama suluhisho halieleweki vizuri kimaadili. 3) Kwa hivyo, tunaunda mtindo rasmi. 4) Kwa kutumia mtindo huu, tunaonyesha unaweza kuelezea matumizi muhimu na changamano (vaults, vichaneli, DeFi). 5) Urasimishaji huu kisha huwezesha kwa asili muundo wa lugha ya kiwango cha juu. Ni mfano wa "nadharia inawezesha utendaji" uliotekelezwa kwa usahihi.
Nguvu & Kasoro: Nguvu kuu ni kuungana pengo kati ya nadharia ya kriptografia/PL na uhandisi wa Bitcoin—pengo ambalo limesababisha makosa ya gharama kubwa katika mtindo wa akaunti wa Ethereum. Semantiki rasmi huruhusu uthibitishaji wa sifa, ushindi mkubwa. Kasoro, iliyokubaliwa kwa njia isiyo wazi, ni uchumi wa kisiasa wa Bitcoin. Kama karatasi inavyosema, "mbinu ya uangalifu sana" ya Bitcoin inafanya kuweka opcodes mpya kama agano kuwa kazi ngumu, bila kujali uzuri wao wa kimaadili. Mafanikio ya Tabaka-2 kama Lightning bila agano la asili pia inaleta maswali kuhusu uhitaji dhidi ya uzuri. Zaidi ya hayo, usalama wa mtindo unategemea dhana kwamba sehemu zilizodhibitiwa (kama hashes za hati) zinatosha; athari zisizotarajiwa za mwingiliano na opcodes nyingine zinaweza kubaki.
Uelewa Unaoweza Kutekelezwa: Kwa watafiti, karatasi hii ni mchoro: tumia mbinu rasmi kupunguza hatari na kufafanua usasishaji wa mnyororo wa vitalu. Kwa watengenezaji, anza kubuni mifumo ya mikataba sasa ukidhani agano litakuwepo (kama inavyoonekana kwenye Liquid au Stacks). Kwa watengenezaji wa itifaki ya Bitcoin, karatasi hii hutoa msingi mkali unaohitajika kushinikiza BIP 119 (OP_CTV) au mapendekezo sawa—inabadilisha ombi la kipengele kuwa maelezo ya uhandisi. Hitimisho kubwa zaidi: siku zijazo za mikataba ya akili ya Bitcoin sio kuhusu kuiga Ethereum, bali kuhusu kutumia mfano wa kipekee wa UTXO+agano kuunda aina mpya, inayoweza kuwa salama zaidi na yenye uwezo wa kuongezeka, ya programu zisizo na kituo kimoja.
7. Maelezo ya Kiufundi & Urasimishaji
Mtindo rasmi unafafanua miamala, hati, na uthibitishaji kulingana na muktadha. Kipengele cha kiufundi muhimu ni uwakilishi wa kikwazo cha agano. Acha $\texttt{tx}$ iwakilishe muamala. Agano linaweza kuonekana kama kitendakazi:
$\text{Covenant}_{\text{cond}} : \texttt{tx}_{\text{sasa}} \times \texttt{tx}_{\text{next}} \times \sigma \rightarrow \{\text{Kweli}, \text{Si Kweli}\}$
ambapo $\sigma$ inawakilisha muktadha wa uthibitishaji (urefu wa kizuizi, n.k.). Kihusishi $\text{cond}$ kinaweza kuwa kiunganishi cha ukaguzi wa sehemu za $\texttt{tx}_{\text{next}}$:
$\text{cond} \equiv (\texttt{hashOutputs}(\texttt{tx}_{\text{next}}) = H) \land (\texttt{nLockTime}(\texttt{tx}_{\text{next}}) > T) \land ...$
Hii inalingana na mapendekezo kama OP_CHECKTEMPLATEVERIFY, ambayo inasukuma hash ya sehemu maalum za muamala unaotumia kwenye mkusanyiko kwa kulinganisha. Sifa ya kurudia inarasimishwa kwa kuhakikisha pato la $\texttt{tx}_{\text{next}}$ lina hati $S'$ ambayo lenyewe linalazimisha agano $\text{Covenant}_{\text{cond}'}$.
8. Mfumo wa Uchambuzi & Kesi ya Mfano
Mfano: Mkataba Rahisi wa Vault
Lengo: Unda UTXO ambayo inaweza kutumiwa kwa njia mbili: 1) Mara moja, lakini tu kwa anwani maalum ya "hifadhi baridi". 2) Kwa anwani yoyote, lakini tu baada ya kucheleweshwa kwa siku 30 (kuruhusu kufutwa kwa wizi).
Utumizi wa Mfumo kwa kutumia Mtindo Rasmi:
1. Hati ya Kufunga ya Kwanza (scriptPubKey): Ina sharti la agano $C_1$.
2. Agano $C_1(T_{vault}, T_{spend})$: Lazima tathminiwe kuwa Kweli. Linakagua:
a) Njia A (Mara Moja): $\texttt{hashOutputs}(T_{spend}) = H_{cold}$ // Pato lazima liwe na hash kwa anwani ya hifadhi baridi iliyokubaliwa mapema.
b) Njia B (Iliyocheleweshwa): $\texttt{nLockTime}(T_{spend}) \geq \text{currentBlock} + 4320$ (siku 30 katika vitalu) NA $\texttt{hashOutputs}(T_{spend})$ inaweza kuwa chochote.
3. Uthibitishaji: Wakati wa kutumia UTXO ya vault na $T_{spend}$, nodi ya Bitcoin inatekeleza hati. Inahitaji saini kutoka kwa mmiliki wa vault na inathibitisha kwamba $C_1$ inashikilia kwa jozi ya muamala.
Mfano huu unaonyesha jinsi kihusishi cha mtindo rasmi $C(T_x, T_{next})$ kinavyowekwa kwa ukaguzi halisi wa sehemu za muamala unaofuata, na hivyo kuwezesha sifa ya usalama (urejesho wa wizi) isiyowezekana katika Bitcoin ya msingi.
9. Matumizi ya Baadaye & Mwelekeo
Urasimishaji huu unafungua njia kadhaa za baadaye:
- Vikusanyaji Vilivyothibitishwa: Kujenga vikusanyaji kutoka kwa lugha za kiwango cha juu (kama nyongeza za Simplicity au Miniscript) hadi Bitcoin Script iliyojumuishwa na agano, na uthibitisho rasmi wa usahihi.
- Agano la Kuvuka Mnyororo wa Vitalu: Kuchunguza agano ambalo hali ya matumizi inategemea matukio kutoka kwa minyororo mingine ya vitalu au wataalamu, kwa kutumia uthibitisho wa kriptografia kama SPVs, kama ilivyoashiriwa na kazi ya awali juu ya "madaraja" na utafiti wa hivi karibuni juu ya rollups.
- Agano la Kulinda Faragha: Kuunganisha ukaguzi wa agano na uthibitisho wa kutojua chochote (mfano, kwa kutumia saini za Taproot/Schnorr) ili kuficha mantiki ya mkataba hali bado inalitekeleza, mwelekeo unaochunguzwa katika miradi kama Ark.
- Uchambuzi Rasmi wa Usalama: Kutumia mtindo huu kuchambua kwa utaratibu usalama wa miundo iliyopendekezwa ya agano dhidi ya mashambulio ya kiuchumi na kriptografia, sawa na kazi iliyofanywa kwenye mikataba ya akili ya Ethereum na jamii ya IEEE Symposium on Security and Privacy.
- Urahisishaji wa Itifaki ya Tabaka-2: Kubuni upya itifaki kama Mtandao wa Lightning au minyororo ya upande (Liquid) kuwa bora zaidi na yenye imani ndogo kwa kutumia agano la asili, na hivyo kupunguza hitaji la minara tata ya uangalizi au mashirikiano.
10. Marejeo
- M. Bartoletti, S. Lande, R. Zunino. Bitcoin covenants unchained. arXiv:2006.03918v2 [cs.PL]. 2020.
- S. Nakamoto. Bitcoin: A Peer-to-Peer Electronic Cash System. 2008.
- J. Poon, T. Dryja. The Bitcoin Lightning Network: Scalable Off-Chain Instant Payments. 2016.
- M. Moser, I. Eyal, E. G. Sirer. Bitcoin Covenants. Financial Cryptography 2016 Workshops.
- Bitcoin Improvement Proposal 119 (BIP 119). OP_CHECKTEMPLATEVERIFY.
- G. Wood. Ethereum: A Secure Decentralised Generalised Transaction Ledger. Ethereum Yellow Paper. 2014.
- A. Miller, et al. Hashed Timelock Contracts (HTLCs). 2017.
- R. O'Connor. Simplicity: A New Language for Blockchains. Proceedings of the 2017 Workshop on Programming Languages and Analysis for Security.
- Blockstream. Liquid Network. https://blockstream.com/liquid/
- IEEE Symposium on Security and Privacy. Multiple papers on smart contract security analysis. Various years.