فهم العقود الذكية: قراءة، كتابة، ومراجعة

آخر تحديث 2026-11-04 07:51:17
مدة القراءة: 1m
يغطي هذا المقال تقنيات برمجة العقود الذكية، بما في ذلك الإرشادات للقراءة، والكتابة، والتدقيق. فهم هيكل وكتل الشفرة للعقود الذكية هو الخطوة الأولى لكتابتها بلغة الصلاد أو لغات أخرى. نظرًا لأن العقود الذكية تعتبر مركزية لتمويل اللامركزية (DeFi) وتطبيقات اللامركزية (DApps)، فإن ضمان أمنها وخلوها من العيوب أمر حاسم، مع تلعب فحوصات العقود الذكية دورًا رئيسيًا.

قراءة العقود الذكيةالعقود الذكية هي شفرات برمجية قابلة للتنفيذ فقط عند تحقيق مجموعة من الشروط. إنها مترادفة مع العقود القانونية الواقعية الرابطة; إلا أن في هذه الحالة، الشيفرة هي القانون. نظرًا لأن العقود الذكية موجودة على سلسلة الكتل، فإنها لا يمكن تغييرها — لا يمكن التلاعب بها. إن هذا المعيار غير القابل للتغيير هو ما يجعل العقود الذكية خاصة، بين أمور أخرى.

فهم العقود الذكية: الأساسيات والغرضالعقد الذكيمخصصة لتأتيمتز blockchain-specific تعاملات. حيث تعتبر عقود محددة الشروط، لذلك لا تتطلب وسطاء. ما يجعل العقود الذكية مفيدة هو توافقها عبر مجموعة واسعة من حالات الاستخدام، بما في ذلك الخدمات المالية، وإدارة سلسلة التوريد، وأكثر. وعلى عكس الشفرات التقليدية التي تبرمج في ننقرة، تتطلب العقود الذكية استراتيجيات آمنة للغاية وتتطلب الكثير من الوقت.

كيف تتوافق العقود الذكية مع تكنولوجيا البلوكشين: BeInCrypto

يوحي المصطلح الشائع "web3" بالعادات البرمجية الضعيفة والغير آمنة للويب. عندما يتم برمجة العملات المشفرة أو العقود الذكية مثل صفحة ويب، فهي محكومة بالفشل. تعتمد سلاسل الكتل الناجحة وتطبيقاتها بشكل مستدام على طرق برمجية أكثر أمانًا وحذرًا وبطيئة بكثير.

نيك سزابو، عالم تشفير وعالم حاسوب: تويتر

يمكن للعقود الذكية العمل مع الرموز الخاصة بتقنية البلوكشين، مثل ERC-20 لسلسلة الكتل Ethereum، محفزة الجهود ونقل المعاملات. نظرًا لوجود شروط وتكاليف كودية، يجب أن تكون حذرًا عند قراءتها وكتابتها وتدقيقها.

العقود الذكية وأهميتهاالمغزى الحقيقي للعقود الذكية يتعلق بطبيعتها وتصويبها. لسيناريو معين - مثلاً شخص A ينقل الأموال إلى الشخص B عندما يكتمل الشخص B الخدمة - يتم حفظ نسخة من العقد الذكي وتنفيذها من قبل عقداء البلوكشين. تُحفظ العقود الذكية كأكواد عقد داخل السلسلة. هذا التحقق المتعدد المسارات هو سمة تتمحور حول البلوكشين ويحافظ على الأمان.

بالإضافة إلى ذلك، هناك عقود ذكية تسلسلية أو متزامنة و العقود الذكية الغير متزامنةحيث تُنفذ المهام بشكل متوازٍ. لذلك، يحدد نوع وغرض العقد الذكي كيفية كتابته، قراءته، أو حتى مراجعته.

العقود التقليدية، أواكت العقارات، وصيغ الوصايا، وما إلى ذلك هي قوانين خاصة، 'صاغها أفراد خاصون بدلاً من السياسيين أو الموظفين الحكوميين.' العقود الذكية هي شكل جديد من هذا النوع من صنع القوانين المركزية.https://t.co/EU2Y28FznK — نيك سزابو (@NickSzabo4)15 مارس 2018لننظر إلى بجدول السيولة القياسي الذي يحكمه عقد ذكي.

تخيل أن حوض الرموز يمكن استخدامه للتداول، وفي كل مرة يحدث فيها تداول ناجح، يتم إرسال 0.3% من قيمة التداول الإجمالية إلى مزود السيولة الذي جعل هذا التداول ممكنًا أو أضاف سيولة لتلك الأصل التداولي المعطى. جميع الشروط التي تسلط الضوء على سيناريوهات التداول، ورسوم التداول، وشروط عدم الامتثال وفشل التداول مُشفرة كـ العقد الذكي، والتي يتم تخزينها في السلسلة كرمز عقد.

خصائص العقود الذكيةلا يمكننا الغوص بعمق في قراءة وكتابة ومراجعة العقود إذا لم نكن على دراية بخصائصها. فيما يلي سمات العقد الذكي القياسية التي يجب أن نكون على علم بها:

بعض صفات العقد الذكي القياسي: BeInCrypto

العقود القابلة للبرمجةالعقود الذكية هي مجرد قطع من الشفرة. يمكنك كتابة العقود الذكية لتنفيذ الأوامر والسيناريوهات استنادًا إلى شروط محددة. هذا هو السبب في أن مطوري العقود الذكية والمبرمجين مطلوبون حاليًا، حيث يتم طلب معظم DeFiالفضاء يعتمد بالفعل على العقود الذكية لمعالجة حالات معقدة مثل التعامل مع رسوم التداول عبر حمامات السيولة، والحفاظAPYالنسب وأكثر.

غير موثوقالعقود الذكية الموجودة على البلوكشين تقضي على التدخل البشري. وهذا يجعلها خالية تماما من الثقة. على سبيل المثال، إذا كانت محددة DeFiالبروتوكول، الذي يحكمه العقد الذكي(العقود الذكية)، يوافق على تصفية أصولك بمجرد أن تنخفض قيمتها تحت عتبة معينة، لا يمكن أو ينبغي لأي تدخل بشري أن يوقفها. يتولى الكود الدفع، الأداء، والإدارة، وفرض القواعد، مما يجعل المساحة بأكملها خالية تماماً من الثقة.

مستقلكما ذكرنا سابقًا، العقود الذكية محملة بمجموعات تعليمات تنفيذية ذاتية. من الناحية البرمجية، يعني هذا وجود تكرارات وحلقات مدمجة ضمن القالب الرئيسي. يضمن ذلك أن مهام مثل الدفع، والسحب، والإيداعات، وتعزيز مُدققي الحسابات من خلال التقطيع، والعديد من المهام الأخرى يتم التعامل معها آليًا.

مؤمنوأخيرًا، حيث تتم حماية العقود الذكية باستخدام تقنية التشفير، فإن اختراقها يعد أمرًا صعبًا للغاية. دون وجود ثغرة مدمجة، سيعني تجاوز عقد ذكي محاولة اختراقه في العلن، أمام البلوكشين بأكمله.

قابل للتحققالمعاملات التي تتم معالجتها عبر العقود الذكية قابلة للتحقق الذاتي. هذا يعني أن التنفيذ هو دليل كاف على أن المعاملة حدثت في المقام الأول ، حيث لا يوجد عنصر بشري متورط. تمنح آلية التحقق الذاتي العقود الذكية ميزة على العقود التقليدية التي تحكم الإعدادات المصرفية القديمة.

