Web3 سمارٹ کنٹریکٹ سیکیورٹی کے لیے جانچ اور رسمی تصدیق

Web3 سمارٹ کنٹریکٹ سیکیورٹی کے لیے جانچ اور رسمی تصدیق

ویب 3 سمارٹ کنٹریکٹ سیکیورٹی پلیٹو بلاکچین ڈیٹا انٹیلی جنس کے لیے جانچ اور رسمی تصدیق۔ عمودی تلاش۔ عی

پڑھنے کا وقت: 9 منٹ

اسکائی ڈائیونگ جانے کا تصور کریں۔ ہوائی جہاز سے چھلانگ لگانے سے پہلے، آپ اپنے پیراشوٹ کو سو بار چیک کریں گے، ٹھیک ہے؟ جانچ اور جانچ سیکورٹی کا ایک لازمی حصہ ہیں؛ سیکیورٹی سے متعلق کسی بھی چیز کے بارے میں سوچیں۔ اس کے بعد ممکنہ طور پر جانچ کا طریقہ کار ہو گا، چاہے وہ سی سی ٹی وی کی تنصیب ہو یا سکول میں تحریری امتحان سے پہلے قلم میں سیاہی کی جانچ ہو، ہم سب حفاظتی اقدامات پر عمل کرتے ہیں۔ اس میں جتنا زیادہ خطرہ ہوتا ہے، اتنا ہی ہم چیزوں کی جانچ کرتے ہیں۔ اور جب ہم سمارٹ معاہدوں کے بارے میں بات کرتے ہیں تو خطرہ بہت زیادہ ہوتا ہے۔ جب سمارٹ کنٹریکٹ سیکیورٹی کی بات آتی ہے تو آپ لاپرواہ نہیں رہ سکتے۔

1. سیکورٹی کی ہمیشہ ضرورت ہوتی ہے۔

آپ یقینی طور پر دو یا تین بار دروازہ بند کر سکتے ہیں کوئی فرق نہیں پڑتا۔ کیا آپ اس بات کا یقین کر سکتے ہیں کہ آپ کے گھر لوٹتے وقت آپ کے گھر لوٹا نہیں جا سکتا؟ آپ اس لیے نہیں کر سکتے کیونکہ آپ نہیں جانتے کہ ڈاکو گھر میں گھسنے کے لیے کیا کر سکتا ہے — یہی بات ہمارے ہر حفاظتی اقدام کے لیے بھی درست ہے۔ کوئی مکمل طور پر محفوظ طریقہ نہیں ہے جو حفاظت کی ضمانت دے گا۔ پھر بھی، جو کارروائی ہم تیزی سے کرتے ہیں اس سے ہمارے محفوظ رہنے کے امکانات بڑھ جاتے ہیں، یہی کھیل ہے۔ ہم مختلف اقدامات استعمال کرکے محفوظ رہنے کے امکانات کو بڑھانا چاہتے ہیں۔

Web3 کی دنیا مختلف نہیں ہے۔ اپنے آپ کو بچانے کا کوئی محفوظ طریقہ نہیں ہے، لیکن QuillAudits کے تجربہ کار آڈیٹرز کا ہونا آپ کے پروٹوکول کے محفوظ ہونے کے امکانات کو بہت زیادہ بڑھا سکتا ہے اور آپ کی تازہ ترین حفاظت کو یقینی بنائے گا۔ web3 میں، دو اہم میکانزم ہیں جو آپ کو یہ سمجھنے میں مدد کرتے ہیں کہ آپ اپنے پروٹوکول پر کچھ ٹیسٹ کر کے کتنے محفوظ ہیں:-

  1. سمارٹ کنٹریکٹ ٹیسٹنگ
  2. سمارٹ معاہدوں کی رسمی تصدیق

آئیے انہیں تفصیل سے سمجھتے ہیں اور سیکھتے ہیں کہ وہ ہمارے معاہدوں کے کمزور نکات یا کمزوریوں کو جاننے میں ہماری کس طرح مدد کرتے ہیں۔

2. سمارٹ کنٹریکٹ ٹیسٹنگ

