Ingia kwa kina katika UTxO ya Cardano na Miundo ya Akaunti ya Ethereum

Source: https://cexplorer.io/article/deep-dive-into-cardano-s-utxo-and-ethereum-s-account-based-models-models


Umuhimu wa mtindo uliochaguliwa wa uhasibu wa blockchain mara nyingi hauthaminiwi, licha ya ushawishi wake mkubwa juu ya uzoefu wa mtumiaji na uwezekano wa kuongezeka. Katika nakala hii, tutachunguza ugumu wa modeli ya UTxO, iliyoajiriwa na Cardano na Bitcoin, na mfano wa msingi wa akaunti, unaotumiwa na Ethereum na blockchains zingine nyingi zinazolingana na EVM. Makala yamejaa picha za kielelezo. Baada ya kusoma, utaelewa ni kwa nini uthibitishaji wa miamala katika Ethereum haubainishi na mara nyingi huathiriwa na kushindwa, huku Cardano inathibitisha shughuli kwa kubainishwa. Pia tutafafanua tofauti kati ya mataifa ya kimataifa ya Ethereum na Cardano.
Uhasibu Katika Blockchain
Uhasibu hutumika kama msingi wa mazingira ya kisasa ya kifedha. Kila taasisi ya fedha inahitajika kudumisha rekodi ya salio la akaunti ya mtu binafsi na mtiririko wa pesa. Utaratibu huu lazima uwe wa kuaminika kabisa, salama, unaoweza kukaguliwa, na muhimu zaidi, wa kuaminika.
Kila leja inapaswa kuwa na uwezo wa kuonyesha umiliki wa mali kwa usahihi wakati wowote. Kwa maneno mengine, mtumiaji X alikuwa na umiliki wa kiasi fulani cha mali ya Y kwa wakati Z. Kwa vile mwingiliano wa kifedha kati ya watu binafsi ni jambo la mara kwa mara, maingizo kwenye leja yanabadilika kila wakati. Mfumo, uwe wa serikali kuu au uliogatuliwa, lazima uthibitishe kwa usahihi kila shughuli na uirekodi ipasavyo kwenye leja.
Kihistoria, leja za karatasi zilikuwa za kawaida. Hata hivyo, pamoja na kuibuka kwa kompyuta, uhasibu ulipata mabadiliko ya digital. Ujio wa teknolojia ya blockchain imewezesha uwezekano wa uhasibu uliosambazwa.
Mitandao ya Blockchain inaweza kutambuliwa kama mfumo wa kifedha. Wanaweza kutazamwa kama leja iliyosambazwa, yaani, mfumo wa uhasibu ambao hauko chini ya udhibiti wa mamlaka yoyote kuu. Watumiaji wanaweza kushiriki katika miamala ya kifedha wao kwa wao kwa mtindo wa Peer-to-Rika. Hata hivyo, mpatanishi, au huluki inayothibitisha muamala, si mamlaka kuu bali ni mtandao unaosambazwa unaoundwa na watu wanaojitolea. Kundi la watu waliojitolea wana jukumu la kuongeza maingizo mapya ya kifedha kwenye leja.
Satoshi Nakamoto alitekeleza mfano wa UTxO katika Bitcoin. Vitalik Buterin alichagua mfano wa akaunti ya Ethereum. Timu ya IOG ilichagua kutumia modeli iliyopanuliwa ya UTxO kwa Cardano. Kila moja ya lahaja hizi ina seti yake ya faida na hasara, ambayo tutachunguza katika uchanganuzi unaofuata.
Jimbo Kama Sharti la Kuthibitisha Miamala
Blockchain ni kitaalam mashine ya serikali. Inakumbuka matukio ya awali, ambayo inaitwa hali ya mfumo au hali ya kimataifa. Matukio haya, yanayowakilishwa zaidi na miamala, ni mwingiliano kati ya watumiaji. Hali inaweza kubadilishwa chini ya hali zilizoainishwa. Kila itifaki imetekeleza seti ya sheria na mantiki ambayo inaruhusu mpito kutoka jimbo la S-0 hadi jimbo la S-1. Kwa vipindi vya kawaida, mtandao wa blockchain huongeza vitalu vipya ndani ambayo mpito wa serikali hutokea.

Kizuizi hutumika kama sehemu ya msingi ya mabadiliko kutoka hali iliyopo hadi hali mpya. Inaundwa na shughuli. Mtayarishaji wa block ana jukumu la kuunda kizuizi kipya kwa kufuata sheria za itifaki, ikimaanisha kuwa hali zote za kukubalika kwa block lazima zitimizwe. Ili kizuizi kichukuliwe kuwa halali, lazima kiwe na miamala halali pekee.
Uthibitishaji wa muamala—ambao ni uhamishaji wa thamani kati ya wahusika wawili au zaidi—huhitaji muktadha au hali fulani ili kuthibitishwa. Mfumo lazima uthibitishe, miongoni mwa mambo mengine kama vile saini halali, kwamba akaunti ya mtumaji ina pesa za kutosha. Pia inabidi izuie watumiaji kutumia fedha sawa zaidi ya mara moja, na hivyo kukabiliana na tatizo la matumizi mabaya ya mara mbili. Haiwezekani kuthibitisha muamala kwa kutengwa. Mthibitishaji huthibitisha muamala kulingana na hali ya sasa ya leja.

