ما هي لغة Solidity؟ لغة برمجة العقود الذكية

ما هي لغة Solidity؟ لغة برمجة العقود الذكية

سطر واحد مهمل من لغة Solidity منح مهاجمًا 3.6 مليون إيثيريوم. نفّذ الكود ما طُلب منه بدقة. هذا هو الجانب المقلق. Solidity هي لغة تحويل الأموال، ومصدرها عادةً ما يكون مكشوفًا للعيان. وبمجرد تفعيل العقد، لا يمكن إصلاحه سرًا - يبقى الخلل، وتبقى الأموال مكشوفة، ويمكن للجميع الاطلاع عليها. إنها لغة البرمجة السائدة لكتابة العقود الذكية على إيثيريوم وكل سلاسل كتل EVM المجاورة. وبغض النظر عن المصطلحات التقنية، فإن معظم التمويل اللامركزي (DeFi) والرموز غير القابلة للاستبدال (NFTs) هي في جوهرها Solidity. إنها لغة قوية، ولكنها أيضًا لا ترحم. إليكم ماهيتها، وكيفية عمل الكود، وشكل أول عقد، ولماذا يُعدّ الأمن عنصرًا أساسيًا لا غنى عنه.

ما هي لغة البرمجة Solidity؟

كل دليل يقول الشيء نفسه: Solidity لغة برمجة عالية المستوى للعقود الذكية. حسنًا. هذا لا يُفيدك كثيرًا. لكن ما نوع هذه اللغة؟ لغة ذات كتابة ثابتة. كائنية التوجه. أقواس معقوفة وفواصل منقوطة، وبنية مُستعارة من JavaScript وC++ وPython. إذا كنت قد نشرتَ كودًا بأيٍّ من هذه اللغات، فستجد ملف `.sol` مألوفًا لك في غضون عشر دقائق.

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

الصلابة في لمحة
تم إصداره لأول مرة 2014
المصمم الرئيسي غافين وود (إيثيريوم)
نموذج كائني التوجه، موجه نحو العقود
الكتابة ثابت
يتم تجميعها إلى بايت كود EVM
أحدث مُجمِّع الإصدار 0.8.35 (أبريل 2026)
امتداد الملف .sol

كيف تعمل لغة Solidity: من الكود إلى آلة EVM الافتراضية

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

المترجم والرمز البايت

تكتب ملفًا بامتداد `.sol`، وهو ملف قابل للقراءة البشرية وعالي المستوى. يقوم مُصرّف Solidity، `solc`، بتحويله إلى بايت كود EVM، وهو سلسلة طويلة من العمليات منخفضة المستوى، بالإضافة إلى واجهة تطبيق ثنائية (ABI) تُدرج وظائف العقد. بايت الكود هو ما يُخزّن على سلسلة الكتل. لا أحد يقرأه يدويًا. إنه الهدف الآلي، كما هو الحال مع لغة C التي تُحوّل إلى لغة التجميع.

جهاز التصويت الإلكتروني والغاز

تُشغّل آلة إيثيريوم الافتراضية هذا الكود البرمجي. كل عقدة في شبكة إيثيريوم تمتلك واحدة. كل عملية تُنفّذها تُكلّف رسومًا تُدفع بعملة الإيثيريوم (ETH). الرسوم ليست تفصيلًا ثانويًا، بل هي أساس تسعير الشبكة للحسابات وحماية نفسها: فالحلقة الجامحة لا تُجمّد السلسلة، بل تستنفد رسوم المُرسِل ثم تعود إلى وضعها السابق. يُحافظ استخدام لغة Solidity الجيدة على انخفاض الرسوم.

معهد التأمين الأمريكي

واجهة التطبيق الثنائية (ABI) هي خريطة JSON لكيفية التواصل مع العقد المُفعّل. تستخدمها محفظة مثل MetaMask، أو تطبيق لامركزي (dApp) للواجهة الأمامية، لترميز استدعاء دالة إلى التنسيق الذي تتوقعه آلة إيثيريوم الافتراضية (EVM)، ثم فك تشفير البيانات المُسترجعة. يمكن اعتبار واجهة التطبيق الثنائية بمثابة الجسر بين الواجهة التي يراها المستخدم والعقد الموجود على عنوان في سلسلة الكتل.

ما هي الصلابة

كتابة أول عقد ذكي بلغة سوليديتي

كفى من النظريات. أسرع طريقة لفهم لغة Solidity هي قراءة عقد صغير والتعرف على أجزائه.

تشريح العقد

الصلابة

// معرف ترخيص SPDX: MIT

pragma solidity ^0.8.20;

عداد العقد {

uint256 public count;

event Incremented(uint256 newCount);

function increment() public {

count += 1;

emit Incremented(count);

}

}