ایک تجربہ کار ڈویلپر کوڈ والی مشین کو کام کی وضاحت کر سکتا ہے۔ پھر بھی، بعض اوقات مشین درست طریقہ کار کی عکاسی نہیں کرتی ہے جو کوڈ میں کسی خامی یا منطقی غلطی کی وجہ سے ڈویلپر کے ذہن میں تھا۔ جانچ ایک ایسا عمل ہے جو اس بات کی نشاندہی کرنے میں مدد کرتا ہے کہ ہمارا کوڈ کہاں فیل ہو رہا ہے اور اسے اس عمل سے ہم آہنگ کرنے کے لیے کیا کیا جا سکتا ہے جس کو انجام دینے کے لیے ہمیں اس کی ضرورت ہے۔

سمارٹ معاہدے کی جانچ ترقی کے چکر کا ایک مرحلہ ہے جس میں ہم اپنے معاہدوں کا تفصیلی تجزیہ کرتے ہیں اور یہ جاننے کی کوشش کرتے ہیں کہ ہمارا کوڈ کہاں اور کیوں ناکام ہو رہا ہے۔ تقریباً تمام سمارٹ معاہدے اس مرحلے سے گزرتے ہیں۔ سمارٹ کنٹریکٹ ٹیسٹنگ کے دو طریقے ہیں۔ آئیے ان کو دریافت کریں۔

2.1 خودکار

جیسا کہ نام سے پتہ چلتا ہے، سمارٹ معاہدوں کی جانچ کا یہ طریقہ اسکرپٹڈ ٹیسٹنگ کے لیے استعمال کیا جاتا ہے۔ اس میں خودکار سافٹ ویئر شامل ہوتا ہے جو سمارٹ معاہدوں میں کسی بھی کمزوری اور نقائص کو تلاش کرنے کے لیے بار بار ٹیسٹ کرتا ہے۔ ان خودکار ٹیسٹنگ ٹولز کو ٹیسٹ ڈیٹا اور متوقع نتائج کے ساتھ ترتیب دیا جا سکتا ہے۔ پھر اصل نتیجہ کا موازنہ متوقع نتائج سے کیا جاتا ہے تاکہ یہ چیک کیا جا سکے کہ آیا معاہدہ ٹھیک سے کام کر رہا ہے۔ خودکار جانچ کو مزید تین اقسام میں تقسیم کیا جا سکتا ہے۔

2.1.1. فنکشنل ٹیسٹنگ

فرض کریں کہ آپ دو نمبرز a اور b لینے کے لیے ایک پروگرام لکھتے ہیں اور پھر دونوں نمبروں کا اضافہ واپس کرتے ہیں۔ تو اس پروگرام کو چیک کرنے کے لیے، آپ 2 اور 8 دیتے ہیں اور متوقع نتیجہ 10 فیڈ کرتے ہیں۔ اب جب پروگرام چلتا ہے، تو اسے بھی 10 لوٹنا چاہیے۔ اگر ایسا ہوتا ہے، تو یہ ٹھیک کام کرتا ہے، اور ہمارا کوڈ درست ہے، لیکن اگر یہ نہیں ہے، پھر ہمارے کوڈ میں کچھ خرابی ہے۔ 

فنکشنل ٹیسٹنگ کے لیے یہ سمجھنے کی ضرورت ہوتی ہے کہ آپ کے معاہدے کو کچھ شرائط میں کیسے برتاؤ کرنا چاہیے۔ ہم اسے منتخب اقدار کے ساتھ کمپیوٹیشن چلا کر اور واپس آنے والے آؤٹ پٹ کا موازنہ کرکے جانچ سکتے ہیں۔ فنکشنل ٹیسٹنگ کی تین کلاسیں ہیں:-

  1. یونٹ کی جانچ۔:- یہ درستگی کے لیے سمارٹ کنٹریکٹ کے انفرادی اجزاء کی جانچ سے متعلق ہے۔ یہ جارحانہ ہے یا متغیرات پر بیانات کی ضرورت ہے۔
  1. انٹیگریشن testing:- یہ متعدد انفرادی اجزاء کو ایک ساتھ جانچنے سے متعلق ہے۔ انٹیگریشن ٹیسٹنگ درجہ بندی میں یونٹ ٹیسٹنگ کے مقابلے میں ایک اعلی سطح ہے۔ اس سے ہمیں مختلف فنکشنز کے تعامل سے پیدا ہونے والی غلطیوں کا تعین کرنے میں مدد ملتی ہے، جو دوسرے سمارٹ معاہدوں کا حصہ ہو سکتی ہیں۔
  1. نظام سرخیوں کی شکل میںng:- یہ درجہ بندی میں سب سے زیادہ ہے۔ اس میں، ہم پورے معاہدے کو ایک مکمل مربوط نظام کے طور پر جانچتے ہیں کہ آیا یہ ہماری ضروریات کے مطابق کارکردگی کا مظاہرہ کرتا ہے۔ یہ صارف کے نقطہ نظر سے کیا جاتا ہے، اور ایسا کرنے کا بہترین طریقہ یہ ہے کہ اسے testnets پر تعینات کیا جائے۔

