ব্লকচেইন একটি দ্রুতবর্ধনশীল প্রযুক্তি, যেখানে প্রতিনিয়ত নতুন নতুন গবেষণা ও আলোচনা চলছে। এই প্রযুক্তি নিয়ে কথা বলতে গেলে কিছু মৌলিক টার্ম জানা অপরিহার্য। এই আর্টিকেলে আমরা ব্লকচেইনের সবচেয়ে বেশি ব্যবহৃত ও গুরুত্বপূর্ণ ২৯টি টার্মের বাংলা ব্যাখ্যা, উদাহরণ এবং সিনট্যাক্স দেখব। প্রতিটি টার্মের সাথে প্রোগ্রামিং উদাহরণ দেওয়া হয়েছে, যাতে আপনি সহজে বুঝতে পারেন এবং হাতে-কলমে শিখতে পারেন।
🌐 ১. Node
Node হলো ব্লকচেইন নেটওয়ার্কের একটি সদস্য। প্রতিটি নোড ব্লকচেইনের একটি কপি ধারণ করে এবং নেটওয়ার্কে লেনদেন যাচাই ও প্রোপাগেট করে।
উদাহরণ ও সিনট্যাক্স (JavaScript)
javascript
class Node {
constructor(id) {
this.id = id;
this.peers = []; // সংযুক্ত অন্যান্য নোড
this.ledger = []; // এই নোডের ব্লকচেইন কপি
}
connect(peer) {
this.peers.push(peer);
console.log(`${this.id} connected to ${peer.id}`);
}
receiveBlock(block) {
this.ledger.push(block);
console.log(`${this.id} received block: ${block.hash}`);
}
}
const nodeA = new Node("Node-A");
const nodeB = new Node("Node-B");
nodeA.connect(nodeB);
ব্যাখ্যা:
Node শ্রেণিটি একটি নোডের মৌলিক কার্যক্রম মডেল করে। এটি পিয়ারদের সাথে যোগাযোগ করে এবং নতুন ব্লক গ্রহণ করে।
🔤 ২. Address
Address হলো অক্ষর ও সংখ্যার একটি স্ট্রিং, যা ব্লকচেইন নেটওয়ার্কে একটি সত্তাকে চিহ্নিত করে। ক্রিপ্টোকারেন্সি পাঠানো ও গ্রহণের জন্য এটি ব্যবহৃত হয়।
উদাহরণ ও সিনট্যাক্স (Python)
python
import hashlib
def generate_address(public_key: str) -> str:
# সরলীকৃত address generation (real blockchain এ আরও জটিল)
return hashlib.sha256(public_key.encode()).hexdigest()[:40]
public_key = "user_public_key_123"
address = generate_address(public_key)
print(f"Address: {address}")
ব্যাখ্যা:
বাস্তবে অ্যাড্রেস তৈরি হয় পাবলিক কি থেকে ক্রিপ্টোগ্রাফিক হ্যাশিংয়ের মাধ্যমে। উপরের কোডটি SHA-256 ব্যবহার করে একটি সরল অ্যাড্রেস তৈরি করে।
📒 ৩. Distributed Ledger
Distributed Ledger হলো একটি লেজার যা বিকেন্দ্রীভূত নেটওয়ার্কের অনেক নোডে রক্ষণাবেক্ষণ করা হয়। রেকর্ডগুলো কালানুক্রমিকভাবে সংরক্ষিত থাকে। এই লেজার দুই ধরনের হতে পারে: Permissioned (যেখানে নির্দিষ্ট সত্তার অ্যাক্সেস আছে) এবং Unpermissioned (যেখানে সবাই অ্যাক্সেস করতে পারে)।
উদাহরণ ও সিনট্যাক্স (JSON)
json
{
"ledger_type": "unpermissioned",
"nodes": ["node1", "node2", "node3"],
"records": [
{ "timestamp": "2025-08-01T10:00:00Z", "data": "transaction1" },
{ "timestamp": "2025-08-01T10:05:00Z", "data": "transaction2" }
],
"chronological": true
}
ব্যাখ্যা:
এই JSON স্ট্রাকচারটি দেখায় কীভাবে লেজারের ধরন, অংশগ্রহণকারী নোড এবং কালানুক্রমিক রেকর্ডগুলো সংগঠিত হয়।
🔄 ৪. Peer to Peer (P2P)
Peer to Peer বা সংক্ষেপে P2P হলো এমন একটি নেটওয়ার্ক মডেল যেখানে দুটি পিয়ার (পক্ষ/সত্তা) সরাসরি যোগাযোগ করে, কোনো কেন্দ্রীয় সার্ভার ছাড়াই।
উদাহরণ ও সিনট্যাক্স (JavaScript)
javascript
class P2PNetwork {
constructor() {
this.nodes = new Map(); // id -> node
}
addNode(node) {
this.nodes.set(node.id, node);
}
broadcast(message, senderId) {
for (const [id, node] of this.nodes) {
if (id !== senderId) {
node.receive(message);
}
}
}
}
ব্যাখ্যা:
এই নেটওয়ার্কে প্রতিটি নোড সমানভাবে কাজ করে। কোনো নোড একটি মেসেজ পাঠালে সেটি বাকি সবাই পায়।
🧱 ৫. Block
Block হলো একটি ডেটা স্ট্রাকচার, যা ব্লক সম্পর্কে প্রয়োজনীয় মেটাডেটা (Block Header) এবং লেনদেন ধারণ করে। ব্লকচেইনের প্রথম ব্লককে Genesis Block বলা হয়।
উদাহরণ ও সিনট্যাক্স (JSON)
json
{
"index": 1,
"timestamp": 1690900000,
"transactions": [
{ "from": "Alice", "to": "Bob", "amount": 2.5 }
],
"previousHash": "0000abc123...",
"hash": "0000def456...",
"nonce": 12345
}
ব্যাখ্যা:
একটি ব্লকে থাকে ইনডেক্স, টাইমস্ট্যাম্প, লেনদেনের তালিকা, আগের ব্লকের হ্যাশ, নিজের হ্যাশ এবং ননস (PoW-তে ব্যবহৃত)। জেনেসিস ব্লকের previousHash সাধারণত "0" হয়।
📏 ৬. Block Height
Block Height হলো ব্লকচেইনে সংযুক্ত ব্লকের সংখ্যা। এটি ব্লকচেইনে ডেটার পরিমাণের একটি পরিমাপ।
উদাহরণ ও সিনট্যাক্স (Python)
python
class Blockchain:
def __init__(self):
self.chain = [] # genesis block সহ
def get_block_height(self):
return len(self.chain) - 1 # genesis index 0
blockchain = Blockchain()
# genesis + 3 blocks
height = blockchain.get_block_height()
print(f"Block Height: {height}") # 3
ব্যাখ্যা:
ব্লক হাইট হলো সর্বশেষ ব্লকের ইনডেক্স বা মোট ব্লক সংখ্যা (genesis বাদে)।
⛓️ ৭. Blockchain
Blockchain হলো ব্লকের একটি চেইন, যেখানে প্রতিটি ব্লকে মেটাডেটা, লেনদেন থাকে এবং আগের ব্লকের হ্যাশ ভ্যালুর মাধ্যমে যুক্ত থাকে।
উদাহরণ ও সিনট্যাক্স (Python)
python
import hashlib
class Block:
def __init__(self, index, previous_hash, data):
self.index = index
self.previous_hash = previous_hash
self.data = data
self.hash = self.calculate_hash()
def calculate_hash(self):
return hashlib.sha256(f"{self.index}{self.previous_hash}{self.data}".encode()).hexdigest()
class Blockchain:
def __init__(self):
self.chain = [self.create_genesis_block()]
def create_genesis_block(self):
return Block(0, "0", "Genesis Block")
def add_block(self, data):
prev = self.chain[-1]
self.chain.append(Block(len(self.chain), prev.hash, data))
blockchain = Blockchain()
blockchain.add_block("Transaction 1")
ব্যাখ্যা:
প্রতিটি ব্লক previous_hash এর মাধ্যমে আগের ব্লকের সাথে যুক্ত, ফলে একটি চেইন তৈরি হয়। কোনো ব্লক বদলালে পরের সব হ্যাশ বদলে যায়।
🔍 ৮. Block Explorer
Block Explorer হলো একটি টুল যা ব্লকচেইনের ব্লকগুলোর পরিসংখ্যান দেখতে ব্যবহৃত হয়। Bitcoin ও Ethereum-এর জন্য আলাদা ব্লক এক্সপ্লোরার আছে।
উদাহরণ ও সিনট্যাক্স (JavaScript – API কল)
javascript
async function getBlockInfo(blockNumber) {
const response = await fetch(`https://api.blockcypher.com/v1/btc/main/blocks/${blockNumber}`);
const data = await response.json();
console.log(data);
}
getBlockInfo(100000);
ব্যাখ্যা:
ব্লক এক্সপ্লোরার ব্লকের উচ্চতা, হ্যাশ, লেনদেনের সংখ্যা, সময় ইত্যাদি দেখায়। API ব্যবহার করে প্রোগ্রামগতভাবে তথ্য পাওয়া যায়।
🧮 ৯. Hash
Hash হলো ব্লকচেইনের আউটপুট ডেটার উপর হ্যাশ ফাংশন প্রয়োগের ফল। এটি ক্রিপ্টোকারেন্সি লেনদেন যাচাইয়ে ব্যবহৃত হয়।
উদাহরণ ও সিনট্যাক্স (Python)
python
import hashlib
data = "geeksforgeeks file"
hash_value = hashlib.sha256(data.encode()).hexdigest()
print(f"Hash: {hash_value}")
# আউটপুট: 64 ক্যারেক্টারের হেক্সাডেসিমাল স্ট্রিং
ব্যাখ্যা:
হ্যাশ একটি নির্দিষ্ট দৈর্ঘ্যের ইউনিক মান। একই ইনপুটে সবসময় একই হ্যাশ, কিন্তু সামান্য পরিবর্তনে সম্পূর্ণ ভিন্ন।
⚡ ১০. Hash Rate
Hash Rate হলো কম্পিউটার মাইনিংয়ের পারফরম্যান্স পরিমাপ, প্রতি সেকেন্ডে কতগুলো হ্যাশ সম্পন্ন হয় তার একক।
উদাহরণ ও সিনট্যাক্স (Python)
python
import time
start = time.time()
total_hashes = 1_000_000
# ... hashing work ...
elapsed = time.time() - start
hash_rate = total_hashes / elapsed
print(f"Hash Rate: {hash_rate:.0f} hashes/second")
ব্যাখ্যা:
হ্যাশ রেট যত বেশি, ব্লক মাইন করার সম্ভাবনা তত বেশি। সাধারণত H/s, KH/s, MH/s, GH/s, TH/s এককে প্রকাশ করা হয়।
🔐 ১১. Cryptographic Hash Function
Cryptographic Hash Function এমন একটি ফাংশন যা ভেরিয়েবল-সাইজ ইনপুট নিয়ে ফিক্সড-সাইজ ইউনিক আউটপুট দেয়। SHA-256 একটি জনপ্রিয় উদাহরণ।
উদাহরণ ও সিনট্যাক্স (Python)
python
import hashlib
def cryptographic_hash(input_bytes):
return hashlib.sha256(input_bytes).hexdigest()
print(cryptographic_hash(b"Hello"))
print(cryptographic_hash(b"hello")) # সম্পূর্ণ ভিন্ন হ্যাশ
ব্যাখ্যা:
ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন নিরাপত্তার মূল ভিত্তি। এটি একমুখী (irreversible) এবং collision-resistant।
⛏️ ১২. Mining
Mining হলো নতুন ব্লককে ব্লকচেইনের সাথে যুক্ত করার জন্য জটিল গাণিতিক সমস্যা সমাধানের প্রক্রিয়া। এটি Proof-of-Work ভিত্তিক ব্লকচেইনে ব্যবহৃত হয়।
উদাহরণ ও সিনট্যাক্স (Python – Proof of Work)
python
import hashlib
def calculate_hash(block_data, nonce):
return hashlib.sha256(f"{block_data}{nonce}".encode()).hexdigest()
def mine(block_data, difficulty):
nonce = 0
prefix = '0' * difficulty
while True:
hash_val = calculate_hash(block_data, nonce)
if hash_val.startswith(prefix):
return nonce, hash_val
nonce += 1
nonce, valid_hash = mine("Block: Alice->Bob 2 BTC", difficulty=4)
print(f"Mined with nonce {nonce}: {valid_hash}")
ব্যাখ্যা:
মাইনাররা একটি নির্দিষ্ট সংখ্যক শূন্য দিয়ে শুরু হওয়া হ্যাশ খুঁজতে কম্পিউটেশনাল কাজ করে। প্রথম খুঁজে পাওয়া নোড ব্লকটি যুক্ত করে এবং পুরস্কার পায়।
🎯 ১৩. Difficulty
Difficulty হলো নতুন ব্লককে ব্লকচেইনের সাথে যুক্ত করার কঠোরতা। Bitcoin-এ প্রতি 2016 ব্লক (প্রায় ২ সপ্তাহ) পরপর ডিফিকাল্টি সমন্বয় করা হয়, যাতে নতুন ব্লক মাইন হতে গড়ে ১০ মিনিট সময় লাগে।
উদাহরণ ও সিনট্যাক্স (Python)
python
# Bitcoin-এ difficulty target (সরলীকৃত)
MAX_TARGET = 0xFFFF * 2**208
DIFFICULTY_1_TARGET = 0xFFFF * 2**208
def adjust_difficulty(actual_time, expected_time, current_difficulty):
return current_difficulty * (expected_time / actual_time)
current = 10_000_000_000 # উদাহরণ
actual = 9 * 60 # 9 মিনিট
expected = 10 * 60 # 10 মিনিট
new_difficulty = adjust_difficulty(actual, expected, current)
print(f"New Difficulty: {new_difficulty:.0f}")
ব্যাখ্যা:
ডিফিকাল্টি বাড়লে হ্যাশ পাজল কঠিন হয়, কমলে সহজ হয়। এটি নেটওয়ার্কের মোট হ্যাশ রেটের সাথে সামঞ্জস্য রাখে।
💰 ১৪. Block Reward
Block Reward হলো সেই পুরস্কার যা নতুন ব্লককে ব্লকচেইনের সাথে যুক্তকারী সত্তাকে দেওয়া হয়। Bitcoin-এ বর্তমানে (২০২৫ পর্যন্ত) মাইনাররা নতুন ব্লক যুক্ত করার জন্য 3.125 BTC পায় (শুরুতে 50 BTC ছিল, প্রতি 210,000 ব্লকে অর্ধেক হয়)।
উদাহরণ ও সিনট্যাক্স (Python)
python
# Bitcoin-এ Block reward halving
initial_reward = 50 # BTC
halving_interval = 210_000
current_height = 840_000
halvings = current_height // halving_interval
block_reward = initial_reward / (2 ** halvings)
print(f"Current Block Reward: {block_reward} BTC")
ব্যাখ্যা:
ব্লক রিওয়ার্ড নতুন কয়েন ইস্যু করার একটি পদ্ধতি। এটি সময়ের সাথে হ্রাস পায়, যা Bitcoin-এর সরবরাহ সীমিত করে।
🪙 ১৫. Cryptocurrency
Cryptocurrency হলো একটি ডিজিটাল সম্পদ, যা ব্লকচেইন নেটওয়ার্কে নিয়ন্ত্রিত ও লেনদেন হয়। নামের মধ্যেই আছে crypto (এনক্রিপশন) + currency (মুদ্রা)।
উদাহরণ ও সিনট্যাক্স (Solidity – Token Balance)
solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract SimpleToken {
mapping(address => uint256) public balanceOf;
function transfer(address to, uint256 amount) public {
require(balanceOf[msg.sender] >= amount, "Insufficient balance");
balanceOf[msg.sender] -= amount;
balanceOf[to] += amount;
}
}
ব্যাখ্যা:
ক্রিপ্টোকারেন্সি সাধারণত স্মার্ট কন্ট্রাক্ট বা প্রোটোকল স্তরে ব্যালেন্স ট্র্যাক করে। উপরের কন্ট্রাক্টে টোকেন ট্রান্সফারের নিয়ম আছে।
🌱 ১৬. Satoshi
Satoshi হলো Bitcoin-এর ক্ষুদ্রতম রেকর্ডযোগ্য একক। বর্তমানে, 1 Satoshi = 0.00000001 BTC।
উদাহরণ ও সিনট্যাক্স (Python)
python
SATOSHI_PER_BTC = 100_000_000
def btc_to_satoshi(btc):
return int(btc * SATOSHI_PER_BTC)
def satoshi_to_btc(satoshi):
return satoshi / SATOSHI_PER_BTC
print(btc_to_satoshi(0.5)) # 50000000
print(satoshi_to_btc(1)) # 0.00000001
ব্যাখ্যা:
১টি Bitcoin-কে ১০ কোটি সাতোশিতে ভাগ করা যায়। এটি অতি ক্ষুদ্র লেনদেনের সুবিধা দেয়।
💠 ১৭. Altcoin
Altcoin মানে ALTernative COIN — Bitcoin-এর বিকল্প যেকোনো ক্রিপ্টোকারেন্সি। একটি বিখ্যাত Altcoin হলো Litecoin।
উদাহরণ ও সিনট্যাক্স (JavaScript)
javascript
const altcoins = [
{ name: "Litecoin", symbol: "LTC", launched: 2011 },
{ name: "Ethereum", symbol: "ETH", launched: 2015 },
{ name: "Ripple", symbol: "XRP", launched: 2012 }
];
altcoins.forEach(coin => {
console.log(`${coin.name} (${coin.symbol}) - ${coin.launched}`);
});
ব্যাখ্যা:
Bitcoin-এর পরে তৈরি সব ক্রিপ্টোকারেন্সিই Altcoin। এদের বিভিন্ন উদ্দেশ্য ও প্রযুক্তি থাকতে পারে।
👛 ১৮. Wallet
Wallet হলো একটি ফাইল বা সফটওয়্যার যা একটি সত্তার private key ধারণ করে। এটি ব্লকচেইনে লেনদেন দেখার ও করার ইন্টারফেস প্রদান করে। বিভিন্ন ব্লকচেইনের জন্য বিভিন্ন ওয়ালেট থাকে।
উদাহরণ ও সিনট্যাক্স (Python – সরল Wallet)
python
import hashlib
class Wallet:
def __init__(self, private_key):
self.private_key = private_key
self.address = self.derive_address()
def derive_address(self):
# সরলীকৃত: private key থেকে public key (actual ECDSA)
public_key = hashlib.sha256(self.private_key.encode()).hexdigest()
return hashlib.sha256(public_key.encode()).hexdigest()[:40]
wallet = Wallet("my_private_key_123")
print(f"Wallet Address: {wallet.address}")
ব্যাখ্যা:
ওয়ালেট আসলে টাকা ধারণ করে না; এটি private key সংরক্ষণ করে, যা লেনদেন স্বাক্ষর করতে ব্যবহৃত হয়। Private key হারালে সম্পদও হারিয়ে যায়।
🤝 ১৯. Consensus
Consensus হলো নেটওয়ার্কের সব নোডের মধ্যে লেজারের শেয়ার্ড স্টেট (লেনদেনের তালিকা) সম্পর্কে একমত হওয়ার পদ্ধতি। সাধারণ Consensus মেকানিজম হলো Raft, Paxos, Byzantine Fault Tolerance (BFT), Proof-of-Work (PoW), Proof-of-Stake (PoS) ইত্যাদি।
উদাহরণ ও সিনট্যাক্স (Python – Simple Voting Consensus)
python
def consensus(nodes):
votes = {}
for node in nodes:
proposed_state = node.get_proposed_state()
votes[proposed_state] = votes.get(proposed_state, 0) + 1
# সংখ্যাগরিষ্ঠতা
max_votes = max(votes.values())
for state, count in votes.items():
if count == max_votes:
return state
# নোডগুলোর প্রস্তাবিত স্টেট
class Node:
def __init__(self, state):
self.state = state
def get_proposed_state(self):
return self.state
nodes = [Node("A"), Node("A"), Node("B")]
agreed_state = consensus(nodes)
print(f"Consensus state: {agreed_state}")
ব্যাখ্যা:
Consensus অ্যালগরিদম নিশ্চিত করে সবাই একই সত্য মেনে চলে, এমনকি কিছু নোড খারাপ আচরণ করলেও।
📜 ২০. Smart Contract
Smart Contract হলো এমন একটি চুক্তি যার শর্ত ও অনুমতি কোডে লেখা থাকে এবং নির্দিষ্ট শর্ত পূরণ হলে স্বয়ংক্রিয়ভাবে কার্যকর হয়। এটি cryptocontract বা digital contract নামেও পরিচিত। প্রথম প্রস্তাব করেন Nick Szabo ১৯৯৪ সালে।
উদাহরণ ও সিনট্যাক্স (Solidity)
solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract Escrow {
address public buyer;
address public seller;
uint256 public amount;
bool public released = false;
constructor(address _seller) payable {
buyer = msg.sender;
seller = _seller;
amount = msg.value;
}
function releaseFunds() public {
require(msg.sender == buyer, "Only buyer can release");
require(!released, "Already released");
released = true;
payable(seller).transfer(amount);
}
}
ব্যাখ্যা:
এই কন্ট্রাক্টে বায়ার ফান্ড জমা করে; শুধুমাত্র বায়ার নির্দিষ্ট শর্তে ফান্ড রিলিজ করতে পারে। কোনো মধ্যস্বত্বভোগী ছাড়াই চুক্তিটি কার্যকর হয়।
💸 ২১. Transaction
Transaction হলো দুটি পক্ষ/সত্তার মধ্যে সম্পদের বিনিময়। প্রতিটি লেনদেনে একটি নির্দিষ্ট পরিমাণ ক্রিপ্টোকারেন্সি এক অ্যাড্রেস থেকে অন্য অ্যাড্রেসে স্থানান্তরিত হয়।
উদাহরণ ও সিনট্যাক্স (JSON)
json
{
"txid": "0xabc123...",
"from": "0x1234...",
"to": "0x5678...",
"amount": 0.5,
"timestamp": 1690900000,
"signature": "0xdef456..."
}
ব্যাখ্যা:
লেনদেনে থাকে প্রেরক, প্রাপক, পরিমাণ, টাইমস্ট্যাম্প এবং ডিজিটাল সিগনেচার। সিগনেচার প্রমাণ করে লেনদেনটি বৈধ।
🧾 ২২. Transaction Fee
Transaction Fee হলো লেনদেন সম্পাদনকারী পক্ষদের কাছ থেকে নেওয়া ডিজিটাল সম্পদের একটি অংশ, যা নেটওয়ার্ককে সচল রাখতে যারা রিসোর্স বিনিয়োগ করে তাদের দেওয়া হয়। Proof-of-Stake-ভিত্তিক ব্লকচেইনে ফি মিন্টার/ফরগারকে দেওয়া হয়।
উদাহরণ ও সিনট্যাক্স (Python)
python
def calculate_fee(amount, fee_rate=0.001):
return amount * fee_rate
transaction_amount = 100 # BTC
fee = calculate_fee(transaction_amount)
print(f"Transaction Fee: {fee} BTC")
ব্যাখ্যা:
ফি নেটওয়ার্ক স্প্যাম প্রতিরোধ করে এবং মাইনার/ভ্যালিডেটরদের কাজের জন্য পুরস্কার দেয়।
🍴 ২৩. Blockchain Fork
Blockchain Fork হলো ব্লকচেইন সফটওয়্যার আপডেটের ফলে একটি ব্লকচেইন দুই বা ততোধিক বৈধ ব্লকচেইনে বিভক্ত হওয়া। তিন ধরনের ফর্ক আছে: Hard Fork, Soft Fork, এবং Temporary/Accidental Fork।
উদাহরণ ও সিনট্যাক্স (Python – Fork Simulation)
python
# Hard fork: chain বিভক্ত
def hard_fork(original_chain, split_height):
new_chain = original_chain[:split_height]
# নতুন নিয়মে নতুন ব্লক যুক্ত হয়
return new_chain
original = ["block0", "block1", "block2", "block3"]
new_forked_chain = hard_fork(original, 2)
print(new_forked_chain) # ['block0', 'block1']
ব্যাখ্যা:
Hard Fork পুরনো নোডগুলো নতুন ব্লক গ্রহণ করে না, ফলে চেইন স্থায়ীভাবে বিভক্ত হয়। Soft Fork সামঞ্জস্যপূর্ণ আপডেট যেখানে পুরনো নোড এখনো কাজ চালাতে পারে।
⚠️ ২৪. 51% Attack
51% Attack হলো এমন একটি আক্রমণ যেখানে একটি একক সংস্থা (বা গোষ্ঠী) নেটওয়ার্কের রিসোর্সের ৫১% নিয়ন্ত্রণ করে এবং ব্লকচেইনে অবৈধ কার্যকলাপ চালায়। Bitcoin-এ এটি মাইনারদের ৫১% নিয়ন্ত্রণ বোঝায়; Peercoin-এ মোট Peercoin-এর ৫১% মালিকানা বোঝায়।
উদাহরণ ও সিনট্যাক্স (Python)
python
def is_51_attack(attacker_hashrate, total_hashrate):
if attacker_hashrate > total_hashrate * 0.51:
return True
return False
total = 100_000_000 # TH/s
attacker = 52_000_000
print(is_51_attack(attacker, total)) # True
ব্যাখ্যা:
৫১% আক্রমণকারী ডাবল স্পেন্ড করতে পারে বা কিছু লেনদেন ব্লক করতে পারে। কিন্তু বড় নেটওয়ার্কে এই আক্রমণ অত্যন্ত ব্যয়বহুল।
💳 ২৫. Double Spend
Double Spend হলো একই ডিজিটাল সম্পদ (ক্রিপ্টোকারেন্সি) দুইবার ব্যবহারের চেষ্টা। এটি ব্লকচেইনে একটি সাধারণ ধরনের আক্রমণ। যত বেশি সদস্য নতুন ব্লক যুক্ত করে, এই আক্রমণ তত কঠিন হয়।
উদাহরণ ও সিনট্যাক্স (Python – Detection)
python
class Ledger:
def __init__(self):
self.spent_outputs = set()
def is_double_spend(self, transaction):
if transaction['input'] in self.spent_outputs:
return True
return False
def record(self, transaction):
self.spent_outputs.add(transaction['input'])
ledger = Ledger()
tx1 = {'input': 'coin_A', 'to': 'Bob'}
tx2 = {'input': 'coin_A', 'to': 'Charlie'}
ledger.record(tx1)
print(ledger.is_double_spend(tx2)) # True
ব্যাখ্যা:
ব্লকচেইনে প্রতিটি আউটপুট একবারই খরচ করা যায়। Distributed consensus ডাবল স্পেন্ড প্রতিরোধ করে।
✅ ২৬. Confirmation
Confirmation হলো সফলভাবে একটি লেনদেন যাচাইয়ের পর ব্লকচেইনে যোগ করার কাজ। সাধারণ নিয়ম: যত বেশি Confirmation, ডাবল স্পেন্ড আক্রমণের বিরুদ্ধে তত বেশি নিরাপত্তা (স্থায়ীত্ব)।
উদাহরণ ও সিনট্যাক্স (Python)
python
def get_confirmations(current_height, tx_block_height):
if tx_block_height == 0:
return 0
return current_height - tx_block_height + 1
current = 100
tx_height = 98
confirmations = get_confirmations(current, tx_height)
print(f"Confirmations: {confirmations}") # 3
ব্যাখ্যা:
একটি লেনদেন একটি ব্লকে অন্তর্ভুক্ত হলে ১টি confirmation পায়। পরবর্তী প্রতিটি নতুন ব্লক confirmation সংখ্যা বাড়ায়। সাধারণত ৬টি confirmation নিরাপদ ধরা হয় Bitcoin-এ।
🧪 ২৭. Testnet
Testnet হলো Bitcoin-এর একটি টেস্ট ব্লকচেইন, যা ডেভেলপাররা পরীক্ষা-নিরীক্ষার জন্য ব্যবহার করে, যাতে মূল নেটওয়ার্ক ক্ষতিগ্রস্ত না হয়। Testnet-এর সম্পদের কোনো মূল্য নেই। এখন পর্যন্ত তিনটি প্রজন্ম আছে: Testnet1, Testnet2, Testnet3 (বর্তমান)।
উদাহরণ ও সিনট্যাক্স (JSON Config)
json
{
"network": "testnet",
"bitcoin": {
"testnet_version": "testnet3",
"faucet": "https://coinfaucet.eu/en/btc-testnet/"
},
"assets_value": false
}
ব্যাখ্যা:
ডেভেলপাররা টাকা খরচ না করে Testnet-এ স্মার্ট কন্ট্রাক্ট, ট্রানজেকশন ও নেটওয়ার্ক পরীক্ষা করতে পারে।
🧩 ২৮. dApp
dApp মানে decentralized Application — একটি ওপেন সোর্স অ্যাপ্লিকেশন যা অ্যানোনিমাসভাবে পরিচালিত হয় এবং এর ডেটা ব্লকচেইনে সংরক্ষিত থাকে। এটি নির্মাণে সাহায্যকারী সদস্যদের জন্য কিছু ইনসেন্টিভ থাকতে হবে।
উদাহরণ ও সিনট্যাক্স (JavaScript – Architecture)
javascript
const dApp = {
frontend: "React",
smartContract: "Solidity",
blockchain: "Ethereum",
decentralizedStorage: "IPFS",
incentive: "Token rewards"
};
console.log(dApp);
ব্যাখ্যা:
dApp-এর ব্যাকএন্ড সাধারণত স্মার্ট কন্ট্রাক্ট দ্বারা চলে, কোনো কেন্দ্রীয় সার্ভার নেই। ব্যবহারকারীরা সরাসরি ব্লকচেইনের সাথে ইন্টারঅ্যাক্ট করে।
🖥️ ২৯. ASIC
ASIC মানে Application Specific Integrated Circuit — বিশেষ কাজের জন্য ডিজাইন করা এক ধরনের কম্পিউটার। Bitcoin-এর ক্ষেত্রে, ASIC কম্পিউটার SHA-256 হ্যাশিং সমস্যা সমাধানে ব্যবহৃত হয়, যা নতুন ব্লক যুক্ত করতে সাহায্য করে।
উদাহরণ ও সিনট্যাক্স (Python – ASIC Miner Class)
python
class ASICMiner:
def __init__(self, model, hashrate_ths):
self.model = model
self.hashrate_ths = hashrate_ths # terahash per second
def mine(self, block_data, difficulty):
# সরলীকৃত: এখানে ASIC হ্যাশিং করবে
print(f"{self.model} mining at {self.hashrate_ths} TH/s")
# ... hashing loop ...
return "valid_hash"
miner = ASICMiner("Antminer S19", 110)
miner.mine("Block data", 4)
ব্যাখ্যা:
সাধারণ CPU/GPU-র তুলনায় ASIC অনেক বেশি হ্যাশ রেট দেয়, তাই Bitcoin মাইনিংয়ে এটিই কার্যকর।
📝 এক্সারসাইজ (হিন্টসহ)
Exercise 1: Block ও Blockchain ইমপ্লিমেন্ট করো
কাজ: Python-এ Block এবং Blockchain ক্লাস লেখো, যাতে add_block মেথড থাকবে। জেনেসিস ব্লকসহ ৩টি ব্লক যোগ করো।
হিন্ট:
hashlib.sha256ব্যবহার করো।previous_hashআগের ব্লকের হ্যাশ নেবে।- জেনেসিসের
previous_hashহবে"0"।
Exercise 2: Proof of Work Mining করো
কাজ: একটি ফাংশন লেখো যা ডেটা ও ডিফিকাল্টি নিয়ে এমন nonce খুঁজবে যাতে হ্যাশ নির্দিষ্ট সংখ্যক শূন্য দিয়ে শুরু হয়।
হিন্ট:
whileলুপ চালাও।startswith("0" * difficulty)চেক করো।
Exercise 3: Wallet Address Generate করো
কাজ: একটি সরল Wallet ক্লাস তৈরি করো যা private key থেকে অ্যাড্রেস তৈরি করে।
হিন্ট:
- Private key-এর SHA-256 হ্যাশ নাও।
- প্রথম ৪০ ক্যারেক্টার অ্যাড্রেস হিসেবে ব্যবহার করো।
Exercise 4: Double Spend Detector লেখো
কাজ: একটি ক্লাস লেখো যা ইনপুট আউটপুট ট্র্যাক করে এবং একই ইনপুট দ্বিতীয়বার খরচ করলে True রিটার্ন করে।
হিন্ট:
set()ব্যবহার করো।- প্রথম লেনদেনে ইনপুট যুক্ত করো।
Exercise 5: Consensus Voting সিমুলেট করো
কাজ: ৫টি নোডের মধ্যে ৩টি প্রস্তাব “A” এবং ২টি “B” দিলে সংখ্যাগরিষ্ঠ ভোটে বিজয়ী প্রস্তাব নির্ধারণ করো।
হিন্ট:
- ভোট গুনতে
dictব্যবহার করো। - সর্বোচ্চ ভোটের প্রস্তাব রিটার্ন করো।
Exercise 6: Block Explorer API ব্যবহার করো
কাজ: JavaScript-এ fetch ব্যবহার করে Bitcoin-এর একটি নির্দিষ্ট ব্লকের তথ্য আনো এবং কনসোলে দেখাও।
হিন্ট:
https://api.blockcypher.com/v1/btc/main/blocks/{blockNumber}এ GET রিকোয়েস্ট পাঠাও।response.json()ব্যবহার করো।
Exercise 7: Transaction Fee ক্যালকুলেটর
কাজ: একটি ফাংশন লেখো যা লেনদেনের পরিমাণ এবং ফি রেট নিয়ে ফি বের করবে। ফি রেট ডিফল্ট ০.১% রাখো।
হিন্ট:
return amount * fee_rate।
🧭 সমাধানের পথনির্দেশনা
- প্রথমে ব্লক স্ট্রাকচার ঠিক করো: ব্লকে কোন ফিল্ড থাকবে (index, timestamp, data, previous_hash, hash, nonce)।
- হ্যাশ ফাংশন আলাদা করো:
hashlib.sha256ব্যবহার করে একটি ফাংশন লেখো। - জেনেসিস ব্লক বানাও: প্রথম ব্লকের
previous_hashহবে"0"। - ভ্যালিডেশন ফাংশন যোগ করো: প্রতিটি ব্লকের হ্যাশ ও
previous_hashমিলছে কিনা পরীক্ষা করো। - কনসেনসাস যুক্ত করো: সহজ PoW প্রথমে ইমপ্লিমেন্ট করো; পরে PoS দেখতে পারো।
- ওয়ালেট তৈরি করো: Private key থেকে হ্যাশ করে অ্যাড্রেস বের করো।
- টেস্ট করো: একটি ব্লকের ডেটা পরিবর্তন করে দেখো চেইন ভাঙে কিনা; ডাবল স্পেন্ড ডিটেক্টর কাজ করছে কিনা।
- API কল করো: ব্লক এক্সপ্লোরার থেকে তথ্য এনে যাচাই করো।
📚 সারসংক্ষেপ
এই আর্টিকেলে আমরা ব্লকচেইনের সবচেয়ে ব্যবহৃত ২৯টি টার্মের বাংলা ব্যাখ্যা, উদাহরণ এবং সিনট্যাক্স শিখলাম। Node থেকে শুরু করে ASIC পর্যন্ত প্রতিটি টার্ম ব্লকচেইনের কোনো না কোনো গুরুত্বপূর্ণ দিক নির্দেশ করে। প্রোগ্রামার হিসেবে এই টার্মগুলো জানা আপনাকে ব্লকচেইন কথোপকথনে সক্রিয়ভাবে অংশ নিতে এবং ডেভেলপমেন্টে দক্ষতা অর্জনে সাহায্য করবে। উপরের এক্সারসাইজগুলো অনুশীলন করলে আপনার হাত-কলমে ধারণা আরও শক্ত হবে।
এই পোস্টটি ToLearnTeam.com-এ প্রকাশের জন্য প্রস্তুত।
কোনো অংশ আরও বিস্তারিত করতে চাইলে জানাতে পারেন।
