๐Ÿ‡น๐Ÿ‡ฟ Changamoto kwa Wasanidi wa Cardano


Inaweza kuwa ngumu kwa wasanidi programu kuchukua faida kamili ya modeli ya UTxO kwa sababu wanapaswa kuzingatia ulinganifu. Cardano hairuhusu kudumisha hali moja ya maombi ya kimataifa katika sehemu ya mtandaoni ya mkataba mahiri. Kila UTxO inaweza kuwakilisha sehemu ya hali ya programu na inaweza kuchakatwa kwa kujitegemea na kwa sambamba. Kinadharia hii inaruhusu upitishaji na upanuzi wa hali ya juu, lakini ni lazima programu ishughulikie matatizo yanayohusiana na udhibiti wa shughuli zinazofanyika kwa wakati mmoja. Je, watengenezaji wanakumbana na changamoto gani kwenye Cardano?

Wakati Usambamba ni Rahisi
Katika muundo wa Pato Lililoongezwa la Muamala Usiotumika (eUTxO), kila UTxO inaweza kuchakatwa kivyake na sambamba. Matumizi ya UTxO hayategemei hali yoyote ya kimataifa ya Cardano. Ikiwa masharti ya matumizi yametimizwa, UTxO za pato moja au zaidi zitaundwa kupitia muamala kutoka kwa ingizo la UTxO (au UTxO zaidi za pembejeo). Ingizo UTxO(s) lazima zitumike kabisa. Pato UTxO lazima ziwe na thamani sawa (au ndogo) kama ingizo UTxO.

Ikiwa Alice atatuma ADA 100 kwa Bob, matumizi ya UTxO yanategemea Shahidi wa Alice pekee. Iwapo watumiaji wengine mia moja watatuma muamala kama huo, UTxO nyingine 100 za kipekee zitatumika. Kila mtumaji wa muamala ndiye mmiliki wa ingizo la UTxO. Hakuna utegemezi kati ya shughuli na pembejeo za UTxO.
Hakuna utegemezi kati ya miamala na uingizaji wa UTxO kwa sababu watumaji wote wako huru kutoka kwa kila mmoja. Walifanya uamuzi wao wa kujitegemea kutuma 100 ADA. Shughuli zote 100 zinaweza kuingizwa kwenye kizuizi kimoja na zitatathminiwa kuwa halali.

Muamala hutumia UTxO moja au zaidi kama pembejeo na hutoa UTxO mpya moja au zaidi kama matokeo. Sheria hii rahisi inatumika kwa uhamisho wa thamani kati ya Alice na Bob, na pia katika kesi ya maombi, kama utaona baadaye.
Katika picha, unaona shughuli 3 zinazofanana. Na miamala 100 ingeonekana sawa.

Usichanganyikiwe na ukweli kwamba mtumaji daima ni Alice na mpokeaji ni Bob. Kila wakati ni Alice tofauti na Bob tofauti. Kielelezo kinakusudiwa kuonyesha ukweli kwamba hakuna ulandanishi unaohitajika kati ya watumaji wa miamala. Ikiwa shughuli ni halali, haziwezi kushindwa na zote huingia kwenye blockchain.
Unaweza kutambua maana ya picha baadaye baada ya sisi kueleza jinsi DEX inavyofanya kazi.

Mtandao wa Cardano unaweza kuthibitisha shughuli kwa utaratibu wowote, kwani shughuli ni huru kutoka kwa kila mmoja. Hii ni faida kutoka kwa mtazamo wa upitishaji wa mtandao kwani makubaliano hayategemei usindikaji wa mfuatano.
Jinsi ya kuunda Maombi Sambamba?
Kwa hakika, wasanidi programu wanapaswa kuunda mantiki hiyo ya mikataba mahiri ambayo inatenda vivyo hivyo katika suala la ulinganifu kama wakati watumaji 100 (Alices) wanapotuma muamala. Hata hivyo, hii ni karibu haiwezekani.
Wacha tufafanue hili kwa mfano wa DEX ambayo hutumia mabwawa ya ukwasi.
Dimbwi la ukwasi hujazwa na miamala mingi ambayo hutoa matokeo ya UTxO. UTxO hizi zinawakilisha ishara kwenye dimbwi la ukwasi. Kwa kila kizuizi kipya kilichoongezwa kwenye leja, muundo wa UTxO kwenye dimbwi la ukwasi unaweza kubadilika.
Katika picha, unaona dimbwi la ukwasi na jozi ya ishara X na Y. Katika bwawa la ukwasi, kuna UTxO kadhaa zilizo na ishara X na Y. Katika kizuizi kinachofuata, Alice, Bob, na Carol waliweka UTxO mpya na ishara. X kwenye kidimbwi cha ukwasi, na Dave, Eve, na Frank waliweka UTxO na tokeni Y. Kwa kuwa hakuna ubadilishaji uliotokea, hakuna UTxO zilizoondolewa kwenye bwawa.


