Mikakati ya Kuhifadhi Data kwenye Mnyororo wa Vitalu
Kuna njia nyingi za kuhifadhi taarifa moja kwa moja kwenye mnyororo wa vitalu, au kwa namna ambayo inalindwa na mnyororo wa vitalu:
- Blobs za EIP-4844
- Data za mwito (Calldata)
- Nje ya mnyororo na mifumo ya tabaka la 1 (l1)
- "Msimbo" wa mkataba
- Matukio
- Hifadhi ya EVM
Uchaguzi wa njia gani ya kutumia unategemea vigezo kadhaa:
- Chanzo cha taarifa. Taarifa katika data za mwito haziwezi kutoka moja kwa moja kwenye mnyororo wa vitalu wenyewe.
- Hatima ya taarifa. Data za mwito zinapatikana tu katika muamala unaozijumuisha. Matukio hayapatikani mnyororoni kabisa.
- Ni usumbufu kiasi gani unakubalika? Kompyuta zinazoendesha nodi kamili zinaweza kufanya uchakataji zaidi kuliko kiteja chepesi katika programu inayoendeshwa kwenye kivinjari.
- Je, ni lazima kuwezesha ufikiaji rahisi wa taarifa kutoka kwa kila nodi?
- Mahitaji ya usalama.
Mahitaji ya usalama
Kwa ujumla, usalama wa taarifa unajumuisha sifa tatu:
-
Usiri, vyombo visivyoidhinishwa haviruhusiwi kusoma taarifa. Hili ni muhimu katika matukio mengi, lakini si hapa. Hakuna siri kwenye mnyororo wa vitalu. Minyororo ya vitalu inafanya kazi kwa sababu mtu yeyote anaweza kuhakiki mabadiliko ya hali, kwa hivyo haiwezekani kuitumia kuhifadhi siri moja kwa moja. Kuna njia za kuhifadhi taarifa za siri kwenye mnyororo wa vitalu, lakini zote zinategemea kijenzi fulani cha nje ya mnyororo kuhifadhi angalau ufunguo.
-
Uadilifu, taarifa ni sahihi, haiwezi kubadilishwa na vyombo visivyoidhinishwa, au kwa njia zisizoidhinishwa (kwa mfano, kuhamisha tokeni za ERC-20 (inafunguka katika kichupo kipya) bila tukio la
Transfer). Kwenye mnyororo wa vitalu, kila nodi huhakiki kila mabadiliko ya hali, ambayo inahakikisha uadilifu. -
Upatikanaji, taarifa inapatikana kwa chombo chochote kilichoidhinishwa. Kwenye mnyororo wa vitalu, hii kwa kawaida hufikiwa kwa kuwa na taarifa inayopatikana kwenye kila nodi kamili (inafunguka katika kichupo kipya).
Suluhu tofauti hapa zote zina uadilifu bora, kwa sababu heshi huchapishwa kwenye tabaka la 1 (l1). Hata hivyo, zina hakikisho tofauti za upatikanaji.
Matakwa ya awali
Unapaswa kuwa na uelewa mzuri wa misingi ya mnyororo wa vitalu. Ukurasa huu pia unachukulia kuwa msomaji anafahamu vitalu, miamala, na mada nyingine husika.
Blobs za EIP-4844
Kuanzia na hardfork ya Dencun (inafunguka katika kichupo kipya) mnyororo wa vitalu wa Ethereum unajumuisha EIP-4844 (inafunguka katika kichupo kipya), ambayo inaongeza kwenye Ethereum blobs za data zenye muda mfupi wa kuishi (awali takriban siku 18 (inafunguka katika kichupo kipya)). Blobs hizi zinapangiwa bei tofauti na gesi ya utekelezaji, ingawa zinatumia mfumo sawa. Ni njia ya bei nafuu ya kuchapisha data za muda.
Matumizi makuu ya blobs za EIP-4844 ni kwa ajili ya mikusanyiko kuchapisha miamala yao. Mikusanyiko ya optimistic inahitaji kuchapisha miamala kwenye minyororo yao ya vitalu. Miamala hiyo inapaswa kupatikana kwa mtu yeyote wakati wa kipindi cha changamoto (inafunguka katika kichupo kipya) ili kuwezesha wathibitishaji (inafunguka katika kichupo kipya) kurekebisha kosa ikiwa mpangaji (inafunguka katika kichupo kipya) wa rollup atachapisha mzizi wa hali usio sahihi.
Hata hivyo, mara tu kipindi cha changamoto kinapopita na mzizi wa hali unakuwa umekamilishwa, dhumuni lililosalia la kujua miamala hii ni kunakili hali ya sasa ya mnyororo. Hali hii pia inapatikana kutoka kwa nodi za mnyororo, huku ikihitaji uchakataji mdogo sana. Kwa hivyo taarifa za muamala bado zinapaswa kuhifadhiwa katika sehemu chache, kama vile vivinjari vya kitalu, lakini hakuna haja ya kulipia kiwango cha upinzani wa udhibiti ambacho Ethereum inatoa.
Mikusanyiko ya sifuri-maarifa pia huchapisha data zao za muamala ili kuwezesha nodi nyingine kunakili hali iliyopo na kuhakiki uthibitisho wa uhalali, lakini tena hilo ni hitaji la muda mfupi.
Wakati wa kuandika, kuchapisha kwenye EIP-4844 kunagharimu Wei moja (10-18 ETH) kwa kila baiti, ambayo ni ndogo sana ikilinganishwa na gesi 21,000 za utekelezaji ambazo muamala wowote, ikiwa ni pamoja na ule unaochapisha blobs, unagharimu (inafunguka katika kichupo kipya). Unaweza kuona bei ya sasa ya EIP-4844 kwenye blobscan.com (inafunguka katika kichupo kipya).
Hizi hapa ni anwani za kuona blobs zilizochapishwa na baadhi ya mikusanyiko maarufu.
Data za mwito
Data za mwito inarejelea baiti zinazotumwa kama sehemu ya muamala. Inahifadhiwa kama sehemu ya rekodi ya kudumu ya mnyororo wa vitalu katika kitalu kinachojumuisha muamala huo.
Hii ndiyo njia ya bei nafuu zaidi ya kuweka data kwa kudumu kwenye mnyororo wa vitalu. Gharama kwa kila baiti ni gesi 4 za utekelezaji (ikiwa baiti ni sifuri) au gesi 16 (thamani nyingine yoyote). Ikiwa data imeshinikizwa, ambayo ni desturi ya kawaida, basi kila thamani ya baiti ina uwezekano sawa, kwa hivyo gharama ya wastani ni takriban gesi 15.95 kwa kila baiti.
Wakati wa kuandika, bei ni Gwei 12/gesi na 2300 $/ETH, ambayo inamaanisha gharama ni takriban senti 45 kwa kila kilobaiti. Kwa sababu hii ilikuwa njia ya bei nafuu zaidi kabla ya EIP-4844, hii ndiyo njia ambayo mikusanyiko ilitumia kuhifadhi taarifa za muamala, ambazo zinahitaji kupatikana kwa ajili ya changamoto za makosa (inafunguka katika kichupo kipya), lakini hazihitaji kupatikana moja kwa moja mnyororoni.
Hizi hapa ni anwani za kuona miamala iliyochapishwa na baadhi ya mikusanyiko maarufu.
Nje ya mnyororo na mifumo ya tabaka la 1 (l1)
Kulingana na mabadilishano yako ya usalama, inaweza kukubalika kuweka taarifa mahali pengine na kutumia mfumo unaohakikisha data inapatikana inapohitajika. Kuna mahitaji mawili ili hili lifanye kazi:
-
Chapisha heshi (inafunguka katika kichupo kipya) ya data kwenye mnyororo wa vitalu, inayoitwa ufungamanisho wa ingizo. Hili linaweza kuwa neno moja la baiti 32, kwa hivyo si ghali. Mradi ufungamanisho wa ingizo unapatikana, uadilifu unahakikishwa kwa sababu haiwezekani kupata data nyingine yoyote ambayo ingeleta heshi ya thamani sawa. Kwa hivyo ikiwa data isiyo sahihi itatolewa, inaweza kugunduliwa.
-
Kuwa na mfumo unaohakikisha upatikanaji. Kwa mfano, katika Redstone (inafunguka katika kichupo kipya) nodi yoyote inaweza kuwasilisha changamoto ya upatikanaji. Ikiwa mpangaji hatajibu mnyororoni kufikia tarehe ya mwisho, ufungamanisho wa ingizo hutupwa, kwa hivyo taarifa inachukuliwa kuwa haijawahi kuchapishwa.
Hili linakubalika kwa rollup ya optimistic kwa sababu tayari tunategemea kuwa na angalau mhakiki mmoja mwaminifu kwa ajili ya mzizi wa hali. Mhakiki mwaminifu kama huyo pia atahakikisha ana data ya kuchakata vitalu, na kutoa changamoto ya upatikanaji ikiwa taarifa haipatikani nje ya mnyororo. Aina hii ya rollup ya optimistic inaitwa Plasma.
Msimbo wa mkataba
Taarifa ambayo inahitaji tu kuandikwa mara moja, haifutwi kamwe, na inahitaji kupatikana mnyororoni inaweza kuhifadhiwa kama msimbo wa mkataba. Hii inamaanisha kuwa tunaunda "mkataba mahiri" na data kisha tunatumia EXTCODECOPY (inafunguka katika kichupo kipya) kusoma taarifa. Faida ni kwamba kunakili msimbo ni nafuu kiasi.
Mbali na gharama ya upanuzi wa kumbukumbu, EXTCODECOPY inagharimu gesi 2600 kwa ufikiaji wa kwanza wa mkataba (unapokuwa "baridi") na gesi 100 kwa nakala zinazofuata kutoka kwa mkataba huo huo pamoja na gesi 3 kwa kila neno la baiti 32. Ikilinganishwa na data za mwito, ambayo inagharimu 15.95 kwa kila baiti, hii ni nafuu kuanzia takriban baiti 200. Kulingana na fomula ya gharama za upanuzi wa kumbukumbu (inafunguka katika kichupo kipya), mradi tu huhitaji zaidi ya 4MB ya kumbukumbu, gharama ya upanuzi wa kumbukumbu ni ndogo kuliko gharama ya kuongeza data za mwito.
Bila shaka, hii ni gharama tu ya kusoma data. Kuunda mkataba kunagharimu takriban gesi 32,000 + gesi 200/baiti. Njia hii ni ya kiuchumi tu wakati taarifa sawa inahitaji kusomwa mara nyingi katika miamala tofauti.
Msimbo wa mkataba unaweza kuwa hauna maana, mradi tu hauanzi na 0xEF. Mikataba inayoanza na 0xEF inatafsiriwa kama umbizo la kipengee cha ethereum (inafunguka katika kichupo kipya), ambalo lina mahitaji magumu zaidi.
Matukio
Matukio (inafunguka katika kichupo kipya) hutolewa na mikataba mahiri, na kusomwa na programu za nje ya mnyororo. Faida yake ni kwamba msimbo wa nje ya mnyororo unaweza kusikiliza matukio. Gharama ni gesi (inafunguka katika kichupo kipya), 375 pamoja na gesi 8 kwa kila baiti ya data. Kwa Gwei 12/gesi na 2300 $/ETH, hii inatafsiriwa kuwa senti moja pamoja na senti 22 kwa kila kilobaiti.
Hifadhi
Mikataba mahiri ina ufikiaji wa hifadhi ya kudumu (inafunguka katika kichupo kipya). Hata hivyo, ni ghali sana. Kuandika neno la baiti 32 kwenye sloti ya hifadhi iliyokuwa tupu hapo awali kunaweza kugharimu gesi 22,100 (inafunguka katika kichupo kipya). Kwa Gwei 12/gesi na 2300 $/ETH, hii ni takriban senti 61 kwa kila operesheni ya kuandika, au $19.5 kwa kila kilobaiti.
Hii ndiyo aina ghali zaidi ya hifadhi katika Ethereum.
Muhtasari
Jedwali hili linatoa muhtasari wa chaguzi tofauti, faida na hasara zake.
| Aina ya hifadhi | Chanzo cha data | Hakikisho la upatikanaji | Upatikanaji mnyororoni | Vizuizi vya ziada |
|---|---|---|---|---|
| Blobs za EIP-4844 | Nje ya mnyororo | Hakikisho la Ethereum kwa ~siku 18 (inafunguka katika kichupo kipya) | Heshi pekee ndiyo inapatikana | |
| Data za mwito | Nje ya mnyororo | Hakikisho la Ethereum milele (sehemu ya mnyororo wa vitalu) | Inapatikana tu ikiwa imeandikwa kwenye mkataba, na kwenye muamala huo | |
| Nje ya mnyororo na mifumo ya tabaka la 1 (l1) | Nje ya mnyororo | Hakikisho la "mhakiki mmoja mwaminifu" wakati wa kipindi cha changamoto | Heshi pekee | Imehakikishwa na mfumo wa changamoto, tu wakati wa kipindi cha changamoto |
| Msimbo wa mkataba | Mnyororoni au nje ya mnyororo | Hakikisho la Ethereum milele (sehemu ya mnyororo wa vitalu) | Ndiyo | Imeandikwa kwenye anwani "nasibu", haiwezi kuanza na 0xEF |
| Matukio | Mnyororoni | Hakikisho la Ethereum milele (sehemu ya mnyororo wa vitalu) | Hapana | |
| Hifadhi | Mnyororoni | Hakikisho la Ethereum milele (sehemu ya mnyororo wa vitalu na hali ya sasa hadi ifutwe na kuandikwa upya) | Ndiyo |