لذا في المرة القادمة التي تخطط فيها لقراءة عقد ذكي، تأكد من أن النص القياسي أو الوثائق تحتوي على جميع السمات المذكورة.

نسخة مبسطة من العقد الذكي: رديت## قراءة العقود الذكية بناءً على السماتهنا عقد ذكي بسيط يمثل حساب الضمان. يقوم المستخدمون بإيداع أموالهم في الضمان، الذي يقوم بنقل نفس المبلغ إلى المستلم بعد فترة زمنية معينة.

/ SPDX-License-Identifier: MITpragma solidity ^0.8.0;// Basic Smart Contract Boilerplatecontract SimpleTrustlessEscrow {// State variablesaddress public depositor; // Account depositing etheraddress payable public beneficiary; // Account receiving etheruint256 public releaseTime; // Timestamp to release ether// Events for verifying contract activityevent Deposited(address indexed _from, uint256 _value);event Released(address indexed _to, uint256 _value);// The contract constructor initializes the smart contractconstructor(address payable _beneficiary, uint256 _releaseTime) {    require(_releaseTime > block.timestamp, “Release time must be in the future”);    // Secure and Trustless: Contract binds depositor and beneficiary    depositor = msg.sender;    beneficiary = _beneficiary;    releaseTime = _releaseTime;}// Deposit function – autonomous execution (fallback function)receive() external payable {    emit Deposited(msg.sender, msg.value);}// Release the ether to the beneficiaryfunction release() public {    // Programmable: Can only be executed after releaseTime    require(block.timestamp >= releaseTime, “Too early to release”);    // Autonomous: Automatically executes based on condition    uint256 amount = address(this).balance;    beneficiary.transfer(amount);    emit Released(beneficiary, amount);}}
```بينما سنقوم بفك وقراءة هذا العقد الذكي بالتفصيل، دعنا نتحقق أولاً مما إذا كان نفس الشيء يلتزم بالخصائص المذكورة في العقد.

### الجزء "القابل للبرمجة"انظر إلى العقد عن كثب لهذه الجزء من الرمز:

require(block.timestamp >= releaseTime, “مبكر جدا للإطلاق”);

uint256 amount = address(this).balance;

المستفيد.تحويل(المبلغ);

يجب أن تُطلق الأموال فقط عندما تتوفر شرط releaseTime المحدد، مما يجعل هذه العقود قابلة للبرمجة.

### الجزء "غير الموثوق به"فيما يلي مقتطف شفرة سريع مما سبق:

المودع = msg.sender ؛

المستفيد = _beneficiary;

releaseTime = _releaseTime;

في العقد ، كل شخص ملزم بالكود من المودع إلى الشخص الذي يتلقى الأموال. لا يحتاج أي شخص إلى التفاعل مع الآخر أو الوثوق به لأن وظيفة تحويل الأموال مرتبطة ب releaseTime - وهي معلمة قائمة على التعليمات البرمجية. 

### الجزء "المستقل"هنا هو جزء "إطلاق الصندوق" من الشيفرة:

function release() public {require(block.timestamp >= releaseTime, 'مبكر جدًا للإطلاق');uint256 amount = address(this).balance;beneficiary.transfer(amount);emit Released(beneficiary, amount);}


تعتمد عناصر أخرى من كود العقد الذكي، بما في ذلك وظيفة الإيداع، أيضًا على الاستقلالية تمامًا اعتمادًا على الميزات التي ترغب في تضمينها. على سبيل المثال، يمكنك بدء خطة إيداع متكررة في كل مرة يقوم فيها المستخدم بـ[محفظة](https://beincrypto.com/learn/crypto-wallets/)يتجاوز 100 دولار، مع تحرك الزائد إلى المستفيد.

### الجزء المؤمنConcerned as to which element lends [الأمان](https://beincrypto.com/learn/top10-must-have-cryptocurrency-security-tips/)إلى العقد؟ تحقق من هذا الجزء من الشيفرة:

constructor(address payable _beneficiary, uint256 _releaseTime) {require(_releaseTime > block.timestamp, “Release time must be in the future”);depositor = msg.sender;beneficiary = _beneficiary;releaseTime = _releaseTime;}


### الجزء 'القابل للتحقق'يتم تسجيل كل عملية مرتبطة بالعقد الذكي داخل السلسلة، بفضل عناصر النشاط في السجل المنفصلة.

حدث تم الإيداع(address indexed _from، uint256 _value);

event Released(address indexed _to, uint256 _value);

أرسلت (المرسل، القيمة (الرسالة

إصدار (المستفيد، الكمية);

## قراءة أجزاء أخرى من العقد الذكيالآن بعد تحديد العناصر التي تحدد خصائص العقد الذكي، هنا هي عناصر العقد الأخرى لمساعدتك على فهم الحفرة بشكل أفضل.

Pragma الصلاد ^0.8.0; - الإصدار المطلوب من لغة برمجة Solidity لكتابة هذا العقد الذكي.

معرف ترخيص SPDX: MIT - يطلق عليه تبادل بيانات حزمة البرامج ، ينص هذا المعرف على ترخيص إصدار التعليمات البرمجية. ينصح بتضمين هذا للسماح للأشخاص بمعرفة ما إذا كان مفتوح المصدر ويمكن حله أم لا.

العقد الزمني للوقت { - يسند اسمًا إلى العقد الذكي، مثل تسمية.

مخاطبة المودع العام. – بما أن العقد يتضمن مودعا ومستفيدا ، فهذه هي النقطة التي يتم فيها ذكر العنوان العام للمودع. هذا المتغير هو [محفظة الإثريوم](https://beincrypto.com/learn/getting-started-with-ethereum-wallets/)العنوان ويمكن رؤيته علناً.

العنوان العام للمستفيد القابل للدفع؛ - هذا هو العنوان العام للمستفيد حيث يقوم الضمان بتحويل الأموال. كما أنه قابل للقراءة ويضفي شعورًا بالشفافية على العقود الذكية المعتمدة على تقنية سلسلة الكتل.

وقت الإصدار العام Uint256 ؛ - نظرا لأنه عقد محدد زمنيا ، فإن uint256 يعين المتغير المستند إلى الوقت للعقد. سيكون هذا هو الإطار الزمني الذي سيتم بموجبه إصدار الصندوق. 

في الصلادة، uint (unsigned integer) هو الطريقة لتعيين القيم القائمة على الأعداد الصحيحة. اللاحقة 256 تعني تخزين كبير للأرقام.

 بعد 5 سنوات من كتابة العقود الذكية ، أدرك اليوم فقط أن شعار الصلابة هو شعار Ethereum الذي تم الكشف عنه 🤯 [pic.twitter.com/wlM369Eff9](https://t.co/wlM369Eff9)
 — kaden.eth ([@0xKaden](https://github.com/0xKaden))[8 يوليو، 2023](https://twitter.com/0xKaden/status/1677712133646319616?ref_src=twsrc%5Etfw)يمكنك التفكير في القراءة [وثائق الصلابة](https://docs.soliditylang.org/en/v0.8.20/)للتعرف على الصياغة النحوية والتعابير وعناصر الشيفرة الأخرى.

### عناصر أخرىconstructor(address payable _beneficiary, uint256 _releaseTime) { – الـ"Constructor" هو وظيفة خاصة لمرة واحدة تُستدعى عند نشر العقد الذكي. يضع العقد في حركة. انتبه كيف يتم استدعاء وتهيئة جميع متغيرات العنوان التي أعلنا عنها سابقًا في هذه النقطة.

Receive() external payable { – هذه وظيفة خاصة تُسمى عندما تتحرك الأموال إلى عنوان العقد من الخارج. الخارجية تقترح من الخارج، و"قابل للدفع" يحدد طبيعة الحركة، وهي استلام رموز ERC-20.

تحرير الوظيفة() العام { - هذه وظيفة عامة تحدد حركة رموز ERC-20 من عنوان العقد إلى المستفيد. تعتمد هذه الوظيفة على releaseTime.

كل هذه العناصر هي أجزاء من العقد الودي الافتراضي الذي ناقشناه. تأكد من الانتقال عبر توثيق سوليديتي الكامل لتعرف أكثر عن اللغة.

![](https://s3.ap-northeast-1.amazonaws.com/gimg.gateimg.com/learn/9d18424b61c9dab7991c3335eec52ae0e6a3649f.png)

تعرف على العناصر قبل أن تخطط لكتابة العقود الذكية: BeInCrypto

## التطبيقات اللامركزية والعقود الذكية: العلاقةحتى الآن، يجب أن يكون لديك بداية في قراءة وفهم العقد الذكي الذي تم كتابته بالفعل. والعديد من العقود الذكية مثل تلك التي ناقشناها تشكل الجزء الخلفي لتطبيق لامركزي —[البلوكتشين](https://beincrypto.com/learn/beginners-guide-to-blockchain/)نسخة من تطبيق الجوال القياسي.

يتم تنفيذ كل خاصية من سمات العقد الذكي ، بما في ذلك أمان العقد ، والتنفيذ المستقل والقابل للبرمجة ، وعدم الثقة في المعاملات ، وأكثر من ذلك ، بسهولة أثناء تطوير تطبيق لامركزي. لذلك في المرة القادمة التي تتعثر فيها على DApp ، لاحظ أنها واجهة خلفية ذكية مدعومة بالعقد مستضافة على blockchain - مما يساعدك على بدء مهام متعددة دون تدخل بشري. تشكل العقود الذكية منطق التطبيقات اللامركزية.

## البلوكشينات للعقود الذكيةنحن نعلم أن Ethereum يتيح لك تطوير العقود الذكية، مثل حل برمجي ضخم. ومع ذلك، ليس البروتوكول البلوكشيني الوحيد المتاح. إذا كنت ترغب في الانغماس بعمق في عالم تطوير العقود الذكية، قد ترغب في النظر إلى بلوكشينات أخرى. تختلف البلوكشينات المختلفة في لغتها عندما يتعلق الأمر بوضع العقود.

ولكن أولاً، دعونا نناقش[إثيريوم](https://beincrypto.com/price/ethereum/)— المنصة المفضلة لمعظم مطوري العقود الذكية.

### إثيريومالعقود الذكية على الإيثيريوم مكتوبة بلغة برمجة سوليديتي. وواجهة الرمز لهذه المنصة لتطوير العقود الذكية هي ERC-20.

يمكنك العودة إلى العقد الذكي القائم على الضمان الذي تحدثنا عنه سابقًا لمعرفة كيفية كتابة عقد ذكي معتمد على إثريوم القياسي.

حتى إطلاق رمز ERC-20 على سلسلة الكتل الخاصة ب Ethereum هو ميزة تعتمد بشكل كبير على العقود الذكية، شيء سنناقشه بعمق أثناء كتابة عقد ذكي.

هنا كيف يبدو هيكل الكود الأساسي، بشرط أننا نعتزم إطلاق عملة رقمية جديدة BIC.

اعتبر ذلك سيناريواً تخيّلياً. ليس بالضرورة إطلاق عملة مشفرة BIC.

pragma الصلب ^0.8.0؛import "@openzeppelin/العقد الذكي/العملات/ERC20/ERC20.sol"؛العقد BICToken هو ERC20 { constructor(uint256 العرض الأولي) ERC20("BIC Token", "BIC") { _mint(msg.sender, العرض الأولي); }}


### سلاسل الكتل الأخرىمثل Ethereum ، يمكنك حتى إنشاء عقود ذكية على منصات مثل [سولانا](https://beincrypto.com/learn/what-is-solana/), باستخدام Rust و Cardano، باستخدام Plutus، وهو جزء من Haskell — لغة برمجة وظيفية.

هل لدى Cordona عقود ذكية؟
النكات عليك، صديقي.[#CardanoADA](https://twitter.com/hashtag/CardanoADA?src=hash&ref_src=twsrc%5Etfw)[pic.twitter.com/j8SXCu72Sd](https://t.co/j8SXCu72Sd)
— Willybot 🇦🇺 ([@wilbot28](https://github.com/wilbot28)) [9 يوليو، 2023](https://twitter.com/wilbot28/status/1677951174472007680?ref_src=twsrc%5Etfw)هنا هي هيكلة الكود في Rust ([سولانا](https://beincrypto.com/learn/what-is-solana/)) يبدو كما يلي:

ملاحظة: إنه عقد بسيط حيث يتم زيادة العداد.

use anchor_lang::prelude::;declare_id!(“Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS”);#[برنامج] العهد العالمي {استخدم super::;pub fn initialize(ctx: Context) -> ProgramResult { let greeting_account = &mut ctx.accounts.greeting_account; greeting_account.counter = 0; Ok(())}pub fn increment(ctx: Context) -> ProgramResult { let greeting_account = &mut ctx.accounts.greeting_account; greeting_account.counter += 1; Ok(())}}


[توثيق سولانا](https://docs.solana.com/developing/on-chain-programs/developing-rust)ستساعدك على فهم لغة العقد الذكي المحددة لراست.

وبالمثل ، يتبع كاردانو بلوتوس كاختيار للغة ، يليه الحبر! لغة ل [بولكادوت](https://beincrypto.com/learn/what-is-polkadot/), TEAL لألجوراند، C# لنيو، والمزيد. من النصح بتعلم توثيق كل سلسلة تفصيليًا قبل المتابعة مع كتابة العقد الذكي المتوافقة.

## لماذا يجب عليك تعلم قراءة العقود الذكية؟القدرة على كتابة العقود الذكية معترف بها بشدة، ولكن حتى القدرة على القراءة تأتي مع حصتها من الفوائد:

- القدرة على التعرف على تعقيدات التشغيل التلقائي المرتبطة بتطبيقات ديفي.- تحليل معايير الملكية المرتبطة بالأصول [توكينة](https://beincrypto.com/learn/blockchain-tokenization/).- Understanding how [منظمات الديسينترالية المستقلة (DAOs)](https://beincrypto.com/learn/decentralized-autonomous-organization/) function.- فهم وتنفيذ منطق مدفوع بحالة الاستخدام المتعلق بالتأمين، تحقيق الدخل من المحتوى، [التصويت](https://beincrypto.com/learn/how-can-blockchain-be-used-for-voting-in-2020/)النظام والعوائد والعمود الأخرى.## كيفية كتابة العقود الذكيةالآن بعد أن تم قراءة العقود الذكية، دعونا نركز على كتابة العقود الذكية. قبل أن تغوص في الأمور بعمق، من الضروري تكرار أنه قد يكون لدى سلاسل الكتل المختلفة معايير مختلفة ولغات متعلقة بتطوير العقود الذكية. من الضروري التركيز على المعايير المحددة من قبل أي سلسلة كتل معينة، للبدء بالكتابة ونشر العقد.

لمعظم مناقشتنا، سنركز على إثريوم كسلسلة وصوليديتي كلغة.

### دور البرمجةبرمجة العقد الذكي هي بسهولة الجزء الأكثر أهمية في دورة التطوير. وللدخول في تطوير العقد الذكي على إيثريوم أو أي بلوكشين آخر، يجب أن تمتلك بعض الخبرة في لغات البرمجة غير البلوكشين مثل جافا سكريبت.

![](https://s3.ap-northeast-1.amazonaws.com/gimg.gateimg.com/learn/66aa8d5d75dceff41875cb14a7eb3c6e08978e26.png)

سلاسل الكتل المختلفة واللغة المستخدمة لكتابة العقود الذكية: BeInCrypto

القدرة على برمجة العقد الذكي تتيح لك تنفيذ المنطق، التعامل مع عناصر الأمان نفسها، وتحسين الشيفرة ل[رسوم الغاز](https://beincrypto.com/learn/ethereum-gas-fees-lowest/), يمكنك تخصيص نفس الشيء، وحتى جعله قابلا للتشغيل المشترك إذا لزم الأمر.

#### EVM والعقود الذكية: ملخص للوضع الحاليأي شخص يخطط لكتابة العقود الذكية على إيثريوم يحتاج إلى فهم ما هو آلة إيثريوم الافتراضية (EVM) وكيف تعمل مع العقود الذكية. بالنسبة للمبتدئين، فإن EVM هو مكون إيثريوم يمنح البرامج بيئة معزولة ومراقبة للعمل. اعتبر هذا جهاز كمبيوتر عالمي يستضيف كل قطعة من شيفرة العقد الموجودة على إيثريوم. كل [عقد](https://beincrypto.com/learn/what-are-nodes/)على شبكة Ethereum يعمل EVM.

إذا كنت تطمح في أن تكون مطور عقود ذكية، فإليك ما تحتاج إلى معرفته فيما يتعلق بالعقود الذكية و EVM.

عندما تكتب البرنامج بلغة الصلادة، وهي لغة مستوى عالٍ، تحتاج إلى ترجمته إلى بايت كود - تنسيق منخفض المستوى قابل للفهم من قبل الجهاز. يتم إدخال هذا البايت كود إلى سلسلة الكتل الخاصة بـ Ethereum ويبقى هناك. أي شخص يتفاعل مع العقد الذكي يحتاج إلى إرسال عملية تحويل إلى عنوان العقد.

يمكن لكل عقد يحتوي على EVM رؤية هذه المعاملة، وبمجرد موافقة الموثقين على نفس الشيء، يتم تنفيذ كود العقد الذكي. نظرًا لأن كل عقد لديه رؤية للمعاملة، لا يمكن التلاعب بأي شيء، ويتم تنفيذ الكود كما تم كتابته. وبمجرد تنفيذ الكود، تتغير حالة البلوكشين، مما يجعل العملية من البداية إلى النهاية شفافة تمامًا.

## هل يمكن لأي شخص كتابة العقد الذكي؟كتابة العقود الذكية تتطلب معرفة تقنية. ولكن هذا ليس كل شيء. عليك أيضًا أن تفهم بشكل شامل كيف يعمل تكنولوجيا البلوكشين، وما هي الاحتياجات الخاصة باللغة ذات الصلة بالبلوكشين الذي تستهدفه.[التوافقية](https://beincrypto.com/learn/blockchain-interoperability/)، وأكثر. بالإضافة إلى ذلك، يجب عليك أيضًا معرفة الكثير عن ثغرات العقد الذكي — الأمور التي يجب تجنبها أثناء كتابة الكود. وأخيرًا، معرفة اختبار العقد ونشر العقد أيضًا ضرورية.

كل ذلك قد يصبح ساحقًا. لذا ها هي ورقة غش سريعة للبدء:

- ابدأ بتحديد المنصة أو السلسلة التي ترغب في العمل معها.- تعلم لغة البرمجة المرتبطة بالسلسلة، مثل Solidity لـ Ethereum.- تعرف على استخدام أدوات التطوير مثل بيئة التطوير المتكاملة مثل ريمكس.- ابدأ بكتابة عقدك الأول ثم قم بالاختبار باستخدام شبكات الاختبار.- بمجرد أن تكون راضيًا عن عناصر الكود، يمكنك نشره على السلسلة. تذكر أن نشر العقد على السلسلة سيكلفك رسوم الغاز.هنا سلسلة سريعة مع بعض النصائح لكتابة عقود ذكية أفضل:

🥧 FREI-PI
‼️ لماذا يحتاج مطورو العقود الذكية إلى معرفة هذا!
وظيفة:
– متطلبات
– التأثيرات
– التفاعلات
بروتوكول
– الثوابت
هذا هو النمط الذي يجب عليكم جميعا التفكير فيه عند بناء العقود الذكية.
ها هو السبب 👇
 — باتريك كولينز ([@PatrickAlphaC](https://github.com/PatrickAlphaC))[6 يوليو 2023](https://twitter.com/PatrickAlphaC/status/1676969198663401472?ref_src=twsrc%5Etfw)## الغوص في البرمجةحان الوقت للانخراط في الجوانب التقنية لتطوير العقود الذكية. على الرغم من أن سلاسل مثل سولانا وكاردانو تتيح لك تطوير العقود الذكية، إلا أن إيثريوم ما زالت تعتبر أكثر منصة شعبية لتطوير العقود الذكية.

هل تعلم؟ في عام 2022 وحده، وصل عدد تطبيقات اللامركزية إلى شبكة الإيثيريوم أكثر من 100،000 تطبيق.

### لماذا الحصول على Ethereum؟إثيريوم لديه مجتمع ضخم من المطورين. أي شيء تطوّره سيحظى فوراً بالاهتمام. بالإضافة إلى أن لغته الأصلية، Solidity، سهلة نسبياً للأفراد الذين يعرفون طريقهم في Python أو JavaScript. وأخيرًا، يساعد البرنامج العالمي لإثيريوم، EVM، في تنفيذ العقود بسلاسة.

إذا كنت في الأغلبية وتفضل استخدام إيثريوم والتضامن، ها هي قائمة سريعة بالأشياء التي تحتاج تتبعها قبل البدء في تطوير العقد الذكي:

- براغماس أو إصدار المترجم- تعريف العقد للتصنيف- المتغيرات الحالية لتخزين البيانات- الأحداث لتسجيل EVM- المعدلات لمنح حقوق محددة لهيئات محددة- الوظائف أو الأنشطة في العقد الذكي التي تعمل- الإرث للتوافق- فهم الهياكل التحكم مثل if، else، for loops، أنواع البيانات مثل string، integer، وأكثر.## كتابة ونشر العقد الذكي الأولالآن بعد أن نعرف كيف تسير الأمور على السلسلة، دعونا نغوص في كتابة ونشر العقد الذكي الأول. على الرغم من أن "مرحبًا بالعالم" يظل الخطوة الأولى، سنبدأ بإنشاء عقد ذكي لإطلاق رمز BIC الافتراضي مع إمداد مفتوح بنسبة 100٪ يبلغ مليون وحدة.

### الأساسياتالخطوة الأولى هي تثبيت أحدث إصدار من Node.js و NPM أو Node Package Manager. يهتم هذا بأدوات التطوير والبيئة المحلية للتطوير. أيضًا، يسمح لك Node.js و NPM بتعيين الواجهة الأمامية للويب لعقدك الذكي.

الآن، تحتاج إلى تعيين بيئة تطوير متكاملة لكتابة كود العقد. لذا، يمكنك تثبيت برنامج Visual Studio Code بسرعة. أو يمكنك تجنب التشتت و[hop](https://beincrypto.com/learn/hop-protocol/)على Alchemy — منصة تطوير البلوكشين. مع Alchemy، يمكنك الحصول على ببعض ETH على شبكة الاختبار. سيغطي هذا رسوم الغاز عند نشر العقد الذكي على شبكة Goerli أو حتى شبكة Sepolia.

![](https://s3.ap-northeast-1.amazonaws.com/gimg.gateimg.com/learn/068154a0d9223b68fbfe76278db70554471cd7e2.png)

لاحظ أن سيبوليا هو شبكة اختبار أصغر سنًا وبالتالي تستغرق مساحة أقل على القرص عند نشر العقد الذكي.

حالياً، سنستمر مع شبكة اختبار جويرلي لأنها تحتوي على عدد أكبر من التطبيقات المنشأة.

مع الشبكة التجريبية والإيثيريوم الوهمي جاهزين، دعونا ننتقل إلى كتابة العقد الذكي بشكل محدد. إليك مقتطف الكود لإنشاء رمز BIC مع إمداد ثابت بمقدار مليون.

ملاحظة: سنقوم بنشر عقدنا الذكي محليًا على نظام التشغيل MacOS وليس على الشبكة التجريبية. بالنسبة لنشر العقود الذكية على الشبكة التجريبية والشبكة الرئيسية، سيكون لدينا قطعة منفصلة، وهو خارج نطاق هذا النقاش.

### خطوات لكتابة ونشرهنا هو مقتطف الرمز البرمجي البسيط للرمز الظاهري:

pragma التماس ^0.8.0؛import "@openzeppelin/العقد/ERC20/ERC20.sol"؛العقد BICToken هو ERC20 { constructor() ERC20("BIC Token", "BIC") { _mint(msg.sender، 1000000 * 10 ** العشريات()); }}


يتحدث وظيفة الصك عن الإمداد الأولي، الذي يتم نشره إلى عنوان العقد الذكي أو msg.sender.

لتثبيت هذا الكود محليًا واختباره، سنحتاج إلى ثلاث مكونات:

- Node.js و NPM (تم مناقشتها بالفعل): تعمل مثل محرك لتشغيل العقود الذكية الخاصة بك- [ترافل](https://beincrypto.com/learn/what-is-ethereum-truffle/): يعمل مثل صندوق أدوات، مساعدة في تنظيم الشيفرة، النصوص، وأجزاء أخرى من عقد- Ganache: يعمل مثل ساحة لعب افتراضية على الجهاز. فكر فيها كسلسلة كتل شخصية.### ما هي تنفيذ العقد؟إذا مررت بعملية التفصيلية لكتابة العقد الذكي، من الضروري معرفة الكثير عن تنفيذ العقد. إنها عملية يتم خلالها تنفيذ كود العقد الذكي على السلسلة بواسطة العقد.

إن التوحيد المرتبط بتنفيذ العقد هو ما يجعل العقود الذكية شفافة ولا يمكن تغييرها. دعونا الآن نفهم العملية المتعددة الخطوات المرتبطة بتنفيذ العقد:

#### الخطوة 1يجب تنفيذ مقتطفات الكود التي كنا نكتبها في مكان ما. في حالة العقود الذكية، هذا المكان للتنفيذ هو البلوكشين. يساعد العقد في التنفيذ العقد العُقَداء أو أعضاء السلسلة المشاركين.

#### الخطوة 2تقبل العقد الذكي مسؤولية تنفيذ كتل الشيفرة العقدية مقابل الحوافز المتعلقة بالسلسلة. كل أمر أو إجراء يحدث داخل السلسلة يتم قيادته بواسطة العقود الذكية.

#### الخطوة 3كل عقد ذكي لديه عنوان محدد. لتنفيذ العقد، يتم إرسال المعاملات إلى ذلك العنوان الخاص بالعقد. يرجى ملاحظة أن كل عقد يشغل EVM، الذي يحتوي بدوره على نسخة من كود العقد الذكي، مما يجعل من السهل التحقق من صحة المعاملات.

#### الخطوة 4يتم اختيار المعاملات المستهدفة نحو العقد الذكي من قبل المحققين، الذين يضمنون ضمها في كتل محددة.

#### الخطوة 5بمجرد دفع الصفقة وتأكيدها بنجاح، تصبح جزءًا من سلسلة الكتل. ثم يتم استدعاء وتنفيذ وظيفة العقد الذكي المرتبطة بالصفقة عبر عقدة سلسلة الكتل.

#### الخطوة 6يجب أن يصل كل عقد ذكي ينفذ إلى استنتاج حاسم - نفس الناتج لنفس مجموعة الإدخالات - مما يجعل طبيعة العقود موثوقة تمامًا وشفافة.

ملاحظة: أي خطأ يتعلق بتنفيذ الكود أو المشكلات المتعلقة برسوم الغاز يعكس المعاملات. هذا يعني أن المعاملة القائمة على رمز عقد ذكي محدد ستتوقف عن الوجود. هذا هو بالضبط ما يحدث مع [القروض السريعة](https://beincrypto.com/learn/flash-loan/)عندما يؤدي عدم الالتزام بالمعايير ال specifية إلى عكس الصفقة بأكملها، ليعطي انطباعًا بأن الأموال لم تتحرك حتى في البداية.

يتم تسجيل كل تغيير في الحالة المرتبطة بالعقود الذكية داخل سلسلة الكتل ويصبح جزءًا لا يمكن تغييره من نفسها.

## تطوير العقد الذكي وأفضل الممارساتالآن بعد أن تعرفت على نحو كبير عن العقود الذكية، إليك بعض النقاط للبدء في تطوير العقد:

- أثناء كتابة العقود، من المستحسن الاعتماد على مكتبات موثوقة مثل تلك الموجودة في OpenZeppelin للالتزام بمعايير تحسين الكود والأمان المطلوبة.- الفكرة هي أن نحافظ على العقد بشكل موديل وأبسط - مما يجعل من الأسهل اختباره ومراجعته.- فكرة جيدة هي تنفيذ ضوابط الوصول الخاصة بالعقد. هذا يعني الإعلان عن بتات التعليمات البرمجية حيث يمكن لشخص أو كيان معين فقط تغيير السمات الحاسمة للعقد. يسهل التحكم في الوصول الحفاظ على أمان العقود الذكية.- أثناء كتابة عقد، يجب دائمًا توفير تصرفات للتعامل مع الحالات الحدية والاستثناءات — وذلك أثناء كتابة اختبارات متعددة.### رعاية استدامة الشيفرةكل ممارسات المذكورة أعلاه تساعد في تحسين الشفرة وتنفيذات الأمان الخاصة. ومع ذلك، هناك بعض الممارسات الخاصة بالعقد التي يجب عليك اتباعها وتنفيذها للعناية بالاستدامة الشفرة. يهدف هذا إلى الحفاظ على خفة شفرة العقد وقابليتها للاستخدام بحيث لا يضطر كل عقد يقوم بتشغيل وتنفيذ الشفرة نفسها إلى تخصيص الكثير من الطاقة الحسابية للقيام بالشيء نفسه.

- تعامل مع تخزين البيانات بكفاءة عن طريق استخدام مجموعات بيانات أصغر. على سبيل المثال، أثناء كتابة عقد، استخدم uint8 كقيمة تشغيلية بدلاً من uint256.- أثناء كتابة عقد، من النصح تحسين الكود عن طريق دمج عمليات متعددة في واحدة. سنقوم بالتناول العميق لهذا في قطعتنا التفصيلية عن "كتابة العقود الذكية".- فكرة جيدة هي استخدام التقدير الكسول فيما يتعلق بتنفيذ العقد الذكي. بهذه الطريقة، ستحتاج فقط إلى تنفيذ وظيفة عند الحاجة وليس في كل مرة يتم فيها دفع شيء إلى عنوان العقد الذكي.- وأخيرًا ، الاعتماد على الحسابات خارج السلسلة هو أيضًا وسيلة جيدة للتركيز على الاستدامة. هذا يساعد في تخفيض متطلبات رسوم الغاز ويمكن أن يسرع حتى تنفيذ العقد.على الرغم من اتباع أفضل الممارسات أثناء كتابة العقود الذكية وتطويرها ، فمن الضروري التركيز على الثغرات الأمنية للعقود أثناء دفعها إلى الشبكة الرئيسية. 

## كيفية تدقيق العقود الذكية؟كل عقد ذكي يحتوي على وجود في الشبكة الرئيسية يجب أن يتم تقييمه من أجل أداء الكود والأمان وصفات أخرى. هنا تأتي عملية التدقيق - عملية اختبار العقد الصارمة - إلى الواجهة، مما يتيح لك اكتشاف ثغرات العقد المحتملة والضعف.

فيما يلي قائمة مراجعة تدقيق سريعة للبدء:
قائمة تدقيق عقود ذكية مذهلة😈
تأكد من التحقق منها في عملية التدقيق القادمة✅
سأكون ممتنًا لإعادة التغريد، انشر المعرفة🫡[https://t.co/ILx0C67kf8](https://t.co/ILx0C67kf8)
— cholakov ([@cholakovv](https://github.com/cholakovv))[7 يوليو 2023](https://twitter.com/cholakovv/status/1677235477361876992?ref_src=twsrc%5Etfw)### العلاقة بين القراءة والكتابة والتدقيق: لماذا حتى تدقيق العقود الذكية؟عندما يتعلق الأمر بتطوير قطع ذكية من الكود، فإن قراءة وكتابة العقود الذكية تتداخل معًا، ولكن التدقيق له مكانة خاصة وينطوي على التحقق من المنطق في المقام الأول. عندما يتعلق الأمر بتنفيذ الكود القائم على التقنية السلسلة الكتلية، تكون كل الأشياء لا تتحول، ويمكن أن يكون أي شيء كارثي له عواقب لا رجعة فيها على تنفيذ العقد. هذا هو السبب الرئيسي في أهمية التحقق الشامل من كود العقد وجوانب أخرى من خلال التدقيق.

### العقد الذكي الثغرات والإصلاحاتيمكن أن يكون هناك مجموعة من [ثغرات العقد](https://beincrypto.com/learn/smart-contract-vulnerabilities/)تستطيع التدقيقات المفصلة للعقود الذكية التعرف على العديد من الأمور. تشمل هذه التحقق من هجمات إعادة الدخول، والتجاوزات أو الانخفاضات، والمشاكل المتعلقة بمراقبة الوصول، وأكثر من ذلك. بمجرد تحديد الطبيعة الدقيقة للمشكلة، يمكن للمدقق حتى أن يقترح أفضل الممارسات لإصلاحها.

### الانتهاكات تلقي دراسات وتعلماتلا تزال غير متأكد كيف يمكن لتدقيق العقود الذكية المساعدة؟ حسنًا، دعونا نعود إلى الشهيرة[DAO](https://beincrypto.com/learn/decentralized-autonomous-organization/)الاختراق في عام 2016، الذي استغل مشكلة إعادة الدخول وتسبب في خسارة تقريبا 3.6 مليون ETH. بالمثل، كان هناك اختراق عقد محفظة Parity في عام 2017، مما أدى إلى خسارة تقريبا 500،000 ETH. كان بإمكان تجنب هذه المشاكل بمجموعة صحيحة من عمليات التدقيق.

![](https://s3.ap-northeast-1.amazonaws.com/gimg.gateimg.com/learn/0172320152ced7d1079d16d243ff11a50eb1103b.png)
مخطط انسيابي لاختراق DAO: BeInCrypto## استراتيجيات تدقيق العقود الذكيةهناك العديد من الاستراتيجيات لتدقيق العقود الذكية. وتشمل بعض الأكثر شيوعًا: 

### أدوات التدقيقهذه الأدوات تعمل كمجموعة أولية من الدفاعات وتستخدم بشكل أفضل لتحديد الثغرات الشائعة. تشمل بعض الأدوات الأكثر شيوعًا Securify و Mythril وغيرها — القادرة على أداء تحليل ثابت للكود وكشف أنماط الانتهاك والمساعدة في الحصول على بداية سريعة متعلقة بالأمان.

![](https://s3.ap-northeast-1.amazonaws.com/gimg.gateimg.com/learn/9c5becaf1430cd76abdda14f90b23532b8f062b2.png)

أدوات لتدقيق العقود الذكية: BeInCrypto

### مراجعة الشيفرةهنا حيث يأتي مراجعو الكود اليدويون إلى الصورة، مدققين الكود الأساسي وتحديد الثغرات المعقدة، إن وجدت. يمكن للمراجعة اليدوية أن تساعد في العناية بمنطق الأعمال والسياق وأنماط الاستخدام.

ها هي كيف تساعدك مراجعات الشفرة اليدوية في تحديد التهديدات:

معلومة صغيرة لمراجعينا الصغار!
لنذهب ونعيد التغريد إذا وجدت الخلل![pic.twitter.com/i14YtweXcz](https://t.co/i14YtweXcz)
- تشارلز بالادين ([@PaladinCharles](https://github.com/PaladinCharles)) [8 يوليو 2023](https://twitter.com/PaladinCharles/status/1677698219923439617?ref_src=twsrc%5Etfw)### فحوصات تلقائيةأدوات مثل Snyk و GuardRails تساعد في مسح العقود التلقائي — تنفيذ أمان يتم استدعاؤه في كل مرة يتم فيها تحديث الكود. يضمن هذا الشكل من التدقيق أن التغييرات الجديدة التي تم إجراؤها على الكود آمنة وغير مُعتدِلة بطبيعتها.

### التحقق الرسميهذه عملية معقدة تعتمد فقط على التحقق من منطق الأعمال في الشفرة. لاحظ أن التحقق الرسمي ليس في الواقع مخصصًا للتحقق من البنية النحوية ولكن فقط منطق لمعرفة ما إذا كانت الشفرة تنفذ كما هو مرغوب.

بالإضافة إلى الاستراتيجيات المذكورة، يمكن أيضًا البدء في مراجعة العقد الذكي باستخدام استعراض الأقران، وبرامج الجوائز للعثور على الثغرات، وتغطية الاختبار من خلال أدوات مثل تغطية Solidity لزيادة الفعالية.

![](https://s3.ap-northeast-1.amazonaws.com/gimg.gateimg.com/learn/825ed4f15c92c68b14afea0af33487a1a31580d0.png)

طريقة بسيطة لتدقيق العقود الذكية: BeInCrypto

## كيف تستعرض الكود بشكل صحيح؟إذا كنت جديدًا في تدقيق العقود الذكية، فمن المهم ملاحظة أن هناك طريقتين لتحليل الشيفرة على نطاق واسع وتحديد المشاكل. تشمل هذه: 

### التحليل الثابتهذا النوع من تحليل الكود يساعد على تحديد الثغرات الأمنية الأساسية وأخطاء البرمجة والمشاكل الأخرى وفقًا لمعايير وأعراف البرمجة المعطاة. يمكن تسليط الضوء على التهديدات مثل المكالمات غير المراقبة إلى مصادر خارجية وتجاوزات الصحة باستخدام التحليل الثابت. أفضل ما في التحليل الثابت هو أنه لا يلزم تنفيذ الكود ليتم التحقق منه.

### تحليل ديناميكييختبر هذا النهج تجاه التدقيق محاذاة الكود مع EVM. بدلا من التحقق من الكود فقط ، يتحقق التحليل الديناميكي من استجابة العقود الذكية لمجموعة واسعة من المدخلات. يمكن للتحليل الديناميكي تحديد قضايا مثل استهلاك الغاز غير المتماسك وحتى منطق العقد الخاطئ. يمكن أن تعمل بيئات blockchain الشخصية مثل Ganache كمنصات تحليل ديناميكية ، مما يسمح للمطورين بإجراء المعاملات وتنفيذ الأوامر والقيام بالكثير بعقودهم. 

### اختبار قطعة فعلية من الشيفرةهنا مقتطف من العقد الذكي الذي يعمل كتخزين للصندوق، يحتوي على وظيفة سحب الأموال:

pragma الصلب ^0.6.1;العقد VulnerableContract { تعيين(عنوان => uint256) العام الرصيد؛ وظيفة ودائع() العام دفع { الأرصدة[msg.sender] += قيمة رسالة؛ } وظيفة انسحب(uint256 _المبلغ) العام { يتطلب(الأرصدة[msg.sender] >= _المبلغ, "رصيد غير كافٍ."); (نجاح بول, ) = msg.sender.call{value: _المبلغ}(""); يتطلب(النجاح, "فشل التحويل."); الأرصدة[msg.sender] -= _المبلغ; }}


في الحالة السابقة، يمكن استدعاء وظيفة "السحب" مرة أخرى إذا كان المستخدم الذي يتلقى الأموال أيضًا عقدًا ذكيًا، على الرغم من أنه قد يكون خبيثًا. لذلك، قبل حدوث الوظيفة الأخيرة أو تحديث الرصيد، يمكن أن يتم بدء هجوم الاستنزاف لتحويل الأموال الإضافية. يحدد المدققون ذوي الخبرة هذا النوع من الضعف.

ها هو الرمز الثابت لنفس الشيء:

function withdraw(uint256 _amount) public { require(balances[msg.sender] >= _amount, "رصيد غير كافي."); balances[msg.sender] -= _amount; (bool success, ) = msg.sender.call{value: _amount}("");

require(success, “Transfer failed.”);}
```تحقق من كيفية استدعاء وظيفة تحديث الرصيد أولاً ثم الانتقال الأول إلى المستخدم. هذا التغيير في ترتيب العمل هو ما يُصلح العقد.

