ব্লকচেইনকে Chain of Blocks হিসেবে সংজ্ঞায়িত করা যায়, যেখানে প্রতিটি ব্লকে নির্দিষ্ট তথ্য থাকে। এটি একটি লেজার (Ledger), অর্থাৎ একটি ফাইল যা ক্রমাগত বাড়তে থাকে এবং সব লেনদেনের রেকর্ড স্থায়ীভাবে সংরক্ষণ করে। এই প্রক্রিয়াটি সুরক্ষিত, কালানুক্রমিক (chronological) এবং অপরিবর্তনীয় (immutable) উপায়ে ঘটে। যখন একটি ব্লক তথ্য সংরক্ষণে পূর্ণ হয়, তখন একটি নতুন ব্লক তৈরি হয়।
এই আর্টিকেলে আমরা ব্লকচেইনের সংজ্ঞা, মূল বৈশিষ্ট্য এবং ১৯৯১ থেকে ২০২২ সাল পর্যন্ত বিবর্তনের ইতিহাস নিয়ে আলোচনা করব। সাথে থাকবে প্রতিটি টেকনিক্যাল টার্মের উদাহরণ, কোড সিনট্যাক্স এবং প্র্যাকটিস এক্সারসাইজ।
🔍 ব্লকচেইন কী? (Definition)
ব্লকচেইন হলো ব্লকের চেইন, যেখানে প্রতিটি ব্লক কিছু নির্দিষ্ট তথ্য ধারণ করে। এটি একটি লেজার বা ফাইল, যা ক্রমাগত বাড়তে থাকে এবং সব লেনদেনের রেকর্ড স্থায়ীভাবে রাখে। এই প্রক্রিয়াটি:
- সুরক্ষিত (Secure): ক্রিপ্টোগ্রাফি ব্যবহার করে ডেটা সুরক্ষিত থাকে।
- কালানুক্রমিক (Chronological): প্রতিটি লেনদেন আগের লেনদেনের পরে ঘটে।
- অপরিবর্তনীয় (Immutable): একবার রেকর্ড হয়ে গেলে তা পরিবর্তন বা মুছে ফেলা প্রায় অসম্ভব।
যখন একটি ব্লক তথ্য সংরক্ষণে পূর্ণ হয়, তখন নতুন একটি ব্লক তৈরি হয় এবং আগের ব্লকের সাথে যুক্ত হয়।
📦 Block ও Blockchain এর উদাহরণ (Python)
python
import hashlib
import time
class Block:
def __init__(self, index, timestamp, data, previous_hash):
self.index = index
self.timestamp = timestamp
self.data = data
self.previous_hash = previous_hash
self.hash = self.calculate_hash()
def calculate_hash(self):
block_string = f"{self.index}{self.timestamp}{self.data}{self.previous_hash}"
return hashlib.sha256(block_string.encode()).hexdigest()
class Blockchain:
def __init__(self):
self.chain = [self.create_genesis_block()]
def create_genesis_block(self):
return Block(0, time.time(), "Genesis Block", "0")
def add_block(self, data):
prev = self.chain[-1]
new_block = Block(len(self.chain), time.time(), data, prev.hash)
self.chain.append(new_block)
# ব্যবহার
my_blockchain = Blockchain()
my_blockchain.add_block("Transaction 1: Alice pays Bob 5 BTC")
my_blockchain.add_block("Transaction 2: Bob pays Charlie 2 BTC")
for block in my_blockchain.chain:
print(f"Block #{block.index} | Hash: {block.hash[:10]}... | Prev: {block.previous_hash[:10]}...")
ব্যাখ্যা:
- প্রতিটি ব্লকে
timestampথাকে, যা কালানুক্রমিক ক্রম নিশ্চিত করে। - প্রতিটি ব্লকের
hashআগের ব্লকেরprevious_hashএর উপর নির্ভরশীল। কোনো ব্লকের ডেটা বদলালে হ্যাশ বদলে যায় এবং চেইন ভেঙে যায়—এটাই immutability নিশ্চিত করে।
🧱 ব্লকচেইনের মূল বৈশিষ্ট্য
| বৈশিষ্ট্য | ব্যাখ্যা |
|---|---|
| Ledger | একটি ফাইল যা সব লেনদেন স্থায়ীভাবে সংরক্ষণ করে |
| Chronological | প্রতিটি লেনদেন আগেরটির পরে ঘটে, টাইমস্ট্যাম্প থাকে |
| Immutable | একবার যুক্ত হলে পরিবর্তন/মুছে ফেলা যায় না |
| Secure | ক্রিপ্টোগ্রাফিক হ্যাশ ও ডিজিটাল সিগনেচার ব্যবহৃত হয় |
📜 ব্লকচেইনের ইতিহাস ও বিবর্তন (History and Evolution)
১৯৯১: ব্লকচেইনের সূচনা
গবেষক Stuart Haber এবং W. Scott Stornetta ব্লকচেইন প্রযুক্তি প্রবর্তন করেন। তাঁদের লক্ষ্য ছিল ডিজিটাল ডকুমেন্টকে time-stamp করার একটি বাস্তব সমাধান তৈরি করা, যাতে সেগুলোকে টেম্পার বা মিসডেট করা না যায়। তাঁরা ক্রিপ্টোগ্রাফির সাহায্যে একটি সিস্টেম তৈরি করেন, যেখানে time-stamped ডকুমেন্টগুলো Chain of Blocks-এ সংরক্ষিত হয়।
⏱️ Time-stamping এবং Hashing এর উদাহরণ
python
import hashlib
import time
document = "Contract: Sell 100 shares"
timestamp = str(time.time())
# ডকুমেন্ট + টাইমস্ট্যাম্প হ্যাশ করা
hash_value = hashlib.sha256((document + timestamp).encode()).hexdigest()
print(f"Timestamped Hash: {hash_value}")
ব্যাখ্যা:
Time-stamping নিশ্চিত করে ডকুমেন্টটি ঠিক কোন সময়ে তৈরি হয়েছিল। হ্যাশিং ডকুমেন্টটিকে একটি ইউনিক ফিঙ্গারপ্রিন্ট দেয়; ডকুমেন্টে সামান্য পরিবর্তন হলেও হ্যাশ সম্পূর্ণ বদলে যায়।
১৯৯২: Merkle Trees
১৯৯২ সালে Merkle Trees একটি আইনি কর্পোরেশন গঠন করে, যা Haber ও Stornetta-র সিস্টেমকে আরও ফিচার যোগ করে উন্নত করে। এর ফলে ব্লকচেইন একাধিক ডকুমেন্টকে একটি ব্লকে সংগ্রহ করতে সক্ষম হয়। Merkle একটি Secured Chain of Blocks ব্যবহার করেন, যা একাধিক ডেটা রেকর্ড ক্রমানুসারে সংরক্ষণ করে।
🌳 Merkle Tree এর উদাহরণ
python
import hashlib
def merkle_root(transactions):
if len(transactions) == 1:
return transactions[0]
next_level = []
for i in range(0, len(transactions) - 1, 2):
combined = transactions[i] + transactions[i + 1]
next_level.append(hashlib.sha256(combined.encode()).hexdigest())
if len(transactions) % 2 == 1:
next_level.append(transactions[-1])
return merkle_root(next_level)
# লেনদেনের হ্যাশ তালিকা
tx_hashes = [
hashlib.sha256("tx1".encode()).hexdigest(),
hashlib.sha256("tx2".encode()).hexdigest(),
hashlib.sha256("tx3".encode()).hexdigest(),
hashlib.sha256("tx4".encode()).hexdigest()
]
root = merkle_root(tx_hashes)
print(f"Merkle Root: {root}")
ব্যাখ্যা:
Merkle Tree-তে প্রতিটি লিফ নোড একটি লেনদেনের হ্যাশ, এবং অভিভাবক নোড তার সন্তানদের হ্যাশের সমন্বয়ে তৈরি হয়। শীর্ষে থাকে Merkle Root, যা পুরো লেনদেনের সেটের একটি সংক্ষিপ্ত প্রতিনিধিত্ব করে। এটি ডেটার অখণ্ডতা দ্রুত যাচাই করতে সাহায্য করে।
২০০৪ সালে পেটেন্টের কারণে এই প্রযুক্তি কিছুদিন অব্যবহৃত ছিল।
২০০০: Stefan Konst এর তত্ত্ব
Stefan Konst ক্রিপ্টোগ্রাফিক সিকিউরড চেইনের তত্ত্ব এবং এর বাস্তবায়নের ধারণা প্রকাশ করেন। এটি ব্লকচেইনের নিরাপত্তা মডেলের ভিত্তি আরও শক্ত করে।
২০০৪: Hal Finney এবং Reusable Proof of Work
ক্রিপ্টোগ্রাফিক অ্যাক্টিভিস্ট Hal Finney ডিজিটাল ক্যাশের জন্য “Reusable Proof of Work” সিস্টেম প্রবর্তন করেন। এটি ব্লকচেইন ও ক্রিপ্টোগ্রাফির ইতিহাসে একটি গেম-চেঞ্জার। এই সিস্টেম Double Spending Problem সমাধানে সাহায্য করে, কারণ টোকেনের মালিকানা একটি বিশ্বস্ত সার্ভারে নিবন্ধিত থাকে।
💸 Double Spending Problem
একই ডিজিটাল টোকেন একাধিকবার খরচ করার চেষ্টা করাকে Double Spending বলে। Traditional ডিজিটাল ক্যাশে এটি একটি বড় সমস্যা ছিল।
python
# Double Spending এর ধারণা
class DigitalCash:
def __init__(self):
self.balance = 100
def spend(self, amount):
if self.balance >= amount:
self.balance -= amount
print(f"Spent {amount}. Remaining: {self.balance}")
else:
print("Insufficient balance!")
# সমস্যা: একই কয়েন দুই জায়গায় খরচ
cash = DigitalCash()
cash.spend(60) # প্রথম লেনদেন
# হ্যাকার যদি একই 60 আবার খরচ করতে চায়? centralized ledger না থাকলে সম্ভব
PoW এই সমস্যার সমাধান আনে কম্পিউটেশনাল কাজের মাধ্যমে লেনদেন যাচাই করে।
🔨 Proof of Work এর উদাহরণ
python
import hashlib
def proof_of_work(block_data, difficulty=4):
nonce = 0
prefix = '0' * difficulty
while True:
hash_val = hashlib.sha256(f"{block_data}{nonce}".encode()).hexdigest()
if hash_val.startswith(prefix):
return nonce, hash_val
nonce += 1
nonce, valid_hash = proof_of_work("Block Data: Alice pays Bob 5 BTC")
print(f"Nonce: {nonce}")
print(f"Valid Hash: {valid_hash}")
ব্যাখ্যা:
মাইনাররা একটি নির্দিষ্ট সংখ্যক শূন্য দিয়ে শুরু হওয়া হ্যাশ খুঁজতে কম্পিউটেশনাল কাজ করে। এটি প্রতারণা প্রতিরোধ করে এবং নেটওয়ার্কে ঐকমত্য (consensus) আনে।
২০০৮: Satoshi Nakamoto এবং Distributed Blockchain
Satoshi Nakamoto ছদ্মনামে একজন ব্যক্তি বা গোষ্ঠী “Distributed Blockchain” এর ধারণা তাঁর হোয়াইট পেপার “A Peer to Peer Electronic Cash System”-এ উপস্থাপন করেন। তিনি Merkle Tree মডেল পরিবর্তন করে আরও নিরাপদ একটি সিস্টেম তৈরি করেন, যা নিরাপদ ডেটা এক্সচেঞ্জের ইতিহাস ধরে রাখে। এই সিস্টেম একটি peer-to-peer নেটওয়ার্ক ব্যবহার করে time-stamping করে।
🌐 Peer-to-Peer Network এর উদাহরণ (JavaScript)
javascript
// P2P নেটওয়ার্ক সিমুলেশন
const peers = new Map();
function addPeer(address) {
peers.set(address, { blockchain: [] });
console.log(`Peer added: ${address}`);
}
function broadcastBlock(block) {
for (const [address, peer] of peers.entries()) {
peer.blockchain.push(block);
console.log(`Block broadcasted to ${address}`);
}
}
addPeer("node-1");
addPeer("node-2");
addPeer("node-3");
const genesisBlock = { index: 0, data: "Genesis" };
broadcastBlock(genesisBlock);
ব্যাখ্যা:
একটি Distributed Blockchain-এ কোনো কেন্দ্রীয় সার্ভার নেই। প্রতিটি নোড (peer) ব্লকচেইনের কপি রাখে এবং নতুন ব্লক সবাইকে ব্রডকাস্ট করা হয়। এটি একক কর্তৃপক্ষ ছাড়াই নেটওয়ার্ক চালু রাখে।
২০০৯: Bitcoin White Paper এবং James Howells এর গল্প
২০০৯ সালে Satoshi Nakamoto Bitcoin White Paper প্রকাশ করেন। ব্লকচেইন প্রযুক্তি এতটাই নিরাপদ যে তার প্রমাণ দেয় একটি বিখ্যাত ঘটনা।
James Howells, যুক্তরাজ্যের একজন IT কর্মী, ২০০৯ সালে বিটকয়েন মাইনিং শুরু করেন এবং ২০১৩ সালে থামেন। তিনি ১৭,০০০ ডলার খরচ করেছিলেন। পরে তিনি ল্যাপটপের কিছু অংশ eBay-তে বিক্রি করে দেন এবং হার্ড ড্রাইভটি রেখে দেন। ২০১৩ সালে ঘর পরিষ্কার করতে গিয়ে তিনি ভুলবশত ড্রাইভটি ময়লার সাথে ফেলে দেন। আজ সেই বিটকয়েনগুলোর মূল্য প্রায় $127 মিলিয়ন, যা এখনও Bitcoin সিস্টেমে দাবিহীন অবস্থায় পড়ে আছে।
⛏️ Bitcoin Mining এর সিমুলেশন (Python)
python
import hashlib
def mine_bitcoin_block(block_number, transactions, previous_hash, difficulty=4):
nonce = 0
prefix = '0' * difficulty
while True:
data = f"{block_number}{transactions}{previous_hash}{nonce}"
hash_val = hashlib.sha256(data.encode()).hexdigest()
if hash_val.startswith(prefix):
return nonce, hash_val
nonce += 1
nonce, hash_found = mine_bitcoin_block(1, "Alice->Bob: 10 BTC", "0000genesis")
print(f"Mined Block | Nonce: {nonce} | Hash: {hash_found}")
২০১৪: Blockchain 2.0 এর জন্ম
২০১৪ সালকে ব্লকচেইন প্রযুক্তির টার্নিং পয়েন্ট ধরা হয়। এই বছর ব্লকচেইনকে মুদ্রা (currency) থেকে আলাদা করা হয় এবং Blockchain 2.0 এর জন্ম হয়। আর্থিক প্রতিষ্ঠান এবং অন্যান্য শিল্প ডিজিটাল কারেন্সির বদলে ব্লকচেইন প্রযুক্তির উন্নয়নে মনোযোগ দিতে শুরু করে।
Blockchain 2.0 মানে হলো ব্লকচেইন শুধু ক্রিপ্টোকারেন্সি নয়, বরং smart contracts এবং decentralized applications (dApps)-এর প্ল্যাটফর্ম।
২০১৫: Ethereum Frontier Network এবং Hyperledger
২০১৫ সালে Ethereum Frontier Network লঞ্চ করা হয়, যা ডেভেলপারদের smart contracts এবং dApps লিখে একটি লাইভ নেটওয়ার্কে ডিপ্লয় করার সুযোগ দেয়। একই বছর Linux Foundation Hyperledger প্রকল্প চালু করে।
🔗 Smart Contract এর উদাহরণ (Solidity)
solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract SimpleWallet {
mapping(address => uint256) public balances;
function deposit() public payable {
balances[msg.sender] += msg.value;
}
function withdraw(uint256 amount) public {
require(balances[msg.sender] >= amount, "Insufficient balance");
balances[msg.sender] -= amount;
payable(msg.sender).transfer(amount);
}
}
ব্যাখ্যা:
Smart Contract হলো এমন প্রোগ্রাম যা নির্দিষ্ট শর্ত পূরণ হলে নিজে থেকেই কার্যকর হয়। যেমন উপরের কন্ট্রাক্টে কেউ টাকা জমা দিলে ব্যালেন্স বাড়ে এবং উত্তোলনের সময় চেক করা হয় যথেষ্ট ব্যালেন্স আছে কিনা।
২০১৬: Hard Fork এবং Security Incidents
২০১৬ সালে “Blockchain” শব্দটি Nakamoto-র মূল পেপারের মতো দুটি আলাদা ধারণার পরিবর্তে একটি একক শব্দ হিসেবে গৃহীত হয়। একই বছর Ethereum DAO-র কোডে একটি বাগ কাজে লাগানো হয়, যার ফলে Ethereum নেটওয়ার্কে hard fork ঘটে। এছাড়া Bitfinex বিটকয়েন এক্সচেঞ্জ হ্যাক হয় এবং ১,২০,০০০ বিটকয়েন চুরি হয়।
🔀 Hard Fork কী?
Hard Fork হলো ব্লকচেইন প্রোটোকলের একটি বড় পরিবর্তন, যার ফলে পুরনো নোডগুলো নতুন ব্লক গ্রহণ করে না। ফলে চেইন দুটি ভাগে বিভক্ত হয়—পুরনো চেইন এবং নতুন চেইন।
python
# Hard Fork concept: protocol version change
class Node:
def __init__(self, protocol_version):
self.protocol_version = protocol_version
self.chain = []
def validate_block(self, block):
# নতুন প্রোটোকল সংস্করণে পুরনো ব্লক প্রত্যাখ্যাত
if block.version < self.protocol_version:
return False
return True
২০১৭: Bitcoin বৈধ এবং EOS
২০১৭ সালে জাপান Bitcoin-কে একটি বৈধ মুদ্রা হিসেবে স্বীকৃতি দেয়। Block.one কোম্পানি EOS blockchain operating system প্রবর্তন করে, যা বাণিজ্যিক decentralized applications সাপোর্ট করার জন্য ডিজাইন করা হয়।
২০১৮: Bitcoin-এর ১০ বছর এবং ক্রিপ্টো বিজ্ঞাপন নিষিদ্ধ
২০১৮ সালে Bitcoin ১০ বছর পূর্ণ করে। বছরের শেষে বিটকয়েনের মূল্য কমে $৩,৮০০-তে পৌঁছায়। Google, Twitter, এবং Facebook ক্রিপ্টোকারেন্সির বিজ্ঞাপন নিষিদ্ধ করে।
২০১৯: Ethereum ও AWS
২০১৯ সালে Ethereum নেটওয়ার্কে দৈনিক লেনদেন ১ মিলিয়ন ছাড়িয়ে যায়। Amazon AWS-এ Amazon Managed Blockchain সার্ভিসের সাধারণ প্রাপ্যতা ঘোষণা করে।
bash
# AWS Managed Blockchain তৈরি (CLI ধারণা)
aws managedblockchain create-network \
--name "MyBlockchainNetwork" \
--framework "HYPERLEDGER_FABRIC" \
--region us-east-1
ব্যাখ্যা:
Managed Blockchain সার্ভিস ক্লাউডে ব্লকচেইন নেটওয়ার্ক তৈরি ও পরিচালনা সহজ করে।
২০২০: Stablecoins এবং Beacon Chain
২০২০ সালে Stablecoins-এর চাহিদা বাড়ে, কারণ এরা প্রথাগত ক্রিপ্টোকারেন্সির চেয়ে বেশি স্থিতিশীলতার প্রতিশ্রুতি দেয়। একই বছর Ethereum Beacon Chain লঞ্চ করে Ethereum 2.0-এর প্রস্তুতি হিসেবে।
🪙 Stablecoin কী?
Stablecoin হলো এমন ক্রিপ্টোকারেন্সি যার মান একটি স্থিতিশীল সম্পদের (যেমন USD) সাথে পেগ করা থাকে।
🥩 Proof of Stake এর ধারণা (Python)
python
import random
def select_validator(stakes):
total = sum(stakes.values())
r = random.uniform(0, total)
cumulative = 0
for validator, stake in stakes.items():
cumulative += stake
if r <= cumulative:
return validator
validators = {"Alice": 40, "Bob": 30, "Charlie": 30}
selected = select_validator(validators)
print(f"Selected validator: {selected}")
ব্যাখ্যা:
Proof of Stake-এ মাইনার নির্বাচনের জন্য কম্পিউটেশনাল কাজের পরিবর্তে অংশগ্রহণকারীর জমা করা কয়েন (stake) ব্যবহৃত হয়। এতে শক্তি খরচ কম হয়।
২০২২: Ethereum Merge এবং PoS
২০২২ সালে Ethereum তার consensus mechanism Proof of Work (PoW) থেকে Proof of Stake (PoS)-এ স্থানান্তরিত করে। মূল Ethereum mainnet Beacon Chain-এর সাথে মার্জ হয়। এখন এটি একটি একক চেইন হিসেবে বিদ্যমান। Ethereum-এর এনার্জি কনজাম্পশন প্রায় ৯৯.৯৫% কমে যায়।
⚡ PoW বনাম PoS
| বৈশিষ্ট্য | Proof of Work (PoW) | Proof of Stake (PoS) |
|---|---|---|
| নির্বাচন | কম্পিউটেশনাল কাজ | কয়েন স্টেক |
| শক্তি খরচ | উচ্চ | কম |
| নিরাপত্তা | ৫১% অ্যাটাক | অর্থনৈতিক পেনাল্টি |
📊 টাইমলাইন টেবিল
| বছর | Blockchain | Bitcoin | Ethereum |
|---|---|---|---|
| 1991 | Stuart Haber এবং Scott Stornetta প্রথম Blockchain-এ কাজ করেন | NA | NA |
| 1992 | Merkle Trees গঠিত হয় | NA | NA |
| 2000 | Stefan Konst ক্রিপ্টোগ্রাফিক চেইন তত্ত্ব প্রকাশ করেন | NA | NA |
| 2004 | Hal Finney “Reusable Proof of Work” প্রবর্তন করেন | NA | NA |
| 2008 | Satoshi Nakamoto “Distributed Blockchain” ধারণা দেন | NA | NA |
| 2009 | James Howells Bitcoin মাইনিং শুরু করেন | Satoshi Nakamoto Bitcoin White Paper প্রকাশ করেন | NA |
| 2014 | Blockchain 2.0 এর জন্ম | NA | Ethereum Blockchain Crowdsale-এ ফান্ডেড |
| 2015 | Linux Foundation Hyperledger লঞ্চ করে | NA | Ethereum Frontier Network লঞ্চ |
| 2016 | Blockchain একক শব্দ হিসেবে গৃহীত | Bitfinex হ্যাক, ১২০,০০০ BTC চুরি | NA |
| 2017 | Block.one EOS blockchain OS চালু করে | Japan Bitcoin বৈধ করে | NA |
| 2018 | Google, Twitter, Facebook ক্রিপ্টো বিজ্ঞাপন নিষিদ্ধ | Bitcoin ১০ বছর পূর্ণ | NA |
| 2019 | Amazon Managed Blockchain | NA | Ethereum দৈনিক ১ মিলিয়ন লেনদেন |
| 2020 | Stablecoins জনপ্রিয় | NA | Beacon Chain লঞ্চ |
| 2022 | NA | NA | Ethereum Merge, PoS |
📝 এক্সারসাইজ (হিন্টসহ)
Exercise 1: Block এবং Blockchain ক্লাস তৈরি করুন
কাজ: Python-এ একটি Block ক্লাস এবং Blockchain ক্লাস লেখো, যেখানে add_block মেথড থাকবে।
হিন্ট:
hashlib.sha256ব্যবহার করো।previous_hashআগের ব্লকের হ্যাশ হবে।- জেনেসিস ব্লকের
previous_hashহবে"0"।
Exercise 2: Merkle Root বের করো
কাজ: চারটি লেনদেনের হ্যাশ থেকে Merkle Root বের করার ফাংশন লেখো।
হিন্ট:
- লেনদেনের হ্যাশগুলো একটি লিস্টে রাখো।
- জোড়ায় জোড়ায় হ্যাশ কম্বাইন করো।
- একটি মাত্র হ্যাশ থাকা পর্যন্ত পুনরাবৃত্তি করো।
Exercise 3: Proof of Work ইমপ্লিমেন্ট করো
কাজ: একটি ফাংশন লেখো যা ডেটা এবং ডিফিকাল্টি নিয়ে এমন একটি nonce খুঁজে বের করবে যাতে হ্যাশ নির্দিষ্ট সংখ্যক শূন্য দিয়ে শুরু হয়।
হিন্ট:
whileলুপ চালাও।startswith("0" * difficulty)চেক করো।
Exercise 4: Smart Contract লেখো (Solidity)
কাজ: একটি স্মার্ট কন্ট্রাক্ট লেখো যা একটি সংখ্যা সংরক্ষণ করতে পারে এবং পড়তে পারে।
হিন্ট:
uint256 private data;ব্যবহার করো।setএবংgetফাংশন তৈরি করো।
Exercise 5: P2P নেটওয়ার্ক সিমুলেট করো
কাজ: JavaScript-এ তিনটি নোড তৈরি করো এবং একটি ব্লক ব্রডকাস্ট করো।
হিন্ট:
Mapবা অবজেক্টে নোড রাখো।- প্রতিটি নোডের
receiveBlockমেথড থাকবে।
Exercise 6: Double Spending ব্যাখ্যা করো
কাজ: একটি সংক্ষিপ্ত প্যারাগ্রাফ লেখো যেখানে ব্যাখ্যা করবে কীভাবে ব্লকচেইন Double Spending সমস্যা সমাধান করে।
হিন্ট:
- Distributed ledger-এর কথা ভাবো।
- Consensus mechanism-এর ভূমিকা উল্লেখ করো।
🧭 সমাধানের পথনির্দেশনা
- প্রথমে ডেটা স্ট্রাকচার ঠিক করো: ব্লকে কী কী ফিল্ড থাকবে (index, timestamp, data, previous_hash, hash) লিখে ফেলো।
- হ্যাশ ফাংশন আলাদা করো: যাতে পরে সহজে বদলানো যায়।
- জেনেসিস ব্লক বানাও: প্রথম ব্লকের
previous_hashহবে"0"। - চেইন ভ্যালিডেশন ফাংশন লেখো: প্রতিটি ব্লকের হ্যাশ এবং
previous_hashমিলছে কিনা পরীক্ষা করো। - কনসেনসাস যোগ করো: প্রথমে সহজ
proof-of-workব্যবহার করো, পরেproof-of-stakeদেখতে পারো। - টেস্ট করো: একটি ব্লকের ডেটা পরিবর্তন করে দেখো চেইন ভেঙে যায় কিনা।
📚 সারসংক্ষেপ
ব্লকচেইন হলো একটি ক্রমবর্ধমান, সুরক্ষিত এবং অপরিবর্তনীয় ডিজিটাল লেজার। এর ইতিহাস ১৯৯১ সালে Stuart Haber এবং W. Scott Stornetta-র হাত ধরে শুরু হয়ে ২০২২ সালে Ethereum-এর Proof of Stake-এ রূপান্তরের মাধ্যমে একটি পরিণত প্রযুক্তিতে পরিণত হয়েছে। প্রোগ্রামার হিসেবে ব্লকচেইনের এই ইতিহাস ও মূল ধারণাগুলো জানা ভবিষ্যতের ডেভেলপমেন্টের জন্য অপরিহার্য। উপরের সিনট্যাক্স ও এক্সারসাইজগুলো অনুশীলন করলে ব্লকচেইনের মৌলিক ভিত্তি আপনার কাছে পরিষ্কার হয়ে যাবে।
এই পোস্টটি ToLearnTeam.com-এ প্রকাশের জন্য প্রস্তুত।
কোনো অংশ আরও বিস্তারিত করতে চাইলে জানাতে পারেন।
