ইথেরিয়াম অ্যাকাউন্ট
একটি ইথেরিয়াম অ্যাকাউন্ট হলো এমন একটি সত্তা যার একটি ইথার (ETH) ব্যালেন্স থাকে এবং যা ইথেরিয়ামে বার্তা পাঠাতে পারে। অ্যাকাউন্টগুলো ব্যবহারকারী দ্বারা নিয়ন্ত্রিত হতে পারে বা স্মার্ট কন্ট্রাক্ট হিসেবে ডিপ্লয় করা যেতে পারে।
পূর্বশর্ত
এই পৃষ্ঠাটি আরও ভালোভাবে বোঝার জন্য, আমরা সুপারিশ করছি যে আপনি প্রথমে আমাদের ইথেরিয়ামের ভূমিকা পড়ে নিন।
অ্যাকাউন্টের ধরন
ইথেরিয়ামে দুই ধরনের অ্যাকাউন্ট রয়েছে:
- এক্সটার্নালি-ওনড অ্যাকাউন্ট (EOA) – প্রাইভেট কী আছে এমন যে কারো দ্বারা নিয়ন্ত্রিত
- চুক্তি অ্যাকাউন্ট – নেটওয়ার্কে ডিপ্লয় করা একটি স্মার্ট কন্ট্রাক্ট, যা কোড দ্বারা নিয়ন্ত্রিত। স্মার্ট কন্ট্রাক্ট সম্পর্কে জানুন
উভয় ধরনের অ্যাকাউন্টেরই যে ক্ষমতাগুলো রয়েছে:
- ETH এবং টোকেন গ্রহণ, ধারণ এবং প্রেরণ করা
- ডিপ্লয় করা স্মার্ট কন্ট্রাক্টের সাথে ইন্টারঅ্যাক্ট করা
মূল পার্থক্যগুলো
এক্সটার্নালি-ওনড
- একটি অ্যাকাউন্ট তৈরি করতে কোনো খরচ নেই
- ট্রানজ্যাকশন শুরু করতে পারে
- এক্সটার্নালি-ওনড অ্যাকাউন্টগুলোর মধ্যে ট্রানজ্যাকশন শুধুমাত্র ETH/টোকেন ট্রান্সফার হতে পারে
- ক্রিপ্টোগ্রাফিক কী-এর একটি জোড়া দিয়ে তৈরি: পাবলিক এবং প্রাইভেট কী যা অ্যাকাউন্টের কার্যকলাপ নিয়ন্ত্রণ করে
কন্ট্রাক্ট
- একটি কন্ট্রাক্ট তৈরি করতে খরচ হয় কারণ আপনি নেটওয়ার্ক স্টোরেজ ব্যবহার করছেন
- শুধুমাত্র একটি ট্রানজ্যাকশন গ্রহণের প্রতিক্রিয়ায় বার্তা পাঠাতে পারে
- একটি এক্সটার্নাল অ্যাকাউন্ট থেকে একটি চুক্তি অ্যাকাউন্টে ট্রানজ্যাকশন কোড ট্রিগার করতে পারে যা বিভিন্ন কাজ সম্পাদন করতে পারে, যেমন টোকেন ট্রান্সফার করা বা এমনকি একটি নতুন কন্ট্রাক্ট তৈরি করা
- চুক্তি অ্যাকাউন্টের কোনো প্রাইভেট কী থাকে না। এর পরিবর্তে, এগুলো স্মার্ট কন্ট্রাক্ট কোডের লজিক দ্বারা নিয়ন্ত্রিত হয়
একটি অ্যাকাউন্টের পর্যালোচনা
ইথেরিয়াম অ্যাকাউন্টের চারটি ফিল্ড রয়েছে:
nonce– একটি কাউন্টার যা একটি এক্সটার্নালি-ওনড অ্যাকাউন্ট থেকে পাঠানো ট্রানজ্যাকশনের সংখ্যা বা একটি চুক্তি অ্যাকাউন্ট দ্বারা তৈরি কন্ট্রাক্টের সংখ্যা নির্দেশ করে। প্রতিটি অ্যাকাউন্টের জন্য একটি নির্দিষ্ট নন্স সহ শুধুমাত্র একটি ট্রানজ্যাকশন কার্যকর করা যেতে পারে, যা রিপ্লে অ্যাটাক থেকে রক্ষা করে যেখানে স্বাক্ষরিত ট্রানজ্যাকশনগুলো বারবার সম্প্রচার এবং পুনরায় কার্যকর করা হয়।balance– এই ঠিকানার মালিকানাধীন Wei-এর পরিমাণ। Wei হলো ETH-এর একটি একক এবং প্রতি ETH-এ 1e+18 Wei থাকে।codeHash– এই হ্যাশটি ইথেরিয়াম ভার্চুয়াল মেশিনে (EVM) একটি অ্যাকাউন্টের কোড নির্দেশ করে। চুক্তি অ্যাকাউন্টগুলোতে কোড ফ্র্যাগমেন্ট প্রোগ্রাম করা থাকে যা বিভিন্ন অপারেশন সম্পাদন করতে পারে। যদি অ্যাকাউন্টটি একটি মেসেজ কল পায় তবে এই EVM কোডটি কার্যকর হয়। অন্যান্য অ্যাকাউন্ট ফিল্ডের মতো এটি পরিবর্তন করা যায় না। এই ধরনের সমস্ত কোড ফ্র্যাগমেন্ট পরবর্তীতে পুনরুদ্ধারের জন্য তাদের সংশ্লিষ্ট হ্যাশের অধীনে স্টেট ডেটাবেসে সংরক্ষিত থাকে। এই হ্যাশ মানটি codeHash নামে পরিচিত। এক্সটার্নালি ওনড অ্যাকাউন্টগুলোর জন্য, codeHash ফিল্ডটি একটি খালি স্ট্রিংয়ের হ্যাশ।storageRoot– কখনও কখনও স্টোরেজ হ্যাশ হিসেবে পরিচিত। একটি মার্কেল প্যাট্রিসিয়া ট্রাই-এর রুট নোডের একটি 256-বিট হ্যাশ যা অ্যাকাউন্টের স্টোরেজ বিষয়বস্তু এনকোড করে (256-বিট পূর্ণসংখ্যার মানগুলোর মধ্যে একটি ম্যাপিং), যা 256-বিট পূর্ণসংখ্যার কীগুলোর কেক্যাক-২৫৬ হ্যাশ থেকে RLP-এনকোড করা 256-বিট পূর্ণসংখ্যার মানগুলোর ম্যাপিং হিসেবে ট্রাই-তে এনকোড করা হয়। এই ট্রাই এই অ্যাকাউন্টের স্টোরেজ বিষয়বস্তুর হ্যাশ এনকোড করে এবং ডিফল্টরূপে খালি থাকে।
চিত্রটি Ethereum EVM illustrated (opens in a new tab) থেকে সংগৃহীত
এক্সটার্নালি-ওনড অ্যাকাউন্ট এবং কী পেয়ার
একটি অ্যাকাউন্ট ক্রিপ্টোগ্রাফিক কী-এর একটি জোড়া দিয়ে তৈরি: পাবলিক এবং প্রাইভেট। এগুলো প্রমাণ করতে সাহায্য করে যে একটি ট্রানজ্যাকশন আসলে প্রেরক দ্বারা স্বাক্ষরিত হয়েছিল এবং জালিয়াতি প্রতিরোধ করে। আপনার প্রাইভেট কী হলো যা আপনি ট্রানজ্যাকশন স্বাক্ষর করতে ব্যবহার করেন, তাই এটি আপনাকে আপনার অ্যাকাউন্টের সাথে যুক্ত ফান্ডের উপর নিয়ন্ত্রণ প্রদান করে। আপনি আসলে কখনোই ক্রিপ্টোকারেন্সি ধরে রাখেন না, আপনি প্রাইভেট কী ধরে রাখেন – ফান্ডগুলো সবসময় ইথেরিয়ামের লেজারে থাকে।
এটি ক্ষতিকারক ব্যক্তিদের ভুয়া ট্রানজ্যাকশন সম্প্রচার করা থেকে বিরত রাখে কারণ আপনি সর্বদা একটি ট্রানজ্যাকশনের প্রেরককে যাচাই করতে পারেন।
যদি অ্যালিস তার নিজের অ্যাকাউন্ট থেকে ববের অ্যাকাউন্টে ইথার পাঠাতে চায়, তবে অ্যালিসকে একটি ট্রানজ্যাকশন রিকোয়েস্ট তৈরি করতে হবে এবং যাচাইকরণের জন্য এটি নেটওয়ার্কে পাঠাতে হবে। ইথেরিয়ামের পাবলিক-কী ক্রিপ্টোগ্রাফির ব্যবহার নিশ্চিত করে যে অ্যালিস প্রমাণ করতে পারে যে সে নিজেই ট্রানজ্যাকশন রিকোয়েস্টটি শুরু করেছিল। ক্রিপ্টোগ্রাফিক মেকানিজম ছাড়া, ইভ নামের একজন ক্ষতিকারক প্রতিপক্ষ সহজেই প্রকাশ্যে এমন একটি রিকোয়েস্ট সম্প্রচার করতে পারে যা দেখতে অনেকটা “অ্যালিসের অ্যাকাউন্ট থেকে ইভের অ্যাকাউন্টে 5 ETH পাঠান” এর মতো, এবং কেউ যাচাই করতে পারবে না যে এটি অ্যালিসের কাছ থেকে আসেনি।
অ্যাকাউন্ট তৈরি
আপনি যখন একটি অ্যাকাউন্ট তৈরি করতে চান, তখন বেশিরভাগ লাইব্রেরি আপনাকে একটি র্যান্ডম প্রাইভেট কী তৈরি করে দেবে।
একটি প্রাইভেট কী 64টি হেক্স ক্যারেক্টার দিয়ে তৈরি এবং এটি একটি পাসওয়ার্ড দিয়ে এনক্রিপ্ট করা যেতে পারে।
উদাহরণ:
fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036415f
পাবলিক কীটি উপবৃত্তাকার বক্ররেখা ডিজিটাল স্বাক্ষর অ্যালগরিদম (Elliptic Curve Digital Signature Algorithm) (opens in a new tab) ব্যবহার করে প্রাইভেট কী থেকে তৈরি করা হয়। আপনি পাবলিক কী-এর কেক্যাক-২৫৬ হ্যাশের শেষ 20 বাইট নিয়ে এবং শুরুতে 0x যোগ করে আপনার অ্যাকাউন্টের জন্য একটি পাবলিক ঠিকানা পান।
এর মানে হলো একটি এক্সটার্নালি ওনড অ্যাকাউন্টের (EOA) একটি 42-ক্যারেক্টারের ঠিকানা থাকে (20-বাইট সেগমেন্ট যা 40টি হেক্সাডেসিমেল ক্যারেক্টার এবং সাথে 0x প্রিফিক্স)।
উদাহরণ:
0x5e97870f263700f46aa00d967821199b9bc5a120
নিচের উদাহরণটি দেখায় কীভাবে একটি নতুন অ্যাকাউন্ট তৈরি করতে Clef (opens in a new tab) নামক একটি স্বাক্ষরকরণ টুল ব্যবহার করতে হয়। Clef হলো একটি অ্যাকাউন্ট ম্যানেজমেন্ট এবং স্বাক্ষরকরণ টুল যা ইথেরিয়াম ক্লায়েন্ট, গো ইথেরিয়াম (geth) (opens in a new tab)-এর সাথে বান্ডিল হিসেবে আসে। 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 ডকুমেন্টেশন (opens in a new tab)
আপনার প্রাইভেট কী থেকে নতুন পাবলিক কী তৈরি করা সম্ভব, কিন্তু আপনি পাবলিক কী থেকে প্রাইভেট কী তৈরি করতে পারবেন না। আপনার প্রাইভেট কীগুলো সুরক্ষিত রাখা অত্যন্ত গুরুত্বপূর্ণ এবং নাম থেকেই বোঝা যায়, এগুলো গোপন (PRIVATE) রাখা উচিত।
বার্তা এবং ট্রানজ্যাকশন স্বাক্ষর করার জন্য আপনার একটি প্রাইভেট কী প্রয়োজন যা একটি স্বাক্ষর আউটপুট করে। অন্যরা তখন আপনার পাবলিক কী বের করতে স্বাক্ষরটি নিতে পারে, যা বার্তার লেখককে প্রমাণ করে। আপনার অ্যাপ্লিকেশনে, আপনি নেটওয়ার্কে ট্রানজ্যাকশন পাঠাতে একটি JavaScript লাইব্রেরি ব্যবহার করতে পারেন।
চুক্তি অ্যাকাউন্ট
চুক্তি অ্যাকাউন্টগুলোরও একটি 42 ক্যারেক্টারের হেক্সাডেসিমেল ঠিকানা থাকে:
উদাহরণ:
0x06012c8cf97bead5deae237070f9587f8e7a266d
ইথেরিয়াম ব্লকচেইনে একটি কন্ট্রাক্ট ডিপ্লয় করার সময় সাধারণত কন্ট্রাক্টের ঠিকানা দেওয়া হয়। ঠিকানাটি নির্মাতার ঠিকানা এবং সেই ঠিকানা থেকে পাঠানো ট্রানজ্যাকশনের সংখ্যা (“নন্স”) থেকে আসে।
ভ্যালিডেটর কী
ইথেরিয়ামে আরও এক ধরনের কী রয়েছে, যা ইথেরিয়াম প্রুফ-অফ-ওয়ার্ক (PoW) থেকে প্রুফ-অফ-স্টেক (PoS) ভিত্তিক ঐক্যমতে স্যুইচ করার সময় চালু করা হয়েছিল। এগুলো হলো 'BLS' কী এবং এগুলো ভ্যালিডেটরদের শনাক্ত করতে ব্যবহৃত হয়। নেটওয়ার্কের ঐক্যমতে পৌঁছানোর জন্য প্রয়োজনীয় ব্যান্ডউইথ কমাতে এই কীগুলোকে দক্ষতার সাথে একত্রিত করা যেতে পারে। এই কী একত্রীকরণ ছাড়া একজন ভ্যালিডেটরের জন্য ন্যূনতম স্টেক অনেক বেশি হতো।
ভ্যালিডেটর কী সম্পর্কে আরও জানুন।
ওয়ালেট সম্পর্কে একটি নোট
একটি অ্যাকাউন্ট কোনো ওয়ালেট নয়। ওয়ালেট হলো একটি ইন্টারফেস বা অ্যাপ্লিকেশন যা আপনাকে আপনার ইথেরিয়াম অ্যাকাউন্টের সাথে ইন্টারঅ্যাক্ট করতে দেয়, সেটি এক্সটার্নালি-ওনড অ্যাকাউন্ট হোক বা চুক্তি অ্যাকাউন্ট।
একটি ভিজ্যুয়াল ডেমো
অস্টিনের তৈরি হ্যাশ ফাংশন এবং কী পেয়ারের ওয়াকথ্রু ভিডিওটি দেখুন।
আরও পড়ুন
- ইথেরিয়াম অ্যাকাউন্ট বোঝা (opens in a new tab) - Etherscan
এমন কোনো কমিউনিটি রিসোর্স সম্পর্কে জানেন যা আপনাকে সাহায্য করেছে? এই পৃষ্ঠাটি সম্পাদনা করুন এবং এটি যোগ করুন!