2.1.2 جامد تجزیہ

جامد تجزیہ پروگرام کو چلائے بغیر بھی کیا جا سکتا ہے۔ اس میں عمل درآمد سے پہلے سمارٹ کنٹریکٹ کے سورس کوڈ یا بائیک کوڈ کا تجزیہ شامل ہے۔ اس طرح اس کا نام دینے سے، جامد تجزیہ کے نتیجے میں کچھ عام کمزوریوں کا پتہ چل سکتا ہے۔

2.1.3 متحرک تجزیہ

جامد تجزیہ کے برعکس، کوڈ میں مسائل کی نشاندہی کرنے کے لیے سمارٹ معاہدوں کے رن ٹائم کے دوران متحرک تجزیہ کیا جاتا ہے۔ ڈائنامک کوڈ تجزیہ کار معاہدے کی چلتی حالت کا مشاہدہ کرتے ہیں اور کمزوریوں اور جائیداد کی خلاف ورزیوں کی تفصیلی رپورٹ تیار کرتے ہیں۔ فزنگ متحرک تجزیہ کے تحت آتی ہے۔ فزنگ غیر ارادی کوڈ پر عمل درآمد کا سبب بننے کے لیے غلط یا بدنیتی پر مبنی ان پٹ کو فیڈ کر رہی ہے۔

2.2 دستی

جیسا کہ نام سے پتہ چلتا ہے، سمارٹ کنٹریکٹ ٹیسٹنگ کے اس طریقے میں انسانی ڈویلپر کے ساتھ باقاعدہ تعامل شامل ہے۔ کوڈ آڈٹ، جہاں ڈویلپرز کوڈ کی لائنوں سے گزرتے ہیں، سمارٹ کنٹریکٹ ٹیسٹنگ کے مینوئل موڈ کے تحت آتے ہیں۔

دستی موڈ میں کافی وقت، مہارت، پیسہ اور محنت درکار ہوتی ہے۔ پھر بھی، نتیجہ اکثر اس کے قابل ہوتا ہے کیونکہ، اس کے ساتھ، ہم ان کمزوریوں کی نشاندہی کرتے ہیں جن پر خودکار جانچ میں کسی کا دھیان نہیں جا سکتا۔ دستی جانچ کی دو ضروری قسمیں ہیں:-

2.2.1 کوڈ آڈٹ:- 

یہ جانچنے کا بہترین طریقہ ہے کہ آیا آپ کا حفاظتی اقدام صحیح طریقے سے کام کرتا ہے اسے توڑنے کی کوشش کرنا۔ مثال کے طور پر، اگر آپ یہ دیکھنا چاہتے ہیں کہ آیا آپ کی کار کا لاک ٹھیک سے کام کرتا ہے، تو اسے توڑنے کی کوشش کریں۔ اب آپ پوچھ سکتے ہیں کہ کوئی ہنر مند کار چور آسانی سے میری گاڑی میں گھس سکتا ہے۔ میں ایسا نہیں کر سکتا، اس لیے حل یہ ہے کہ کسی ایسے شخص کی خدمات حاصل کی جائیں جو آپ کو توڑنے میں ماہر ہوں تاکہ وہ آپ کی رہنمائی کر سکے۔

 ہاں، میں QuillAudits کے بارے میں بات کر رہا ہوں۔ ہم ہنر مند آڈیٹرز کی ایک ٹیم ہیں جو آپ کی رہنمائی کر سکتی ہے۔ کوڈ آڈٹ کے لیے سورس کوڈ میں تمام ممکنہ کمزوریوں کو تلاش کرنے کے لیے حملہ آور ذہنیت کی ضرورت ہوتی ہے۔ کوڈ آڈٹ ممکنہ کمزوریوں اور خامیوں سے پردہ اٹھانے کے لیے اسمارٹ کنٹریکٹ کے کوڈ کا تفصیلی جائزہ ہے۔

2.2.2 بگ باؤنٹی:-

