एकाइहरू
1. ब्लकचेन र Web3 मा कृत्रिम बुद्धिमत्ताको परिचय: भूमिका, सीमा, प्रमाणीकरण र सुरक्षा-आलोचनात्मकता 2. स्मार्ट अनुबंध लेखन समर्थन: ठोसता/भाइपर ड्राफ्ट र सुरक्षित कोड जेनेरेसन 3. स्मार्ट अनुबंध लेखा परीक्षण समर्थन: सुरक्षा समीक्षा र ड्राफ्ट निष्कर्ष 4. जोखिम स्क्यानिङ: सामान्य जोखिम ढाँचा र स्वचालित विश्लेषण 5. अन-चेन डाटा विश्लेषण: ब्लक, लेनदेन र वालेट डाटा को अर्थ बनाउन 6. DeFi र प्रोटोकल विश्लेषण: तरलता, MEV र आर्थिक आक्रमणहरू 7. टोकनोमिक मोडेलिङ: आपूर्ति, वितरण, प्रोत्साहन र सिमुलेशन 8. कागजात र प्राविधिक लेखन: व्हाइटपेपर, NatSpec र प्रयोगकर्ता गाइड 9. धोखाधडी, रग-पुल र जोखिम पत्ता लगाउने: अन-चेन रातो झण्डा 10. सुरक्षा-महत्वपूर्ण लेखा परीक्षण, विशेषज्ञ अनुमोदन र जिम्मेवार प्रयोग 11. अन्त-देखि-अन्त कार्यप्रवाह, शासन, प्रमाणीकरण र नैतिकता
एकाइ 2 / 11

स्मार्ट अनुबंध लेखन समर्थन: ठोसता/भाइपर ड्राफ्ट र सुरक्षित कोड जेनेरेसन

लाभ:

  • प्रमाणित पुस्तकालयहरू (जस्तै OpenZeppelin) मा आधारित फ्रेमवर्क, परीक्षण र समीक्षा ड्राफ्टहरू उत्पादन गर्न कृत्रिम बुद्धिमत्ता प्रयोग गर्ने क्षमता र मानिसहरूले उत्पादन सुरक्षाको ग्यारेन्टी गर्छन् भनेर बुझ्दछन्।
  • संकलन, परीक्षण र टेस्टनेट मार्फत कृत्रिम बुद्धिमत्ता द्वारा उत्पादित कोड संस्करण, ढाँचा र पहुँच नियन्त्रण प्रमाणित गर्ने क्षमता
  • त्यो संकलन छुट्याउन सक्षम हुनुको अर्थ सुरक्षित हुनु होइन र टेस्टनेट र अडिटिङ आवश्यक छ।

स्मार्ट अनुबंध लेख्नु सामान्य सफ्टवेयर भन्दा फरक छ: तपाईंले लेख्नुहुने कोड सार्वजनिक, अपरिवर्तनीय, र प्रत्यक्ष रूपमा पैसा सार्ने प्रोग्राम हो। यस इकाईमा, तपाईंले स्मार्ट अनुबंध विकास सहायकको रूपमा AI कसरी प्रयोग गर्ने भनेर सिक्नुहुनेछ; हामी मस्यौदा उत्पादन देखि परीक्षण लेखन सम्म, ढाँचा सम्झना देखि ग्यास (लेनदेन शुल्क) अनुकूलन सम्म सिक्नेछौं। तर सुरुदेखि नै स्पष्ट बनौं: एआईले खाका उत्पादन गर्छ; मानिसले सुरक्षित कोड सुनिश्चित गर्दछ जुन उत्पादनमा जान्छ।

पहिलो आधार: भाषा र वातावरण

सबैभन्दा सामान्य स्मार्ट अनुबंध भाषा Solidity (Ethereum र EVM को भाषा - Ethereum भर्चुअल मेसिन, भर्चुअल मेसिन जसमा अनुबंधहरू चल्छन् - मिल्दो चेन)। वैकल्पिक Vyper हो (एक पाइथन-जस्तो भाषा जसको उद्देश्य अधिक सीमित र पढ्न योग्य छ)। तपाईंको कोडले ग्याँस खपत गर्छ (ब्लकचेनमा प्रत्येक लेनदेनको लागत); अप्रभावी कोड महँगो छ। तपाईंले AI लाई दिनुभएको सन्दर्भमा यी सर्तहरू स्पष्ट राख्नु भनेको सही आउटपुट प्राप्त गर्ने कुञ्जी हो।