Ili kubadilishana, DEX lazima itumie UTxO (au zaidi UTxO) kutoka kwa dimbwi la ukwasi kama ingizo kwa kila aina ya tokeni. UTxO hizi lazima zitumike kabisa. Ikiwa ubadilishaji hauitaji ishara zote kwenye UTxO, basi ishara zilizobaki lazima zirudishwe kwenye dimbwi la ukwasi kama UTxO mpya.

Kwa upande wa DEX, shughuli nyingi zinaendelea kwa wakati mmoja. Watumiaji hutuma tokeni (watoa huduma za ukwasi) kwa madimbwi ya ukwasi. Watoa huduma ni watumaji na DEX ndiye mpokeaji. Wakati huo huo, watumiaji wengine wanaweza kutuma maombi ya kubadilishana. Ni watumaji wanaotoa tokeni za X kwa DEX na wanataka kupata tokeni za Y. Au kinyume chake.

Washiriki wengi wanaweza kutuma ombi la kubadilishana ndani ya muda mfupi. Mabadilishano haya yanaweza kuhusiana na dimbwi moja la ukwasi. Kwa hivyo, kuna kutegemeana kati ya washiriki.

Pia ni wazo nzuri kufafanua DEX ni nini haswa. Mikataba changamano mahiri katika Cardano (kama DEX) ina sehemu mbili: mantiki ya mnyororo ambayo inatekelezwa kwenye blockchain na mantiki ya nje ya mtandao ambayo inatekelezwa kwenye seva (au katika pochi za ndani).
Katika picha, unaweza kuona DEX ambayo ina mantiki ya on-chain na off-chain.

Ingawa utekelezaji wa mantiki ya mnyororo umegawanywa kwa kawaida kama inavyofanyika katika mtandao wa Cardano, timu inawajibika kwa ugatuaji wa mantiki ya nje ya mnyororo wa DEX. Sehemu ya nje ya mnyororo wa DEX haijaundwa (haipaswi kuwa) ya wakala mmoja tu, bali ya mawakala kadhaa.
Kwa upande wa DEX, mawakala hawa huitwa batchers. Wao ni wajibu wa kutekeleza swaps. Wapangaji hutengeneza miamala ambayo inakidhi masharti ya matumizi ya UTxOs katika hifadhi ya ukwasi na kuhamisha mali katika uwiano ambao washiriki wote wawili waliomba.
Cardano hairuhusu kudumisha hali ya maombi ya kimataifa katika sehemu ya mnyororo ya mkataba mahiri. Inawezekana kitaalam, ingawa.
Ikiwa watengenezaji wangehifadhi hali nzima ya DApp katika UTXO moja, kimsingi wangekuwa wanaunda hali ya kimataifa sawa na ile iliyopo katika mfano wa akaunti ya Ethereum. Hii inaweza kuzuia upatanishi na utumiaji wa DApp yako. Mbinu hii haingeweza kutumia kikamilifu manufaa ya mfano wa EUTxO.
Katika sehemu ya mnyororo ya DEX, UTxOs na Datum inayohusika inawakilisha hali ya maombi. Kwa hivyo serikali inasambazwa kote kwenye UTxOs. Iwapo DEX itakuwa na hali ya matumizi sawa ya kimataifa, ni lazima idumishwe nje ya mnyororo kwenye batchers.
Katika picha, unaweza kuona dimbwi la ukwasi na ishara X na Y na batcher 3. Hali ya matumizi ya kimataifa na ulandanishi wa hali kati ya batchers huonyeshwa kwa bluu. Hali ya maombi inajumuisha data ya mtandaoni ambayo ni Datums zinazohusiana na UTxOs na hali ya matumizi ya nje ya mnyororo inayodumishwa na wapigaji (mawakala). Wagongaji huwasiliana wao kwa wao ili kusawazisha hali ya maombi ya kimataifa.