```

تُشكّل بضعة أجزاء جوهر النظام. يُثبّت سطر `pragma` إصدار المُصرّف، ما يمنع أي إصدار غير متوافق من إعادة تجميع الكود تلقائيًا. يفتح `contract Counter` العقد، تمامًا كفتح فئة. `count` هو متغير حالة، مُخزّن على سلسلة الكتل بشكل دائم. `increment()` دالة عامة يُمكن لأي شخص استدعاؤها. يُسجّل `event Incremented` كل تغيير لتمكين التطبيقات خارج سلسلة الكتل من التفاعل معه. كود كائني التوجه، مدعوم بتقنية سلسلة الكتل.

الأدوات التي تستخدمها فعلياً

لا تحتاج إلى تثبيت أي شيء للبدء. Remix بيئة تطوير متكاملة تعمل عبر المتصفح: اكتب، وقم بتجميع، وانشر كود Solidity ببضع نقرات، مما يجعلها الخيار الأمثل لتعلم Solidity. تنتقل المشاريع الحقيقية إلى أطر عمل محلية. تتولى Hardhat وFoundry عمليات التجميع والاختبار والنشر بكفاءة. ويعتمد معظم المطورين على OpenZeppelin، وهي مكتبة من العقود القابلة لإعادة الاستخدام والمدققة للرموز والتحكم في الوصول، بدلاً من إعادة كتابة التعليمات البرمجية المحفوفة بالمخاطر من الصفر.

من الكود إلى عنوان فعلي

النشر يعني إرسال رمز البايت المُجمّع في معاملة. اختبره أولاً على شبكة اختبار مجانية. عادةً ما يكون Sepolia هو الخيار الأمثل في 2026. اربط محفظة مثل MetaMask. انشره على الشبكة الرئيسية فقط عندما يعمل العقد بشكل صحيح. تكلفة النشر هي رسوم الغاز، تُدفع بعملة ETH حقيقية. وهنا تكمن الحقيقة المهمة: بمجرد النشر، يصبح الكود غير قابل للتغيير. لا يمكنك تعديل عقد قيد التشغيل. هذه الحقيقة تحديدًا - أكثر من أي خلل في بناء الجملة - هي سبب وجود القسم التالي.

ما هي سلاسل الكتل التي تدعم لغة Solidity؟

لم تعد لغة Solidity حكرًا على إيثيريوم منذ سنوات. فقد اعتمدت العديد من الشبكات آلة إيثيريوم الافتراضية (EVM) لإعادة استخدام أدوات إيثيريوم، حتى أصبحت Solidity لغة مشتركة بين جميع سلاسل الكتل. يتتبع موقع ChainList أكثر من 385 سلسلة كتل متوافقة مع EVM في عام 2020. وتضم هذه القائمة أشهرها: Polygon وBNB Chain و Arbitrum وBase وAvalanche، والتي تعمل جميعها بنفس لغة البايت كود التي يُترجم إليها ملف `.sol` الخاص بك.

لا تزال إيثيريوم مركز الثقل. إذ تبلغ قيمة أصولها المُقفلة حوالي 45 مليار دولار، أي أكثر من نصف إجمالي قيمة التمويل اللامركزي (DeFi)، وفقًا لـ DeFiLlama . ويتزايد النشاط عليها باستمرار، حيث بلغ عدد عمليات نشر العقود الذكية الجديدة حوالي 8.7 مليون عملية في الربع الأخير من عام 2025 وحده، بحسب إحصاءات Token Terminal. بالنسبة للمطورين، يُعد هذا الانتشار الواسع السبب الحقيقي لاختيار لغة Solidity بدلًا من لغة مُرتبطة بسلسلة واحدة.

إذن، ما الذي يُبنى باستخدامها؟ تقريبًا كل فئة من فئات التطبيقات اللامركزية التي سمعت بها. بروتوكولات الإقراض والتداول في التمويل اللامركزي. عقود ERC-20 التي تدعم معظم الرموز، وعقود ERC-721 التي تدعم الرموز غير القابلة للاستبدال (NFTs). تُشفّر المنظمات اللامركزية المستقلة (DAOs) قواعد التصويت الخاصة بها بلغة Solidity. تُدير العملات المستقرة العرض باستخدامها. تحتفظ الألعاب على السلسلة بمنطقها هناك. عندما يقول مشروع ما إنه "على إيثيريوم"، فمن المؤكد تقريبًا أن أحدهم كتب ونشر Solidity.

لماذا يُعدّ تأمين العقود الذكية بلغة Solidity أمرًا صعبًا؟

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

إعادة الدخول واختراق DAO

تُعدّ ثغرة إعادة الدخول من أبرز الثغرات في لغة Solidity. إذ يقوم عقدٌ ما بإرسال عملات ETH إلى عنوان خارجي قبل تحديث رصيده الداخلي، ثم يقوم العقد المُستقبِل باستدعاء العقد المُستقبِل مرةً أخرى لسحب الأموال، ومرةً أخرى، قبل انتهاء الاستدعاء الأول. في يونيو 2016، تسبّبت هذه الثغرة تحديدًا في استنزاف حوالي 3.6 مليون ETH، بقيمة تُقارب 60 مليون دولار أمريكي آنذاك، من شبكة The DAO . أدّى هذا الخلل إلى انقسام شبكة Ethereum إلى ETH وEthereum Classic، وهي سلسلة لا تزال قيد التداول حتى اليوم. أما الحلّ؟ فهو بسيط للغاية، يكاد يكون مُهينًا. حدّث حالة العقد أولًا، ثم أرسل الأموال أخيرًا. حتى أن لهذا النمط اسمًا: checks-effects-interactions.

تجاوز سعة الأعداد الصحيحة و SafeMath

قبل إصدار Solidity 0.8، كان من الممكن أن تتجاوز العمليات الحسابية القيمة القصوى تلقائيًا. فعند إضافة 1 إلى القيمة القصوى لـ `uint256`، كانت القيمة تتجاوز القيمة القصوى تلقائيًا، وهو ما استغله المهاجمون لإنشاء أرصدة رموز غير منطقية، كما حدث في حادثة BeautyChain (BEC) عام 2018. لسنوات، تحصّن المطورون ضد هذه المشكلة باستخدام مكتبة SafeMath، التي كانت لفترة من الزمن من أكثر الملفات استخدامًا في Solidity. ثم أضاف الإصدار 0.8 فحوصات تجاوز السعة ونقصها إلى اللغة نفسها. وبذلك، يتم الآن عكس أكثر أخطاء العمليات الحسابية شيوعًا تلقائيًا، دون الحاجة إلى مكتبة إضافية.

عمليات التدقيق وتكلفتها

لأن الأخطاء دائمة، تدفع المشاريع الجادة مقابل المراجعة. فهي تبني على مكونات OpenZeppelin المدققة، ثم تستعين بشركات متخصصة لتدقيق النظام بأكمله. تتراوح تكلفة التدقيق الاحترافي للعقود الذكية عادةً بين 25,000 دولار وأكثر من 100,000 دولار لبروتوكول التمويل اللامركزي (DeFi)، وفقًا لبيانات السوق من Sherlock . وتميل عمليات تدقيق Solidity إلى أن تكون أرخص بنسبة 25 إلى 40% من عمليات تدقيق Rust المماثلة، ببساطة لأن قاعدة المواهب أكبر. كما أن الشركات الجيدة محجوزة بالكامل. قد ينتظر بروتوكول متوسط الحجم أسابيع للحصول على موعد، ثم أسابيع أخرى للحصول على التقرير. لا شيء من هذا سريع، ولا شيء منه اختياري.

وهن ما الخطأ الذي يحدث؟ قضية شهيرة يصلح
إعادة الدخول يعود الاتصال الخارجي قبل تحديثات الحالة منظمة DAO، 2016 التحقق من التأثيرات والتفاعلات
تجاوز سعة عدد صحيح تتجاوز العمليات الحسابية حدودها بيوتي تشين (BEC)، 2018 عمليات التحقق المدمجة (Solidity 0.8+)
التحكم في الوصول يمكن لأي شخص استدعاء دالة ذات امتيازات متنوع `onlyOwner` / حراس الأدوار
مكالمات خارجية غير مراقبة تم تجاهل المكالمة الفاشلة، ويستمر المنطق متنوع التحقق من صحة القيم المُعادة

الخبر السار هو أن الخسائر آخذة في التضاؤل. فقد انخفضت خسائر العملات المشفرة الناتجة عن استغلال الثغرات الأمنية في منصات التمويل اللامركزي إلى حوالي 680 مليون دولار في عام 2025، أي بانخفاض يقارب 74% عن ذروتها البالغة 2.62 مليار دولار في عام 2022، وفقًا لشركة Immunefi . ويعود جزء من هذا الانخفاض إلى تحسين الأدوات وإجراءات التحقق الأمني المدمجة في المُصرّف.

ما هي الصلابة

لغة Solidity مقابل لغات العقود الذكية الأخرى

لغة Solidity لها منافسون، لكنها ليست حتى الأكثر أمانًا بينهم. Vyper لغة بسيطة تشبه Python، مصممة خصيصًا لتقليل المخاطر؛ وCurve مبنية عليها. أما Rust فتُشغّل العقود على منصتي Solana وNEAR، وهي أكثر أمانًا من بعض النواحي، لكنها أصعب في التعلم وأكثر تكلفة في التدقيق. فلماذا لا تزال Solidity متفوقة؟ ليس بسبب تصميم اللغة، بل بسبب تأثيرات الشبكة. فالأدوات الأكثر شمولًا، والمكتبات الأكثر تدقيقًا، ونظام EVM البيئي الكامل من السلاسل والمحافظ، كلها تدعم Solidity.

لغة السلاسل قاعدة بناء الجملة الأفضل لـ التنازل عن ميزة ممن أجل الحصول على أخرى
صلابة إيثيريوم + جميع أجهزة إيثيريوم الافتراضية جافا سكريبت/سي++ أقصى مدى، أدوات متطورة من السهل كتابة كود غير آمن
فايبر آلة التصويت الإلكترونية بايثون عقود بسيطة ذات أهمية بالغة للسلامة ميزات أقل، مجتمع أصغر
الصدأ سولانا، بالقرب من الصدأ أداء عالٍ، أمان قوي منحنى حاد، عمليات تدقيق أكثر تكلفة

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

هل يجب عليك تعلم برمجة Solidity في 2026؟

خفت حدة المضاربة حول العملات الرقمية، لكن الطلب على مطوري لغة Solidity الماهرين ظلّ قائماً. فقد أضافت منصة إيثيريوم حوالي 16,181 مطوراً جديداً بين يناير وسبتمبر 2025، وفقاً لإحصاءات شركة Electric Capital ، ويعمل ما يقارب 74% من مطوري سلاسل الكتل المتعددة على سلاسل EVM. وهناك تكمن فرص العمل المربحة والمكتبات البرمجية القابلة لإعادة الاستخدام.

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

لماذا تبقى لغة Solidity هي اللغة الافتراضية؟

تُعدّ لغة Solidity الخيار الافتراضي لسببٍ وجيه، لا مجرد ضجة إعلامية. فهي تدعم جميع سلاسل EVM، وتوفر أغنى الأدوات، وتُشكّل أساس معظم تطبيقات التمويل اللامركزي (DeFi) والرموز غير القابلة للاستبدال (NFTs). لكن أول ما يجب استيعابه ليس قواعد اللغة، بل هو التالي: في عالم البلوك تشين، يُعتبر الكود المنشور قانونًا، والأخطاء البرمجية باقية. تعلّم اللغة وأنماط الأمان معًا، فهما متلازمان لا ينفصلان. الخطوة التالية بسيطة ومجانية: افتح منصة Remix، واكتب عقدًا من عشرة أسطر، وانشره على شبكة اختبار هذا الأسبوع.

أي أسئلة؟

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

جافا سكريبت وسي++ في الغالب. الأقواس المعقوفة، الفواصل المنقوطة، وكل ما يتعلق بها. ساهمت بايثون في صياغة بعض الأفكار، لكن سوليديتي لغة ذات كتابة ثابتة، لذا عليك تحديد الأنواع مسبقًا. هل تريد خيارًا يُشبه بايثون تمامًا؟ هذا هو فايبر، وليس سوليديتي.

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

لغة Solidity هي اللغة التي تكتبها، وآلة إيثيريوم الافتراضية هي المحرك الذي يُشغّلها. يقوم مُترجمك بتحويل ملف `.sol` إلى بايت كود خاص بآلة إيثيريوم الافتراضية، ويُنفّذ كل عقدة هذا البايت كود على آلة إيثيريوم الافتراضية الخاصة بها. أحدهما هو المصدر، والآخر هو الآلة.

نعم، في كل مكان تقريبًا. أي سلسلة كتل متوافقة مع EVM تدعمها: Polygon، وBNB Chain، وArbitrum، وBase، وAvalanche. يُحصي موقع ChainList أكثر من 385 شبكة من هذا النوع. هذا الانتشار الواسع هو السبب الرئيسي وراء انتشار مهارات Solidity في مختلف أنحاء القطاع، بدلًا من حصرها في سلسلة كتل واحدة.

نعم. أضافت إيثيريوم أكثر من 16,000 مطور في الأشهر التسعة الأولى من عام 2025، ومعظم مطوري السلاسل المتعددة يبنون تطبيقاتهم على شبكات EVM. يظل مهندسو سوليديتي المعتمدون نادرين مقارنةً بقيمة عقودهم. هذا الندرة تُبقي الأجور مرتفعة.

Ready to Get Started?

Create an account and start accepting payments – no contracts or KYC required. Or, contact us to design a custom package for your business.

Make first step

Always know what you pay

Integrated per-transaction pricing with no hidden fees

Start your integration

Set up Plisio swiftly in just 10 minutes.