## سلاسل غير الإيثريوم ومراجعة الكودلقد انتقل عالم التطبيقات اللامركزية والعقود الذكية إلى ما وراء Ethereum. على الرغم من أن الجزء الأكبر من الإجراءات لا يزال يحدث داخل نظام Ethereum البيئي ، إلا أن هناك سلاسل أخرى مثل Cardano و Solana والمزيد تدعم العقود الذكية وتتطلب معايير تدقيق مختلفة. 

### لماذا تكون كل منصة فريدة؟تستخدم سلاسل الكتل المختلفة لغات برمجة مختلفة. تختلف دلالات الكود وبنية الجملة والخصائص، مما يجعل العقود الذكية متجاوبة مع ممارسات الكتابة والتدقيق المختلفة. على سبيل المثال، يستخدم إثريوم لغة Solidity، بينما [بولكادوت](https://beincrypto.com/learn/dot-price-prediction/)يستخدم الحبر والصدأ — مما يجعله متفاعلاً مع معايير التدقيق الخاصة.

### أدوات للانتقال إلى غير إثيريومالآن إذا كنت ترغب في تجاوز Ethereum ، فهناك بعض أدوات التدقيق المتخصصة لتبدأ. على سبيل المثال ، مع Cardano ، هناك مجموعة Marlowe للتحقق الرسمي والتدقيق. عندما يتعلق الأمر ب Solana ، فإن libfuzzer الخاص بالصدأ وزغب البضائع مخصصان للتدقيق واختبار العقود. يجب أن يكون المدقق متعدد السلاسل على دراية بهذه المفاهيم لإبعاد نقاط الضعف في العقد. 