Hii ni muhimu kwa sababu watekaji nyara (mawakala) wanapata rasilimali sawa na hiyo ndio dimbwi la ukwasi. Wanahitaji kutumia pembejeo UTxOs kutoka kwa dimbwi la ukwasi (kutekeleza ubadilishanaji) na inaweza kutokea kwamba mawakala wawili (au zaidi) wanataka kutumia UTxO sawa. Tatizo la ugomvi linaweza kutokea.
Sasa ni wakati wa kukumbuka picha ya kwanza katika makala. Wakati watumaji 100 waliwasilisha muamala, hawakuweza kushindana kwa UTxO sawa, kwani kila mtumaji alitumia UTxO yake mwenyewe. UTxO katika kundi la ukwasi ni rasilimali iliyoshirikiwa, yaani, rasilimali inayofikiwa na mawakala wengi.
Kwa ujumla, ugomvi unarejelea hali ambapo nyuzi nyingi au michakato (kwa upande wetu, mawakala) wanajaribu kupata rasilimali sawa kwa njia ambayo angalau moja yao huendesha polepole zaidi kuliko ingekuwa ikiwa zingine hazingefanya kazi.
Kwa upande wetu, kuna hatari kwamba mawakala wawili wataunda shughuli ambayo wanatumia pembejeo sawa UTxO kutoka kwa dimbwi la ukwasi. Katika kesi hii, shughuli moja tu itakubaliwa na Cardano. Ya pili inashindwa.
Katika picha, unaweza kuona kwamba batcher 1 na batcher 3 wanajaribu kutumia UTxO sawa na ishara X. Ugomvi umetokea. Makundi hayajasawazishwa vizuri na hajui nia ya kila mmoja kutumia UTxO hii. Ikiwa shughuli 2 za kubadilishana zitajengwa, moja itafaulu na nyingine itashindwa.

Lengo la DEX ni kuwezesha ubadilishaji kutekelezwa kwa wakati mmoja, yaani, ili mawakala binafsi waweze kufanya miamala kwa wakati mmoja na ugomvi hautokei wanapochagua UTxO.
Ili kuzuia miamala isishindwe, lazima kuwe na mawasiliano ya nje ya mnyororo kati ya mawakala au aina nyingine ya ulandanishi. Kwa maneno mengine, mawakala lazima wadumishe hali thabiti ya kimataifa ya DEX.
Mawakala binafsi lazima kwa namna fulani kuhifadhi UTxO kwenye bwawa ili UTxO ile ile isitumike na wakala mwingine. Vinginevyo, inaweza kufanya kazi kwa njia ambayo ndani ya kila kizuizi kinachofuata (sekunde 20) miamala yote itajengwa na wakala mmoja (aliyechaguliwa kwa nasibu). Ingawa mbinu hii imegatuliwa, haitumiki kwa wakati mmoja.
Unaweza kuona kwenye picha kwamba batcher 1 na batcher 3 walichagua UTxOs zilizo na ishara X na Y kwa mtindo wa kipekee wa kubadilishana, kwa hivyo hakukuwa na ugomvi. Badilisha 1 na 2 endesha kwa wakati mmoja. Hakukuwa na ugomvi kwa sababu wapiganaji wote walilandanisha hali ya kimataifa na kila mmoja.

Kumbuka kuwa tokeni X ina thamani ya soko mara 2 haswa ya tokeni Y na kwa bahati mbaya kulikuwa na UTxO zinazofaa kwenye dimbwi la ukwasi kwa kuoanisha. Kubadilisha 1 hutumia tokeni 100 za X na tokeni 50 za Y. Kubadilisha 2 hutumia tokeni 200 za X na tokeni 100 za Y. Ikiwa hapakuwa na UTxO na ishara 100 za X kwenye bwawa, ya pili inayofaa zaidi itakuwa UTxO yenye ishara 114 X. Hii inamaanisha kuwa tokeni 14 za X zitalazimika kurejeshwa kwenye dimbwi la ukwasi kama UTxO mpya.