Nodi zote mbili zilizopewa jukumu la kuunda kizuizi kipya na nodi ambayo inadhibitisha kizuizi kipya, inahitaji maarifa ya muktadha, ambayo ni, hali ya sasa ya leja, kwa uthibitisho. Muktadha wa uthibitishaji ndio kizuizi halali cha hivi karibuni kwenye blockchain.
Nodi ya kutengeneza block, ambayo huunda kizuizi kipya katika duru maalum, hutumia kizuizi cha mwisho kinachowakilisha hali ya sasa kama ingizo la uthibitishaji. Baadaye, inachukua shughuli zote ambazo zinapaswa kuingizwa kwenye kizuizi kipya na kuzithibitisha. Kisha inaongeza data nyingine inayohitajika kwenye kizuizi na kuisambaza kwa mtandao.
Katika picha, nodi inajaribu kujenga kizuizi kipya ambacho kingeruhusu mpito kutoka jimbo la S+3 hadi jimbo linalofuata la S+4.

Nodi zote mbili zinazotoa kizuizi kipya na nodi zote za uthibitishaji lazima zishiriki muktadha sawa wa uthibitishaji wa mpito hadi hali mpya. Ikiwa nodi mbalimbali zingetumia miktadha tofauti, kizuizi kipya kilichopendekezwa kinaweza kukubaliwa tu na sehemu ya nodi kwenye mtandao. Kizuizi halali kinaweza kupitisha uthibitisho kwenye nodi hizo ambazo zilitumia muktadha sawa na mtayarishaji wa kizuizi.

Hali ya kimataifa inabadilika kila mara, kwa kila kizuizi kipya kilichoongezwa au hata kwa kila shughuli ya ziada iliyoidhinishwa. Kunaweza kuwa na kipindi kirefu cha muda kati ya utumaji wa shughuli na uchakataji wake na mtandao (yaani, kuingizwa kwa shughuli hiyo kwenye kizuizi), wakati ambapo hali ya kimataifa inaweza kubadilika. Muktadha ambao mtumiaji alikuwa nao wakati wa kutuma muamala unaweza au usibadilike wakati nodi ya mtayarishaji wa kuzuia inapojumuisha muamala katika mgombea mpya wa kuzuia.
Kama inavyoonyeshwa kwenye picha, mtumiaji alituma muamala wa TX 10 muda mfupi baada ya kuongezwa kwa block N+2. Kufuatia hili, block N+3 iliongezwa, na kusababisha mabadiliko katika hali ya kimataifa. Nodi ya mtayarishaji wa block iko katika mchakato wa kujenga block N+4 na inakusudia kuingiza shughuli TX 10 ndani yake. Kuongezwa kwa block N+3 kulibadilisha hali ya kimataifa, ambayo inaweza pia kurekebisha muktadha unaohusishwa moja kwa moja na uthibitishaji wa shughuli ya TX 10.

Mtumiaji alikuwa na muktadha ambao ulikuwa halali baada ya kuongeza kizuizi N+2. Walakini, mtayarishaji wa block ana muktadha ambao ni halali baada ya kuongeza block N+3. Kwa hivyo muktadha ni tofauti.
Tofauti kuu kati ya UTxO na modeli inayotokana na akaunti imejikita katika muktadha unaohitajika na kithibitishaji kwa uthibitishaji wa shughuli, na njia ambayo shughuli ndani ya kizuizi huthibitishwa.
Misingi ya UTxO
UTxO, kifupi cha Pato la Muamala Usiotumika, inarejelea matokeo ya shughuli ya awali ambayo inaweza kutumika katika shughuli ya siku zijazo.
Mfano wa UTxO hautambui dhana kama vile akaunti na salio. UTxOs hufanya kazi zaidi kama noti, zenye uwezo wa kushikilia thamani yoyote ya kawaida. Kwa mfano, UTxO inaweza kuwa 6.9 ADA, 47 ADA, au 459.7 ADA.
Pochi za Cardano husaidia watumiaji kudhibiti UTxOs kana kwamba ni salio la akaunti. UTxO tatu zilizotajwa hapo juu zingeonekana kama 513.6 ADA kwenye mkoba wa Alice.
Kwa hivyo, nini hutokea Alice anapotaka kutuma Bob 50 ADA?
Alice anaanzisha shughuli kwenye pochi ya Cardano. Mkoba lazima ujumuishe seti ya UTxO katika muamala, ambayo itatosha kulipia jumla ya ADA 50 pamoja na ada ya ADA 0.17.
Mkoba unaweza kutumia pembejeo moja ya UTxO yenye thamani ya 459.7 ADA au UTxO mbili za ingizo zenye thamani za 6.9 ADA na 47 ADA kwa muamala. Mkoba huchagua ya mwisho, kwa kutumia jumla ya 53.9 ADA kama ingizo la muamala.
Kwa kawaida, UTxO mbili huundwa kama matokeo ya muamala: 1) UTxO hutumwa kwa mpokeaji, 2) UTxO hurejeshwa kwa mtumaji.
Kumbuka kwamba ingizo la muamala ni kiasi kikubwa cha ADA kuliko Alice anakusudia kutuma kwa Bob (pamoja na ada). Ndivyo ilivyo katika shughuli nyingi na inalingana na utendakazi wa modeli ya UTxO.
Kupitia muamala huo, Alice anatumia 50.17 ADA, na kupitia UTxO iliyoundwa upya, 3.73 ADA inarejeshwa kwenye akaunti yake. Hutokea mara chache tu kwamba UTxO inapatikana ikiwa na thamani haswa ambayo mtumaji anataka kutumia.
Muamala utasababisha matokeo 2 ya UTxO: 50 ADA kwa Bob na 3.73 ADA kwa Alice.
Katika picha hapa chini, unaweza kuona shughuli kama ilivyoelezwa. UTxO zote mbili za pembejeo zitatumika kabisa na matokeo mapya ya UTxO yatatolewa kutoka kwao. Thamani ya UTxO za pato itapunguzwa kwa ada ya muamala. Bob anapokea ADA 50 haswa. Baada ya kutuma muamala, Alice atakuwa na UTxO 2 kwenye pochi yake.

