Téigh ar aghaidh chuig an bpríomhábhar
Change page

Slándáil chonartha cliste

Tá conarthaí cliste thar a bheith solúbtha, agus tá siad in ann méideanna móra luacha agus sonraí a rialú, agus an loighic do-athraithe a reáchtáil bunaithe ar chód a imscartar ar an blocshlabhra. Chruthaigh sé seo éiceachóras bríomhar d’fheidhmchláir dhíláraithe gan iontaoibh a sholáthraíonn go leor buntáistí thar chórais oidhreachta. Léiríonn siad freisin deiseanna d’ionsaitheoirí atá ag iarraidh brabús a dhéanamh trí leas a bhaint as leochaileachtaí i gconarthaí cliste.

Déanann blocshlabhraí poiblí, cosúil le Ethereum, an cheist maidir le conarthaí cliste a dhaingniú níos casta fós. Ní féidir cód conartha imlonnaithe go hiondúil a athrú le lochtanna slándála a phaisteáil, agus bíonn sé fíordheacair sócmhainní a ghoidtear ó chonarthaí cliste a rianú agus de ghnáth ní féidir iad a aisghabháil mar gheall ar dho- athraitheacht.

Cé go n-athraíonn figiúirí, meastar go bhfuil an méid iomlán luach a goideadh nó a cailleadh de bharr lochtanna slándála i gconarthaí cliste níos mó go mór ná $1 billiún. Áirítear leis seo teagmhais ardphróifíle, mar an hack DAO(opens in a new tab) (3.6M ETH goidte, luach os cionn $1B i bpraghsanna an lae inniu), Haic sparán il-sig Parity(opens in a new tab) ($30M caillte ag hackers), agus an Parity eisiúint sparán reoite(opens in a new tab) (os cionn $300M in ETH faoi ghlas go deo).

De bharr na saincheisteanna thuasluaite tá sé ríthábhachtach d’fhorbróirí iarracht a dhéanamh chun conarthaí cliste atá slán, láidir agus athléimneach a thógáil. Is gnó tromchúiseach é slándáil conartha chliste, agus ní mór do gach forbróir é a fhoghlaim. Clúdóidh an treoir seo breithnithe slándála d’fhorbróirí Ethereum agus scrúdóidh sé acmhainní chun slándáil conarthaí cliste a fheabhsú.

Réamhriachtanais

Cinntigh go bhfuil tú eolach ar na bunphrionsabail fhorbartha conartha cliste sula dtéann tú i ngleic leis an tslándáil.

Treoirlínte maidir le conarthaí cliste Ethereum a thógáil

1. Dear rialuithe cearta rochtana

I gconarthaí cliste, is féidir le feidhmeanna atá marcáilte poiblíseachtrach a ghlaoch ó aon chuntais faoi úinéireacht sheachtrach (EOAanna) nó cuntais chonartha. Is gá infheictheacht phoiblí d’fheidhmeanna a shonrú más mian leat go n-idirghníomhaíonn daoine eile le do chonradh. Ní féidir feidhmeanna atá marcáilte príobháideach a ghlaoch, áfach, ach amháin ag feidhmeanna laistigh den chonradh cliste, agus ní cuntais sheachtracha. Má thugtar rochtain do gach rannpháirtí líonra ar fheidhmeanna conartha is féidir fadhbanna a chruthú, go háirithe má chiallaíonn sé gur féidir le haon duine oibríochtaí íogaire a dhéanamh (m.sh. comharthaí nua a bhualadh).

Chun úsáid neamhúdaraithe feidhmeanna conartha cliste a chosc, is gá rialuithe rochtana slána a chur i bhfeidhm. Cuireann meicníochtaí rialaithe rochtana srian ar an gcumas feidhmeanna áirithe i gconradh cliste a úsáid d’eintitis fhormheasta, amhail cuntais atá freagrach as an gconradh a bhainistiú. Is dhá phatrún úsáideach iad an patrún inúinéireachta agus an rialú bunaithe ar ról chun rialú rochtana a chur i bhfeidhm i gconarthaí cliste:

Patrún inúinéireachta

Sa phatrún Inúinéireachta, socraítear seoladh mar “úinéir” an chonartha le linn phróiseas cruthaithe an chonartha. Sanntar modhnóir OnlyOwner d’fheidhmeanna cosanta, rud a chinntíonn go bhfíordheimhníonn an conradh céannacht an tseolta glaonna sula gcuirtear an fheidhm i gcrích. Filleann glaonna chuig feidhmeanna cosanta ó sheoltaí eile seachas úinéir an chonartha i gcónaí, rud a chuireann cosc ​​ar rochtain nach dteastaíonn.

Rialú rochtana ról-bhunaithe

Má chláraítear seoladh aonair mar Úinéir i gconradh cliste, tugtar isteach riosca lárúcháin agus is pointe aonair teipe é. Má sháraítear eochracha cuntais an úinéara, is féidir le hionsaitheoirí ionsaí a dhéanamh ar an gconradh faoi úinéireacht. Sin é an fáth go bhféadfadh sé gur rogha níos fearr patrún rialaithe rochtana ról-bhunaithe a úsáid le cuntais riaracháin iolracha.

I rialú rochtana ról-bhunaithe, déantar rochtain ar fheidhmeanna íogaire a dháileadh idir sraith rannpháirtithe iontaofa. Mar shampla, d’fhéadfadh cuntas amháin a bheith freagrach as comharthaí a mhionú, agus déanann cuntas eile uasghrádú nó sos don chonradh. Má dhéantar rialú rochtana a dhílárú ar an mbealach seo, cuirtear deireadh le pointí aonair teipe agus laghdaítear boinn tuisceana iontaobhais d’úsáideoirí.

Ag baint úsáide as sparán le sínithe iolracha

Cur chuige eile chun rialú rochtana slána a chur i bhfeidhm is ea chuntas le sínithe iolracha a úsáid chun conradh a bhainistiú. Murab ionann agus EOA rialta, tá cuntais le sínithe iolracha faoi úinéireacht aonáin iolracha agus éilíonn siad sínithe ó líon íosta cuntas - abair 3-de-5 - chun idirbhearta a chur i gcrích.

Trí multisig a úsáid le haghaidh rialú rochtana tugtar isteach sraith bhreise slándála ós rud é go dteastaíonn toiliú ó pháirtithe iolracha le gníomhartha ar an spriocchonradh. Tá sé seo úsáideach go háirithe má tá gá leis an bpatrún Inúinéireachta a úsáid, toisc go mbíonn sé níos deacra d’ionsaitheoir nó do chos istigh bradacha feidhmeanna conartha íogaire a ionramháil ar son críocha mailíseacha.

2. Úsáid ráitis require(), assert(), agus revert() chun oibríochtaí conartha a chosaint