## ما هي أنواع التدقيق المختلفة للعقود الذكية؟فقط لإعادة التأكيد، يمكنك فصل تدقيق العقد الذكي إلى ثلاثة أنواع: يدوي، تلقائي، وهجين. يرجى ملاحظة أن الناس يفضلون استراتيجيات التدقيق الهجين للعقود المعقدة ذات المنطق التجاري العميق حيث أنها الأكثر شمولاً.

### تفويض تدقيقاتكتلجأ المؤسسات والأفراد الذين يمتلكون معرفة برمجية محدودة في كثير من الأحيان إلى تفويض احتياجاتهم الكتابية والتدقيقية إلى شركات ذات سمعة طيبة. عندما يتعلق الأمر بالتدقيق، يصبح اختيار الشركة المناسبة أمرًا أكثر أهمية حيث [أدوات الذكاء الاصطناعي](https://beincrypto.com/learn/ai-productivity-tools/)مثل[ChatGPT](https://beincrypto.com/learn/chatgpt-review/)يمكن أن يساعد في كتابة رمز العقد الذكي، والتحقق من الشيء نفسه يتطلب رؤى يدوية.

أيضًا، هنا عوامل يجب ملاحظتها أثناء تفويض مهام التدقيق:

### اختيار الشركة المناسبةقبل أن تركز على الشركة الخارجية المناسبة، من الأهمية بمكان التحقق من التدقيقات السابقة، وتقييم الخبرة، وحتى التركيز على أعضاء الفريق الرئيسي.

