Awọn anfani:
- Agbara lati lo oye atọwọda lati gbejade awọn ilana, awọn idanwo ati awọn atunyẹwo atunyẹwo ti o da lori awọn ile-ikawe ti a fihan (fun apẹẹrẹ OpenZeppelin) ati loye pe eniyan ṣe iṣeduro aabo iṣelọpọ
- Agbara lati jẹrisi ẹya koodu, ilana ati iṣakoso iwọle ti a ṣe nipasẹ itetisi atọwọda nipasẹ akopọ, idanwo ati testnet
- Ni anfani lati ṣe iyatọ pe akopọ ko tumọ si ni aabo ati pe testnet ati iṣatunṣe jẹ pataki.
Kikọ iwe adehun ọlọgbọn yatọ si sọfitiwia lasan: koodu ti o kọ jẹ ti gbogbo eniyan, aileyipada, ati eto ti o gbe owo taara. Ninu ẹyọ yii, iwọ yoo kọ ẹkọ bii o ṣe le lo AI bi oluranlọwọ idagbasoke adehun ọlọgbọn; A yoo kọ ẹkọ lati iṣelọpọ kikọ lati ṣe idanwo kikọ, lati iranti apẹrẹ si gaasi (ọya iṣowo) iṣapeye. Ṣugbọn jẹ ki a ṣe kedere lati ibẹrẹ: AI ṣe agbejade awọn awoṣe; Awọn eniyan rii daju koodu aabo ti o lọ sinu iṣelọpọ.
Ilẹ akọkọ: ede ati ayika
Ede adehun ijafafa ti o wọpọ julọ jẹ Solidity (ede ti Ethereum ati EVM — Ẹrọ Foju Ethereum, ẹrọ foju lori eyiti awọn adehun nṣiṣẹ - awọn ẹwọn ibaramu). Yiyan ni Vyper (ede bi Python ti o ni ero lati ni ihamọ ati kika). Koodu rẹ n gba gaasi (iye owo idunadura kọọkan si blockchain); Awọn koodu ailagbara jẹ gbowolori. Mimu awọn ofin wọnyi mọ ni ipo ti o fun ni AI jẹ bọtini lati gba abajade deede.
Nibo AI ti o niyelori julọ kii ṣe ni “kikọ lati ibere” ṣugbọn ni iṣelọpọ ilana + imudara to dara: ibẹrẹ ibamu-awọn ajohunše, alaworan kan lori eyiti lati ṣafikun imọ-jinlẹ rẹ.
Awọn ipele ti lilo AI ni ifaminsi
1. Ti o npese skeletons. AI ni kiakia maini egungun ti aami boṣewa (ERC-20) tabi NFT (ERC-721 — boṣewa dukia oni-nọmba alailẹgbẹ). Ṣugbọn rii daju lati jẹ ki AI lo ile-ikawe ti a fihan: fun apẹẹrẹ, OpenZeppelin (igbẹkẹle agbegbe, ile-ikawe adehun adehun iṣatunṣe). Ofin naa ni lati lo bulọọki idanwo dipo kikọ aabo lati ibere.
2. Apejuwe iṣẹ ati atunyẹwo. Ṣiṣalaye iṣẹ ti o wa tẹlẹ si AI gba ọ laaye lati rii awọn aṣiṣe oye ni kutukutu.
3. Idanwo iran. AI dara ni ipilẹṣẹ awọn ọran idanwo fun awọn ọran eti: titẹ sii odo, nọmba ti o tobi pupọ, olupe laigba aṣẹ, ipe atunwi. Eyi leti ọkan ninu awọn oju iṣẹlẹ ti ọkan fo.
4. Gaasi ati kika. AI ṣe asia awọn ilana gbowolori gẹgẹbi ibi ipamọ ti ko wulo ti o kọ ati daba awọn omiiran.
Imọran: Kọ AI lati “Kọ sori awọn adehun iṣatunwo ti OpenZeppelin, tun ṣe aabo lati ibere.” O jẹ eewu pupọ fun AI lati kọ koodu aabo atilẹba ju lati lo ile-ikawe idanwo kan.
Ailagbara kiakia / Alagbara kiakia
Ibere ailagbara:
Kọ mi a àmi guide.
Itọkasi yii lewu: ko ṣe afihan kini boṣewa, kini pq, iru ile-ikawe, iru ibeere aabo. AI ṣe ipilẹṣẹ laileto, o ṣee ṣe igba atijọ tabi koodu ti ko ni aabo.
Ibere ti o lagbara:
Rẹ ipa: oga Solidity developer. Ṣe ina apẹrẹ ami ERC-20 fun ẹwọn ibaramu EVM kan. Awọn ofin: - Da lori OpenZeppelin's audited ERC20 ati Ownable contracts.- Kọ awọn Solidity version ati iwe-ašẹ (SPDX) laini kedere.- Nikan ni eni ni o ni igbanilaaye lati Mint; fi fila lodi si titẹ ailopin. - Ṣafikun asọye NatSpec si iṣẹ kọọkan. - Kọ aabo lati ibere; Lo awọn boṣewa Àkọsílẹ. - Ṣafikun ikilọ kan ni ipari: “Eyi jẹ apẹrẹ kan; iṣatunṣe ati idanwo nilo”. Samisi awọn agbegbe ti o ko ni idaniloju pẹlu // TODO.
Iyatọ: kiakia ti o lagbara yoo fun ipa ti o han gbangba, boṣewa, ile-ikawe, aala aabo, iwe ati awọn ireti afọwọsi.
Mẹrin daakọ awọn awoṣe
1) Egungun orisun awọn ajohunše:
Rẹ ipa: Solidity developer. Ṣe ipilẹṣẹ [ERC-20 / ERC-721 / staking] ilana adehun ti o da lori ile-ikawe iṣatunṣe OpenZeppelin. Kọ iwe-aṣẹ SPDX ati ẹya pragma. Ṣafikun iṣakoso wiwọle (ẹniti o le pe) si iṣẹ ita kọọkan. Aabo atunṣe; Lo boṣewa ohun amorindun. Eyi jẹ apẹrẹ kan.
2) Atunwo iṣẹ:
Ṣayẹwo iṣẹ atẹle bi oluṣe idagbasoke giga: kini o ṣe, awọn ipinlẹ wo ni o yipada, tani o le pe? Samisi awọn aṣiṣe oye ti o ṣeeṣe ati awọn eewu aabo bi HYPOTHESIS, sisopo ọkọọkan si laini kan ninu koodu naa. Maṣe sọ "ailewu" ni gbangba; o kan akojö awọn ojuami ti akiyesi.
3) Idanwo oju iṣẹlẹ:
Dabaa awọn ọran idanwo fun adehun yii (le jẹ apẹrẹ fun Foundry/Hardhat). Ni pato bo awọn ọran opin: titẹ sii odo, nọmba ti o tobi pupọ, ipe laigba aṣẹ, ipe ti o tun pada, awọn owo ti ko to. Kọ OHUN kọọkan igbeyewo jerisi.
4) Gaasi ati atunyẹwo kika:
Ninu adehun yii, samisi awọn ilana ti o le dinku iye owo gaasi: kikọ ibi ipamọ ti ko wulo, ipe ita ni lupu, iṣiro atunwi. Ṣe alaye iyatọ ṣaaju/lẹhin ninu aba kọọkan. Ṣe iṣeduro awọn iṣapeye fifọ-aabo; Ti ko ba han, sọ “beere lọwọ ẹniti nṣe ayẹwo iwe-owo”.
Awọn ọran kekere mẹta (ni awọn nọmba)
Ọran 1 - Egungun ti o fipamọ fun wakati mẹrin. Ẹgbẹ kan ti wa egungun ti iwe adehun ti o da lori ile-ikawe ti a ṣayẹwo pẹlu AI ni iṣẹju 30; O gba ~ 4 wakati pẹlu ọwọ. Ẹgbẹ naa ya akoko si aabo ati idanwo. Ere naa kii ṣe lati gbigbe aabo, ṣugbọn lati yiyara ilana ti o nira.
Case 2 - Atijo version pakute. AI ṣe agbekalẹ apẹrẹ kan ti o firanṣẹ Ether aise nipasẹ gbigbe, eyiti a ko ṣeduro mọ nitori data ikẹkọ ti igba atijọ. Olùgbéejáde ṣe akiyesi eyi o si yi pada si ipilẹ ipe lọwọlọwọ ati ilana aabo-padabọ. Ẹkọ: Ile-ikawe AI / apẹrẹ nigbagbogbo ni idaniloju lati wa ni imudojuiwọn; AI ko mọ kọja ọjọ gige ikẹkọ.
Ọran 3 - Igbeyewo osere popped farasin kokoro. Idanwo “olupe laigba aṣẹ” ti AI ṣejade ṣafihan pe olupilẹṣẹ ti gbagbe iṣakoso iwọle ni iṣẹ kan. nikanOwner sonu 1 ila, mu ni 5 iṣẹju lori testnet; O le ti padanu awọn owo lori mainnet. Ẹkọ: AI bo oju afọju eniyan ni idanwo.
Ranti awọn ilana aabo pẹlu AI
AI dara ni iranti rẹ ti awọn ilana ailagbara ti a mọ bi atokọ ayẹwo kan. Awọn awoṣe ti o wọpọ julọ:
- Ipadabọ: Ṣiṣe ipe ita lai ṣe imudojuiwọn ipo naa. Solusan: sọwedowo-ipa-aṣẹ awọn ibaraẹnisọrọ, oluso atunṣe.
- Aini iṣakoso wiwọle: Ẹnikẹni le pe iṣẹ pataki.
- Odidi aponsedanu / underfall: Modern Solidity mu ọpọlọpọ ninu wọn, sugbon si tun kan ewu ni kekere-ipele koodu.
- Ifọwọsi titẹ sii ti ko pe: Adirẹsi odo, iṣakoso opoiye odo.
- Igbẹkẹle Oracle: Igbẹkẹle afọju si data ita (gẹgẹbi idiyele).
Akiyesi: AI le ranti atokọ yii, ṣugbọn ko le ṣe iṣeduro boya ohun kan ninu atokọ wa ninu koodu kan pato. Akojọ ayẹwo jẹ ibere; Kii ṣe rirọpo fun iṣakoso eiyan.
Gbigba ọrọ-ọrọ ni ẹtọ: Aṣiri si koodu to dara lati AI
Didara koodu ti AI ṣe da taara lori didara ipo ti o fun ni. Ni Web3 eyi jẹ pataki paapaa nitori pe alaye kekere kan (eyi ti pq, eyiti ẹya Solidity, eyiti boṣewa ami) yi gbogbo iṣelọpọ pada. Ilana to dara pẹlu:
- Àfojúsùn pq ati ayika: Ethereum mainnet tabi a Layer 2 (din owo sidechain ti o nṣiṣẹ lori oke ti awọn mainchain)? Iye owo gaasi ati diẹ ninu awọn ẹya yatọ nipasẹ pq.
- Ẹya ati ile-ikawe: Ẹya Solidity wo, iru ẹya OpenZeppelin? Ti ko ba si ẹya kan pato, AI le ṣe agbejade ti igba atijọ, awọn ilana ti a ti fi silẹ.
- Awọn ibeere aabo: Ṣe fila kan wa, ṣe o le da duro, ṣe o le pọ si? Awọn wọnyi ni o yẹ ki o sọ lati ibẹrẹ.
- Awọn ihamọ: Ko awọn opin kuro bi "maṣe lo apejọ", "yago fun ipe ita", "mu gaasi dara ṣugbọn ṣetọju kika".
Ilana miiran ti o lagbara ni lati beere AI fun ero akọkọ, lẹhinna koodu naa: "Ni akọkọ ṣe akojọ awọn iṣẹ ti adehun yii ati ohun ti ọkọọkan yoo ṣe; kọ koodu naa ni kete ti mo ba fọwọsi." Eyi mu AI ti n lọ ni itọsọna ti ko tọ ni kutukutu ati gba ọ laaye lati ṣe idaduro ipinnu ayaworan.
Akiyesi: Beere AI "kilode ti o kọ koodu yii bi eyi?" beere. Ṣalaye idi naa yoo mu ki ẹkọ rẹ yara yara ati mu awọn aṣiṣe ogbon inu eyikeyi wa si dada (fun apẹẹrẹ arosinu aabo eke). Maṣe gbekele abajade ti AI ti ko le daabobo koodu tirẹ.
Awọn aṣiṣe ti o wọpọ
- Fifi aabo ni AI lati ibere. Lo ile-ikawe idanwo kan.
- Ko ṣe ifẹsẹmulẹ ẹya / apẹrẹ ti a ṣe nipasẹ AI. Data ikẹkọ le jẹ ti atijọ.
- Bypassing testnet. Gbogbo yiyan yẹ ki o ṣiṣẹ lori nẹtiwọọki idanwo ṣaaju lilọ laaye.
- Ko ṣe afikun NatSpec/iwe. Ayewo ati itọju di soro.
- "O ti ṣajọ, nitorina o jẹ ailewu" aṣiṣe. Ti ṣe akojọpọ ko tumọ si ailewu.
- Ngbagbe iṣakoso wiwọle. O jẹ ọkan ninu awọn aṣiṣe ti o wọpọ julọ ati gbowolori.
Ni akojọpọ
- Ni kikọ adehun ọlọgbọn, AI ṣe agbejade awọn ilana, awọn idanwo ati awọn iyaworan atunyẹwo; Eniyan ṣe iṣeduro aabo iṣelọpọ.
- Kọ aabo kii ṣe lati ibere ṣugbọn da lori awọn ile-ikawe ti a fihan (fun apẹẹrẹ OpenZeppelin).
- Imudara-ọjọ ti awọn ẹya ati awọn ilana ti a ṣe nipasẹ YZ ni nigbagbogbo jẹrisi.
- Awọn stubs idanwo jẹ niyelori ni yiya awọn aaye afọju eniyan (awọn ọran idiwọn, iṣakoso wiwọle).
- Ti ṣe akojọpọ ko tumọ si ailewu; testnet ati iṣatunṣe jẹ dandan.
Ohun elo iṣẹ-ṣiṣe
Fun ami-ami ERC-20 ti o rọrun, ṣe agbekalẹ apẹrẹ kan nipa lilo “egungun-egungun ti o da lori” itọka loke. Lẹhinna: (1) ṣayẹwo ti o ba nlo ile-ikawe ti a ṣayẹwo, (2) ṣayẹwo awọn iṣakoso iwọle, (3) ṣe agbekalẹ awọn idanwo pẹlu “itọka ọran idanwo” ati ṣiṣe ni o kere ju idanwo olupe rogue kan. Wa ki o ṣe akiyesi o kere ju aaye aabo kan ti AI padanu.
akojọ ayẹwo
- [] Mo ti sọ kedere boṣewa ati pq ni tọ.
- [] Mo fe mule ìkàwé-orisun gbóògì.
- [] SPDX iwe-ašẹ ati pragma version wa.
- [] Iṣakoso wiwọle wa ni gbogbo iṣẹ pataki.
- [] Mo ṣẹda ati ṣiṣe awọn idanwo fun awọn ọran idiwọn.
- [] Mo ti fi idi rẹ mulẹ pe iwe-ikawe / apẹrẹ ti wa ni imudojuiwọn.
- [] Mo ti samisi koodu fun iṣatunṣe ati idanwo; Emi ko gba laini abojuto lori mainnet.