Mfano wa Cardano UTxO
Sasa unajua jinsi UTxO inavyofanya kazi kutoka kwa mtazamo wa mtumiaji. Lakini hii ina maana gani kwa uthibitishaji wa shughuli na hali ya kimataifa (muktadha)?
UTxO ni vitu huru na visivyoweza kubadilika, na ufikiaji wa kipekee unaweza kuhakikishwa. Mara tu UTxO inapoundwa kama matokeo ya muamala, inabaki bila kubadilika hadi itumike katika shughuli mpya. Inapotumika, hutumiwa kabisa na UTxO mpya huundwa kama matokeo ya muamala mpya.
Muktadha anaohitaji kithibitishaji ili kuthibitisha muamala ni seti ya UTxO zote zilizopo wakati wa uthibitishaji. Seti hii ya UTxOs inawakilisha hali ya leja inayotumika ya blockchain (jimbo la kimataifa).
Muamala unapowasilishwa, hurejelea UTxO moja au zaidi kama pembejeo, ambazo zinakusudiwa kutumiwa. Kazi ya mthibitishaji ni kuangalia kwamba:
UTxO zote za pembejeo kwa hakika ni sehemu ya hali ya sasa ya kimataifa, yaani, hazitumiwi na zipo kwenye leja.
Thamani ya jumla ya UTxO za pembejeo ni kubwa kuliko au sawa na jumla ya thamani ya UTxO za pato, kuhakikisha uhifadhi wa thamani (tofauti yoyote inakuwa ada ya muamala).
Muamala umetiwa saini kwa usahihi na wamiliki wa pembejeo za UTxOs, kuhakikisha ni wamiliki halali pekee wanaoweza kutumia UTxOs.
Hali ya sasa ya blockchain inaweza kuwakilishwa na seti ya UTxO zote ambazo hazijatumika, na historia ya blockchain inaweza kuonekana kama grafu ya UTxOs zote, zilizotumiwa na zisizotumiwa. Grafu hii inatoa historia kamili, inayoweza kukaguliwa ya miamala yote ambayo imewahi kutokea kwenye blockchain.
Katika picha hapa chini unaweza kuona jinsi UTxOs hutumiwa na shughuli. UTxO za pato (kijani) huwa UTxO za kuingiza (nyekundu). UTxO zote ambazo hazijatumika zinawakilisha hali ya sasa ya ulimwengu, au seti inayotumika ya UTxO (bluu). UTxO zote za bluu zinaweza kuwa ingizo la muamala, yaani, kutumika. UTxO za kijani tayari zimetumika, kwa hivyo haziwezi kutumika tena.

Ili kuthibitisha shughuli mpya, si lazima kujua historia nzima ya blockchain, lakini tu seti ya kazi ya UTxOs ambazo hazijatumiwa (bluu UTxOs). Walakini, kupata seti inayotumika ya UTxO kawaida inahitaji usindikaji wa historia nzima ya blockchain.
Kumbuka kuwa seti inayotumika ya UTxO pia inajumuisha zile UTxO zilizoundwa hapo awali.
Katika kila hali N katika takwimu, block moja ilitolewa. Katika hali mpya N+5, muktadha ulio na UTxOs kutoka majimbo N+2, N+3, na N+4 utatumika kwa uthibitishaji wa shughuli. Katika kizuizi kipya katika hali N+5, kutakuwa na shughuli ya 14 kujaribu kutumia UTxO kutoka kwa ununuzi wa 10, na shughuli ya 15 kujaribu kutumia UTxO kutoka kwa ununuzi wa 11.

Katika hali N+5, kizuizi kipya kinaundwa. Kwa hivyo pia UTxO mpya huundwa na zitaingizwa kwenye seti inayotumika ya UTxOs.
Kila UTxO inaweza kuchakatwa kwa kujitegemea na kwa sambamba, hivyo uthibitishaji wa shughuli ni huru kutoka kwa kila mmoja. Sasa tunakuja kwa maelezo ya kwa nini shughuli katika Cardano zimeidhinishwa kwa uamuzi.
Katika modeli ya UTxO, uthibitishaji wa shughuli unatabiriwa kwenye pembejeo na matokeo yake, na hivyo kuepusha hitaji la hali ya pamoja ya kimataifa. Hii inaweza kuonekana kuwa inapingana na maandishi yaliyotangulia, ambapo nilisema kwamba seti inayotumika ya UTxOs inaunda hali ya ulimwengu.
Seti nzima ya UTxO si lazima kwa uthibitishaji wa shughuli, lakini ni sehemu ndogo tu, haswa UTxO za ingizo. UTxO zilizobaki kwenye seti ya UTxO hazina umuhimu.
Uhalali wa muamala unategemea tu ikiwa UTxO zinazotumiwa ni halali na hazitumiwi, na ikiwa thamani ya jumla ya ingizo inalingana na thamani ya jumla ya matokeo.
Ingizo za muamala ni huluki huru zisizobadilika, kwa hivyo uthibitisho ni wa kubainisha. Inawezekana kutabiri kwa kiwango cha juu cha uhakika matokeo ya uthibitishaji, pamoja na matokeo ya UTxOs.
Inawezekana kuthibitisha shughuli wakati wa uwasilishaji wake, kwa kuwa ni hakika kwamba pembejeo na matokeo yatabaki bila kubadilika wakati ambapo shughuli hiyo itaidhinishwa na mtandao, yaani, wakati mtayarishaji wa kuzuia anaingiza shughuli ndani kizuizi kipya cha mgombea. Matokeo ya uthibitishaji yanaweza kuwa sawa katika matukio yote mawili. Kwa hivyo, ikiwa shughuli itapita uthibitisho wa ndani, pia itapitisha uthibitisho wa mtandao.
Picha inaonyesha kihalalishaji kinachounda kizuizi kipya, N+4, kilicho na miamala ya TX 9 na TX 10. Michango ya uthibitishaji ni miamala ambayo nodi huchukua kutoka kwenye hifadhi yake ya kumbukumbu na seti amilifu ya UTxO ambazo kila nodi hudumisha.

