ERC 1155 NFT اسمارٹ کنٹریکٹ کا سیکیورٹی تجزیہ

ERC 1155 NFT اسمارٹ کنٹریکٹ کا سیکیورٹی تجزیہ

ERC 1155 NFT Smart Contract PlatoBlockchain ڈیٹا انٹیلی جنس کا سیکیورٹی تجزیہ۔ عمودی تلاش۔ عی

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

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

یہ ٹوکن سمارٹ کنٹریکٹس ہیں جن میں مختلف افعال جیسے ٹرانسفر، بیلنس چیکنگ وغیرہ شامل ہیں۔ آپ اس کے لیے ایک سمارٹ کنٹریکٹ بنا کر اپنا ٹوکن بنا سکتے ہیں۔ پھر بھی، اس بات کو یقینی بنانے کے لیے کہ آپ کا ٹوکن محفوظ ہے اور اس پر اعتماد کا احساس جوڑیں، ERC 20 ہے۔ سمارٹ معاہدہ معیار جس کو فنگیبل ٹوکن بنانے کے لیے فالو کرنے کا مشورہ دیا جاتا ہے، اور ERC 721 سمارٹ کنٹریکٹ اسٹینڈرڈ ہے جو نان فنگیبل ٹوکن (NFTs) بنانے کے لیے استعمال ہوتا ہے۔

ERC 20 اور ERC 721 ٹوکن کی تخلیق کے لیے بڑے پیمانے پر قبول شدہ سمارٹ کنٹریکٹ پروٹوکول ہیں۔ وہ ٹوکنز کے لیے ایک محفوظ اور قابل اعتماد ماحول فراہم کرتے ہیں۔ اور یہ پروٹوکول بہتر ہوتے رہتے ہیں اور بہتر ہوتے رہتے ہیں۔ اس سمت میں ایک قدم ٹوکنز کے لیے ایک نئے ERC 1155 سمارٹ کنٹریکٹ پروٹوکول کی تخلیق کی طرف لے جاتا ہے۔ آئیے دیکھتے ہیں کہ یہ کیا ہے۔

1. ERC 1155 کیا ہے؟

تمام ERCs، جیسے 20 اور 721، سمارٹ کنٹریکٹس بنانے کے لیے صرف معیارات ہیں جو NFTs کے لیے مختلف حالات میں فٹ بیٹھتے ہیں۔ ہمارے پاس ERC 721 ہے، اور USDT اور DAI جیسے فنجیبل ٹوکن ERC 20 معیارات کی پیروی کرتے ہیں۔ ERC 1155 ایک معیاری ہے جس میں ERC 20 اور ERC 721 افعال اور خصوصیات شامل ہیں۔

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

یہ ایک ایسا مسئلہ ہے جو ERC 1155 حل کرتا ہے۔ آپ کو بلاکچین پر ہر ایک ٹوکن کے لیے معاہدہ کرنے کی ضرورت نہیں ہے۔ یہ ایسی ہی ایک ERC 1155 معاہدے کی مثال تھی۔ اندازہ لگائیں کہ ہمیں ایک سے زیادہ اثاثوں کے ساتھ اس قسم کے نظام کی کہاں ضرورت ہے، کچھ فنگیبل، کچھ غیر فنگی۔ جواب ہے web3 گیمز۔ ERC 1155 Web3 گیم ڈویلپرز کو اسکیل ایبلٹی اور آن چین ٹرانزیکشنز کے لیے ہموار ترقی کے ساتھ بااختیار بناتا ہے۔

ERC 1.1 میں 1155 ٹوکن IDs