Mar atá luaite, is féidir le duine ar bith feidhmeanna poiblí a ghlaoch i do chonradh cliste nuair a bheidh sé imscaradh ar an blocshlabhra. Ós rud é nach bhfuil a fhios agat roimh ré conas a idirghníomhóidh cuntais sheachtracha le conradh, is fearr cosaintí inmheánacha a chur i bhfeidhm in aghaidh oibríochtaí fadhbacha roimh imscaradh. Is féidir leat iompar ceart a chur i bhfeidhm i gconarthaí cliste trí úsáid a bhaint as na ráitis require(), assert(), agus revert() chun eisceachtaí a spreagadh agus dul ar ais athruithe staide a chealú má theipeann ar fhorghníomhú ceanglais áirithe a shásamh.

require(): sainmhínítear require ag tús na bhfeidhmeanna agus cinntíonn sé go gcomhlíontar coinníollacha réamhshainithe sula ritear an fheidhm ghlaoite. Is féidir ráiteas require a úsáid chun ionchuir úsáideora a bhailíochtú, athróga staide a sheiceáil, nó chun aitheantas an chuntais ghlao a fhíordheimhniú sula dtéann tú ar aghaidh le feidhm.

assert(): úsáidtear assert() chun earráidí inmheánacha a bhrath agus chun sáruithe ar “do-athraithigh” a sheiceáil i do chód. Is dearbhú loighciúil é do-athraitheach faoi staid an chonartha agus ba cheart go mbeadh sé fíor i gcás gach feidhme a ritear. Sampla ide dho-athraitheach is ea an t-uas-soláthar iomlán nó iarmhéid conartha dearbháin. Trí úsáid a bhaint as assert() cinntíonn sé nach sroicheann do chonradh staid leochaileach choíche, agus má dhéanann sé, déantar gach athrú ar athróga staide a rolladh siar.

revert(): Is féidir revert() a úsáid i ráiteas eile a spreagann eisceacht mura mbíonn an coinníoll riachtanach sásta. Úsáideann an conradh samplach thíos revert() chun comhlíonadh feidhmeanna a chosaint:

1pragma solidity ^0.8.4;
2
3contract VendingMachine {
4 address owner;
5 error Unauthorized();
6 function buy(uint amount) public payable {
7 if (amount > msg.value / 2 ether)
8 revert("Not enough Ether provided.");
9 // Perform the purchase.
10 }
11 function withdraw() public {
12 if (msg.sender != owner)
13 revert Unauthorized();
14
15 payable(msg.sender).transfer(address(this).balance);
16 }
17}
Taispeáin gach rud

3. Conarthaí cliste a thástáil agus cruinneas an chóid a fhíorú

Ciallaíonn do-athraitheacht an chóid a fheidhmíonn i Meaisín Fíorúil Ethereum go n-éilíonn conarthaí cliste leibhéal measúnaithe cáilíochta níos airde le linn na céime forbartha. Feabhsófar an tslándáil go mó má dhéantar tástáil fhairsing ar do chonradh agus é a bhreathnú le haghaidh aon torthaí gan choinne, agus cosnóidh sé d’úsáideoirí san fhadtréimhse.

Is é an gnáth-mhodh tástálacha aonaid bheaga a scríobh le sonraí bréige a den chineál a mbeadh súil leo ó úsáideoirí an chonartha. Tá Tástáil aonaid go maith chun feidhmiúlacht fheidhmeanna áirithe a thástáil agus chun a chinntiú go n-oibríonn conradh cliste mar a bhíothas ag súil leis.

Ar an drochuair, níl an tástáil aonaid chomh héifeachtach agus is féidir chun slándáil conartha cliste a fheabhsú nuair a úsáidtear iad ina n-aonar. D’fhéadfadh tástáil aonaid a chruthú go bhfeidhmíonn feidhm i gceart le haghaidh sonraí bréige, ach níl tástálacha aonaid ach chomh héifeachtach leis na tástálacha atá scríofa. Is deacair cásanna imill caillte agus leochaileachtaí a bhrath a d'fhéadfadh sábháilteacht do chonartha cliste a bhriseadh.

Is fearr mar chur chuige tástáil aonaid a chomhcheangal le tástáil bunaithe ar mhaoin a dhéantar trí úsáid a bhaint as anailís statach agus dinimiciúil. Braitheann anailís statach ar léirithe íseal-leibhéil, mar sreabhghraif rialaithe(opens in a new tab) agus crainn chomhréire teibí(opens in a new tab) chun anailís a dhéanamh ar ríomhstaid insroichte agus ar chonairí feidhmithe. Idir an dá linn, déanann teicnící anailíse dinimiciúla, mar beachtú conarthaí cliste(opens in a new tab), conradh cóid a rith le luachanna ionchuir randamacha chun oibríochtaí a sháraíonn airíonna slándála a bhrath.

Teicníc eile is ea Fíorú foirmiúil chun airíonna slándála i gconarthaí cliste a fhíorú. Murab ionann agus tástáil rialta, is féidir le fíorú foirmiúil easpa earráidí a chruthú go cinntitheach i gconradh cliste. Baintear é seo amach trí shonraíocht fhoirmiúil a chruthú a chuimsíonn na hairíonna slándála inmhianaithe agus a chruthaíonn go gcloíonn samhail fhoirmiúil de na conarthaí leis an tsonraíocht seo.

4. Iarr athbhreithniú neamhspleách ar do chód

Tar éis do chonradh a thástáil, is maith an rud é iarraidh ar dhaoine eile an cód foinse a sheiceáil le haghaidh aon saincheisteanna slándála. Ní nochtfaidh an tástáil gach locht i gconradh cliste, ach má fhaightear athbhreithniú neamhspleách méadaítear an fhéidearthacht go bhfeicfidh tú leochaileachtaí.

Iniúchtaí

Bealach amháin chun athbhreithniú neamhspleách ar an gcód a dhéanamh is ea iniúchadh conartha cliste a choimisiúnú. Tá ról tábhachtach ag iniúchóirí lena chinntiú go bhfuil conarthaí cliste slán agus saor ó lochtanna cáilíochta agus earráidí dearaidh.

Mar sin féin, ba cheart duit iniúchtaí a sheachaint mar réiteach draíochta. Ní fheicfidh iniúchtaí cliste conartha gach fabht agus tá siad deartha den chuid is mó chun babhta breise athbhreithnithe a sholáthar, ar féidir leo cabhrú le saincheisteanna a bhrath a chaill forbróirí le linn na forbartha agus na tástála tosaigh. Ba cheart duit na cleachtais is fearr a leanúint freisin maidir le bheith ag obair le hiniúchóirí, mar chód a dhoiciméadú i gceart agus tuairimí inlíne a chur leis, chun an leas is fearr a bhaint as iniúchadh conartha cliste.

Deolchairí fabht

Is cur chuige eile é clár deolchairí fabht a bhunú chun athbhreithnithe cód seachtracha a chur i bhfeidhm. Is luach saothair airgeadais é deolchairí fabht a thugtar do dhaoine aonair (go hiondúil Haiceálaithe bána) a aimsíonn leochaileachtaí in iarratas.

