مرکزی مواد پر جائیں
Change page

⁦سمارٹ کنٹریکٹس کا تعارف⁩

سمارٹ کنٹریکٹ کیا ہے؟

ایک "سمارٹ کنٹریکٹ" محض ایک پروگرام ہے جو ایتھیریم بلاک چین پر چلتا ہے۔ یہ کوڈ (اس کے فنکشنز) اور ڈیٹا (اس کی حالت) کا ایک مجموعہ ہے جو ایتھیریم بلاک چین پر ایک مخصوص پتہ پر موجود ہوتا ہے۔

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

پیشگی شرائط

اگر آپ نے ابھی شروعات کی ہے یا کم تکنیکی تعارف کی تلاش میں ہیں، تو ہم اپنے سمارٹ کنٹریکٹس کے تعارف کی سفارش کرتے ہیں۔

سمارٹ کنٹریکٹس کی دنیا میں قدم رکھنے سے پہلے یقینی بنائیں کہ آپ نے اکاؤنٹس، ٹرانزیکشنز اور ایتھیریم ورچوئل مشین کے بارے میں پڑھ لیا ہے۔

ایک ڈیجیٹل وینڈنگ مشین

شاید سمارٹ کنٹریکٹ کے لیے بہترین استعارہ ایک وینڈنگ مشین ہے، جیسا کہ نک سابو (opens in a new tab) نے بیان کیا ہے۔ درست ان پٹس کے ساتھ، ایک مخصوص آؤٹ پٹ کی ضمانت دی جاتی ہے۔

وینڈنگ مشین سے سنیک حاصل کرنے کے لیے:

رقم + سنیک کا انتخاب = سنیک فراہم کر دیا گیا

یہ منطق وینڈنگ مشین میں پروگرام کی گئی ہے۔

ایک سمارٹ کنٹریکٹ میں، وینڈنگ مشین کی طرح، منطق پروگرام کی گئی ہوتی ہے۔ یہاں ایک سادہ سی مثال ہے کہ یہ وینڈنگ مشین کیسی نظر آئے گی اگر یہ Solidity میں لکھا گیا ایک سمارٹ کنٹریکٹ ہو:

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

بلا اجازت

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

ایتھیریم میں سمارٹ کنٹریکٹس لکھنے کے لیے ڈیولپر دوست زبانیں موجود ہیں:

  • Solidity
  • Vyper

زبانوں کے بارے میں مزید

تاہم، انہیں تعینات کرنے سے پہلے مرتب (compile) کیا جانا چاہیے تاکہ ایتھیریم کی ورچوئل مشین کنٹریکٹ کی تشریح کر سکے اور اسے محفوظ کر سکے۔ تالیف (compilation) کے بارے میں مزید

ترکیب پذیری

سمارٹ کنٹریکٹس ایتھیریم پر عوامی ہوتے ہیں اور انہیں اوپن APIs کے طور پر سمجھا جا سکتا ہے۔ اس کا مطلب ہے کہ آپ اپنے سمارٹ کنٹریکٹ میں دیگر سمارٹ کنٹریکٹس کو کال کر سکتے ہیں تاکہ جو کچھ ممکن ہے اسے بہت حد تک بڑھایا جا سکے۔ کنٹریکٹس یہاں تک کہ دوسرے کنٹریکٹس کو بھی تعینات کر سکتے ہیں۔

سمارٹ کنٹریکٹ کی ترکیب پذیری کے بارے میں مزید جانیں۔

حدود

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

تاہم، بلاک چین ایپلی کیشنز کے لیے آف چین ڈیٹا استعمال کرنے کے قابل ہونا اہم ہے۔ اس کا حل اوریکلز (oracles) ہیں جو ایسے ٹولز ہیں جو آف چین ڈیٹا کو جذب کرتے ہیں اور اسے سمارٹ کنٹریکٹس کے لیے دستیاب بناتے ہیں۔

سمارٹ کنٹریکٹس کی ایک اور حد کنٹریکٹ کا زیادہ سے زیادہ سائز ہے۔ ایک سمارٹ کنٹریکٹ زیادہ سے زیادہ 24KB کا ہو سکتا ہے ورنہ اس کی گیس ختم ہو جائے گی۔ اس سے دی ڈائمنڈ پیٹرن (The Diamond Pattern) (opens in a new tab) کا استعمال کر کے بچا جا سکتا ہے۔

ملٹی سگ کنٹریکٹس

ملٹی سگ (متعدد-دستخط) کنٹریکٹس ایسے سمارٹ کنٹریکٹ اکاؤنٹس ہیں جنہیں ٹرانزیکشن انجام دینے کے لیے متعدد درست دستخطوں کا تقاضا ہوتا ہے۔ یہ ان کنٹریکٹس کے لیے ناکامی کے واحد مقامات (single points of failure) سے بچنے کے لیے بہت مفید ہے جن میں کافی مقدار میں ایتھر یا دیگر ٹوکنز موجود ہوں۔ ملٹی سگ کنٹریکٹ پر عمل درآمد اور کلید کے انتظام کی ذمہ داری کو متعدد فریقین کے درمیان بھی تقسیم کرتے ہیں اور کسی ایک نجی کلید کے ضائع ہونے سے فنڈز کے ناقابل واپسی نقصان کو روکتے ہیں۔ ان وجوہات کی بنا پر، ملٹی سگ کنٹریکٹس کو سادہ DAO گورننس کے لیے استعمال کیا جا سکتا ہے۔ ملٹی سگ کو عمل میں لانے کے لیے M ممکنہ قابل قبول دستخطوں میں سے N دستخطوں کا تقاضا ہوتا ہے (جہاں N ≤ M، اور M > 1N = 3, M = 5 اور N = 4, M = 7 عام طور پر استعمال ہوتے ہیں۔ ایک 4/7 ملٹی سگ کو سات ممکنہ درست دستخطوں میں سے چار کی ضرورت ہوتی ہے۔ اس کا مطلب ہے کہ اگر تین دستخط ضائع بھی ہو جائیں تب بھی فنڈز بازیافت کیے جا سکتے ہیں۔ اس صورت میں، اس کا مطلب یہ بھی ہے کہ کنٹریکٹ پر عمل درآمد کے لیے کلید رکھنے والوں کی اکثریت کا متفق ہونا اور دستخط کرنا ضروری ہے۔

سمارٹ کنٹریکٹ کے وسائل

اوپن زیپلن کنٹریکٹس - محفوظ سمارٹ کنٹریکٹ ڈیولپمنٹ کے لیے لائبریری۔

مزید مطالعہ

ٹیوٹوریلز: ایتھیریم پر سمارٹ کنٹریکٹ کے دستخط (EIP-1271)