اگر آپ کو لگتا ہے کہ آپ کے سورس کوڈ میں کچھ حفاظتی خامیاں ہو سکتی ہیں (جو زیادہ تر ہیں) اور آپ انہیں تلاش نہیں کر سکتے، تو آپ انعامی نظام بنا کر اس کام کو فری لانسرز کو آؤٹ سورس کر سکتے ہیں۔ یہ کسی ایسے شخص کے لیے انعام کا اعلان کرنے جیسا ہے جو آپ کے سمارٹ کنٹریکٹ کو ہیک کر سکتا ہے۔ ایسا کرنے سے، آپ اپنے سمارٹ کنٹریکٹ میں موجود کمزوری کے بارے میں جان سکتے ہیں تاکہ آپ اس کی بہتر حفاظت کر سکیں اور اپنے صارفین کو نقصان سے بچا سکیں۔

3. سمارٹ معاہدوں کی باقاعدہ تصدیق

رسمی توثیق رسمی وضاحتوں کی بنیاد پر معاہدے کی درستگی کا جائزہ لینے کا عمل ہے۔ اس کا مطلب ہے کہ باضابطہ توثیق اس بات کا تعین کرتی ہے کہ آیا کوڈ وہی کرتا ہے جس کا مقصد ہے۔ رسمی تصدیق پروگراموں کی وضاحت، ڈیزائن اور تصدیق کے لیے رسمی طریقے استعمال کرتی ہے۔

3.1 رسمی تفصیلات کیا ہے؟

سمارٹ معاہدوں کے تناظر میں، رسمی تصریحات ان خصوصیات کا حوالہ دیتے ہیں جو ہر ممکن حالات میں ایک جیسی رہیں۔ یہ "غیر متزلزل" خصوصیات ہیں کیونکہ وہ معاہدے کے نفاذ کے بارے میں منطقی دعووں کو تبدیل اور نمائندگی نہیں کر سکتے ہیں۔

رسمی تفصیلات رسمی زبان میں لکھے گئے بیانات کا مجموعہ ہے۔ وضاحتیں مختلف خصوصیات کا احاطہ کرتی ہیں اور بیان کرتی ہیں کہ معاہدے کی خصوصیات کو دوسرے حالات میں کیسے برتاؤ کرنا چاہئے۔ رسمی تصریحات اہم ہیں کیونکہ اگر معاہدوں پر عمل درآمد کے دوران غیر متغیر متغیرات یا خصوصیات تبدیل ہونے میں ناکام رہتے ہیں، تو اس سے املاک کا ممکنہ استحصال ہو سکتا ہے، جس سے بہت زیادہ نقصان ہو سکتا ہے۔

اس سے ہمیں یہ تعین کرنے میں مدد مل سکتی ہے کہ آیا کوئی سمارٹ کنٹریکٹ تصریحات پر پورا اترتا ہے یا غیر متوقع رویے رکھتا ہے۔ رسمی تصدیق کے تین اجزاء ہوتے ہیں: ایک تصریح، ایک ماڈل، اور ایک تصدیقی انجن۔

3.1.1 تفصیلات

تصریح ایک واضح، غیر مبہم، اور سمارٹ کنٹریکٹ کے تقاضوں کی مکمل تفصیل ہے۔ یہ بیان کرنا چاہیے کہ معاہدہ کیا کرنا چاہیے اور کیا نہیں کرنا چاہیے۔ یہاں ایک سادہ، سمارٹ کنٹریکٹ کے لیے ایک مثال کی وضاحت ہے جس میں دو نمبر شامل ہوتے ہیں:

// Specification: Adds two numbers
// Inputs: a, b (uint)
// Outputs: the sum of a and b (uint) function add(uint a, uint b) public view returns (uint) {
// Implementation details are not relevant to the specification
// …
}

3.1.2 ماڈل

ایک ماڈل رسمی طور پر سمارٹ کنٹریکٹ کی نمائندگی کرتا ہے جسے اس کے رویے کے بارے میں استدلال کرنے کے لیے استعمال کیا جا سکتا ہے۔ سمارٹ معاہدوں کے لیے ایک مقبول ماڈل سالیڈٹی پروگرامنگ لینگویج ہے۔ اوپر بیان کردہ ایڈ فنکشن کے لیے یہاں ایک مثالی ماڈل ہے۔

// Model: Adds two numbers
// Inputs: a, b (uint)
// Outputs: the sum of a and b (uint) function add(uint a, uint b) public view returns (uint) {
return a + b;
}

3.1.3 تصدیقی انجن