Nuair a úsáidtear i gceart iad, tugann deolchairí fabhtanna dreasacht do bhaill an phobail haiceála chun do chód a iniúchadh le haghaidh lochtanna criticiúla. Sampla ón bhfíorshaol is ea an “fabht airgid gan teorainn” a ligfeadh d’ionsaitheoir méid neamhtheoranta éitear a chruthú ar Soirbhíochas(opens in a new tab), prótacal Ciseal 2 a ritheann ar Ethereum. Ar ámharaí an tsaoil, d’aimsigh haiceálaí bán an locht(opens in a new tab) agus chuir sé in iúl don fhoireann é, agus thuill sé íocaíocht mhór ar a shon(opens in a new tab).

Straitéis úsáideach is ea íocaíocht amach clár deolchaire fabhtanna a shocrú i gcomhréir le méid na gcistí atá i gceist. Déantar cur síos air mar deolchaire fabht scálaithe(opens in a new tab) dreasachtaí airgeadais do dhaoine aonair chun leochaileachtaí a nochtadh go freagrach in ionad iad a shaothrú.

5. Lean na cleachtais is fearr le linn forbairt conarthaí cliste

Ní fhágann iniúchtaí agus deolchairí fabhtanna nach gá duit cód ardcháilíochta a scríobh. Cuirtear bonn le dea-shlándáil conartha cliste leis na próisis chuí deartha agus forbartha seo a leanas:

  • Stóráil gach cód i gcóras rialaithe leagan, mar shampla git

  • Déan gach modhnú cód trí iarratais ar tharraingt

  • Cinntigh go mbíonn athbhreithneoir neamhspleách amháin ar a laghad ag iarratais tarraingthe - má tá tú ag obair leat féin ar thionscadal, smaoinigh ar fhorbróirí eile a aimsiú agus athbhreithnithe ar chóid trádála

  • Úsáid timpeallacht forbartha chun conarthaí cliste a thástáil, a thiomsú agus a imscaradh

  • Rith do chód trí bhunuirlisí anailíse cóid, mar, Cyfrin Aderyn(opens in a new tab), Mythril agus Slither. Go hidéalach, ba chóir duit é seo a dhéanamh sula ndéantar gach iarratas ar tharraingt a chumasc agus difríochtaí san aschur a chur i gcomparáid

  • Cinntigh go dtiomsaíonn do chód gan earráidí, agus nach scaoileann an tiomsaitheoir Solidity aon rabhaidh

  • Déan do chód a dhoiciméadú i gceart (ag baint úsáide as NatSpec(opens in a new tab)) agus déan cur síos i dteanga shothuigthe ar shonraí ailtireachta an chonartha. Déanfaidh sé seo níos fusa do dhaoine eile do chód a iniúchadh agus a athbhreithniú.

6. Pleananna láidre athshlánaithe ó thubaiste a chur i bhfeidhm

Má dhéantar rialuithe slána rochtana a dhearadh, modhnóirí feidhme a chur i bhfeidhm, agus moltaí eile is féidir feabhas a chur ar shlándáil chonarthaí cliste, ach ní féidir leo an seans go ndéanfar bradaíl mhailíseach as an áireamh. Chun conarthaí cliste slána a thógáil ní mór “ullmhú don teip” agus plean tacachumais a bheith ann chun freagairt go héifeachtach d’ionsaithe. Cuimseoidh plean ceart athshlánaithe tubaiste cuid de na comhpháirteanna seo a leanas nó iad uile:

Uasghráduithe conartha

Cé go bhfuil conarthaí cliste Ethereum do-athraithe de réir réamhshocraithe, is féidir méid áirithe inathraitheachta a bhaint amach trí úsáid a bhaint as patrúin uasghrádaithe. Is gá conarthaí a uasghrádú i gcásanna nach féidir do sheanchonradh a úsáid mar gheall ar locht criticiúil agus gurb é an rogha is indéanta an loighic nua a úsáid.

Oibríonn meicníochtaí uasghrádaithe conartha ar bhealach difriúil, ach tá an “patrún seachfhreastalaí” ar cheann de na cineálacha cur chuige is coitianta chun conarthaí cliste a uasghrádú. Roinneann patrúin seachfhreastalaí(opens in a new tab) staid agus loighic feidhmchláir idir dhá chonradh. Stórálann an chéad chonradh (ar a dtugtar ‘conradh seachfhreastalaí’) athróga staide (m.sh., iarmhéideanna úsáideoirí), agus coimeádann an dara conradh (ar a dtugtar ‘conradh loighce’) an cód chun feidhmeanna conartha a rith.

Idirghníomhaíonn cuntais leis an gconradh seachfhreastalaí, a sheolann gach glao feidhme chuig an gconradh loighce trí delegatecall()(opens in a new tab) glao ar leibhéal íseal. Murab ionann agus gnáthghlao teachtaireachta, cinntíonn delegatecall() an cód a ritheann ag seoladh an chonartha loighce go gcuirtear i bhfeidhm é i gcomhthéacs an chonartha glaonna. Ciallaíonn sé seo go scríobhfaidh an conradh loighce i gcónaí chuig stóras an tseachfhreastalaí (seachas a stór féin) agus go gcaomhnaítear bunluachanna msg.sender agus msg.value.

Chun glaonna a tharmligean chuig an gconradh loighce ní mór a sheoladh a stóráil i stóras an chonartha seachfhreastalaí. Mar sin, níl i gceist le huasghrádú loighic an chonartha ach conradh loighce eile a imscaradh agus an seoladh nua a stóráil sa chonradh seachfhreastalaí. Ós rud é go seoltar glaonna ar an gconradh seachfhreastalaí go huathoibríoch chuig an gconradh loighce nua, bheadh ​​“uasghrádú” déanta agat ar an gconradh gan an cód a mhodhnú i ndáiríre.

Tuilleadh faoi chonarthaí a uasghrádú.

Stopanna éigeandála

Mar a luadh, ní féidir le hiniúchadh agus tástáil fhairsing gach fabht a aimsiú i gconradh cliste. Má tá leochaileacht le feiceáil i do chód tar éis imscartha, ní féidir é a phaisteáil toisc nach féidir leat an cód atá ag seoladh an chonartha a athrú. Chomh maith leis sin, d’fhéadfadh go dtógfadh sé am meicníochtaí uasghrádaithe (m.sh. patrúin seachfhreastalaí) a chur i bhfeidhm (is minic a éilíonn siad ceadú ó pháirtithe éagsúla), rud a thugann níos mó ama d’ionsaitheoirí chun níos mó damáiste a dhéanamh.

Is é an rogha núicléach feidhm “stop éigeandála” a chur i bhfeidhm a bhlocálann glaonna chuig feidhmeanna leochaileacha i gconradh. Is gnách go mbíonn na comhpháirteanna seo a leanas i stopanna éigeandála:

  1. Athróg dhomhanda Boole a thugann le fios an bhfuil an conradh cliste i riocht stoptha nó nach bhfuil. Socraítear an athróg seo mar false agus an conradh á shocrú, ach rachaidh sé ar ais go true nuair a stopfar an conradh.

  2. Feidhmeanna a thagraíonn don athróg Boole agus iad á gcur i gcrích. Tá feidhmeanna den sórt sin inrochtana nuair nach gcuirtear stop leis an gconradh cliste, agus éiríonn siad dorochtana nuair a spreagtar an ghné stop éigeandála.

  3. Aonán a bhfuil rochtain aige ar an bhfeidhm stad éigeandála, a shocraíonn an athróg Boole mar true. Chun gníomhartha mailíseacha a chosc, is féidir glaonna chuig an bhfeidhm seo a theorannú chuig seoladh iontaofa (m.sh., úinéir an chonartha).