Moja ya changamoto nyingine, ambayo haitajadiliwa zaidi katika makala, ni uteuzi sahihi wa UTxOs kwa swaps. Kwa Ethereum, hili sio tatizo, kwani kimsingi masalio ya akaunti pekee ndiyo yanasasishwa.

Inawezekana kufikiri juu ya tatizo kwa njia tofauti kabisa kuliko kutumia bwawa la ukwasi. Badala ya kuweka UTxOs kwenye dimbwi moja, inawezekana kuunganisha wagombeaji wa kubadilishana mtu binafsi. Walakini, kwa ajili ya unyenyekevu, wacha tushikamane na mabwawa ya ukwasi katika nakala hii.

Kubuni DEX kwenye Cardano ambayo inaweza kuchakata UTxOs sambamba huku kudumisha ugatuaji kunahusisha kushughulikia tatizo la upatanishi. Hii ni mojawapo ya changamoto kwa wasanidi programu.

Katika makala hiyo, tulionyesha mojawapo ya ufumbuzi unaowezekana, yaani matumizi ya vipengele vya mbali na kwenye mnyororo. Sehemu ya nje ya mnyororo inaweza kutumika kuunda miamala kwa usahihi ili kuingiliana na msimbo wa mnyororo. Usahihi huhakikishwa kupitia mawasiliano ya nje ya mnyororo unaowezesha usawazishaji wa hali ya kimataifa ya programu.

Mojawapo ya mbinu zinazowezekana ni kuunda algoriti ambayo huwapa watumiaji ufikiaji wa kipekee wa kuwasilisha kitendo kinachohitajika. Algorithm inaweza baadaye kuunganisha vitendo vyote pamoja kuheshimu muda na haki.

Wasanidi programu wanaweza kudumisha hali moja katika sehemu ya msururu wa programu au kuigawanya kwenye UTxO nyingi. Kuwa na hali moja kwenye mnyororo ni rahisi kwa sababu ni rahisi kudumisha uthabiti. Sehemu zote za programu hufanya kazi na data sawa. Kugawanya hali ya mnyororo kwenye UTxoS nyingi kunaweza kuongeza sarafu lakini inakuja na changamoto kadhaa. Kusimamia UTxO nyingi huongeza utata kwa mantiki ya mikataba mahiri. Inahitajika kuhakikisha aina fulani ya maingiliano ambayo inahakikisha usahihi (kuepuka mabishano).

Kiini cha tatizo kiko katika kufikia ulinganifu katika mazingira yaliyogatuliwa.

Mantiki ya programu inaunganishwa kila wakati na UTxOs. Kila UTxO inawakilisha sehemu huru ya serikali ambayo inaweza kuchakatwa kwa sambamba. Kama tulivyoelezea katika kifungu, hii inawezekana tu ikiwa aina fulani ya maingiliano ya kuaminika inatekelezwa.

Iwapo kungekuwa na mchinjaji mmoja tu au wakala wa nje ya mnyororo, inaweza kudhibiti hali ya DEX na kuandaa miamala bila kuwa na wasiwasi kuhusu masuala ya upatanishi. Hii inaweza kusababisha uchakataji wa haraka wa muamala na upitishaji wa juu zaidi.

Hata hivyo, mbinu hii kimsingi ingeweka kati sehemu ya nje ya mnyororo wa DEX, ambayo inaenda kinyume na kanuni ya ugatuaji. Changamoto, kwa hivyo, ni kufikia ugatuaji wa nje ya mnyororo huku tukiendelea kudumisha utendaji wa hali ya juu na kuepuka masuala ya maridhiano.

Watengenezaji wa Ethereum pia Wanakabiliwa na Changamoto