जहाँ AI सबैभन्दा मूल्यवान छ त्यो "स्क्र्याचबाट लेख्ने" मा होइन तर फ्रेमवर्क + राम्रो मोल्ड उत्पादन गर्नमा हो: एक मानक-अनुरूप सुरुवात, तपाईंको विशेषज्ञता थप्ने खाका।

कोडिङमा AI प्रयोग गर्ने तहहरू

1. कंकाल उत्पन्न गर्दै। AI ले चाँडै मानक टोकन (ERC-20) वा NFT (ERC-721 — एक अद्वितीय डिजिटल सम्पत्ति मानक) को कंकाल खन्दछ। तर AI लाई प्रमाणित पुस्तकालय प्रयोग गर्न निश्चित हुनुहोस्: उदाहरणका लागि, OpenZeppelin (समुदायको विश्वसनीय, अडिट गरिएको मानक अनुबंध पुस्तकालय)। नियम स्क्र्याचबाट सुरक्षा लेख्नु भन्दा परीक्षण गरिएको ब्लक प्रयोग गर्नु हो।

2. प्रकार्य विवरण र समीक्षा। एआईमा अवस्थित प्रकार्यको व्याख्या गर्दा तपाईंलाई तर्क त्रुटिहरू चाँडै पत्ता लगाउन अनुमति दिन्छ।

3. परीक्षण उत्पादन। एआई एज केसहरूका लागि परीक्षण केसहरू उत्पन्न गर्न राम्रो छ: शून्य इनपुट, धेरै ठूलो संख्या, अनाधिकृत कलर, दोहोर्याइएको कल। यसले एउटा छाड्ने परिदृश्यहरू मध्ये एकलाई सम्झाउँछ।

4. ग्यास र पठनीयता। AI ले महँगो ढाँचाहरू जस्तै अनावश्यक भण्डारण लेख्छ र विकल्पहरू सुझाव दिन्छ।

संकेत: AI लाई "OpenZeppelin को अडिट गरिएका अनुबंधहरूमा निर्माण गर्न, स्क्र्याचबाट सुरक्षा पुन: लेख्न" निर्देशन दिनुहोस्। परीक्षण गरिएको पुस्तकालय प्रयोग गर्नु भन्दा मूल सुरक्षा कोड लेख्नु AI को लागि धेरै जोखिमपूर्ण छ।

कमजोर प्रम्प्ट / बलियो प्रम्प्ट

कमजोर प्रम्प्ट:

मलाई एउटा टोकन सम्झौता लेख्नुहोस्।

यो प्रम्प्ट खतरनाक छ: कुन मानक, कुन चेन, कुन पुस्तकालय, कुन सुरक्षा आवश्यकता स्पष्ट छैन। AI ले अनियमित, सम्भवतः पुरानो वा असुरक्षित कोड उत्पन्न गर्दछ।

शक्तिशाली प्रम्प्ट:

तपाईंको भूमिका: वरिष्ठ एकता विकासकर्ता। EVM मिल्ने चेनका लागि ERC-20 टोकन ड्राफ्ट उत्पन्न गर्नुहोस्। नियमहरू: - OpenZeppelin को अडिट गरिएको ERC20 र स्वामित्व योग्य अनुबंधहरूमा आधारित।- ठोस संस्करण र इजाजतपत्र (SPDX) लाइन स्पष्ट रूपमा लेख्नुहोस्।- केवल मालिकसँग टकसाल गर्ने अनुमति छ; अनन्त दबाइ विरुद्ध टोपी थप्नुहोस्। - प्रत्येक प्रकार्यमा NatSpec टिप्पणी थप्नुहोस्। - स्क्र्याचबाट सुरक्षा लेख्नुहोस्; मानक ब्लक प्रयोग गर्नुहोस्। - अन्त्यमा चेतावनी थप्नुहोस्: "यो मस्यौदा हो; अडिटिङ र परीक्षण आवश्यक छ"। // TODO सँग तपाई निश्चित नभएका क्षेत्रहरूलाई चिन्ह लगाउनुहोस्।