Shughuli mpya, TX 9 na TX 10 hutumia UTxO za zamani ambazo hazijatumika (zinazoonyeshwa na visanduku vya samawati) kuunda UTxOs za kuingiza (zinazowakilishwa na visanduku vyekundu). Mlolongo wa miamala ndani ya kizuizi sio muhimu, kwani miamala ni ya uhuru na haiathiri kila mmoja. Muamala TX 10, uliotumwa muda mfupi baada ya utengenezaji wa block N+2, unaweza kutumia UTxO kutoka kwa muamala ndani ya kizuizi hicho. Uundaji wa block mpya ya N+4 husababisha kuundwa kwa UTxO mpya kutoka kwa UTxO za pembejeo. Kwa kuongezwa kwa block ya N+4 kwenye blockchain, mtandao hubadilika hadi hali mpya ya ulimwengu.
Kama inavyoonyeshwa kwenye picha, kizuizi kipya cha N+4 kimeongezwa kwa blockchain, na kusababisha mabadiliko katika hali ya kimataifa. Kutoka kwa seti inayotumika ya UTxOs, UTxO ambazo zilitumika katika shughuli zilizomo kwenye block N+4 zitaondolewa (kijani). UTxOs (zambarau) zilizoundwa hivi karibuni ziliongezwa kwenye seti. Kizuizi kinasambazwa kwenye mtandao, kwa hivyo seti inayotumika ya UTxOs itasasishwa kwenye nodi zote kwenye mtandao zinazokubali kizuizi kipya.

Uthibitishaji wa Muamala wa Dhahiri
Hebu tuangalie upya mfano ambapo Alice ana UTxO 3 kwenye pochi yake, kila moja ikiwa na thamani ya 6.9 ADA, 47 ADA, na 459.7 ADA mtawalia.
Alice anakusudia kutuma ADA 5 kila moja kwa watu watatu - Bob, Carol, na Dave, akianzisha shughuli mpya kila wakati. Ingawa Alice anaweza kutuma muamala mmoja na wapokeaji watatu, sisi kwa makusudi tunachagua miamala mitatu tofauti katika mfano huu ili kuonyesha dhana ya uamuzi. Shughuli zote zilitumwa kwa mfululizo wa haraka na zote zinaweza kuchakatwa kwenye kizuizi kinachofuata.
Kama inavyoonyeshwa kwenye picha, kila muamala hutumia UTxO moja kutoka kwa pochi ya Alice (inayowakilishwa na visanduku vyekundu), na hivyo kuhakikisha kwamba kila muamala una ingizo la kujitegemea. Kila muamala hutoa UTxO mbili zinazotolewa, zinazowakilishwa na visanduku vya bluu. UTxO moja, yenye thamani ya 5 ADA, imetolewa kwa mpokeaji, na UTxO ya pili, iliyo na ADA iliyobaki, inarudishwa kwenye mkoba wa Alice. UTxO za pato hubainishwa wakati wa uwasilishaji wa muamala. Kwa ajili ya kurahisisha, ada za muamala zimeachwa katika mfano huu.

Baada ya uthibitisho wa ndani uliofaulu, miamala inasambazwa kwenye mtandao. Shughuli zote zinachakatwa katika block inayofuata. Katika picha inayofuata, unaweza kuona UTxO kwenye pochi za Alice na wapokeaji wote.
Kumbuka kuwa pembejeo za UTxO zimetumiwa (zinazoonyeshwa na visanduku vya kijani). UTxO sita mpya zilitolewa. UTxO tatu zinarudishwa kwa Alice. Kila mmoja wa wapokeaji watatu alipokea UTxO moja.