Ethereum hutumia kielelezo cha akaunti na mikataba mahiri ina hali ya kimataifa inayosasishwa na miamala. Hali ya kimataifa ni msimbo (kazi) na data (jimbo) ambayo inakaa kwenye anwani maalum kwenye blockchain ya Ethereum.
Hali ya kimataifa ya DEX inaweza kuwakilisha hali ya sasa ya kitabu cha agizo, ikijumuisha maagizo yote ya wazi ya kununua na kuuza. Wakati shughuli mpya ya kubadilishana inapowasilishwa, inawakilisha mabadiliko yanayoweza kutokea kwa hali hii ya kimataifa. Hata hivyo, mabadiliko haya yanakubalika mara tu muamala unapojumuishwa kwenye kizuizi na kuthibitishwa na mtandao.

Shughuli katika Ethereum huchakatwa kwa mfuatano, mmoja baada ya mwingine. Hii inamaanisha kuwa hakuna upatanisho katika ulimwengu wa Ethereum, kwa hivyo hakuna maswala ya sarafu. Uchakataji huu wa mfuatano hurahisisha kubuni DEXs kwenye Ethereum linapokuja suala la upatanifu na ulinganifu kwa sababu wasanidi programu hawalazimiki kushughulika na matatizo ya kudhibiti miamala kwa wakati mmoja.

Walakini, uthibitishaji huu wa mfuatano unashindwa kutumia upatanishi. Utekelezaji wa shughuli sambamba hautakuwa salama, kwa sababu kunaweza kuwa na utegemezi kati ya mikataba. Ikiwa mkataba mmoja unategemea matokeo ya mwingine, basi mikataba hiyo lazima itekelezwe kwa utaratibu sawa na kila mthibitishaji.
Utaratibu wa shughuli ndani ya block imedhamiriwa na wathibitishaji. Wanaweza kuchagua kupanga miamala kulingana na vipengele kama vile bei ya GESI, nonce, na mara ya kwanza kuonekana. Kwa hivyo, wakati DEX inaweza kuunda foleni ya kubadilishana nyingi, haiwezi kuwa na uhakika ni kwa mpangilio gani ubadilishanaji huu utatekelezwa.

Kutokuwa na uhakika huku kunaweza kusababisha hali ambapo miamala itafeli kwa sababu ya hali ya mbio, ambapo miamala tofauti hushindana kutumia ukwasi sawa. Ili kushughulikia hili, baadhi ya DEXs hutekeleza mbinu kama vile kuvumilia utelezi na makataa ya muamala ili kuongeza uwezekano wa miamala kutekelezwa kwa mafanikio.

Hali ya mbio inaweza kutokea wakati watumiaji wengi wanajaribu kubadilisha tokeni kwa wakati mmoja. Kwa mfano, tuseme watumiaji wawili wanataka kubadilisha ETH kwa USDT, na kuna USDT ya kutosha pekee katika hifadhi ya ukwasi kwa ajili ya kubadilishana moja kupitia. Watumiaji wote wawili huwasilisha miamala yao ya kubadilishana takriban kwa wakati mmoja. Wahalalishaji wa Ethereum wataamua utaratibu ambao shughuli hizi zinajumuishwa kwenye kizuizi.
Ikiwa muamala wa mtumiaji A utajumuishwa kwanza, ubadilishaji wao utafanyika na hakutakuwa na USDT ya kutosha kwenye kidimbwi cha kubadilishana mtumiaji B.

Wakati mtandao wa Ethereum unajaribu kushughulikia shughuli ya mtumiaji B, itashindwa kwa sababu haiwezi kutimiza ubadilishanaji.
Matokeo hutegemea muda wa jamaa wa shughuli mbili au zaidi (swaps). Ijapokuwa Ethereum huchakata shughuli kwa kufuatana, hali za mbio bado zinaweza kutokea wakati miamala mingi inategemea rasilimali iliyoshirikiwa (kama dimbwi la ukwasi katika DEX) na kuwasilishwa kwa wakati mmoja.

Ona kwamba hali ya mbio inaweza kutokea hata kama bwawa la ukwasi linasimamiwa na DEX moja tu. Hii ni kwa sababu hali ya mbio haisababishwi na DEX yenyewe bali na asili ya uchakataji wa miamala.