### فهم المسؤوليات والتكاليف والمصروفات العامةقبل التوظيف، لاحظ تكاليف وخدمات المراجعات المرتبطة. من الضروري فهم طبيعة الخدمات المقدمة — مثل تحديد المشكلة، حل المشكلة، وأكثر من ذلك. يجب أيضًا التحقق مما إذا كانت هناك مراجعات متكررة متاحة أيضًا بعد تنفيذ الخط الأول من الإصلاحات. يمكن أن تختلف تكلفة مراجعة العقد الذكي اعتمادًا على الخدمات، وبالتالي، من الضروري تتبع كل متطلبات وعروض قبل المتابعة.

## أفضل ممارسات تدقيق العقود الذكيةفي حال كنت ترغب في التخلي عن شركة ومراجعة العقود الذكية بنفسك، إليك أفضل الاستراتيجيات والممارسات التي يجب أن تضعها في اعتبارك:

- تركيز دائم على مراجعة الشيفرة بشكل شامل، بما في ذلك الصياغة والمنطق- ابدأ بالتقاط نقاط الضعف الشائعة باستخدام أدوات مثل Slither و MythX والمزيد- تصفح سجل تصنيف ضعف العقد الذكي أو SWC للعثور على الثغرات المعروفة والتحقق منها مسبقًا.- اختبار العقود الذكية بدقة، بما في ذلك اختبارات التكامل، اختبارات الوحدة، والمزيد، لاختبار الكود عبر مجموعة واسعة من السيناريوهات.- من المهم التحقق من فرص هجمات إعادة الدخول بشكل خاص. أفضل طريقة لمكافحتها هي التحقق من الاستدعاءات التكرارية التي يمكن أن يقوم بها القراصنة قبل دالة العقد الذكي الأولى.- التركيز على الوظائف التي تؤدي إلى المكالمات الخارجية. يمكن أن يؤدي الخطأ في هذا الصدد إلى تغيير الحالة وتدفق التحكم، وهو أمر غير مرغوب فيه.- تحقق دائمًا من أجزاء الكود التي تشير إلى استخدام الغاز. لا تريد أن يبدأ عقدك تفاعلات مكلفة للغاية.## تطوير العقد الذكي والذكاء الاصطناعي: المستقبلالذكاء الاصطناعي يجعل من السهل بالفعل كتابة العقود الذكية. ومع ذلك ، بغض النظر عن الابتكار الذكاء الاصطناعي ، فإن القدرة على تدقيق العقود الذكية بأفضل طريقة ممكنة لا تزال تتطلب تدخلا بشريا. لذلك ، إذا كنت تخطط لإنشاء منتج web3 التالي الخاص بك مع التركيز على العقود الذكية والتطبيقات اللامركزية ، فمن الأهمية بمكان التركيز دينيا على أفضل موارد التدقيق لعقودك الذكية. مع ظهور اختراقات وخروقات العملات المشفرة مع مرور كل يوم وتخطيط المتسللين لاستراتيجيات جديدة لاختراقها ، فإن تدقيق العقد إلى الكمال هو بالتأكيد أحد أهم مجموعات المهارات الحديثة. 