Zingatia kwamba thamani imehifadhiwa katika kila shughuli. Jumla ya pembejeo za UTxOs ni sawa na jumla ya matokeo yote ya UTxO. Hii inatumika kwa shughuli zote.
Mlolongo ambao shughuli za malipo zinaidhinishwa sio muhimu. Matokeo ya uthibitishaji yangesalia bila kubadilika hata kama muamala mmoja tu ungefika kwenye kizuizi kinachofuata na mbili zilizobaki zilijumuishwa kwenye vizuizi vilivyofuata (kwa sababu yoyote). Hali ya kimataifa inaweza kufanyiwa mabadiliko yoyote (kwenye vizuizi vingi) kati ya uthibitishaji wa shughuli ya Bob na miamala ya Carol na Dave, bila kuathiri uthibitishaji wa miamala.
Uthibitishaji wa shughuli ni huru kwa kila mmoja kwa sababu ya uhuru wa pembejeo za UTxO kutoka kwa kila mmoja. Kwa hivyo, uthibitishaji wa shughuli ni wa kuamua. Ingawa hali ya kimataifa inaweza kubadilika kati ya uwasilishaji wa shughuli na usindikaji wake na mtandao, haiathiri matokeo. Matokeo (sahihi au batili) yanaweza kuamuliwa tu kulingana na shughuli yenyewe na UTxO zake za kuingiza.
Hali ya kimataifa ya Cardano ni mkusanyiko wa UTxO za kujitegemea na zisizobadilika. Kwa kuzingatia uhuru wa UTxO hizi, inawezekana kufanya kazi nao kwa sambamba. Hii ina maana kwamba miamala mingi inaweza kuthibitishwa kwa wakati mmoja, ambayo inaweza kuongeza kwa kiasi kikubwa utendakazi na ufanisi wa mtandao.
Katika picha, unaweza kuona jinsi kila muamala hutumia UTxO kutoka kwa seti ya UTxO. Ikiwa pochi zote na DApps zimeundwa vizuri, haiwezi kutokea kwamba shughuli mbili hutumia UTxO sawa. UTxO zinazotumiwa huondolewa kwenye seti inayotumika na UTxO mpya huingizwa.
Kutumia UTxOs na kuongeza UTxO mpya kwenye seti hakuonyeshwa kwenye picha. Kielelezo kinaonyesha tu jinsi miamala inavyorejelea UTxOs

Faida ya ziada ni kwamba kanuni zinazotumika kwa miamala ya kawaida pia zinaenea hadi kwenye utekelezaji wa hati za kihalali. Inawezekana kuunda shughuli inayopitisha uthibitishaji wa ndani, ikijumuisha utekelezaji wa hati. Muamala kama huo una uwezekano mkubwa wa kupitisha uthibitishaji wa mtandao pia, ikizingatiwa kwamba pembejeo zote za uthibitishaji, zinazojumuisha Datum na Redemer, zitaendelea kuwa thabiti. Kwa maneno mengine, hata utekelezaji wa kithibitishaji cha hati hautegemei hali ya nje ya ulimwengu, lakini tu kwa pembejeo za shughuli. Tofauti pekee ni kwamba katika kesi ya shughuli ya hati, kuna pembejeo zaidi.
Katika picha, unaweza kuona jinsi Cardano itashughulikia shughuli nyingi kwa sambamba kwa kuongeza kizuizi kingine. Kuongeza kizuizi hubadilisha hali ya ulimwengu. Utumiaji wa pembejeo za UTxO ambazo huondolewa kutoka kwa seti amilifu ya UTxOs (kutoka hali ya kimataifa) imeonyeshwa kwa rangi nyekundu. Upanuzi wa seti amilifu ya UTxOs kwa UTxO za pato mpya (upanuzi wa hali ya kimataifa) umeonyeshwa kwa kijani.

Uamuzi unatokana na upekee wa ufikiaji wa UTxOs.
Kwa miamala ya kawaida, mmiliki wa UTxO ndiye anayeanzisha miamala. Mkoba, ukifanya kazi kama wakala, huhakikisha kwamba kila UTxO imejumuishwa katika shughuli mara moja tu.
Katika mfano wetu, Alice alimiliki UTxO zote alizotaka kutumia. Hakuna mtu mwingine aliyeweza kuunda shughuli na sahihi sahihi.
Ikiwa mkoba uliruhusu shughuli mbili kuwasilishwa kwa UTxO sawa na ingizo, ni shughuli moja tu ingekuwa na nafasi ya kufaulu. Hata hivyo, mkoba uliopangwa vizuri hautaruhusu mtumiaji kufanya makosa hayo.
Kwa upande wa programu zilizogatuliwa (DApps), wakala anaweza kuwa huluki tofauti na mkoba (kwa mfano mchinjaji). Huluki hii inawajibika kutoa ufikiaji wa kipekee kwa UTxO wakati wa kuunda miamala. Hii inahakikisha kwamba kila UTxO inatumiwa mara moja, kuhifadhi uamuzi na usalama wa mfumo.
Katika picha hapa chini unaweza kuona bwawa la ukwasi na ishara X na Y. Batchers, ambayo katika kesi hii ni sehemu za mbali za DEX, zinajaribu kufanya swaps 2. Hasa, batcher 1 na batcher 3. Wapigaji lazima wawasiliane wao kwa wao nje ya mnyororo ili kuhakikisha upatikanaji wa kipekee wa UTxOs katika bwawa la ukwasi (katika takwimu, mawasiliano ya nje ya mnyororo yanawakilishwa kwa bluu).

Ikiwa watekaji nyara hawakuwa wakiwasiliana nje ya mnyororo, wangeweza kujaribu kutumia UTxO sawa na ingizo la muamala. Unaweza kuona hali hii kwenye picha. Wagongaji wawili, ambao hawangejua nia ya kila mmoja, kila mmoja anaweza kuwasilisha shughuli ambayo mchango wake ungekuwa UTxO sawa kutoka kwa dimbwi la ukwasi. Shughuli zote mbili zingepitisha uthibitisho wa ndani, lakini ni moja tu ya miamala hiyo ingekuwa na nafasi ya kupitisha uthibitishaji wa mtandao.