توثیقی انجن ایک ایسا ٹول ہے جو کسی ماڈل کا تجزیہ کر سکتا ہے اور دی گئی تصریح سے متعلق اس کی درستگی کی تصدیق کر سکتا ہے۔ سمارٹ معاہدوں کے لیے کئی تصدیقی انجن دستیاب ہیں، بشمول:

Mythril: ایک اوپن سورس علامتی عمل درآمد کا ٹول جو سولیڈیٹی سمارٹ معاہدوں میں سیکورٹی کے خطرات کی ایک وسیع رینج کا پتہ لگا سکتا ہے۔

ریمکس IDE: ایک مربوط ترقیاتی ماحول جس میں ایک باضابطہ تصدیقی ٹول شامل ہے جو سمارٹ معاہدوں کی درستگی کی تصدیق کر سکتا ہے۔

Certora Prover: ایک تجارتی ٹول جو خودکار ریاضیاتی استدلال کا استعمال کرتے ہوئے سمارٹ معاہدوں کی درستگی کی تصدیق کر سکتا ہے۔ یہاں ایک مثال ہے کہ کس طرح رسمی توثیق کو Certora Prover کا استعمال کرتے ہوئے سمارٹ معاہدے کی درستگی کی تصدیق کے لیے استعمال کیا جا سکتا ہے:

pragma solidity 0.7.6; // Model: Adds two numbers
// Inputs: a, b (uint)
// Outputs: the sum of a and b (uint)
function add(uint a, uint b) public pure returns (uint) {
return a + b;
} // Model: Adds two numbers
// Inputs: a, b (uint)
// Outputs: the sum of a and b (uint) function add(uint a, uint b) public pure returns (uint) {
return a + b;
} // Specification: Adds two numbers
// Inputs: a, b (uint)
// Outputs: the sum of a and b (uint) function test_add(uint a, uint b) public pure returns (bool) {
uint expected = a + b;
uint actual = add(a, b);
return expected == actual;
} // Verification: Verify the correctness of the add function contract TestAdd {
function test_add(uint a, uint b) public view returns (bool) {
return CertoraProver.verify(test_add, a, b);
}
}

مندرجہ بالا مثال میں، ہم سولیڈیٹی سمارٹ کنٹریکٹ کی وضاحت کرتے ہیں جس میں ایڈ فنکشن کا ایک ماڈل، فنکشن کے لیے ایک تصریح، اور ایک تصدیقی انجن (Certora Prover) شامل ہے جو فنکشن کی درستگی کی تصدیق کر سکتا ہے۔ ہم ایک ٹیسٹ فنکشن (test_add) کی بھی وضاحت کرتے ہیں جسے فنکشن کی درستگی کی تصدیق کے لیے استعمال کیا جا سکتا ہے۔

3.2 ٹیسٹنگ VS رسمی تصدیق

جیسا کہ ہم نے تبادلہ خیال کیا، ٹیسٹنگ کچھ ان پٹ ڈیٹا بوٹ کے لیے متوقع نتیجہ لوٹاتا ہے جس میں اس کی کمی ہے کیونکہ ہم اس ڈیٹا کے بارے میں نہیں کہہ سکتے جس پر اس کا تجربہ نہیں کیا گیا ہے۔ ہر ممکنہ ان پٹ پر اسے چیک کرنا عملی طور پر ناممکن ہے۔ اس طرح ہمیں اس کی "فعال درستگی" کے بارے میں یقین نہیں ہے۔ یہ وہ جگہ ہے جہاں باضابطہ تصدیق آتی ہے۔ رسمی توثیق کے طریقے سافٹ ویئر یا سمارٹ معاہدوں کی وضاحت اور تصدیق کے لیے سخت ریاضیاتی تکنیکوں کا استعمال کرتے ہیں۔

3.3 رسمی تصدیق کے لیے تکنیک

رسمی تصدیق میں اضافہ کرنے کے لیے تکنیکوں کی وسیع گنجائش ہے۔ سمارٹ معاہدے کی حفاظت. بلاگ کے اس حصے میں، ہم انفرادی طور پر کچھ کو تلاش کریں گے۔

3.3.1 ماڈل چیکنگ

جیسا کہ ہم نے تبادلہ خیال کیا کہ رسمی تصریح کیا ہے، ہم اس رسمی تصدیقی تکنیک میں سمارٹ کنٹریکٹ کو اس کی تفصیلات کے خلاف چیک کرتے ہیں۔ ان سمارٹ معاہدوں کی نمائندگی ریاستی منتقلی کے نظام کے طور پر کی جاتی ہے، اور خصوصیات کی وضاحت وقتی منطق کے ذریعے کی جاتی ہے۔ 