भिन्नता: बलियो प्रम्प्टले स्पष्ट भूमिका, मानक, पुस्तकालय, सुरक्षा सीमा, कागजात र प्रमाणीकरण अपेक्षाहरू दिन्छ।

चार प्रतिलिपि गर्न मिल्ने टेम्प्लेटहरू

1) मानक आधारित कंकाल:

तपाईंको भूमिका: एकता विकासकर्ता। OpenZeppelin अडिट गरिएको पुस्तकालयमा आधारित [ERC-20 / ERC-721 / staking] सम्झौता फ्रेमवर्क उत्पन्न गर्नुहोस्। SPDX लाइसेन्स र pragma संस्करण लेख्नुहोस्। प्रत्येक बाह्य प्रकार्यमा पहुँच नियन्त्रण (कसले कल गर्न सक्छ) थप्नुहोस्। सुरक्षा पुन: आविष्कार; मानक ब्लकहरू प्रयोग गर्नुहोस्। यो मस्यौदा हो।

2) कार्य समीक्षा:

एक वरिष्ठ विकासकर्ता जस्तै निम्न प्रकार्य जाँच गर्नुहोस्: यसले के गर्छ, यसले कुन राज्यहरू परिवर्तन गर्छ, कसले यसलाई कल गर्न सक्छ? सम्भावित तर्क त्रुटिहरू र सुरक्षा जोखिमहरूलाई HYPOTHESIS को रूपमा चिन्ह लगाउनुहोस्, प्रत्येकलाई कोडको लाइनमा लिङ्क गर्नुहोस्। सिधै "सुरक्षित" नभन्नुहोस्; केवल ध्यान बिन्दुहरू सूचीबद्ध गर्नुहोस्।

3) परीक्षण परिदृश्य मस्यौदा:

यस अनुबंधको लागि परीक्षण केसहरू प्रस्ताव गर्नुहोस् (फाउन्ड्री/हर्दहतको लागि मस्यौदा हुन सक्छ)। विशेष रूपमा कभर सीमा केसहरू: शून्य इनपुट, धेरै ठूलो संख्या, अनाधिकृत कल, पुन: प्रवेश कल, अपर्याप्त कोष। प्रत्येक परीक्षणले के पुष्टि गर्छ लेख्नुहोस्।

4) ग्यास र पठनीयता समीक्षा:

यस सम्झौतामा, ग्यास लागत घटाउन सक्ने ढाँचाहरू चिन्ह लगाउनुहोस्: अनावश्यक भण्डारण लेखन, लुपमा बाह्य कल, दोहोरिने गणना। प्रत्येक सुझावमा पहिले/पछिको भिन्नताको व्याख्या गर्नुहोस्। सुरक्षा-ब्रेकिंग अप्टिमाइजेसनहरू सिफारिस गर्नुहोस्; यदि यो स्पष्ट छैन भने, "लेखापरीक्षकलाई सोध्नुहोस्" भन्नुहोस्।

तीनवटा सानो केसहरू (संख्यामा)

केस 1 - स्केलेटनले 4 घण्टा बचत गर्यो। एउटा टोलीले ३० मिनेटमा एआईसँग अडिट गरिएको पुस्तकालयमा आधारित भेस्टिङ सम्झौताको कंकाल खन्यो; म्यानुअल रूपमा ~4 घण्टा लाग्यो। टोलीले सुरक्षा र परीक्षणमा समय लगायो। लाभ सुरक्षा स्थानान्तरणबाट होइन, तर थकाऊ फ्रेमवर्कलाई गति दिनबाट आएको हो।

केस २ - पुरानो संस्करण जाल। AI ले एउटा ढाँचा उत्पादन गर्‍यो जसले स्थानान्तरणद्वारा कच्चा ईथर पठाउँछ, जुन अब सिफारिस गरिएको छैन किनभने प्रशिक्षण डेटा पुरानो भएको छ। विकासकर्ताले यो याद गर्नुभयो र यसलाई हालको कल-आधारित र पुन: प्रवेश-सुरक्षित ढाँचामा परिवर्तन गर्नुभयो। पाठ: AI को पुस्तकालय/ढाँचा सधैं अद्यावधिक भएको पुष्टि हुन्छ; AI लाई प्रशिक्षण कटअफ मिति भन्दा बाहिर थाहा छैन।