Muamala wa Cardano unaweza kushindwa ikiwa wakala mmoja, au mawakala kadhaa bila ya kila mmoja, watawasilisha miamala halali kwa ingizo sawa la UTxO. Hali hii inasababishwa na pochi iliyotengenezwa vibaya au Dapp.
Kwa kumalizia, tunaweza kusema kwamba shughuli za Cardano zinaweza kuchukuliwa kuwa hazina uraia.
Mfano wa Akaunti ya Ethereum
Mfano wa akaunti ya Ethereum ni rahisi kuelezea, kwani tabia ni sawa na ile ya akaunti ya kawaida ya benki. Kila akaunti katika Ethereum ina hali inayohusishwa nayo, ambayo inajumuisha salio lake la sasa la Ether (ETH). Salio hili huhifadhiwa moja kwa moja katika hali ya akaunti na linaweza kusasishwa na miamala.
Katika takwimu hapa chini unaweza kuona mpito kati ya majimbo. Kumbuka mabadiliko kwenye salio la akaunti ya mtumiaji. Kwa urahisi, kuna salio moja tu linalowakilisha ETH.

Hali ya kimataifa ya Ethereum inaweza kutazamwa kama hifadhidata ya akaunti zote na salio lao la sasa la mali tofauti kwenye mtandao. Kila wakati kizuizi kipya kinaongezwa, hali ya mfumo inasasishwa kulingana na shughuli zote zilizomo kwenye kizuizi hicho.
Hali hii ya kimataifa imehifadhiwa ndani ya nchi kwenye kila nodi katika mtandao wa Ethereum.
Muamala unapoundwa, hubainisha akaunti ya mtumaji, akaunti ya mpokeaji, kiasi cha Etha kinachopaswa kuhamishwa, na kwa hiari baadhi ya data na GESI. Ikiwa mpokeaji ni akaunti ya mkataba, muamala huanzisha utekelezaji wa msimbo wa mkataba.
Katika picha, unaona muamala unaobadilisha hali ya kimataifa ya N hadi N+1. Muamala hubadilisha salio katika akaunti za Alice na Bob.

Shughuli inapochakatwa, mtandao wa Ethereum hukagua kuwa akaunti ya mtumaji ina salio la kutosha ili kulipia uhamisho na gharama ya gesi. Cheki ikipita, mtandao unatoa kiasi kinachofaa kutoka kwa salio la mtumaji na kuiongeza kwenye salio la mpokeaji (au kwenye salio la mkataba, ikiwa mpokeaji ni akaunti ya mkataba).
Hali ya kimataifa ya Ethereum inasasishwa kwa kila shughuli iliyochakatwa, na hali hii iliyosasishwa huhifadhiwa katika kila block mpya iliyoongezwa kwenye blockchain ya Ethereum.
Wakati muamala unachakatwa, EVM hukokotoa hali mpya kulingana na hali ya sasa na muamala. Hali hii mpya basi inakuwa hali ya sasa kwa shughuli inayofuata. Kwa njia hii, hali ya blockchain ya Ethereum inaendelea kubadilika kwa kila shughuli.
Kama inavyoonyeshwa kwenye picha, kizuizi kilichoongezwa hivi karibuni ni N+3, na kufanya hali ya kimataifa kuwa N+3. Mtandao unajaribu kuhamia hali mpya, N+4, na hivyo kizuizi kipya cha N+4 kinajengwa. Ni muhimu kutambua kwamba uthibitisho wa shughuli TX 1 katika block N + 4 (iliyoonyeshwa na sanduku la kijani) inategemea hali ya kimataifa. TX 1 ni shughuli ya kwanza ambayo nodi ya mzalishaji block inajaribu kujumuisha kwenye block N+4 mpya.
Hali ya kimataifa inawakilishwa na hali ya sasa ya akaunti zote na mikataba mahiri.

Baada ya muamala wa TX 1 kuingizwa kwenye kitalu N+4, muamala unaofuata unaweza kuthibitishwa, ambao utategemea hali ya kimataifa na shughuli iliyotangulia.
Picha inaonyesha kuwa uthibitishaji wa muamala TX 2 hautegemei tu hali ya kimataifa ambayo ilikuwa halali katika block N+3 lakini pia juu ya muamala TX 1.

Ethereum kuzuia nodi ya mzalishaji huchakata shughuli kwa mlolongo. Kila shughuli ya ziada inayoongezwa kwenye kizuizi kipya hubadilisha hali ya sasa ya ulimwengu wa nodi. Wakati kizuizi kinapoenea kwenye mtandao, nodi za uthibitishaji zinapaswa kuendelea sawa, yaani kuthibitisha shughuli kwa mlolongo kwa utaratibu ambao waliingizwa kwenye kizuizi na nodi ya mtayarishaji wa kuzuia.
Moja ya sababu shughuli za Ethereum zinaweza kushindwa ni kutokana na kutotabirika kwa hali ya kimataifa wakati wa uthibitishaji wa shughuli. Wakati shughuli inajengwa, haiwezekani kutabiri matokeo yake. Hali ya kimataifa wakati wa uthibitishaji wa shughuli inaweza kutofautiana na hali wakati wa ujenzi wa shughuli. Katika muda kati ya uwasilishaji wa muamala na uthibitishaji, salio la akaunti ya washiriki wa shughuli inaweza kuwa imebadilika. Mabadiliko haya katika salio la akaunti yanaweza kuzuia muamala kutekelezwa jinsi ilivyokusudiwa awali na mwasilishaji.
Kielelezo kinaonyesha kipindi kati ya uwasilishaji wa shughuli TX 10, ambayo ilitokea karibu na block N+2 (jimbo +2), na uthibitisho uliofuata wa shughuli iliyofuata uthibitishaji wa shughuli TX 9. Katika kipindi hiki, mabadiliko mengi katika ulimwengu hali ilitokea. Uthibitishaji wa shughuli ya TX 10 unategemea hali ya kimataifa na mabadiliko yanayoletwa na muamala TX 9. Muamala TX 9, au mabadiliko yoyote yaliyotangulia, yanaweza kusababisha shughuli ya TX 10 kushindwa.