Kwa maneno mengine, maombi kwenye Ethereum yanaweza kupendelea utaratibu fulani ambao shughuli zinapaswa kusindika, lakini hii sio chini ya udhibiti wao wenyewe. Katika kesi ya Cardano, shughuli zinasindika kwa msingi wa kwanza, wa kwanza. Hata hivyo, ni muhimu kutaja kwamba mabwawa haipaswi kufuata sheria hii na hakuna utaratibu ambao ungelazimisha bwawa kuchagua shughuli kutoka kwa mem-pool kwa usahihi.
Hebu tulinganishe kwa ufupi changamoto za wasanidi programu kwenye mifumo yote miwili.

Wakati wa kuunda DEX au programu nyingine yoyote iliyogatuliwa kwenye Cardano, mojawapo ya changamoto ni kudhibiti na kusawazisha vipande vya serikali kwenye UTXO na mawakala wengi. Hii inaruhusu matokeo ya juu na upanuzi lakini pia huleta matatizo ya ziada yanayohusiana na udhibiti wa shughuli za wakati mmoja.

Programu inaweza kudhibiti na kusasisha hali yake ya nje ya mnyororo, na kisha kukabidhi serikali mara kwa mara kwa blockchain. Njia hii inaweza kusaidia kupunguza mzigo kwenye blockchain na kuongeza kasi ya shughuli. Zaidi ya hayo, maingiliano ya nje ya mnyororo yanaweza pia kuwezesha utekelezaji sambamba wa miamala kwenye mnyororo. DEX inaweza kuandaa miamala mingi sambamba na kisha kuiwasilisha kwa blockchain ili itekelezwe.

Usawazishaji wa haraka wa nje ya mnyororo unaweza kusababisha uwezekano wa kuongezeka kwa kasi na usawaziko kwenye mnyororo. Wasanidi programu hujaribu kufikia ulinganifu wa juu zaidi unaowezekana kupitia ulandanishi.
Hii ni tofauti na mfano wa akaunti ya Ethereum, ambapo hali ya maombi yote huhifadhiwa katika hali moja ya kimataifa. Jimbo la kimataifa linaweza kushikilia data zote muhimu za DEX na mabadiliko kupitia miamala. Kwa kuwa Ethereum huchakata shughuli (simu) kwa mfuatano, watengenezaji hawana haja ya kuwa na wasiwasi kuhusu concurrency hata kidogo.

Hata hivyo, tatizo ni kwamba aina fulani ya usawa inawakilishwa na tabia ya watumiaji ambao wanaweza kujaribu kutumia ukwasi sawa katika DEX kwenye Ethereum. Kimsingi wanapigania rasilimali moja sawa na wapiga risasi ambao wanaweza kutaka kutumia UTxO sawa.

Wasanidi wa Ethereum DEX hawawezi kuzuia kabisa hali za mbio zinazohusiana na watumiaji wengi wanaojaribu kutumia ukwasi sawa. Hali ya dimbwi la ukwasi (yaani, ni kiasi gani cha ukwasi kinachopatikana) imedhamiriwa na shughuli ambazo zimejumuishwa kwenye blockchain. Watumiaji hawajui kwa wakati halisi ikiwa miamala yao itafaulu kwa sababu Ethereum huchakata shughuli kwa mfuatano na agizo huamuliwa na wathibitishaji.
Wasanidi programu wanaweza kujaribu kuunda mbinu fulani ili kuzuia watumiaji kuwasilisha muamala ambao una uwezekano mkubwa wa kushindwa. Hata hivyo, hii ni kazi ngumu sana.
Kumbuka kuwa Cardano anatenda kwa uthabiti tofauti na Ethereum.

Hitimisho

Ili kuchukua faida kamili ya mfano wa UTxO na usawazishaji, ni muhimu kuboresha Uthibitisho wa Ouroboros-of-Stake. Mtandao wa Cardano lazima uweze kuthibitisha na kuidhinisha mapema idadi kubwa ya miamala kwa wakati mmoja. Ikiwa makumi kadhaa ya shughuli ziliingizwa kwenye kizuizi mara moja kila sekunde 20, haijalishi kwamba inawezekana kusindika kwa sambamba. Scalability bado ingekuwa chini kiasi. Waidhinishaji wa Ingizo wataleta uboreshaji unaohitajika wa makubaliano ya PoS ambayo muundo wa UTxO utangโ€™aa zaidi.