केस ३ - परीक्षण ड्राफ्ट लुकेको बग पप भयो। AI ले उत्पादन गरेको "अनधिकृत कलर" परीक्षणले विकासकर्ताले समारोहमा पहुँच नियन्त्रण बिर्सेको कुरा पत्ता लगायो। केवल मालिकले 1 लाइन हरायो, 5 मिनेटमा टेस्टनेटमा समातियो; मेननेटमा कोषको हानि हुन सक्छ। पाठ: AI ले परीक्षणमा मानव अन्धो स्थानलाई समेट्छ।

AI सँग सुरक्षा ढाँचाहरू सम्झँदै

AI ले तपाईंलाई चेकलिस्ट जस्ता ज्ञात कमजोरी ढाँचाहरू सम्झाउन राम्रो छ। सबैभन्दा सामान्य ढाँचाहरू:

  • Reentrancy: स्थिति अद्यावधिक नगरी बाह्य कल गर्दै। समाधान: चेक-प्रभाव-अन्तर्क्रिया आदेश, पुन: प्रवेश गार्ड।
  • पहुँच नियन्त्रणको अभाव: जो कोहीले महत्वपूर्ण प्रकार्यलाई कल गर्न सक्छ।
  • Integer overflow/underfall: Modern Solidity ले ती मध्ये धेरैलाई समात्छ, तर अझै पनि निम्न-स्तर कोडमा जोखिम हुन्छ।
  • अपर्याप्त इनपुट प्रमाणीकरण: शून्य ठेगाना, शून्य मात्रा नियन्त्रण।
  • ओरेकल निर्भरता: बाह्य डेटा (जस्तै मूल्य) मा अन्धो विश्वास।
ध्यान दिनुहोस्: AI ले यो सूची सम्झन सक्छ, तर यसले ग्यारेन्टी गर्न सक्दैन कि सूचीमा रहेको वस्तु तपाईंको विशिष्ट कोडमा छ कि छैन। चेकलिस्ट एक सुरुवात हो; यो कन्टेनर नियन्त्रणको लागि प्रतिस्थापन होइन।

सही सन्दर्भ प्राप्त गर्दै: AI बाट राम्रो कोडको रहस्य

AI ले उत्पादन गर्ने कोडको गुणस्तर सीधै तपाईंले दिनुभएको सन्दर्भको गुणस्तरमा निर्भर गर्दछ। Web3 मा यो विशेष गरी महत्वपूर्ण छ किनभने एउटा सानो विवरण (कुन चेन, कुन सोलिडिटी संस्करण, कुन टोकन मानक) ले सम्पूर्ण आउटपुट परिवर्तन गर्दछ। राम्रो सन्दर्भ समावेश छ:

  • लक्ष्य चेन र वातावरण: इथरियम मेननेट वा लेयर २ (सस्तो साइडचेन जुन मेनचेनको शीर्षमा चल्छ)? ग्याँस लागत र केहि सुविधाहरू चेन द्वारा भिन्न हुन्छन्।
  • संस्करण र पुस्तकालय: कुन ठोस संस्करण, कुन OpenZeppelin संस्करण? यदि कुनै संस्करण निर्दिष्ट गरिएको छैन भने, AI ले पुरानो, बहिष्कृत ढाँचाहरू उत्पादन गर्न सक्छ।
  • सुरक्षा आवश्यकताहरू: त्यहाँ क्याप छ, के यसलाई पज गर्न सकिन्छ, यसलाई बढाउन सकिन्छ? यी कुराहरू सुरुदेखि नै भन्नु पर्छ।
  • बाधाहरू: स्पष्ट सीमाहरू जस्तै "एसेम्बली प्रयोग नगर्नुहोस्", "बाह्य कललाई बेवास्ता गर्नुहोस्", "ग्यास अप्टिमाइज गर्नुहोस् तर पढ्न योग्यता कायम राख्नुहोस्"।

अर्को शक्तिशाली प्रविधी भनेको एआईलाई पहिले योजनाको लागि सोध्नु हो, त्यसपछि कोड: "पहिले यो सम्झौताको कार्यहरू सूचीबद्ध गर्नुहोस् र प्रत्येकले के गर्नेछ; मैले स्वीकृत गरेपछि कोड लेख्नुहोस्।" यसले AI लाई गलत दिशामा छिट्टै समात्छ र तपाईंलाई वास्तु निर्णयलाई कायम राख्न अनुमति दिन्छ।