Pembejeo za muamala ni salio la akaunti na hii ni rasilimali iliyoshirikiwa. Hii ina maana kwamba wakati mtumiaji anawasilisha muamala, salio la akaunti linaweza kuwa tofauti na wakati ambapo muamala umeidhinishwa. Ingizo la muamala si la kubainisha kama ilivyo kwa muundo wa UTxO. Haijalishi kufanya uthibitishaji wa ndani ambao unaweza kufichua ikiwa shughuli hiyo itapitisha uthibitishaji wa mtandao baadaye.
Njia bora ya kuelezea tofauti ni kurudi kwenye mfano na Alice ambaye anataka kutuma 5 ETH kwa wapokeaji 3. Kwa upande wa Ethereum, shughuli zote 3 zilizowasilishwa zina pembejeo sawa, yaani salio la akaunti ya Alice.

Uthibitishaji wa miamala hufanyika kwa kufuatana na kila wakati 5 ETH inakatwa kwenye salio la Alice na kuwekwa kwenye akaunti ya mmoja wa wapokeaji.
Baada ya kuongeza kizuizi kipya kilicho na miamala yote, akaunti za watumiaji zitaonekana kama ilivyoelezewa kwenye picha.

Picha hii si sahihi. Baadaye tutaonyesha jinsi hasa mpito kati ya majimbo hufanyika.
Ethereum huidhinisha shughuli kimaamuzi kwa maana kwamba kutokana na pembejeo sawa (data ya muamala) na hali sawa (hali ya sasa ya kimataifa ya blockchain ya Ethereum), EVM itazalisha pato sawa kila wakati. Hata hivyo, matokeo ya uthibitishaji wa muamala si ya kuamua. Matokeo ya uthibitishaji yanaweza kutofautiana na matarajio ya mtumiaji.
Wakati wa kuwasilisha muamala, mtumiaji hawezi kutabiri hali ya kimataifa itakuwaje wakati wa uthibitishaji wa muamala. Kwa hivyo, haiwezekani kukadiria matokeo ya uthibitisho kwa kiwango cha juu cha uhakika. Inaweza kudhaniwa tu.
Ikiwa watumiaji wengi wanaweza kufikia salio sawa, inaweza kutokea kwa urahisi kwamba miamala mingi itatumwa ambayo itaondoa kiasi fulani kutoka kwa salio sawa. Wacha tuseme kiasi hicho ni 1200 ETH. Watumiaji watatu kwa kujitegemea waliwasilisha muamala ambao ni kukata 500 ETH kutoka kwa kiasi hicho.
Wakati wa kuwasilisha shughuli, muktadha unaweza kuwa hivyo kwamba inawezekana kutoa kiasi kilichotolewa kutoka kwa salio. Hakuna hata shughuli moja ambayo imeongezwa kwa hali ya kimataifa (inayokubaliwa na mtandao). Walakini, mara shughuli 2 zinapothibitishwa, ya tatu itashindwa. Shughuli hizo mbili zilitoa jumla ya 1000 ETH. Salio litakuwa 200 ETH pekee. Kwa hivyo haiwezekani kuondoa 500 ETH tena. Shughuli 2 zilifaulu, na 1 haikufaulu.
Katika picha, unaweza kuona kwamba ni shughuli 2 pekee za Bob na Carol ambao walitaka kupata (kukata) 500 ETH kutoka kwa akaunti ya maombi ilifanikiwa. Dave hakubahatika na muamala wake haukufaulu.

Hata picha hii si sahihi kabisa kwa sababu haichukui mabadiliko ya taratibu ya mizani wakati wa mabadiliko ya serikali. Picha inayofuata itafafanua.
Sasa hebu tueleze umuhimu wa utaratibu wakati wa kuingiza shughuli kwenye block. Hata kama Dave angewasilisha muamala kwanza, kabla ya Bob na Carol, angeweza kuwa na bahati mbaya. Inategemea utaratibu ambao node ya mtayarishaji wa kuzuia huingiza shughuli kwenye kizuizi kipya.
Analog, ikiwa shughuli za Dave na Carol zingeingizwa kwenye block kwanza na ya pili, shughuli ya Bob ingeshindwa.
Wakati ambapo Bob, Carol, na Dave wanawasilisha muamala, hawawezi kuhakikisha uthibitishaji wake kwa ufanisi na mtandao, kwa sababu haiwezekani kufikia sehemu ya salio kwa ajili ya shughuli zao pekee. Hii ni tofauti na modeli ya UTxO, kwani inaruhusu muamala kuwa na ufikiaji wa kipekee wa pembejeo UTxO.
Katika picha, unaweza kuona majimbo 4 yanayowakilisha mabadiliko ya hali ndani ya maandalizi ya kuzuia. Shughuli nyeupe ziko kwenye bwawa la mem. Miamala 2 ya kijani ni ile iliyoondoa 500 ETH kutoka salio la DApp katika majimbo N+1 na N+2. Katika nyekundu ni muamala ambao haukufaulu katika hali N+3. Unaweza kuona jinsi salio la DApp (ambalo thamani ilitolewa hatua kwa hatua) hubadilika katika kila hali mpya. Mwanzoni thamani ilikuwa 1200, kisha 700 na hatimaye 200 tu.
Kumbuka kuwa katika hali N+2 shughuli zote za malipo zinarejelea salio sawa la DApp, lakini ina thamani tofauti na katika hali N+1 na N.