### إخلاء المسؤولية:- هذه المقالة مأخوذة من [ [Beincrypto](https://beincrypto.com/learn/write-smart-contracts/)], and the copyright belongs to the original author [Ananda Banerjee]. If there are objections to the reproduction, please contact the Gate Learn team, and the team will process it promptly according to relevant procedures.- تنويه: تعبر الآراء والآراء المعبر عنها في هذا المقال فقط عن آراء الكاتب الشخصية ولا تشكل أي نصيحة استثمارية.- تتم ترجمة النسخ الأخرى من المقال بواسطة فريق Gate Learn. من دون ذكر Gate.com، لا يُسمح بنسخ أو نشر أو ارتكاب الانتحال في المقالات المترجمة.

مشاركة

المحتوى

sign up guide logosign up guide logo
sign up guide content imgsign up guide content img
Sign Up

المقالات ذات الصلة

أبرز 7 بوتات على Telegram: تداول العملات الرقمية، والأتمتة، والميزات، والمخاطر
مبتدئ

أبرز 7 بوتات على Telegram: تداول العملات الرقمية، والأتمتة، والميزات، والمخاطر

تطبيقات Telegram المصغّرة هي تطبيقات تؤتمت المهام مباشرةً داخل Telegram، مثل إرسال التنبيهات، وإدارة المجتمعات، وتحويل الملفات، ومعالجة المدفوعات، والإجابة عن الأسئلة، وتحليل البيانات، وتنفيذ تداولات العملات الرقمية. وبالنسبة إلى متداولي العملات الرقمية، تتيح بوتات التداول على Telegram أتمتة أوامر الشراء والبيع، والأوامر المحددة، واقتناص الفرص، ونسخ التداول، ومراقبة المحفظة، وإشارات السوق من منصة واحدة، بدلًا من التنقل المستمر بين التطبيقات. وتذكر Telegram أن منصة البوتات التابعة لها تستضيف أكثر من 10 ملايين بوت، وتوفر هذه الخدمة مجانًا للمستخدمين والمطوّرين على حد سواء، ما يعكس الانتشار الواسع للبوتات حاليًا في مجالات الإنتاجية، وAI، والتجارة، وتحليل البيانات، وصناعة العملات الرقمية.
2026-11-04 07:52:49
مراجعة لأعلى عشرة بوتات ميم
مبتدئ