संकेत: AI लाई सोध्नुहोस् "तपाईंले यो कोड यसरी किन लेख्नुभयो?" सोध्नुहोस्। तर्कको व्याख्या गर्नाले तपाईंको सिकाइलाई गति दिनेछ र कुनै पनि तार्किक त्रुटिहरू (जस्तै गलत सुरक्षा धारणा) सतहमा ल्याउनेछ। आफ्नै कोडको रक्षा गर्न नसक्ने AI को आउटपुटमा विश्वास नगर्नुहोस्।

सामान्य गल्तीहरू

  • स्क्र्याचबाट AI मा सुरक्षा राख्दै। परीक्षण गरिएको पुस्तकालय प्रयोग गर्नुहोस्।
  • AI द्वारा उत्पादित संस्करण/ढाँचा पुष्टि गर्दैन। प्रशिक्षण डाटा पुरानो हुन सक्छ।
  • टेस्टनेट बाइपास गर्दै। प्रत्येक ड्राफ्ट लाइभ हुनु अघि परीक्षण नेटवर्कमा चल्नु पर्छ।
  • NatSpec/डकुमेन्टेसन थप्दै छैन। निरीक्षण र मर्मतसम्भार गाह्रो हुन्छ।
  • "यो कम्पाइल गरिएको छ, त्यसैले यो सुरक्षित छ" गलत धारणा। कम्पाइल हुनु भनेको सुरक्षित हुनु होइन।
  • पहुँच नियन्त्रण बिर्सने। यो सबैभन्दा सामान्य र महँगो गल्ती मध्ये एक हो।

संक्षेपमा

  • स्मार्ट अनुबंध लेखनमा, AI ले फ्रेमवर्क, परीक्षण र समीक्षा ड्राफ्टहरू उत्पादन गर्दछ; मानव उत्पादन सुरक्षाको ग्यारेन्टी गर्दछ।
  • सुरक्षा स्क्र्याचबाट होइन तर प्रमाणित पुस्तकालयहरूमा आधारित बनाउनुहोस् (जस्तै OpenZeppelin)।
  • YZ द्वारा उत्पादित संस्करण र ढाँचाहरूको अप-टु-डेटनेस सधैं पुष्टि हुन्छ।
  • टेस्ट स्टबहरू मानव अन्धा ठाउँहरू (सीमित केसहरू, पहुँच नियन्त्रण) क्याप्चर गर्न मूल्यवान छन्।
  • कम्पाइल हुनु भनेको सुरक्षित हुनु होइन; testnet र लेखा परीक्षा आवश्यक छ।

आवेदन कार्य

साधारण ERC-20 टोकनको लागि, माथिको "मानक-आधारित कंकाल" प्रम्प्ट प्रयोग गरेर मस्यौदा उत्पन्न गर्नुहोस्। त्यसपछि: (१) जाँच गर्नुहोस् कि यसले जाँच गरिएको पुस्तकालय प्रयोग गर्दछ, (2) पहुँच नियन्त्रणहरू जाँच गर्नुहोस्, (3) "टेस्ट केस ड्राफ्ट" प्रम्प्टको साथ परीक्षणहरू उत्पन्न गर्नुहोस् र वास्तवमा कम्तिमा एउटा दुष्ट-कलर परीक्षण चलाउनुहोस्। AI छुटेको कम्तिमा एउटा सुरक्षा बिन्दु खोज्नुहोस् र नोट गर्नुहोस्।

चेकलिस्ट

  • [] मैले प्रम्प्टमा मानक र चेन स्पष्ट रूपमा बताएको छु।
  • [ ] म पुस्तकालयमा आधारित उत्पादन प्रमाणित गर्न चाहन्छु।
  • [] SPDX लाइसेन्स र pragma संस्करण उपलब्ध छ।
  • प्रत्येक महत्वपूर्ण कार्यमा पहुँच नियन्त्रण छ।
  • [ ] मैले सीमित केसहरूको लागि परीक्षणहरू सिर्जना गरी दौडें।
  • [ ] मैले पुस्तकालय/ढाँचा अप टु डेट भएको पुष्टि गरें।
  • [ ] मैले लेखा परीक्षण र परीक्षणको लागि कोड चिन्ह लगाएँ; मैले यसलाई मेननेटमा असुरक्षित पाएको छैन।