System Design শেখো
শেখো / ব্লকচেইন ও ডিসেন্ট্রালাইজড

Blockchain কীভাবে কাজ করে

11 মিনিট Module 12 · Blockchain & Decentralized 🔥
এক নজরে
  • 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 LedgerDistributed 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-এর কারণে কারচুপি কার্যত অসম্ভব।

মিনি কুইজ

1. একটি block-এর ভেতরে আগের block-এর hash রাখা হয় কেন?

2. Distributed ledger-এর মূল বৈশিষ্ট্য কোনটি?

3. Immutability বলতে blockchain-এ কী বোঝায়?