مراجعة لأعلى عشرة بوتات ميم

تقدم هذه المقالة نظرة عامة مفصلة عن أفضل عشرة بوتات تداول ميم شعبية في السوق الحالية، بما في ذلك خطوات التشغيل، مزايا المنتج، الرسوم، والأمان، مما يساعدك في العثور على أداة التداول الأنسب لك.
2026-11-04 07:57:31
ما هو TronScan: توضيح لأبرز التطورات في عام 2026
مبتدئ

ما هو TronScan: توضيح لأبرز التطورات في عام 2026

TronScan هو مستكشف البلوكشين الأساسي لشبكة TRON. يتيح للمستخدمين التحقق من معاملات TRX وTRC-20، وفحص أرصدة المحفظة، وتحليل العقود الذكية، ومراقبة الرموز، واستعراض نشاط الشبكة دون تسجيل الدخول. ومن خلال ربط محفظة متوافقة مثل TronLink، يمكن للمستخدمين أيضًا نقل الأصول، وتخزين TRX، والتصويت للممثلين المميزين، والتفاعل مع تطبيقات منظومة TRON.
2026-11-04 07:51:16
ما هو التحليل الفني؟
مبتدئ

ما هو التحليل الفني؟

استفد من دروس الماضي لاستكشاف قانون تحركات الأسعار ورمز الثروة في السوق المتغير باستمرار.
2026-11-04 07:50:03
المخاطر التي ينبغي أن تكون على علم بها عند تداول العملات الرقمية
مبتدئ

المخاطر التي ينبغي أن تكون على علم بها عند تداول العملات الرقمية

ما مدى معرفتك بمخاطر تداول العملات الرقمية؟ مع نمو العديد من مشاريع العملات الرقمية، تزداد المخاطر التي ينبغي الانتباه إليها، مثل عمليات الاحتيال الشائعة، والاختراقات، والمخاطر التنظيمية.
2026-11-04 07:50:06
دليل المبتدئين لتداول العملات الرقمية: السوق، الأنواع والمخاطر
مبتدئ

دليل المبتدئين لتداول العملات الرقمية: السوق، الأنواع والمخاطر

تداول العملات الرقمية هو شراء الأصول الرقمية وبيعها عبر منصة تداول أو بروتوكول بلوكشين، مقابل أصل آخر أو عملات ورقية. وينبغي للمبتدئين فهم المحافظ ومنصات التداول والأوامر وعمليات النقل عبر بلوكشين قبل مقارنة أسواق التداول الفوري والهامش والعقود الدائمة، أو تقييم الرسوم والسيولة والتقلبات ومخاطر أمان الحساب.
2026-11-04 07:50:02