آپ کو معلوم ہونا چاہیے کہ مختلف ERC 20 ٹوکنز میں بیلنس کیسے چیک کیا جا سکتا ہے، آپ صرف کال کر سکتے ہیں۔ بیلنس آف (پتہ _مالک) فنکشن، اور آپ اس ایڈریس میں کتنے ٹوکن حاصل کر سکتے ہیں۔ لیکن ERC 1155 مختلف ٹوکنز سے متعلق ہے، لہذا ہمیں مختلف ٹوکنز کو مختلف IDs فراہم کرنے کی ضرورت ہے۔ ٹوکنز سے متعلق تقریباً ہر فنکشن کم از کم دو پیرامیٹرز میں لے جاتا ہے ٹوکن آئی ڈی (اثاثہ جس کے بارے میں آپ پوچھنا چاہتے ہیں) اور وہ پتہ جس کے بارے میں آپ جاننا چاہتے ہیں۔

مثال کے طور پر، ہم کہتے ہیں کہ معاہدے میں 3 ٹوکن ہیں، سونا، چاندی، اور بادشاہ۔ یہ جاننے کے لیے کہ اس پروٹوکول میں کسی خاص ایڈریس میں کتنا سونا ہے، آپ فنکشن بیلنس آف(پتہ _مالک، uint256 _id) سمارٹ کنٹریکٹ پر۔ فرض کریں کہ سونے کے لیے ٹوکن آئی ڈی 1 بتائی گئی ہے۔ پھر آپ کال کر سکتے ہیں۔ balnceOf(0x4Bf9DeCE75Bc7C4a9054d5b3BB13D53543eE4096، 1).

2 سمارٹ کنٹریکٹ ERC 1155 کے لیے آڈٹ کے رہنما خطوط

ERC 1155 کچھ عرصے سے موجود ہے، اور کچھ خصوصیات باقاعدہ ERC 20 یا ERC 721 پروٹوکول میں دستیاب نہیں ہیں، جیسے بیچ ٹرانسفر۔ اس کے علاوہ، ERC 1155 مارکیٹ کی جگہ میں کم پایا جاتا ہے، اس طرح بہت سے ڈویلپرز کے لیے اس علاقے کو تھوڑا کم تلاش کیا جاتا ہے۔ QuillAudits ERC 1155 پر BUIDL کے لیے تلاش کرنے والے پروٹوکولز کے لیے اہم بصیرتیں شیئر کرتا ہے، تاکہ وہ اپنی حفاظت کرتے ہوئے ایک محفوظ web3 ایکو سسٹم بنانے میں مدد کر سکیں۔ 

2.1 ERC 1155 وصول کنندہ انٹرفیس

جب ہمارا ERC 1155 معاہدہ اثاثوں کو کسی دوسرے معاہدے میں منتقل کرتا ہے جو کہ عام طور پر web3 گیم پروٹوکول میں ایک ضرورت ہوتی ہے، تو ٹوکن کے کامیاب لین دین کے لیے وصول کنندہ کنٹریکٹ میں ERC1155Receiver انٹرفیس کا ہونا ضروری ہے۔

دو فنکشنز جو ERC 1155 ریسیور انٹرفیس کے تحت آتے ہیں یہ ہیں:-

  • onERC1155 موصول ہوا (آپریٹر، منجانب، آئی ڈی، قدر، ڈیٹا)
  • onERC1155BatchReceived(آپریٹر، منجانب، ids، اقدار، ڈیٹا)

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

اس فنکشن کو ٹکسال یا منتقلی کے عمل سے باہر نہیں بلایا جانا چاہئے۔ منتقلی کو قبول کرنے کے لیے، اگر منتقلی کی اجازت ہے تو اسے بائٹس4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)")) واپس کرنا ہوگا۔

پیرامیٹرز کو دیکھتے ہوئے: -

  1. آپریٹر: - وہ پتہ جس نے منتقلی شروع کی (یعنی msg.sender) 
  2. منجانب:- وہ پتہ جو پہلے ٹوکن کا مالک تھا۔
  3. id: - ٹوکن کی ID منتقل کی جا رہی ہے۔ 
  4. قدر: - منتقل کیے جانے والے ٹوکنز کی تعداد 
  5. ڈیٹا: - بغیر کسی مخصوص فارمیٹ کے اضافی ڈیٹا 

