ইথেরিয়াম অ্যাকাউন্ট
একটি ইথেরিয়াম অ্যাকাউন্ট হলো এমন একটি সত্তা যার একটি ইথার (ETH) ব্যালেন্স থাকে এবং যা ইথেরিয়ামে বার্তা পাঠাতে পারে। অ্যাকাউন্টগুলো ব্যবহারকারী-নিয়ন্ত্রিত হতে পারে বা স্মার্ট কন্ট্রাক্ট হিসেবে ডিপ্লয় করা যেতে পারে।
পূর্বশর্ত
এই পৃষ্ঠাটি আরও ভালোভাবে বোঝার জন্য, আমরা সুপারিশ করছি যে আপনি প্রথমে আমাদের ইথেরিয়ামের ভূমিকা পড়ে নিন।
অ্যাকাউন্টের ধরন
ইথেরিয়ামে দুই ধরনের অ্যাকাউন্ট রয়েছে:
- বাহ্যিকভাবে মালিকানাধীন অ্যাকাউন্ট (EOA) – প্রাইভেট কী আছে এমন যে কারো দ্বারা নিয়ন্ত্রিত
- চুক্তি অ্যাকাউন্ট – নেটওয়ার্কে ডিপ্লয় করা একটি স্মার্ট কন্ট্রাক্ট, যা কোড দ্বারা নিয়ন্ত্রিত। স্মার্ট কন্ট্রাক্ট সম্পর্কে জানুন
উভয় ধরনের অ্যাকাউন্টেরই যে ক্ষমতাগুলো রয়েছে:
- ETH এবং টোকেন গ্রহণ, ধারণ এবং প্রেরণ করা
- ডিপ্লয় করা স্মার্ট কন্ট্রাক্টের সাথে ইন্টারঅ্যাক্ট করা
মূল পার্থক্যগুলো
বাহ্যিকভাবে মালিকানাধীন
- একটি অ্যাকাউন্ট তৈরি করতে কোনো খরচ নেই
- ট্রানজ্যাকশন শুরু করতে পারে
- বাহ্যিকভাবে মালিকানাধীন অ্যাকাউন্টগুলোর মধ্যে ট্রানজ্যাকশন শুধুমাত্র ETH/টোকেন ট্রান্সফার হতে পারে
- ক্রিপ্টোগ্রাফিক কী-এর একটি জোড়া দিয়ে তৈরি: পাবলিক এবং প্রাইভেট কী যা অ্যাকাউন্টের কার্যকলাপ নিয়ন্ত্রণ করে
কন্ট্রাক্ট
- একটি কন্ট্রাক্ট তৈরি করতে খরচ হয় কারণ আপনি নেটওয়ার্ক স্টোরেজ ব্যবহার করছেন
- শুধুমাত্র একটি ট্রানজ্যাকশন গ্রহণের প্রতিক্রিয়ায় বার্তা পাঠাতে পারে
- একটি বাহ্যিক অ্যাকাউন্ট থেকে একটি চুক্তি অ্যাকাউন্টে ট্রানজ্যাকশন কোড ট্রিগার করতে পারে যা বিভিন্ন কাজ সম্পাদন করতে পারে, যেমন টোকেন ট্রান্সফার করা বা এমনকি একটি নতুন কন্ট্রাক্ট তৈরি করা
- চুক্তি অ্যাকাউন্টগুলোর কোনো প্রাইভেট কী থাকে না। এর পরিবর্তে, এগুলো স্মার্ট কন্ট্রাক্ট কোডের লজিক দ্বারা নিয়ন্ত্রিত হয়
একটি অ্যাকাউন্টের পর্যালোচনা
ইথেরিয়াম অ্যাকাউন্টের চারটি ফিল্ড রয়েছে:
nonce– একটি কাউন্টার যা একটি বাহ্যিকভাবে মালিকানাধীন অ্যাকাউন্ট থেকে পাঠানো ট্রানজ্যাকশনের সংখ্যা বা একটি চুক্তি অ্যাকাউন্ট দ্বারা তৈরি কন্ট্রাক্টের সংখ্যা নির্দেশ করে। প্রতিটি অ্যাকাউন্টের জন্য একটি নির্দিষ্ট নন্স সহ শুধুমাত্র একটি ট্রানজ্যাকশন কার্যকর করা যেতে পারে, যা রিপ্লে অ্যাটাক থেকে রক্ষা করে যেখানে স্বাক্ষরিত ট্রানজ্যাকশনগুলো বারবার ব্রডকাস্ট এবং পুনরায় কার্যকর করা হয়।balance– এই ঠিকানার মালিকানাধীন Wei-এর সংখ্যা। Wei হলো ETH-এর একটি ডিনোমিনেশন এবং প্রতি ETH-এ 1e+18 Wei থাকে।codeHash– এই হ্যাশটি ইথেরিয়াম ভার্চুয়াল মেশিন (EVM)-এ একটি অ্যাকাউন্টের কোড নির্দেশ করে। চুক্তি অ্যাকাউন্টগুলোতে কোড ফ্র্যাগমেন্ট প্রোগ্রাম করা থাকে যা বিভিন্ন অপারেশন সম্পাদন করতে পারে। যদি অ্যাকাউন্টটি একটি মেসেজ কল পায় তবে এই EVM কোডটি কার্যকর হয়। অন্যান্য অ্যাকাউন্ট ফিল্ডের মতো এটি পরিবর্তন করা যায় না। এই ধরনের সমস্ত কোড ফ্র্যাগমেন্ট পরবর্তীতে পুনরুদ্ধারের জন্য তাদের সংশ্লিষ্ট হ্যাশের অধীনে স্টেট ডেটাবেসে সংরক্ষিত থাকে। এই হ্যাশ মানটি codeHash হিসেবে পরিচিত। বাহ্যিকভাবে মালিকানাধীন অ্যাকাউন্টগুলোর জন্য, codeHash ফিল্ডটি একটি খালি স্ট্রিংয়ের হ্যাশ।storageRoot– কখনও কখনও স্টোরেজ হ্যাশ হিসেবে পরিচিত। একটি মার্কেল প্যাট্রিসিয়া ট্রাই-এর রুট নোডের একটি 256-বিট হ্যাশ যা অ্যাকাউন্টের স্টোরেজ কন্টেন্টগুলোকে এনকোড করে (256-বিট ইন্টিজার মানগুলোর মধ্যে একটি ম্যাপিং), যা 256-বিট ইন্টিজার কীগুলোর কেক্যাক-256 বিট হ্যাশ থেকে রিকার্সিভ লেংথ প্রিফিক্স (আরএলপি)-এনকোড করা 256-বিট ইন্টিজার মানগুলোর ম্যাপিং হিসেবে ট্রাই-তে এনকোড করা হয়। এই ট্রাইটি এই অ্যাকাউন্টের স্টোরেজ কন্টেন্টগুলোর হ্যাশ এনকোড করে এবং ডিফল্টভাবে খালি থাকে।
চিত্রটি Ethereum EVM illustrated (নতুন ট্যাবে খোলে) থেকে সংগৃহীত
বাহ্যিকভাবে মালিকানাধীন অ্যাকাউন্ট এবং কী পেয়ার
একটি অ্যাকাউন্ট এক জোড়া ক্রিপ্টোগ্রাফিক কী দিয়ে তৈরি: পাবলিক এবং প্রাইভেট। এগুলো প্রমাণ করতে সাহায্য করে যে একটি ট্রানজ্যাকশন আসলে প্রেরক দ্বারা স্বাক্ষরিত হয়েছিল এবং জালিয়াতি প্রতিরোধ করে। আপনার প্রাইভেট কী হলো যা আপনি ট্রানজ্যাকশন স্বাক্ষরকরণ করতে ব্যবহার করেন, তাই এটি আপনাকে আপনার অ্যাকাউন্টের সাথে যুক্ত ফান্ডের উপর নিয়ন্ত্রণ প্রদান করে। আপনি আসলে কখনোই ক্রিপ্টোকারেন্সি ধরে রাখেন না, আপনি প্রাইভেট কী ধরে রাখেন – ফান্ডগুলো সবসময় ইথেরিয়ামের লেজারে থাকে।
এটি ক্ষতিকারক ব্যক্তিদের ভুয়া ট্রানজ্যাকশন ব্রডকাস্ট করা থেকে বিরত রাখে কারণ আপনি সর্বদা একটি ট্রানজ্যাকশনের প্রেরককে যাচাই করতে পারেন।
যদি অ্যালিস তার নিজের অ্যাকাউন্ট থেকে ববের অ্যাকাউন্টে ইথার পাঠাতে চায়, তবে অ্যালিসকে একটি ট্রানজ্যাকশন রিকোয়েস্ট তৈরি করতে হবে এবং যাচাইকরণের জন্য এটি নেটওয়ার্কে পাঠাতে হবে। ইথেরিয়ামের পাবলিক-কী ক্রিপ্টোগ্রাফির ব্যবহার নিশ্চিত করে যে অ্যালিস প্রমাণ করতে পারে যে সে নিজেই ট্রানজ্যাকশন রিকোয়েস্টটি শুরু করেছিল। ক্রিপ্টোগ্রাফিক মেকানিজম ছাড়া, ইভ নামের একজন ক্ষতিকারক প্রতিপক্ষ সহজেই প্রকাশ্যে এমন একটি রিকোয়েস্ট ব্রডকাস্ট করতে পারে যা দেখতে অনেকটা "অ্যালিসের অ্যাকাউন্ট থেকে ইভের অ্যাকাউন্টে 5 ETH পাঠান" এর মতো, এবং কেউ যাচাই করতে পারবে না যে এটি অ্যালিসের কাছ থেকে আসেনি।
অ্যাকাউন্ট তৈরি
আপনি যখন একটি অ্যাকাউন্ট তৈরি করতে চান, তখন বেশিরভাগ লাইব্রেরি আপনার জন্য একটি র্যান্ডম প্রাইভেট কী তৈরি করবে।
একটি প্রাইভেট কী 64টি হেক্স ক্যারেক্টার দিয়ে তৈরি এবং এটি একটি পাসওয়ার্ড দিয়ে এনক্রিপ্ট করা যেতে পারে।
উদাহরণ:
fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036415f
পাবলিক কীটি উপবৃত্তাকার বক্ররেখা ডিজিটাল স্বাক্ষর অ্যালগরিদম (Elliptic Curve Digital Signature Algorithm) (নতুন ট্যাবে খোলে) ব্যবহার করে প্রাইভেট কী থেকে তৈরি করা হয়। আপনি পাবলিক কী-এর কেক্যাক-256 হ্যাশের শেষ 20 বাইট নিয়ে এবং শুরুতে 0x যোগ করে আপনার অ্যাকাউন্টের জন্য একটি পাবলিক ঠিকানা পান।
এর মানে হলো একটি বাহ্যিকভাবে মালিকানাধীন অ্যাকাউন্ট (EOA)-এর একটি 42-ক্যারেক্টারের ঠিকানা রয়েছে (20-বাইট সেগমেন্ট যা 40টি হেক্সাডেসিমাল ক্যারেক্টার এবং সাথে 0x প্রিফিক্স)।
উদাহরণ:
0x5e97870f263700f46aa00d967821199b9bc5a120
নিচের উদাহরণটি দেখায় কীভাবে একটি নতুন অ্যাকাউন্ট তৈরি করতে Clef (নতুন ট্যাবে খোলে) নামক একটি স্বাক্ষরকরণ টুল ব্যবহার করতে হয়। Clef হলো একটি অ্যাকাউন্ট ম্যানেজমেন্ট এবং স্বাক্ষরকরণ টুল যা ইথেরিয়াম ক্লায়েন্ট, Geth (নতুন ট্যাবে খোলে)-এর সাথে বান্ডেল হিসেবে আসে। clef newaccount কমান্ডটি একটি নতুন কী পেয়ার তৈরি করে এবং সেগুলোকে একটি এনক্রিপ্ট করা কীস্টোর-এ সেভ করে।
> clef newaccount --keystore <path>
Please enter a password for the new account to be created:
> <password>
------------
INFO [10-28|16:19:09.156] Your new key was generated address=0x5e97870f263700f46aa00d967821199b9bc5a120
WARN [10-28|16:19:09.306] Please backup your key file path=/home/user/go-ethereum/data/keystore/UTC--2022-10-28T15-19-08.000825927Z--5e97870f263700f46aa00d967821199b9bc5a120
WARN [10-28|16:19:09.306] Please remember your password!
Generated account 0x5e97870f263700f46aa00d967821199b9bc5a120
Geth ডকুমেন্টেশন (নতুন ট্যাবে খোলে)
আপনার প্রাইভেট কী থেকে নতুন পাবলিক কী তৈরি করা সম্ভব, কিন্তু আপনি পাবলিক কী থেকে প্রাইভেট কী তৈরি করতে পারবেন না। আপনার প্রাইভেট কীগুলো সুরক্ষিত রাখা অত্যন্ত গুরুত্বপূর্ণ এবং নামের মতোই, এগুলোকে গোপন (PRIVATE) রাখা উচিত।
বার্তা এবং ট্রানজ্যাকশন স্বাক্ষরকরণ করার জন্য আপনার একটি প্রাইভেট কী প্রয়োজন যা একটি স্বাক্ষর আউটপুট করে। এরপর অন্যরা আপনার পাবলিক কী বের করতে স্বাক্ষরটি নিতে পারে, যা বার্তার লেখককে প্রমাণ করে। আপনার অ্যাপ্লিকেশনে, আপনি নেটওয়ার্কে ট্রানজ্যাকশন পাঠাতে একটি JavaScript লাইব্রেরি ব্যবহার করতে পারেন।
চুক্তি অ্যাকাউন্ট
চুক্তি অ্যাকাউন্টগুলোরও একটি 42 ক্যারেক্টারের হেক্সাডেসিমাল ঠিকানা থাকে:
উদাহরণ:
0x06012c8cf97bead5deae237070f9587f8e7a266d
কন্ট্রাক্টের ঠিকানা সাধারণত তখন দেওয়া হয় যখন একটি কন্ট্রাক্ট ইথেরিয়াম ব্লকচেইন-এ ডিপ্লয় করা হয়। ঠিকানাটি আসে নির্মাতার ঠিকানা এবং সেই ঠিকানা থেকে পাঠানো ট্রানজ্যাকশনের সংখ্যা ("নন্স") থেকে। এভাবেই CREATE অপারেশন একটি ঠিকানা তৈরি করে।
কন্ট্রাক্টগুলো CREATE2 (নতুন ট্যাবে খোলে) দিয়েও ডিপ্লয় করা যেতে পারে, যা নির্মাতার ঠিকানা, নির্মাতার বেছে নেওয়া একটি মান ("সল্ট") এবং কন্ট্রাক্ট তৈরির কোডের একটি হ্যাশ থেকে ঠিকানা তৈরি করে। এতে কোনো নন্স জড়িত থাকে না, তাই কন্ট্রাক্টটির অস্তিত্ব থাকার আগেই ঠিকানাটি গণনা করা যেতে পারে এবং এর মধ্যে নির্মাতা যতগুলো ট্রানজ্যাকশনই পাঠাক না কেন এটি একই থাকে। এটি এমন একটি কন্ট্রাক্টকে রেফারেন্স করা সম্ভব করে যা এখনও ডিপ্লয় করা হয়নি।
ভ্যালিডেটর কী
ইথেরিয়ামে আরও এক ধরনের কী রয়েছে, যা ইথেরিয়াম প্রুফ-অফ-ওয়ার্ক (PoW) থেকে প্রুফ-অফ-স্টেক (PoS) ভিত্তিক ঐক্যমত-এ স্যুইচ করার সময় চালু করা হয়েছিল। এগুলো হলো 'BLS' কী এবং এগুলো ভ্যালিডেটর শনাক্ত করতে ব্যবহৃত হয়। নেটওয়ার্কের ঐক্যমত-এ পৌঁছানোর জন্য প্রয়োজনীয় ব্যান্ডউইথ কমাতে এই কীগুলোকে দক্ষতার সাথে একত্রিত করা যেতে পারে। এই কী অ্যাগ্রিগেশন ছাড়া একজন ভ্যালিডেটরের জন্য ন্যূনতম স্টেক অনেক বেশি হতো।
ভ্যালিডেটর কী সম্পর্কে আরও জানুন।
ওয়ালেট সম্পর্কে একটি নোট
একটি অ্যাকাউন্ট কোনো ওয়ালেট নয়। ওয়ালেট হলো একটি ইন্টারফেস বা অ্যাপ্লিকেশন যা আপনাকে আপনার ইথেরিয়াম অ্যাকাউন্টের সাথে ইন্টারঅ্যাক্ট করতে দেয়, সেটি বাহ্যিকভাবে মালিকানাধীন অ্যাকাউন্ট হোক বা চুক্তি অ্যাকাউন্ট।
একটি ভিজ্যুয়াল ডেমো
অস্টিন কীভাবে হ্যাশ ফাংশন এবং কী পেয়ার নিয়ে আলোচনা করেন তা দেখুন।
আরও পড়ুন
- ইথেরিয়াম অ্যাকাউন্ট বোঝা (নতুন ট্যাবে খোলে) - Etherscan
এমন কোনো কমিউনিটি রিসোর্স সম্পর্কে জানেন যা আপনাকে সাহায্য করেছে? এই পৃষ্ঠাটি সম্পাদনা করুন এবং এটি যোগ করুন!