Nuair a ghníomhaíonn an conradh an stad éigeandála, ní bheidh feidhmeanna áirithe inghlaoite. Baintear é seo amach trí fheidhmeanna roghnaithe a thimfhilleadh i modhnóir a dhéanann tagairt don athróg dhomhanda. Seo thíos sampla(opens in a new tab) ag cur síos ar chur i bhfeidhm an phatrúin seo i gconarthaí:

1// This code has not been professionally audited and makes no promises about safety or correctness. Use at your own risk.
2
3contract EmergencyStop {
4
5 bool isStopped = false;
6
7 modifier stoppedInEmergency {
8 require(!isStopped);
9 _;
10 }
11
12 modifier onlyWhenStopped {
13 require(isStopped);
14 _;
15 }
16
17 modifier onlyAuthorized {
18 // Check for authorization of msg.sender here
19 _;
20 }
21
22 function stopContract() public onlyAuthorized {
23 isStopped = true;
24 }
25
26 function resumeContract() public onlyAuthorized {
27 isStopped = false;
28 }
29
30 function deposit() public payable stoppedInEmergency {
31 // Deposit logic happening here
32 }
33
34 function emergencyWithdraw() public onlyWhenStopped {
35 // Emergency withdraw happening here
36 }
37}
Taispeáin gach rud
Cóip

Léiríonn an sampla seo bunghnéithe stadanna éigeandála:

  • Is Boole é isStopped a dhéanann meastóireacht ar false ag an tús agus true nuair a théann an conradh isteach sa mhód éigeandála.

  • Seiceálann na modhnóirí feidhmeanna onlyWhenStopped agus stopedInEmergency an athróg isStopped. Úsáidtear stopedInEmergency chun feidhmeanna a rialú nár cheart a bheith inrochtana nuair a bhíonn an conradh leochaileach (m.sh., taisce()). Go simplí, fillfidh glaonna ar na feidhmeanna seo.

Úsáidtear onlyWhenStopped le haghaidh feidhmeanna ba cheart a bheith inghlaoite le linn éigeandála (m.sh., emergencyWithdraw()). Is féidir le feidhmeanna den sórt sin cabhrú leis an gcás a réiteach, agus dá bhrí sin fágtar iad as an liosta “feidhmeanna srianta”.

Trí úsáid a bhaint as feidhmiúlacht stad éigeandála cuirtear bac éifeachtach ar fáil chun déileáil le leochaileachtaí tromchúiseacha i do chonradh cliste. Mar sin féin, méadaíonn sé an gá atá ag úsáideoirí muinín a bheith acu as forbróirí gan é a ghníomhachtú ar chúiseanna leithleacha. Chuige sin, is réitigh fhéideartha iad rialú an stad éigeandála a dhílárú trí mheicníocht vótála ar slabhra, glas ama, nó formheas ó sparán síniú iolrach a chur faoina réir.

Monatóireacht ar imeachtaí

Ligeann Imeachtaí(opens in a new tab) duit glaonna ar fheidhmeanna conartha cliste a rianú agus monatóireacht a dhéanamh ar athruithe ar athróga staide. Is fearr do chonradh cliste a ríomhchlárú chun imeacht a astú aon uair a dhéanann páirtí éigin gníomh atá ríthábhachtach don tsábháilteacht (m.sh. cistí a aistarraingt).

Soláthraíonn logáil imeachtaí agus monatóireacht orthu as slabhra léargais ar oibríochtaí conartha agus cabhraíonn sé le gníomhartha mailíseacha a aimsiú níos tapúla. Ciallaíonn sé seo gur féidir le d'fhoireann freagairt níos tapúla ar haiceanna agus gníomhú chun tionchar ar úsáideoirí a mhaolú, mar shampla feidhmeanna a chur ar sos nó uasghrádú a dhéanamh.

Is féidir leat uirlis monatóireachta réamhdhéanta a roghnú freisin a chuireann foláirimh ar aghaidh go huathoibríoch gach uair a idirghníomhaíonn duine le do chonarthaí. Ligfidh na huirlisí seo duit foláirimh saincheaptha a chruthú bunaithe ar thruicir éagsúla, amhail méid an idirbhirt, minicíocht glaonna feidhme, nó na feidhmeanna sonracha atá i gceist. Mar shampla, d’fhéadfá foláireamh a thagann isteach a ríomhchlárú nuair a thrasnaíonn an méid a aistarraingíodh in aon idirbheart amháin tairseach ar leith.

7. Córais rialachais shlána a dhearadh

B’fhéidir gur mhaith leat d’iarratas a dhílárú trí smacht a chur ar chroíchonarthaí cliste chuig baill an phobail. Sa chás seo, áireofar sa chóras conartha cliste modúl rialachais — meicníocht a cheadaíonn do bhaill an phobail gníomhartha riaracháin a fhormheas trí chóras rialachais ar slabhra. Mar shampla, féadfaidh sealbhóirí dearbhán vótáil ar thogra chun conradh seachfhreastalaí a uasghrádú go cur chun feidhme nua.

Is féidir le rialachas díláraithe a bheith tairbheach, go háirithe toisc go ndéanann sé leas na bhforbróirí agus na n-úsáideoirí deiridh a ailíniú. Mar sin féin, féadfaidh sásraí cliste rialachais conarthaí rioscaí nua a thabhairt isteach má chuirtear chun feidhme iad go mícheart. Cás sochreidte is ea má fhaigheann ionsaitheoir cumhacht ollmhór vótála (arna thomhas i líon na n-airíonna atá á sealbhú) trí iasacht flash a fháil agus má chuireann siad togra mailíseach chun cinn.

Bealach amháin chun fadhbanna a bhaineann le rialachas ar slabhra a chosc is ea glas ama a úsáid(opens in a new tab). Cuireann glas ama cosc ​​ar chonradh cliste ó ghníomhartha áirithe a dhéanamh go dtí go n-imíonn méid áirithe ama thart. I measc na straitéisí eile tá “meáchan vótála” a shannadh do gach comhartha bunaithe ar cé chomh fada agus a cuireadh faoi ghlas é, nó cumhacht vótála seolta ag tréimhse stairiúil a thomhas (mar shampla, 2-3 bhloc san am a chuaigh thart) in ionad an bloc reatha. Laghdaíonn an dá mhodh an fhéidearthacht cumhacht vótála a bhailiú go tapa chun vótaí ar slabhra a mhealladh.

Tuilleadh faoi córais shlána rialachais a dhearadh(opens in a new tab), meicníochtaí éagsúla vótála sna DAOs(opens in a new tab), agus na gnáth-veicteora ionsaithe DAO a ghiaráil DeFi(opens in a new tab) sna naisc chomhroinnte.