2.2 کوئی منظوری () فنکشن نہیں ہے؟

اگر آپ نے کبھی ERC 20 یا ERC 721 کے ساتھ کام کیا ہے، تو آپ کو approve() فنکشن ملے گا، جو کچھ ایڈریس کو مالک کے بیلنس سے منظور شدہ ٹوکن لینے کی اجازت دیتا ہے۔ مثال کے طور پر، اگر A B کو DAI کے 100 ٹوکن لینے کی منظوری دینا چاہتا ہے، تو A منظوری دینے والے فنکشن پر کال کر سکتا ہے، یہ کہتے ہوئے کہ B 100 DAI ٹوکن کا حقدار ہے، اور بعد میں، B اس رقم کے ساتھ لین دین کر سکتا ہے۔

لیکن ERC 1155 میں کوئی نہیں ہے۔ منظور ایک ٹوکن کے لیے فنکشن۔ ہمارے پاس اے setApprovalForAll(ایڈریس آپریٹر، bool منظور شدہ) فنکشن، جسے مالک کے ذریعہ بلایا جاتا ہے اور ایک ایڈریس پیرامیٹر آپریٹر لیتا ہے، جو خرچ کرنے والے کا پتہ ہوتا ہے یا جس پر ہم اپنے ٹوکنز کو منظور کرنا چاہتے ہیں۔ لہذا، ہم ایک کال نہیں کر سکتے ہیں منظور ہمارے ERC 1155 ٹوکنز کی فہرست سے ایک ٹوکن کے لیے فنکشن یا منظوری دیں، لیکن اس کے بجائے، تمام ٹوکن رسائی ایک ساتھ منظور ہو جائے گی۔ ترقیاتی ٹیم کو اس سے آگاہ ہونے کی ضرورت ہے۔ اگر نظر انداز کیا جائے تو اس سے بڑے پیمانے پر نقصان ہو سکتا ہے اور پروٹوکول میں سمجھوتہ ہو سکتا ہے۔

2.3 کچھ باقاعدہ چیکس

مندرجہ بالا دو حصوں نے ERC 1155 سے متعلقہ دو منفرد چیکس کی کھوج کی۔ اس سیکشن میں، ہم کچھ باقاعدہ جانچ پڑتال کریں گے جن کی بہت گہری وضاحت کی ضرورت نہیں ہے۔

  1. IDs کو ذہن میں رکھیں:- ہر ایک بیرونی فنکشن یا انٹرفیس جو ERC 1155 کے ساتھ کام کرتا ہے اسے ٹوکن آئی ڈی کو ان پٹ کے طور پر لینے کے لیے مخصوص کرنا ضروری ہے۔
  2. برن/منٹ:- جب بھی ان فنکشنز کو کال کیا جاتا ہے، تو انہیں مخصوص ٹوکن آئی ڈی کے لیے صرف بیلنس اور ٹوٹل سپلائی کو تبدیل کرنا چاہیے۔
  3. ERC 20 مشابہت: - بہت سی خصوصیات ERC 20 ٹوکن اسٹینڈرڈ کی طرح ہیں۔ ERC 20 کے لیے حفاظتی رہنما خطوط پر عمل کرنے سے بھی اس معاملے میں مدد ملے گی۔
  4. دوبارہ داخلہ:- جیسا کہ زیر بحث آیا، ERC 1155 ٹرانسفر منطق میں معاون انٹرفیس کی جانچ کرتا ہے۔ اس طرح مختلف منظرنامے ہو سکتے ہیں جن کے نتیجے میں ہو سکتا ہے۔ دوبارہ داخلے کا خطرہ. یہ مشورہ دیا جاتا ہے کہ قابل اطلاق فنکشنز پر نان-ریٹرینسی گارڈ موڈیفائر رکھیں۔

3. نتیجہ

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

17 مناظر

ٹائم اسٹیمپ:

سے زیادہ Quillhash