یہ تکنیک بنیادی طور پر وقتی خصوصیات کا جائزہ لینے کے لیے استعمال ہوتی ہے جو وقت کے ساتھ ساتھ سمارٹ معاہدوں کے رویے کو ظاہر کرتی ہے۔ رسائی کنٹرول پراپرٹی (ایڈمن کالنگ خود کو تباہ کرنا) کو رسمی منطق کے طور پر لکھا جا سکتا ہے۔ پھر ماڈل چیکنگ الگورتھم اس بات کی تصدیق کر سکتا ہے کہ آیا معاہدہ اس رسمی تصدیق کو پورا کرتا ہے۔

ماڈل چیکنگ میں اسٹیٹ اسپیس ایکسپلوریشن نامی تکنیک کا استعمال کیا جاتا ہے، جو بنیادی طور پر ان تمام ممکنہ ریاستوں کو آزما رہی ہے جن میں ہمارا سمارٹ کنٹریکٹ ہو سکتا ہے اور پھر یہ جانچ رہا ہے کہ آیا اس میں سے کسی کے نتیجے میں جائیداد کی خلاف ورزی ہوتی ہے۔ تاہم، یہ لامحدود کئی ریاستوں کی قیادت کر سکتا ہے؛ اس لیے ماڈل چیکرز سمارٹ معاہدوں کا موثر تجزیہ ممکن بنانے کے لیے تجریدی تکنیک پر انحصار کرتے ہیں۔

3.3.2 تھیوریم ثابت کرنا

تھیوریم ثابت کرنا پروگراموں کی درستگی پر ریاضیاتی استدلال کے بارے میں ہے۔ یہ معاہدے کے نظام اور تفصیلات کا منطقی تاثر پیدا کرنے اور بیانات کے درمیان "منطقی مساوات" کی تصدیق سے متعلق ہے۔ منطقی مساوات ایک ریاضیاتی تعلق ہے جو کہتا ہے کہ بیان A سچ ہے اگر اور صرف اس صورت میں جب بیان B سچ ہو۔

جیسا کہ ہم نے ماڈل کی جانچ کی تکنیک میں سیکھا، ہم کنٹریکٹ کو محدود حالتوں کے ساتھ ٹرانزیشن سسٹم کے طور پر ماڈل بناتے ہیں۔ تھیوریم ثابت کرنا لامحدود ریاستی نظاموں کے تجزیہ کو سنبھال سکتا ہے۔ تاہم، ایک خودکار تھیوریم کہنے والا ہمیشہ یہ نہیں جان سکتا کہ آیا کوئی منطقی مسئلہ قابلِ فیصلہ ہے۔ اس طرح، درستی کے ثبوت حاصل کرنے میں تھیوریم پروور کی رہنمائی کے لیے اکثر انسانی مدد کی ضرورت ہوتی ہے۔

4. نتیجہ

جانچ اور رسمی تصدیق دونوں سمارٹ کنٹریکٹ کی ترقی کے لازمی حصے ہیں۔ یہ وہ طریقے ہیں جو سمارٹ معاہدوں کو محفوظ بنانے کے لیے استعمال ہوتے ہیں اور کنٹریکٹس کو تعیناتی کے لیے تیار کرنے میں مدد کرتے ہیں۔ لیکن جیسا کہ آپ جانتے ہیں، سیکورٹی کبھی بھی کافی نہیں ہوتی۔ بہت سے سمارٹ معاہدے صرف اس وجہ سے ہیک ہو رہے تھے کہ وہاں کوئی مناسب جانچ نہیں تھی۔ اب پہلے سے کہیں زیادہ web3 کمیونٹی کو زیادہ محفوظ پروٹوکول کی ضرورت ہے۔ 

QuillAudits میں ہم آپ کے پروٹوکول کی حفاظت میں مدد کے مشن پر ہیں۔ اپنی ہنرمند اور تجربہ کار ٹیم کے ساتھ، ہم اس بات کو یقینی بناتے ہیں کہ ایک بھی کمزوری پر کسی کا دھیان نہ جائے۔ ہماری ویب سائٹ ملاحظہ کریں اور اپنے Web3 پروجیکٹ کو محفوظ بنائیں!

28 مناظر

ٹائم اسٹیمپ:

سے زیادہ Quillhash