8. Laghdaigh castacht an chóid a oiread is féidir

Tá aithne ag forbróirí bogearraí traidisiúnta ar an bprionsabal KISS ("coimeád simplí é, a dhúramáin") é, mar a moltar gan castacht neamhriachtanach a thabhairt isteach i ndearadh bogearraí. Leanann sé seo an smaoineamh fadtréimhseach go “dteipeann ar chórais chasta ar bhealaí casta” agus go bhfuil siad níos mó i mbaol ó earráidí costasacha.

Tá tábhacht ar leith ag baint le rudaí a choinneáil simplí agus conarthaí cliste á scríobh, ós rud é go bhféadfadh conarthaí cliste méideanna móra luacha a rialú. Leid chun simplíocht a bhaint amach agus conarthaí cliste á scríobh ná leabharlanna atá ann cheana a athúsáid, ar nós Conarthaí OpenZeppelin(opens in a new tab), nuair is féidir. Toisc go ndearna forbróirí iniúchadh agus tástáil fhairsing ar na leabharlanna seo, laghdaítear an seans go dtabharfar isteach fabhtanna trí fheidhmiúlacht nua a scríobh ón tús.

Comhairle choitianta eile is ea feidhmeanna beaga a scríobh agus conarthaí modúlacha a choinneáil trí loighic ghnó a roinnt thar chonarthaí iolracha. Ní hamháin go laghdaítear an dromchla ionsaí i gconradh cliste nuair a scríobhtar cód níos simplí, déanann sé níos éasca freisin réasúnú a dhéanamh faoi chruinneas an chórais iomláin agus earráidí dearaidh féideartha a bhrath go luath.

9. Cosain in aghaidh leochaileachtaí coitianta i gconarthaí cliste

Athiontráil

Ní cheadaíonn an EVM comhrith, rud a chiallaíonn nach féidir le dhá chonradh a bhaineann le glao teachtaireachta oibriú go comhuaineach. Cuireann glao seachtrach feidhmiú agus cuimhne an chonartha glaonna ar sos go dtí go dtagann an glao ar ais, agus ag an bpointe sin is gnách go leantar den fhorghníomhú. Is féidir cur síos foirmiúil a dhéanamh ar an bpróiseas seo mar aistriú sreabhadh rialaithe(opens in a new tab) chuig conradh eile.

Cé go bhfuil sé neamhdhíobhálach don chuid is mó, is féidir fadhbanna a chruthú, mar athiontráil, trí shreabhadh rialaithe a aistriú chuig conarthaí neamhiontaofa. Tarlaíonn ionsaí athiontrála nuair a ghlaonn conradh mailíseach ar ais isteach i gconradh leochaileach sula mbíonn agairt na bunfheidhme críochnaithe. Is fearr an cineál ionsaí seo a mhíniú le sampla.

Smaoinigh ar chonradh cliste simplí (‘Íospartach’) a ligeann do dhuine ar bith éitear a thaisceadh agus a aistarraingt:

1// This contract is vulnerable. Do not use in production
2
3contract Victim {
4 mapping (address => uint256) public balances;
5
6 function deposit() external payable {
7 balances[msg.sender] += msg.value;
8 }
9
10 function withdraw() external {
11 uint256 amount = balances[msg.sender];
12 (bool success, ) = msg.sender.call.value(amount)("");
13 require(success);
14 balances[msg.sender] = 0;
15 }
16}
Taispeáin gach rud
Cóip

Nochtann an conradh seo feidhm aistarraing() chun ligean d’úsáideoirí ETH a bhí i dtaisce sa chonradh roimhe seo a aistarraingt. Nuair a dhéantar aistarraingt a phróiseáil, déanann an conradh na hoibríochtaí seo a leanas:

  1. Seiceálann sé iarmhéid ETH an úsáideora
  2. Seolann cistí chuig an seoladh glaonna
  3. Athshocraíonn siad a n-iarmhéid go 0, rud a choscann aistarraingtí breise ón úsáideoir

Leanann an fheidhm withdraw() i gconradh Victim patrún “seiceálacha-idirghníomhaíochtaí-éifeachtaí”. Déanann sé seiceáil má shásaítear na coinníollacha atá riachtanach don fhorghníomhú (i.e., tá cothromaíocht dhearfach ETH ag an úsáideoir) agus déanann sé an idirghníomhaíocht em> trí ETH a sheoladh chuig seoladh an ghlaoiteora, sula gcuirtear éifeachtaí an idirbhirt i bhfeidhm (i.e. iarmhéid an úsáideora a laghdú).

Má ghlaoitear aistarraing() ó chuntas faoi úinéireacht sheachtrach (EOA), feidhmíonn an fheidhm mar a bhíothas ag súil leis: seolann msg.sender.call.value() ETH chuig an nglaoiteoir. Mar sin féin, más cuntas conartha cliste é msg.sender glaonna aistarraing(), seolfar cistí trí úsáid a bhaint as msg.sender.call.value() agus spreagfar cód atá stóráilte ag an seoladh sin a rith.

Samhlaigh gurb é seo an cód a úsáidtear ag seoladh an chonartha:

1 contract Attacker {
2 function beginAttack() external payable {
3 Victim(victim_address).deposit.value(1 ether)();
4 Victim(victim_address).withdraw();
5 }
6
7 function() external payable {
8 if (gasleft() > 40000) {
9 Victim(victim_address).withdraw();
10 }
11 }
12}
Taispeáin gach rud
Cóip

Tá an conradh seo deartha chun trí rud a dhéanamh:

  1. Glacadh le héarlais ó chuntas eile (EOA an ionsaitheora is dócha)
  2. Taisce 1 ETH isteach sa chonradh Íospartach
  3. Aisarraingt an 1 ETH atá stóráilte sa chonradh cliste

Níl aon rud mícheart anseo, ach amháin go bhfuil feidhm eile ag Ionsaitheoir a ghlaonn aistarraing() sa Victim arís má bhíonn an gás atá fágtha ón gcód msg.sender.call.value níos mó ná 40,000. Tugann sé seo an cumas do Ionsaitheoir Íospartach a iontráil arís agus tuilleadh cistí a aistarraingt roimh an chéad agairt aistarraing críochnaithe. Breathnaíonn an timthriall mar seo:

1- Attacker's EOA calls `Attacker.beginAttack()` with 1 ETH
2- `Attacker.beginAttack()` deposits 1 ETH into `Victim`
3- `Attacker` calls `withdraw() in `Victim`
4- `Victim` checks `Attacker`’s balance (1 ETH)
5- `Victim` sends 1 ETH to `Attacker` (which triggers the default function)
6- `Attacker` calls `Victim.withdraw()` again (note that `Victim` hasn’t reduced `Attacker`’s balance from the first withdrawal)
7- `Victim` checks `Attacker`’s balance (which is still 1 ETH because it hasn’t applied the effects of the first call)
8- `Victim` sends 1 ETH to `Attacker` (which triggers the default function and allows `Attacker` to reenter the `withdraw` function)
9- The process repeats until `Attacker` runs out of gas, at which point `msg.sender.call.value` returns without triggering additional withdrawals
10- `Victim` finally applies the results of the first transaction (and subsequent ones) to its state, so `Attacker`’s balance is set to 0
Taispeáin gach rud
Cóip

Is é an achoimre ná toisc nach bhfuil iarmhéid an ghlaoiteora socraithe ag 0 go dtí go gcríochnaítear feidhmiú na feidhme, go n-éireoidh le hagairtí ina dhiaidh sin agus go gceadóidh siad don ghlaoiteoir a iarmhéid a aistarraingt go minic. Is féidir ionsaí den chineál seo a úsáid chun a chistí a dhísciú as conradh cliste, mar a tharla sa haic DAO 2016(opens in a new tab). Tá ionsaithe athiontrála fós ina fhadhb mhór do chonarthaí cliste inniu mar a léiríonn liostaí poiblí de bhradaíl athiontrála(opens in a new tab).

Conas ionsaithe athiontrála a chosc

Cur chuige chun déileáil le hathiontráil is ea seiceálacha-éifeachtaí-idirghníomhaíochtaí patrún(opens in a new tab). Ordaítear leis an bpatrún seo feidhmeanna a rith ar bhealach go ndéanann an cód na seiceálacha riachtanacha roimh dhul ar aghaidh le rith ar dtús, agus ina dhiaidh sin cód a ionramhálann staid chonartha, le cód a idirghníomhaíonn le conarthaí eile nó EOAnna ag an deireadh.

Úsáidtear an patrún seiceálacha-éifeacht-idirghníomhaíochta i leagan athbhreithnithe den chonradh Íospartach a thaispeántar thíos:

1contract NoLongerAVictim {
2 function withdraw() external {
3 uint256 amount = balances[msg.sender];
4 balances[msg.sender] = 0;
5 (bool success, ) = msg.sender.call.value(amount)("");
6 require(success);
7 }
8}
Cóip

Déanann an conradh seo seiceáil ar iarmhéid an úsáideora, feidhmíonn sé éifeachtaí an aistarraing() (trí iarmhéid an úsáideora a athshocrú go 0), agus leanann sé ar aghaidh chun an idirghníomhaíocht a dhéanamh (ETH a sheoladh chuig seoladh an úsáideora). Cinntíonn sé seo go ndéanann an conradh a stóras a nuashonrú roimh an nglao seachtrach, rud a chuireann deireadh leis an gcoinníoll athiontrála a chumasaigh an chéad ionsaí. D'fhéadfaí an conradh Ionsaitheoir a ghlaoch ar ais go NoLongerAVictim fós, ach ós rud é go bhfuil iarmhéideanna[msg.sender] socraithe go 0, léireoidh aistarraingtí breise earráid.

Rogha eile is ea glas eisiatachta fhrithpháirtigh a úsáid (ar a dtugtar “mutex” de ghnáth) a ghlasálann cuid de stát conartha go dtí go gcríochnaítear agairt feidhme. Cuirtear é seo i bhfeidhm le hathróg Boole a shocraítear go true sula bhfeidhmíonn an fheidhm agus a fhilleann go false tar éis an agairt a dhéanamh. Mar atá sa sampla thíos, cosnaíonn úsáid mutex feidhm ar ghlaonna athfhillteacha agus an agairt bhunaidh fós ag próiseáil, rud a chuireann stop le hathiontráil.

1pragma solidity ^0.7.0;
2
3contract MutexPattern {
4 bool locked = false;
5 mapping(address => uint256) public balances;
6
7 modifier noReentrancy() {
8 require(!locked, "Blocked from reentrancy.");
9 locked = true;
10 _;
11 locked = false;
12 }
13 // This function is protected by a mutex, so reentrant calls from within `msg.sender.call` cannot call `withdraw` again.
14 // Déanann an ráiteas `return` luacháil go `true` ach fós déanann sé `locked = false` measúnú ar an ráiteas sa mhodhnóir
15 function withdraw(uint _amount) public payable noReentrancy returns(bool) {
16 require(balances[msg.sender] >= _amount, "No balance to withdraw.");
17
18 balances[msg.sender] -= _amount;
19 (bool success, ) = msg.sender.call{value: _amount}("");
20 require(success);
21
22 return true;
23 }
24}
Taispeáin gach rud
Cóip

Is féidir leat córas tarraingt íocaíochtaí(opens in a new tab) a úsáid freisin a éilíonn ar úsáideoirí cistí a aistarraingt ó na conarthaí cliste, in ionad córas "brú-íocaíochtaí" a sheolann cistí chuig cuntais. Cuireann sé seo deireadh leis an bhféidearthacht cód a spreagadh gan chuimhneamh ag seoltaí anaithnide (agus féadann sé ionsaithe áirithe diúltú seirbhíse a chosc freisin).

Gannsreabhadh agus róshreabhadh slánuimhreacha

Tarlaíonn róshreabhadh slánuimhir nuair a thiteann torthaí oibríochta uimhríochta lasmuigh den raon luachanna inghlactha, rud a fhágann “rolladh anonn” go dtí an luach inléirithe is ísle. Mar shampla, ní féidir le uint8 ach luachanna suas go 2^8-1=255 a stóráil. Déanfaidh oibríochtaí uimhríochta a mbíonn luachanna níos airde ná 255 mar thoradh orthu róshreabhadh agus athshocróidh siad uint go 0, mar a athshocraíonn an odaiméadair ar charr go 0 uair amháin sroicheann sé an t-uasmhílteáiste (999999).

Tarlaíonn foshreafaí slánuimhir ar chúiseanna comhchosúla: titeann torthaí oibríochta uimhríochta faoin raon inghlactha. Abair go ndearna tú iarracht 0 a laghdú i uint8, ní bheadh ​​ann ach an toradh a rolladh anonn go dtí an t-uasluach inléirithe (255).

D’fhéadfadh athruithe gan choinne ar athróga stáit an chonartha a bheith mar thoradh ar róshreabhadh agus ar ghannsreabhadh agus is féidir rith neamhphleanáilte a bheith mar thoradh air. Seo thíos sampla a thaispeánann conas is féidir le hionsaitheoir leas a bhaint as róshreabhadh uimhríochta i gconradh cliste chun oibríocht neamhbhailí a dhéanamh:

1pragma solidity ^0.7.6;
2
3// This contract is designed to act as a time vault.
4// User can deposit into this contract but cannot withdraw for at least a week.
5// User can also extend the wait time beyond the 1 week waiting period.
6
7/*
81. Deploy TimeLock
92. Deploy Attack with address of TimeLock
103. Call Attack.attack sending 1 ether. You will immediately be able to
11 withdraw your ether.
12
13What happened?
14Attack caused the TimeLock.lockTime to overflow and was able to withdraw
15before the 1 week waiting period.
16*/
17
18contract TimeLock {
19 mapping(address => uint) public balances;
20 mapping(address => uint) public lockTime;
21
22 function deposit() external payable {
23 balances[msg.sender] += msg.value;
24 lockTime[msg.sender] = block.timestamp + 1 weeks;
25 }
26
27 function increaseLockTime(uint _secondsToIncrease) public {
28 lockTime[msg.sender] += _secondsToIncrease;
29 }
30
31 function withdraw() public {
32 require(balances[msg.sender] > 0, "Insufficient funds");
33 require(block.timestamp > lockTime[msg.sender], "Lock time not expired");
34
35 uint amount = balances[msg.sender];
36 balances[msg.sender] = 0;
37
38 (bool sent, ) = msg.sender.call{value: amount}("");
39 require(sent, "Failed to send Ether");
40 }
41}
42
43contract Attack {
44 TimeLock timeLock;
45
46 constructor(TimeLock _timeLock) {
47 timeLock = TimeLock(_timeLock);
48 }
49
50 fallback() external payable {}
51
52 function attack() public payable {
53 timeLock.deposit{value: msg.value}();
54 /*
55 if t = current lock time then we need to find x such that
56 x + t = 2**256 = 0
57 so x = -t
58 2**256 = type(uint).max + 1
59 so x = type(uint).max + 1 - t
60 */
61 timeLock.increaseLockTime(
62 type(uint).max + 1 - timeLock.lockTime(address(this))
63 );
64 timeLock.withdraw();
65 }
66}
Taispeáin gach rud
Conas gannsreabhadh agus róshreabhadh slánuimhir a chosc

Ón leagan 0.8.0, diúltaíonn an tiomsaitheoir Solidity cód a mbíonn gannsreafaí agus rósreafaí slánuimhir mar thoradh air. Mar sin féin, ba cheart do chonarthaí arna dtiomsú le leagan tiomsaitheora níos ísle seiceálacha a dhéanamh ar fheidhmeanna a bhaineann le hoibríochtaí uimhríochta nó úsáid a bhaint as leabharlann (m.sh., SafeMath(opens in a new tab)) a sheiceálann le haghaidh gannsreabhadh/róshreabhadh.

Ionramháil Oracle

Foinsíonn Oracail faisnéis atá as slabhra agus seolann siad ar slabhra í le húsáid ag conarthaí cliste. Le horacail, is féidir leat conarthaí cliste a dhearadh a idirghníomhaíonn le córais as slabhra, mar mhargaí caipitil, ag leathnú a bhfeidhmiú go mór.

Ach má bhíonn an t-oracal truaillithe agus faisnéis chontráilte á chur aige ar slabhra, rithfear conarthaí cliste bunaithe ar ionchuir earráideacha, rud a d'fhéadfadh fadhbanna a chruthú. Is é seo bunús an “fhadhb oracail”, a bhaineann lena chinntiú go bhfuil faisnéis ó oracal bhlocshlabhra cruinn, cothrom le dáta agus tráthúil.

Ábhar imní slándála gaolmhar is ea oracal ar slabhra a úsáid, amhail malartán díláraithe, chun spotphraghas sócmhainne a fháil. Is minic a dhéanann ardáin iasachtaithe sa tionscal airgeadais díláraithe (DeFi) é seo chun luach comhthaobhachta úsáideora a chinneadh chun a fháil amach cé mhéad is féidir leo a fháil ar iasacht.

Is minic a bhíonn praghsanna DEX cruinn, go príomha mar gheall ar arbatráisteoirí ag athbhunú paireacht sna margaí. Mar sin féin, is féidir iad a ionramháil, go háirithe má ríomhann an t-oracal ar slabhra praghsanna sócmhainní bunaithe ar phatrúin trádála stairiúla (mar a bhíonn de ghnáth).

Mar shampla, d'fhéadfadh ionsaitheoir spotphraghas sócmhainne a chaidéalú go saorga trí splanc-iasacht a fháil díreach roimh idirghníomhú le do chonradh iasachta. Dá gcuirfí ceist ar an DEX faoi phraghas na sócmhainne, thabharfadh sé luach níos airde ná an gnáthluach (mar gheall ar éileamh mór “ordú ceannaigh” an ionsaitheora ar an tsócmhainn), rud a ligeann dóibh níos mó a fháil ar iasacht ná mar ba chóir. Baineadh úsáid as "ionsaithe splanc iasachta" den sórt sin chun leas a bhaint as brath ar oracail phraghais i measc iarratais DeFi, rud a chosnaíonn na milliúin prótacail i gcistí caillte.

Conas ionramháil oracail a chosc

Is é an t-íosriachtanas chun ionramháil oracail a sheachaint(opens in a new tab) ná líonra díláraithe oracail a úsáid a cheistíonn faisnéis ó fhoinsí iolracha chun pointí aonair teipe a sheachaint. I bhformhór na gcásanna, tá dreasachtaí cripteacnamaíocha tógtha ag oracail dhíláraithe chun nóid oracail a spreagadh chun faisnéis cheart a thuairisciú, rud a fhágann go bhfuil siad níos sláine ná oracail láraithe.

Má tá sé ar intinn agat ceist a chur ar oracal ar slabhra maidir le praghsanna sócmhainne, smaoinigh ar cheann a úsáid a chuireann meicníocht meánphraghais ualaithe ó thaobh ama (TWAP) i bhfeidhm. Ceistíonn TWAP oracle(opens in a new tab) praghas sócmhainne ag dhá phointe éagsúla ama (a dhéanann tú is féidir é a mhodhnú) agus ríomhann sé an spotphraghas bunaithe ar an meán a fhaightear. Má roghnaíonn tú tréimhsí ama níos faide, cosnaíonn tú do phrótacal in aghaidh ionramhála praghsanna toisc nach féidir le horduithe móra a rinneadh le déanaí tionchar a imirt ar phraghsanna sócmhainní.

Acmhainní slándála conartha cliste d'fhorbróirí

Uirlisí chun conarthaí cliste a anailísiú agus chun cruinneas an chóid a fhíorú

  • Uirlisí tástála agus leabharlanna - Bailiúchán uirlisí agus leabharlann de chaighdeán an tionscail chun tástálacha aonaid a dhéanamh, anailís statach, agus anailís dhinimiciúil ar chonarthaí cliste.

  • Uirlisí fíoraithe foirmiúla - Uirlisí chun cruinneas feidhme i gconarthaí cliste a fhíorú agus chun malairtí a sheiceáil.

  • Seirbhísí cliste iniúchóireachta conartha - Liosta de na heagraíochtaí a sholáthraíonn seirbhísí iniúchta conarthaí cliste do thionscadail forbartha Ethereum.

  • Ardáin deolchaire fabht - Ardáin chun deolchairí fabhtanna a chomhordú agus luach saothair a thabhairt do nochtadh freagrach leochaileachtaí ríthábhachtacha i gconarthaí cliste.

  • Seiceálaí Forc(opens in a new tab) - Uirlis in aisce ar líne chun gach faisnéis atá ar fáil maidir le conradh foirc a sheiceáil.

  • Ionchódóir ABI(opens in a new tab) - _ Seirbhís saor in aisce ar líne chun feidhmeanna do chonartha Solidity agus argóintí cruthaitheora a ionchódú._

  • Aderyn(opens in a new tab) - Anailíseoir Statach Solidity, ag trasnú na gCrann Comhréire Teibí (AST) chun leochaileachtaí amhrasta a aimsiú agus saincheisteanna a phriontáil amach i bhformáid marcáil síos atá éasca le tomhailt.

Uirlisí chun monatóireacht a dhéanamh ar chonarthaí cliste

Uirlisí le haghaidh riarachán slán chonarthaí cliste

  • OpenZeppelin Defender Admin(opens in a new tab) - Comhéadan chun riarachán cliste conartha a bhainistiú, lena n-áirítear rialuithe rochtana, uasghráduithe agus cur ar sos.

  • Safe(opens in a new tab) - _ Sparán conartha cliste ag rith ar Ethereum a éilíonn líon íosta daoine chun idirbheart a cheadú sular féidir leis tarlú (M-de-N)._

  • Conarthaí OpenZeppelin(opens in a new tab) - Leabharlanna conartha chun gnéithe riaracháin a chur i bhfeidhm, lena n-áirítear úinéireacht conartha, uasghráduithe, rialuithe rochtana, rialachas, sos-ábaltacht, agus go leor eile.

Seirbhísí cliste iniúchta conartha

  • ConsenSys Diligence(opens in a new tab) - Conradh cliste seirbhís iniúchta ag cabhrú le tionscadail ar fud an éiceachóras blocshlabhra a chinntiú go bhfuil a gcuid prótacail réidh le seoladh agus tógtha chun úsáideoirí a chosaint.

  • CertiK(opens in a new tab) - Gnólacht slándála blocshlabhra le ceannródaíocht a dhéanamh ar úsáid na teicneolaíochta Fíorúcháin fhoirmiúil cheannródaíoch ar chonarthaí cliste agus líonraí blocshlabhra.

  • Trail of Bits(opens in a new tab) - Cuideachta chíbearshlándála a chomhcheanglaíonn taighde slándála le meon ionsaitheora chun riosca a laghdú agus cód a neartú.

  • PeckShield(opens in a new tab) - Cuideachta slándála Blocshlabhra a thairgeann táirgí agus seirbhísí ar mhaithe le slándáil, príobháideacht agus inúsáidteacht an éiceachóras blocshlabhra ar fad.

  • QuantStamp(opens in a new tab) - Seirbhís iniúchta a éascaíonn glacadh príomhshrutha le teicneolaíocht blocshlabhra trí sheirbhísí slándála agus measúnaithe riosca.

  • OpenZeppelin(opens in a new tab) - _ Cuideachta conartha cliste slándála a sholáthraíonn iniúchtaí slándála ar chórais dáilte._

  • Fíorú Am Reatha(opens in a new tab) - Cuideachta slándála a dhéanann sainchúram de shamhaltú foirmiúil agus fíorú conarthaí cliste.

  • Hacken(opens in a new tab) - _ Iniúchóir cibearshlándála Web3 le cur chuige 360-céim maidir le slándáil blocshlabhra. _

  • Nethermind(opens in a new tab) - _ Seirbhísí iniúchta Solidity agus Cairo, ag cinntiú sláine conarthaí cliste agus sábháilteacht úsáideoirí ar fud Ethereum agus Starknet._

  • HashEx(opens in a new tab) - Díríonn HashEx ar bhlocshlabhra agus iniúchadh conartha cliste chun slándáil criptea-airgeadraí a chinntiú, ag soláthar seirbhísí cosúil le forbairt conarthaí cliste, bréagionsaithe tástála, comhairliúchán blocshlabhra.

  • Code4rena(opens in a new tab) - Ardán iniúchta iomaíoch a spreagann saineolaithe slándála conartha cliste chun leochaileachtaí a aimsiú agus cabhrú le web3 a dhéanamh níos sláine.

  • CodeHawks(opens in a new tab) - Ardán iniúchtaí iomaíoch a dhéanann óstáil ar chomórtais iniúchta cliste do thaighdeoirí slándála.

  • Cyfriin(opens in a new tab) - Lárionad cumhachta slándála Web3, ag goradh criptea-shlándáil trí tháirgí agus seirbhísí iniúchta conarthaí cliste.

  • ImmuneBytes(opens in a new tab) - Gnólacht slándála Web3 a thairgeann iniúchtaí slándála ar chórais blocshlabhra trí fhoireann iniúchóirí a bhfuil taithí acu agus uirlisí den scoth.

  • Oxorio(opens in a new tab) - Iniúchtaí conartha cliste agus blocshlabhra seirbhísí slándála le saineolas ar EVM, Solidity, ZK, teicneolaíocht tras-shlabhra do ghnólachtaí cripte agus tionscadail DeFi.

  • Inference(opens in a new tab) - Cuideachta iniúchta slándála, le sainchúram in iniúchadh conartha cliste le haghaidh blocshlabhra EVM-bhunaithe. A bhuí lena n-iniúchóirí saineolacha sainaithníonn siad fadhbanna a d’fhéadfadh a bheith ann agus molann siad réitigh inghníomhaithe chun iad a réiteach roimh imscaradh.

Ardáin deolchairí lochtanna

  • Immunefi(opens in a new tab) - ardán deolchaire fabhtanna le haghaidh conarthaí cliste agus tionscadail DeFi, ina ndéanann taighdeoirí slándála athbhreithniú ar an gcód, le leochaileachtaí a nochtadh, íocaíocht a fháil, agus criptiúchán níos sábháilte a dhéanamh.

  • HackerOne(opens in a new tab) - Comhordú leochaileachta agus ardáin deolchaire fabhtanna a nascann gnólachtaí le tástálaithe bréagionsaithe agus taighdeoirí cibearshlándála.

  • HackenProof(opens in a new tab) - Sain-ardáin deilchaire fabhtanna do tionscadail cripte (DeFi, Conarthaí Cliste, Sparán, CEX agus tuilleadh), ina soláthraíonn gairmithe slándála seirbhísí triáise agus ina n-íoctar taighdeoirí as tuarascálacha ábhartha, fíoraithe faoi fhabht.

  • Sherlock(opens in a new tab) - Frithgheallaí in Web3 maidir le slándáil conarthaí cliste, le híocaíochtaí d’iniúchóirí arna mbainistiú trí chonarthaí cliste chun a chinntiú go n-íoctar fabhtanna ábhartha go cothrom.

  • CodeHawks(opens in a new tab) - _ Ardáin iomaíoch deolchaire fabhtanna ina nglacann iniúchóirí páirt i gcomórtais agus i ndúshláin slándála, agus (go luath) ina n-iniúchtaí príobháideacha féin._

Foilseacháin ar leochaileachtaí agus ar shaothair conartha cliste aitheanta

Dúshláin maidir le slándáil conartha cliste a fhoghlaim

Na cleachtais is fearr chun conarthaí cliste a dhaingniú

Teagaisc ar shlándáil conarthaí cliste

An raibh an t-alt seo cabhrach?