Hali ya kimataifa ya Ethereum inaweza kuchukuliwa kuwa hali ya akaunti zote na akaunti za mikataba. Hali ya akaunti inajumuisha salio lake la Etha na, kwa akaunti za mkataba, hali ya sasa ya mkataba mahiri, ikijumuisha vigeuzo vyovyote vilivyobainishwa katika mkataba.
Muundo wa akaunti ya Ethereum unahitaji shughuli kuchakatwa kwa kufuatana. Hii ni kwa sababu kila muamala unaweza kuathiri hali ya akaunti yoyote kwenye mtandao, na matokeo ya muamala yanaweza kutegemea utaratibu ambao unachakatwa. Kwa hivyo, ili kuhakikisha uthabiti na kuzuia matumizi ya mara mbili, hali ya kimataifa lazima ‘imefungwa’ kwa kila uthibitishaji, kumaanisha ni shughuli moja pekee inayoweza kuchakatwa kwa wakati mmoja.
Kufungwa kwa hali ya kimataifa inahitajika ili kuhakikisha uadilifu wa mfumo. Bila utaratibu huu wa kufunga, itawezekana kwa miamala miwili kujaribu kutumia pesa sawa kwa wakati mmoja, na kusababisha kutofautiana katika hali ya kimataifa na uwezekano wa kuruhusu matumizi maradufu. Kwa kusindika shughuli kwa mfuatano na kusasisha hali ya kimataifa baada ya kila shughuli, Ethereum inahakikisha kwamba kila shughuli inashughulikiwa katika hali thabiti na kwamba utaratibu wa shughuli hauathiri hali ya mwisho ya mfumo.
Picha inaonyesha hali ya kimataifa ya Ethereum. Kila muamala hurekebisha salio mbili. Mshale mwekundu unaonyesha kupunguzwa kwa thamani kutoka kwa usawa, wakati mshale wa kijani unaashiria kuongezwa kwa thamani kwenye salio. Ni vyema kutambua kwamba baadhi ya miamala inayochakatwa kwa mfuatano hurekebisha salio sawa. Kwa mfano, TX 1 na TX 2 huchukua thamani kutoka kwa salio sawa, huku TX 3 na TX 4 zinaongeza thamani kwenye salio sawa.

Katika picha unaweza kuona jinsi Ethereum inashughulikia shughuli kwa mlolongo na jinsi mizani ya hali ya kimataifa inavyobadilika katika kila hali ya mtu binafsi. Salio katika nyekundu inaonyesha uondoaji wa thamani kutoka kwa salio huku salio katika kijani kinaonyesha kuongezwa kwa thamani kwenye salio. Salio zote mbili hubadilika kwa wakati mmoja (kiatomi) ndani ya shughuli iliyochakatwa.

Shughuli za Ethereum zinaweza kutambuliwa kama za serikali.
Hitimisho
Bila muktadha au hali ya kimataifa, ingewezekana tu kuthibitisha sifa fulani za muamala, kama vile saini ya kriptografia kutoka kwa mmiliki wa ufunguo wa faragha. Uwezo wa kutumia rasilimali unahitaji muktadha. Nodi zote kwenye mtandao lazima zidumishe hali thabiti ya kimataifa ambayo inatumika wakati nodi inapounda kizuizi kipya na pia wakati wa uthibitishaji wake unaofuata na nodi zingine kwenye mtandao.
Inaelezwa mara kwa mara kuwa Cardano haina hali ya pamoja ya kimataifa. Huu ni ulinganifu unaofaa katika muktadha wa umuhimu wa hali ya kimataifa katika kesi ya Ethereum. Walakini, muktadha wa kudhibitisha shughuli pia ni muhimu kwa Cardano. Katika kesi ya Cardano, hali ya kimataifa inajumuisha seti ya vitu vya kipekee na vya kujitegemea ambavyo vinaweza kuliwa mara moja tu katika shughuli moja. Matumizi ya pembejeo ya UTxO husababisha uzalishaji wa UTxO mpya. Kwa upande wa Ethereum, salio ni huluki za kudumu ambazo zinaweza kurekebishwa mara kwa mara kwa miamala wakati wowote. Shughuli mbili za Ethereum haziwezi kurekebisha salio sawa kwa wakati mmoja. Kwa hivyo, usindikaji wa mlolongo wa shughuli ni muhimu. Kwa upande wa Cardano, usawaziko unawezekana kwa sababu miamala ni huru kutoka kwa kila mmoja.
Kuamua ni faida kwa cryptography ya ZK. Kwa mfano, katika mfumo wa ikolojia wa Cardano, itawezekana kuunda Rollup ya ZK ambayo haihitaji mpangilio wa mpangilio.