Blockchain কীভাবে কাজ করে
- ●Blockchain হলো block-এর একটি chain, যেখানে প্রতিটি block আগের block-এর hash ধরে রাখে।
- ●এটি একটি distributed ledger — অনেক node-এ একই কপি থাকে, কোনো একক কর্তৃপক্ষ নেই।
- ●একটি পুরোনো block পরিবর্তন করলে পরবর্তী সব hash বদলে যায়, তাই tampering সহজে ধরা পড়ে।
সমস্যাটা কী?
ধরো তুমি আর তোমার চার বন্ধু মিলে একটা যৌথ হিসাব রাখছ — কে কাকে কত টাকা দিল। সাধারণভাবে একজন একটা খাতা রাখবে, সেই খাতাই "সত্য"। কিন্তু সমস্যা হলো — সেই একজন যদি গোপনে একটা এন্ট্রি বদলে দেয়? অথবা খাতাটা হারিয়ে যায়? পুরো হিসাবের ওপর আস্থা নির্ভর করছে একটি মাত্র কেন্দ্রের ওপর।
ব্যাংক, ভোটিং সিস্টেম, জমির রেকর্ড — সবখানেই এই একই সমস্যা: আমরা একটি কেন্দ্রীয় কর্তৃপক্ষের ওপর বিশ্বাস করতে বাধ্য হই। কিন্তু যদি এমন একটা ব্যবস্থা বানানো যায় যেখানে কেউই কেন্দ্রীয় মালিক নয়, অথচ সবাই একই হিসাবে একমত — এবং কেউ চুপিচুপি পুরোনো রেকর্ড বদলালে সঙ্গে সঙ্গে ধরা পড়ে?
ঠিক এই সমস্যার একটি প্রযুক্তিগত উত্তর হলো Blockchain।
মূল ধারণা
Blockchain হলো একটি distributed, append-only ledger — যেখানে data গুলো "block" আকারে সাজানো এবং প্রতিটি block ক্রিপ্টোগ্রাফিক Hash দিয়ে আগের block-এর সাথে শৃঙ্খলিত (chained)। কোনো একক কর্তৃপক্ষ নয়, বহু Node মিলে এই ledger-এর কপি রাখে ও যাচাই করে।
মূল কথাটা তিনটি শব্দে: distributed (বিতরণকৃত), append-only (শুধু যোগ করা যায়, পেছনে গিয়ে বদলানো যায় না), এবং tamper-evident (কারচুপি করলে ধরা পড়ে)।
এখানে "tamper-proof" না বলে "tamper-evident" বলাটা গুরুত্বপূর্ণ। অর্থাৎ কেউ চাইলে নিজের কপিতে data বদলাতে পারে, কিন্তু সেটা বদলালে সঙ্গে সঙ্গে অন্যদের কাছ থেকে আলাদা হয়ে যায় — তাই কারচুপি লুকিয়ে রাখা যায় না।
কীভাবে কাজ করে
Block-এর গঠন
প্রতিটি block-এ মোটামুটি তিন ধরনের জিনিস থাকে:
- Data / Transactions — কে কাকে কত পাঠাল, এই রকম রেকর্ড।
- নিজের Hash — পুরো block-এর content থেকে গণিত একটি অনন্য fingerprint।
- আগের block-এর Hash — যেটা এই block-কে chain-এ যুক্ত করে।
Block 0 (Genesis) Block 1 Block 2
+------------------+ +------------------+ +------------------+
| prevHash: 0000 | | prevHash: a1b2.. | | prevHash: 9f3c.. |
| data: ... | | data: ... | | data: ... |
| hash: a1b2.. | ---> | hash: 9f3c.. | ---> | hash: 7d4e.. |
+------------------+ +------------------+ +------------------+
লক্ষ্য করো — Block 1-এর prevHash হলো Block 0-এর hash। এভাবেই block গুলো একটার পেছনে আরেকটা শৃঙ্খলিত হয়।
Hash কীভাবে chain বানায়
একটি cryptographic hash function (যেমন SHA-256) যেকোনো input থেকে একটি নির্দিষ্ট দৈর্ঘ্যের output দেয়, এবং input-এ সামান্য পরিবর্তনেও output সম্পূর্ণ বদলে যায়। যেহেতু প্রতিটি block-এর hash তার নিজের data + আগের block-এর hash মিলিয়ে গণিত হয়, একটা পুরোনো block-এর একটি অক্ষর বদলালে তার hash বদলায়, ফলে পরের block-এর prevHash আর মেলে না, ফলে পরের block-এর hash-ও ভুল হয়ে যায় — এভাবে domino effect-এ পুরো chain ভেঙে পড়ে।
Distributed Ledger ও Node
একটি blockchain network-এ অনেক node থাকে — প্রতিটি node ledger-এর একটি সম্পূর্ণ (বা আংশিক) কপি রাখে। নতুন transaction হলে তা সব node-এ ছড়িয়ে পড়ে, এবং একটি নতুন block যোগ হলে সবাই নিজের কপি আপডেট করে। কোনো node হ্যাক বা বন্ধ হলেও বাকিরা সঠিক কপি ধরে রাখে।
Centralized বনাম Distributed
| বৈশিষ্ট্য | Centralized Ledger | Distributed Ledger (Blockchain) |
|---|---|---|
| কপির সংখ্যা | একটি (কেন্দ্রীয়) | বহু node-এ অনেক কপি |
| বিশ্বাসের ভিত্তি | একক কর্তৃপক্ষ | যাচাইযোগ্য নিয়ম ও consensus |
| Single point of failure | আছে | নেই (বা অনেক কম) |
| Tampering | লুকিয়ে রাখা সহজ হতে পারে | সঙ্গে সঙ্গে ধরা পড়ে |
| গতি | সাধারণত দ্রুত | তুলনামূলক ধীর |
ভাবো, একটা পাড়ার সমিতির মাসিক চাঁদার খাতা। সাধারণত একজন কোষাধ্যক্ষ খাতা রাখেন (centralized)। এবার কল্পনা করো — সমিতির ৫০ জন সদস্যের প্রত্যেকের কাছে একই খাতার হুবহু কপি আছে, আর প্রতিটি পৃষ্ঠার নিচে আগের পৃষ্ঠার একটা সিল-নম্বর লেখা থাকে যা আগের পৃষ্ঠার লেখার ওপর নির্ভর করে। এখন কোষাধ্যক্ষ যদি গোপনে তিন মাস আগের একটা এন্ট্রি বদলান, তাঁর খাতার পরের সব সিল-নম্বর বদলে যাবে — আর সেটা বাকি ৪৯ জনের খাতার সাথে মিলবে না। সবাই বুঝে যাবে কারচুপি হয়েছে। এটাই blockchain-এর tamper-evidence।
প্রকারভেদ
Blockchain মূলত কয়েক ধরনের হয়, কে অংশ নিতে পারে তার ভিত্তিতে:
- Public / Permissionless — যে কেউ node চালাতে ও transaction পাঠাতে পারে (যেমন Bitcoin, Ethereum)।
- Private / Permissioned — শুধু অনুমোদিত পক্ষরা অংশ নিতে পারে; প্রতিষ্ঠানের অভ্যন্তরীণ ব্যবহারে দেখা যায়।
- Consortium — কয়েকটি প্রতিষ্ঠান মিলে যৌথভাবে network চালায়।
আরেকটি গুরুত্বপূর্ণ ভাগ হলো consensus পদ্ধতি — কীভাবে node-রা পরবর্তী block-এ একমত হয় (Proof of Work, Proof of Stake ইত্যাদি)। সেটি একটি আলাদা গভীর বিষয়।
কখন ব্যবহার করবে / করবে না
Blockchain উপযুক্ত হতে পারে যখন:
- একাধিক পক্ষ আছে যারা একে অপরকে পুরোপুরি বিশ্বাস করে না, কিন্তু একটি যৌথ, যাচাইযোগ্য রেকর্ড দরকার।
- কোনো নিরপেক্ষ মধ্যস্থতাকারী রাখা কঠিন বা অবাঞ্ছিত।
- রেকর্ডের audit trail ও tamper-evidence গুরুত্বপূর্ণ।
ব্যবহার না করাই ভালো যখন:
- একটি বিশ্বস্ত কেন্দ্রীয় পক্ষ ইতিমধ্যে আছে এবং একটি সাধারণ database যথেষ্ট।
- উচ্চ throughput বা কম latency দরকার (অনেক blockchain ধীর)।
- গোপনীয়তা মুখ্য — public chain-এ data সবার দৃশ্যমান।
Blockchain "সবকিছুর সমাধান" নয়। বেশিরভাগ ব্যবসায়িক সমস্যায় একটি ভালো centralized database অনেক বেশি সস্তা, দ্রুত ও সহজ। "আমাদের কি সত্যিই decentralization দরকার, নাকি শুধু একটা ভালো database দরকার?" — এই প্রশ্নটা আগে করো।
বাস্তব উদাহরণ
Bitcoin হলো প্রথম বড় blockchain (2009)। এর ledger-এ শুধু কে কাকে কত bitcoin পাঠাল সেই transaction থাকে। প্রতিটি block-এ অনেক transaction থাকে, এবং প্রতি প্রায় ১০ মিনিটে একটি নতুন block যোগ হয়। হাজার হাজার node সারা বিশ্বে এই ledger-এর কপি রাখে।
Ethereum একই ধারণা নিয়েছে কিন্তু আরও এগিয়ে — শুধু লেনদেন নয়, এর block-এ programmable smart contract-এর কোড ও অবস্থা থাকে। তাই Ethereum-কে অনেকে "world computer"-এর ledger বলে। তবে এখানেও মূল ভিত্তি একই: hash দিয়ে শৃঙ্খলিত block, বহু node-এ distributed কপি, এবং tamper-evidence।
ইন্টারভিউতে যদি জিজ্ঝাসা করে "blockchain কেন tamper-proof?" — তাহলে শুধু "এনক্রিপ্টেড" বোলো না (এটা ভুল ধারণা)। বরং বলো: প্রতিটি block আগের block-এর hash ধরে রাখে, তাই একটি পুরোনো block বদলালে পরবর্তী সব hash পুনর্গণনা করতে হয় এবং তা network-এর সংখ্যাগরিষ্ঠ node-এর কপির সাথে মিলবে না — অর্থাৎ এটি tamper-evident, এবং consensus-এর কারণে কারচুপি কার্যত অসম্ভব।
মূল শব্দ (Key Terms)
মিনি কুইজ
1. একটি block-এর ভেতরে আগের block-এর hash রাখা হয় কেন?
2. Distributed ledger-এর মূল বৈশিষ্ট্য কোনটি?
3. Immutability বলতে blockchain-এ কী বোঝায়?