Ruka hadi kwenye maudhui makuu
Change page

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 (opens in a new tab) 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 (opens in a new tab).

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 (opens in a new tab) mnyororo wa vitalu wa Ethereum unajumuisha EIP-4844 (opens in a new tab), ambayo inaongeza kwenye Ethereum blobs za data zenye muda mfupi wa kuishi (awali takriban siku 18 (opens in a new tab)). 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 (opens in a new tab) ili kuwezesha wathibitishaji (opens in a new tab) kurekebisha kosa ikiwa mpangaji (opens in a new tab) 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 (opens in a new tab). Unaweza kuona bei ya sasa ya EIP-4844 kwenye blobscan.com (opens in a new tab).

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 (opens in a new tab), 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:

  1. Chapisha heshi (opens in a new tab) 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.

  2. Kuwa na mfumo unaohakikisha upatikanaji. Kwa mfano, katika Redstone (opens in a new tab) 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 (opens in a new tab) 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 (opens in a new tab), 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 (opens in a new tab), ambalo lina mahitaji magumu zaidi.

Matukio

Matukio (opens in a new tab) 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 (opens in a new tab), 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 (opens in a new tab). Hata hivyo, ni ghali sana. Kuandika neno la baiti 32 kwenye sloti ya hifadhi iliyokuwa tupu hapo awali kunaweza kugharimu gesi 22,100 (opens in a new tab). 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 hifadhiChanzo cha dataHakikisho la upatikanajiUpatikanaji mnyororoniVizuizi vya ziada
Blobs za EIP-4844Nje ya mnyororoHakikisho la Ethereum kwa ~siku 18 (opens in a new tab)Heshi pekee ndiyo inapatikana
Data za mwitoNje ya mnyororoHakikisho 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 mnyororoHakikisho la "mhakiki mmoja mwaminifu" wakati wa kipindi cha changamotoHeshi pekeeImehakikishwa na mfumo wa changamoto, tu wakati wa kipindi cha changamoto
Msimbo wa mkatabaMnyororoni au nje ya mnyororoHakikisho la Ethereum milele (sehemu ya mnyororo wa vitalu)NdiyoImeandikwa kwenye anwani "nasibu", haiwezi kuanza na 0xEF
MatukioMnyororoniHakikisho la Ethereum milele (sehemu ya mnyororo wa vitalu)Hapana
HifadhiMnyororoniHakikisho la Ethereum milele (sehemu ya mnyororo wa vitalu na hali ya sasa hadi ifutwe na kuandikwa upya)Ndiyo