Ethereum Archives - To Learn Team https://tolearnteam.com/tag/ethereum/ Learn about Everything Online Sun, 16 Aug 2026 11:26:48 +0000 en-US hourly 1 https://wordpress.org/?v=7.1.2 https://tolearnteam.com/wp-content/uploads/2026/07/cropped-Logo-32x32.png Ethereum Archives - To Learn Team https://tolearnteam.com/tag/ethereum/ 32 32 পাবলিক ব্লকচেইন কী? কাজের প্রক্রিয়া, জনপ্রিয় নেটওয়ার্ক, সুবিধা-অসুবিধা ও ব্যবহার https://tolearnteam.com/public-blockchain-bangla/ Sun, 16 Aug 2026 11:26:47 +0000 http://tolearnteam.com/?p=2635 পাবলিক ব্লকচেইন হলো একটি বিকেন্দ্রীভূত নেটওয়ার্ক, যেখানে যে কেউ অনুমতি ছাড়াই অংশগ্রহণ করতে, ডেটা পড়তে এবং লিখতে পারে। এটি একটি ওপেন-সোর্স কাঠামোতে চলে এবং ক্রিপ্টোগ্রাফিক নীতির মাধ্যমে স্বচ্ছতা ও নিরাপত্তা…

The post পাবলিক ব্লকচেইন কী? কাজের প্রক্রিয়া, জনপ্রিয় নেটওয়ার্ক, সুবিধা-অসুবিধা ও ব্যবহার appeared first on To Learn Team.

]]>
পাবলিক ব্লকচেইন হলো একটি বিকেন্দ্রীভূত নেটওয়ার্ক, যেখানে যে কেউ অনুমতি ছাড়াই অংশগ্রহণ করতে, ডেটা পড়তে এবং লিখতে পারে। এটি একটি ওপেন-সোর্স কাঠামোতে চলে এবং ক্রিপ্টোগ্রাফিক নীতির মাধ্যমে স্বচ্ছতা ও নিরাপত্তা নিশ্চিত করে। পাবলিক ব্লকচেইনে লেনদেন একটি consensus mechanism এর মাধ্যমে যাচাই করা হয়, যা ব্যবহারকারীদের মধ্যে trustless interaction (বিশ্বাসহীন মিথস্ক্রিয়া) সম্ভব করে। পাবলিক ব্লকচেইন ডিজিটাল অর্থনীতিতে উদ্ভাবন, স্বচ্ছতা এবং অন্তর্ভুক্তিকে উৎসাহিত করে।

এই আর্টিকেলে আমরা পাবলিক ব্লকচেইনের সংজ্ঞা, কাজের প্রক্রিয়া, জনপ্রিয় নেটওয়ার্ক, ব্যবহারের ক্ষেত্র, সুবিধা ও চ্যালেঞ্জ নিয়ে বিস্তারিত আলোচনা করব। প্রতিটি টেকনিক্যাল টার্মের সাথে প্রোগ্রামিং উদাহরণ ও সিনট্যাক্স দেওয়া হয়েছে।


🔍 পাবলিক ব্লকচেইন কী? (What is Public Blockchain?)

Public Blockchain হলো এক ধরনের Distributed Ledger Technology (DLT) যা সবার জন্য উন্মুক্ত। এতে যেকোনো অংশগ্রহণকারী কেন্দ্রীয় কর্তৃপক্ষের অনুমতি ছাড়াই নেটওয়ার্কে অ্যাক্সেস, দেখতে এবং অবদান রাখতে পারে। এই উন্মুক্ততাই এর প্রধান বৈশিষ্ট্য, যা একটি বিকেন্দ্রীভূত ও স্বচ্ছ পরিবেশ তৈরি করে।

মূল বৈশিষ্ট্য (Key Characteristics)

১. Decentralization (বিকেন্দ্রীকরণ)

পাবলিক ব্লকচেইন কোনো কেন্দ্রীয় কর্তৃপক্ষ বা একক সত্তার উপর নির্ভর করে না। এটি একটি পিয়ার-টু-পিয়ার নেটওয়ার্কে চলে, যেখানে একাধিক নোড লেনদেন যাচাই ও রেকর্ড করে।

সিনট্যাক্স (Python):

python

class Node:
    def __init__(self, name):
        self.name = name
        self.peers = []
        self.ledger = []

    def connect(self, peer):
        self.peers.append(peer)
        peer.peers.append(self)
        print(f"{self.name} connected to {peer.name}")

    def broadcast(self, block):
        for peer in self.peers:
            peer.receive_block(block)

    def receive_block(self, block):
        self.ledger.append(block)
        print(f"{self.name} received block: {block}")

# বিকেন্দ্রীভূত নেটওয়ার্ক তৈরি
node1 = Node("Node1")
node2 = Node("Node2")
node3 = Node("Node3")

node1.connect(node2)
node2.connect(node3)

node1.broadcast("Block #1")

ব্যাখ্যা:
প্রতিটি নোড সমান ক্ষমতাসম্পন্ন। কোনো কেন্দ্রীয় সার্ভার নেই; নোডরা সরাসরি যোগাযোগ করে এবং ডেটা শেয়ার করে। এটি decentralization-এর মূল ধারণা।

২. Transparency (স্বচ্ছতা)

সব লেনদেন যে কেউ দেখতে পারে, ফলে ডেটা যেকোনো অংশগ্রহণকারী দ্বারা যাচাই ও অডিট করা যায়।

সিনট্যাক্স (JSON – Public Ledger):

json

{
  "blockchain": "public",
  "ledger_visibility": "everyone",
  "transactions": [
    { "from": "0xAlice", "to": "0xBob", "amount": 2.5 },
    { "from": "0xBob", "to": "0xCharlie", "amount": 1.0 }
  ]
}

ব্যাখ্যা:
পাবলিক লেজারে সব লেনদেন প্রকাশ্যে থাকে। যে কেউ যেকোনো ঠিকানার লেনদেনের ইতিহাস দেখতে পারে।

৩. Immutability (অপরিবর্তনীয়তা)

একবার ডেটা পাবলিক ব্লকচেইনে রেকর্ড হলে তা সহজে পরিবর্তন বা মুছে ফেলা যায় না, যা লেনদেনের একটি নিরাপদ ও স্থায়ী রেকর্ড প্রদান করে।

সিনট্যাক্স (Python):

python

import hashlib

class Block:
    def __init__(self, index, prev_hash, data):
        self.index = index
        self.prev_hash = prev_hash
        self.data = data
        self.hash = self.calculate_hash()

    def calculate_hash(self):
        return hashlib.sha256(f"{self.index}{self.prev_hash}{self.data}".encode()).hexdigest()

genesis = Block(0, "0", "Genesis Block")
block1 = Block(1, genesis.hash, "Transaction: Alice -> Bob 2.5 BTC")
print(f"Genesis Hash: {genesis.hash}")
print(f"Block1 Hash: {block1.hash}")

# ডেটা পরিবর্তন করলে হ্যাশ বদলে যায়
block1.data = "Transaction: Alice -> Bob 25 BTC"
print(f"Changed Hash: {block1.calculate_hash()}")
print("Immutability: chain ভেঙে গেছে কারণ hash বদলে গেছে")

ব্যাখ্যা:
প্রতিটি ব্লকের হ্যাশ আগের ব্লকের হ্যাশের উপর নির্ভরশীল। কোনো ব্লকের ডেটা বদলালে হ্যাশ বদলে যায় এবং চেইন ভেঙে যায়। এটি immutability নিশ্চিত করে।

৪. Consensus Mechanisms (ঐকমত্য পদ্ধতি)

পাবলিক ব্লকচেইন লেনদেন যাচাই এবং নেটওয়ার্কের অখণ্ডতা বজায় রাখতে Proof of Work (PoW) বা Proof of Stake (PoS) এর মতো consensus অ্যালগরিদম ব্যবহার করে।

Proof of Work উদাহরণ (Python):

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 -> Bob 2.5 BTC")
print(f"Nonce: {nonce}")
print(f"Valid Hash: {valid_hash}")

ব্যাখ্যা:
মাইনাররা একটি নির্দিষ্ট সংখ্যক শূন্য দিয়ে শুরু হওয়া হ্যাশ খুঁজতে কম্পিউটেশনাল কাজ করে। এটি প্রতারণা প্রতিরোধ করে এবং নেটওয়ার্কে ঐকমত্য আনে।

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}")

ব্যাখ্যা:
PoS-এ বেশি স্টেক করা নোডের ভ্যালিডেটর হওয়ার সম্ভাবনা বেশি। এটি PoW-এর তুলনায় শক্তি সাশ্রয়ী।

৫. Open Participation (উন্মুক্ত অংশগ্রহণ)

যে কেউ নেটওয়ার্কে যোগ দিতে, লেনদেন যাচাইয়ে অবদান রাখতে এবং ব্লকচেইনে সংরক্ষিত ডেটা অ্যাক্সেস করতে পারে, যা অন্তর্ভুক্তিকে উৎসাহিত করে।

সিনট্যাক্স (JavaScript – Open Join):

javascript

class PublicBlockchain {
  constructor() {
    this.nodes = [];
    this.ledger = [];
  }

  join(nodeId) {
    this.nodes.push(nodeId);
    console.log(`${nodeId} joined freely without permission`);
  }

  addTransaction(tx) {
    this.ledger.push(tx);
    console.log(`Transaction added: ${tx}`);
  }
}

const network = new PublicBlockchain();
network.join("Alice");
network.join("Bob");
network.addTransaction("Alice -> Bob: 1.5 BTC");

ব্যাখ্যা:
পাবলিক ব্লকচেইনে কোনো অনুমতির প্রয়োজন নেই। ইন্টারনেট ও কম্পিউটার থাকলেই যে কেউ অংশ নিতে পারে।


⚙ পাবলিক ব্লকচেইন কিভাবে কাজ করে? (How do Public Blockchains Work?)

পাবলিক ব্লকচেইন একটি বিকেন্দ্রীভূত নোডের নেটওয়ার্কের মাধ্যমে কাজ করে, যা লেনদেন যাচাই ও রেকর্ড করে। নিচে এর কাজের ধাপগুলো দেওয়া হলো:

ধাপ ১: Transaction Creation (লেনদেন তৈরি)

ব্যবহারকারীরা একটি ডিজিটাল রিকোয়েস্ট তৈরি করে লেনদেন শুরু করে, যাতে প্রেরক, প্রাপক এবং পরিমাণের বিবরণ থাকে।

সিনট্যাক্স (Python – Transaction Class):

python

class Transaction:
    def __init__(self, sender, receiver, amount):
        self.sender = sender
        self.receiver = receiver
        self.amount = amount

    def __repr__(self):
        return f"{self.sender} -> {self.receiver}: {self.amount}"

tx = Transaction("Alice", "Bob", 2.5)
print(tx)

ব্যাখ্যা:
প্রতিটি লেনদেনে স্পষ্টভাবে প্রেরক, প্রাপক ও পরিমাণ উল্লেখ থাকে।

ধাপ ২: Broadcasting (প্রচার)

লেনদেনটি যাচাইয়ের জন্য নেটওয়ার্কের সব নোডে ব্রডকাস্ট করা হয়।

সিনট্যাক্স (JavaScript):

javascript

const nodes = [
  { id: "Node1", pending: [] },
  { id: "Node2", pending: [] },
  { id: "Node3", pending: [] }
];

function broadcastTransaction(tx) {
  nodes.forEach(node => {
    node.pending.push(tx);
    console.log(`${tx} broadcasted to ${node.id}`);
  });
}

broadcastTransaction("Alice -> Bob: 2.5 BTC");

ব্যাখ্যা:
লেনদেনটি সব নোডে পাঠানো হয়, যাতে সবাই যাচাই প্রক্রিয়ায় অংশ নিতে পারে।

ধাপ ৩: Validation (যাচাই)

নোডগুলো লেনদেন যাচাই করতে consensus mechanisms (PoW বা PoS) ব্যবহার করে, নিশ্চিত করে লেনদেনটি বৈধ এবং double-spent নয়।

সিনট্যাক্স (Python – Validate Pending Transactions):

python

class Node:
    def __init__(self, name):
        self.name = name
        self.pending = []
        self.ledger = []
        self.balance = {}

    def receive_transaction(self, tx):
        self.pending.append(tx)
        print(f"{self.name} received pending: {tx}")

    def validate_pending(self):
        valid = []
        for tx in self.pending:
            sender = tx.sender
            amount = tx.amount
            if self.balance.get(sender, 0) >= amount:
                valid.append(tx)
        return valid

# double-spend প্রতিরোধ
node = Node("Node1")
node.balance["Alice"] = 10
tx1 = Transaction("Alice", "Bob", 3)
tx2 = Transaction("Alice", "Charlie", 8)  # অপর্যাপ্ত ব্যালেন্স
node.pending = [tx1, tx2]
valid_txs = node.validate_pending()
print(valid_txs)  # শুধু tx1

ব্যাখ্যা:
নোডগুলো চেক করে প্রেরকের যথেষ্ট ব্যালেন্স আছে কিনা এবং লেনদেনটি বৈধ কিনা। ডাবল স্পেন্ড প্রতিরোধে প্রতিটি আউটপুট একবারই খরচ করা যায়।

ধাপ ৪: Block Creation (ব্লক তৈরি)

বৈধ লেনদেনগুলো একটি ব্লকে গ্রুপ করা হয়, যাতে আগের ব্লকের রেফারেন্স থাকে, ফলে চেইন তৈরি হয়।

সিনট্যাক্স (Python – Block Creation):

python

class Block:
    def __init__(self, index, transactions, previous_hash):
        self.index = index
        self.transactions = transactions
        self.previous_hash = previous_hash
        self.hash = self.calculate_hash()

    def calculate_hash(self):
        import hashlib
        return hashlib.sha256(f"{self.index}{self.transactions}{self.previous_hash}".encode()).hexdigest()

block = Block(1, [tx1], "genesis_hash")
print(block.hash)

ধাপ ৫: Adding to the Blockchain (ব্লকচেইনে যোগ করা)

একবার যাচাই হলে, নতুন ব্লকটি ব্লকচেইনে যোগ হয়, একটি স্থায়ী ও অপরিবর্তনীয় রেকর্ড তৈরি করে।

ধাপ ৬: Synchronization (সিঙ্ক্রোনাইজেশন)

সব নোড তাদের ব্লকচেইনের কপি নতুন ব্লকের সাথে আপডেট করে, নেটওয়ার্ক জুড়ে ধারাবাহিকতা বজায় রাখে।

সিনট্যাক্স (JavaScript – Sync):

javascript

function syncLedger(nodes, block) {
  nodes.forEach(node => {
    node.ledger.push(block);
    console.log(`${node.id} synced with new block`);
  });
}

const newBlock = { hash: "0xabc123", data: "Validated Transactions" };
syncLedger(nodes, newBlock);

ধাপ ৭: Incentives (প্রণোদনা)

যে নোড সফলভাবে ব্লক যাচাই ও যোগ করে, সে ক্রিপ্টোকারেন্সি পুরস্কার পায়, যা অংশগ্রহণ ও নিরাপত্তাকে উৎসাহিত করে।

সিনট্যাক্স (Python – Block Reward):

python

def calculate_block_reward(block_height):
    initial_reward = 50  # BTC
    halving_interval = 210_000
    halvings = block_height // halving_interval
    return initial_reward / (2 ** halvings)

print(f"Block Reward: {calculate_block_reward(840_000)} BTC")

🌟 জনপ্রিয় পাবলিক ব্লকচেইন (Popular Public Blockchains)

১. Bitcoin (BTC)

Bitcoin হলো প্রথম এবং সবচেয়ে পরিচিত ক্রিপ্টোকারেন্সি, ২০০৯ সালে Satoshi Nakamoto ছদ্মনামে তৈরি। এটি মূলত পিয়ার-টু-পিয়ার লেনদেন এবং ডিজিটাল সম্পদের ভাণ্ডার হিসেবে ব্যবহৃত হয়।

সিনট্যাক্স (Python – Bitcoin Transaction):

python

class BitcoinTransaction:
    def __init__(self, sender, receiver, amount_btc):
        self.sender = sender
        self.receiver = receiver
        self.amount_btc = amount_btc

    def to_satoshi(self):
        return int(self.amount_btc * 100_000_000)

tx = BitcoinTransaction("Alice", "Bob", 0.5)
print(tx.to_satoshi())  # 50000000 satoshi

২. Ethereum (ETH)

Ethereum ২০১৫ সালে লঞ্চ হয়। এটি একটি বিকেন্দ্রীভূত প্ল্যাটফর্ম যা স্মার্ট কন্ট্রাক্ট এবং DApps তৈরি করতে দেয়। DeFi, NFT সহ নানা অ্যাপ্লিকেশন সমর্থন করে।

সিনট্যাক্স (Solidity – Smart Contract):

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;
    }
}

৩. Cardano (ADA)

Cardano ২০১৭ সালে প্রতিষ্ঠিত, গবেষণা-চালিত পদ্ধতি এবং লেয়ার্ড আর্কিটেকচারের জন্য পরিচিত। এটি স্মার্ট কন্ট্রাক্ট সমর্থন করে এবং আরও টেকসই ও স্কেলেবল ব্লকচেইন লক্ষ্য করে।

৪. Solana (SOL)

Solana ২০২০ সালে লঞ্চ হয়, উচ্চ থ্রুপুট এবং কম লেনদেন ফি-র জন্য পরিচিত। এটি Proof of History (PoH) consensus ব্যবহার করে। DeFi ও NFT স্পেসে আদর্শ।

৫. Polkadot (DOT)

Polkadot ২০২০ সালে লঞ্চ, বিভিন্ন ব্লকচেইনকে parachains এর মাধ্যমে ইন্টারঅপারেট করতে দেয়।

৬. Binance Smart Chain (BSC)

Binance তৈরি, দ্রুত লেনদেন এবং কম ফি-র জন্য পরিচিত। স্মার্ট কন্ট্রাক্ট ও DApps সমর্থন করে, DeFi-তে জনপ্রিয়।


💼 পাবলিক ব্লকচেইনের ব্যবহার (Use Cases)

১. Cryptocurrency Transactions (ক্রিপ্টোকারেন্সি লেনদেন)

Bitcoin ও Ethereum-এর মতো পাবলিক ব্লকচেইনে মধ্যস্বত্বভোগী ছাড়াই ডিজিটাল মুদ্রা স্থানান্তর করা যায়।

২. Decentralized Finance (DeFi)

পাবলিক ব্লকচেইনে lending, borrowing, trading-এর মতো আর্থিক সেবা ব্যাংক ছাড়াই চলে। Aave, Uniswap-এর মতো প্ল্যাটফর্ম Ethereum-এ কাজ করে।

৩. Non-Fungible Tokens (NFTs)

NFTs পাবলিক ব্লকচেইনে অনন্য ডিজিটাল সম্পদের মালিকানা প্রকাশ করে। Ethereum NFT minting ও trading-এর প্রধান প্ল্যাটফর্ম।

৪. Supply Chain Management (সাপ্লাই চেইন)

পাবলিক ব্লকচেইন পণ্যের উৎস ও যাত্রাপথ যাচাই করে স্বচ্ছতা ও ট্রেসেবিলিটি বাড়ায়। VeChain এর উদাহরণ।

৫. Voting Systems (ভোটিং সিস্টেম)

পাবলিক ব্লকচেইন নিরাপদ ও স্বচ্ছ ভোটিং প্রক্রিয়া নিশ্চিত করে, জালিয়াতি কমায় এবং নির্বাচনের ফলাফলে আস্থা বাড়ায়।

৬. Identity Verification (পরিচয় যাচাই)

পাবলিক ব্লকচেইন বিকেন্দ্রীভূত পরিচয় সমাধান দেয়, যেখানে ব্যবহারকারী কেন্দ্রীয় কর্তৃপক্ষ ছাড়াই নিজের পরিচয় নিয়ন্ত্রণ ও যাচাই করতে পারে। uPort, Civic উদাহরণ।


✅ পাবলিক ব্লকচেইনের সুবিধা (Advantages)

  • Decentralization: কোনো একক সত্তা নিয়ন্ত্রণ করে না, দুর্নীতি বা ম্যানিপুলেশনের ঝুঁকি কমে।
  • Transparency: সব লেনদেন পাবলিক, সবাই যাচাই ও অডিট করতে পারে।
  • Immutability: রেকর্ড স্থায়ী ও নিরাপদ।
  • Security: উন্নত ক্রিপ্টোগ্রাফি ডেটা সুরক্ষিত রাখে, হ্যাকিং প্রতিরোধী।
  • Accessibility: যে কেউ অংশ নিতে পারে, বৈচিত্র্যময় বাস্তুতন্ত্র তৈরি হয়।

⚠ চ্যালেঞ্জ ও সীমাবদ্ধতা (Challenges and Limitations)

  • Scalability: ব্যবহারকারী ও লেনদেন বাড়লে গতি ধীর হয়, লেটেন্সি বাড়ে।
  • Energy Consumption: PoW উচ্চ শক্তি খরচ করে, পরিবেশগত উদ্বেগ সৃষ্টি করে।
  • Privacy Concerns: স্বচ্ছতা সুবিধা হলেও সব লেনদেন দৃশ্যমান, যা সংবেদনশীল তথ্য প্রকাশ করতে পারে।
  • Regulatory Uncertainty: বিকেন্দ্রীভূত প্রকৃতির কারণে নিয়ন্ত্রক সম্মতি কঠিন; সরকারি নীতিমালা এখনও উন্নয়নশীল।
  • Vulnerability to Attacks: সাধারণভাবে নিরাপদ হলেও Sybil attacks বা 51% attacks এর ঝুঁকি থাকে।

📝 এক্সারসাইজ (হিন্টসহ)

Exercise 1: পাবলিক ব্লকচেইন নোড সিমুলেট করো

কাজ: Python-এ একটি Node ক্লাস তৈরি করো যাতে connect, broadcast, এবং receive_block মেথড থাকবে। তিনটি নোড তৈরি করে একটি ব্লক ব্রডকাস্ট করো।

হিন্ট:

  • peers তালিকায় সংযুক্ত নোড রাখো।
  • broadcast প্রতিটি পিয়ারের receive_block কল করবে।

Exercise 2: Proof of Work ইমপ্লিমেন্ট করো

কাজ: একটি ফাংশন লেখো যা data ও difficulty প্যারামিটার নেবে এবং এমন nonce খুঁজবে যাতে হ্যাশ difficulty সংখ্যক শূন্য দিয়ে শুরু হয়।

হিন্ট:

  • hashlib.sha256 ব্যবহার করো।
  • while লুপে startswith('0' * difficulty) চেক করো।

Exercise 3: Transaction Validation (ডাবল স্পেন্ড প্রতিরোধ)

কাজ: একটি ক্লাস লেখো যা ব্যালেন্স ট্র্যাক করবে এবং validate_pending মেথডে কেবল যথেষ্ট ব্যালেন্স থাকা লেনদেনগুলো রিটার্ন করবে।

হিন্ট:

  • self.balance ডিকশনারি ব্যবহার করো।
  • if self.balance.get(sender, 0) >= amount চেক করো।

Exercise 4: পাবলিক ব্লকচেইনে স্মার্ট কন্ট্রাক্ট (Solidity)

কাজ: একটি Solidity কন্ট্রাক্ট লেখো যা ব্যবহারকারীদের টোকেন জমা ও উত্তোলনের সুযোগ দেয়।

হিন্ট:

  • mapping(address => uint256) public balances;
  • deposit ফাংশনে balances[msg.sender] += msg.value;
  • withdraw ফাংশনে require(balances[msg.sender] >= amount, "Insufficient balance");

Exercise 5: Block Reward Calculator

কাজ: একটি ফাংশন লেখো যা ব্লক হাইট ইনপুট নিয়ে Bitcoin ব্লক রিওয়ার্ড বের করবে (halving প্রতি ২১০,০০০ ব্লকে)।

হিন্ট:

  • halvings = block_height // 210_000
  • reward = 50 / (2 ** halvings)

Exercise 6: পাবলিক লেজার ভিজিবিলিটি

কাজ: JavaScript-এ একটি ledger অ্যারে তৈরি করো এবং একটি ফাংশন লেখো যা সবার জন্য লেনদেনের ইতিহাস রিটার্ন করে।

হিন্ট:

  • return ledger; — কোনো অ্যাক্সেস কন্ট্রোল নেই।

🧭 সমাধানের পথনির্দেশনা

  1. প্রথমে নোড ক্লাস ডিজাইন করো: নোডে কী কী প্রপার্টি থাকবে (name, peers, ledger)।
  2. সংযোগ স্থাপন করো: connect মেথড দুই পিয়ারের peers তালিকা আপডেট করবে।
  3. ব্রডকাস্ট ফাংশন যোগ করো: broadcast সব পিয়ারের receive_block কল করবে।
  4. Consensus ইমপ্লিমেন্ট করো: PoW বা PoS ব্যবহার করে লেনদেন যাচাই করো।
  5. স্মার্ট কন্ট্রাক্ট লিখে টেস্ট করো: Ethereum টেস্টনেট (Sepolia) ব্যবহার করতে পারো।
  6. ডাবল স্পেন্ড টেস্ট করো: একই ইনপুট দ্বিতীয়বার খরচ করলে ভ্যালিডেশন ব্যর্থ হওয়া উচিত।
  7. ব্লক রিওয়ার্ড ক্যালকুলেট করে যাচাই করো: Bitcoin-এর halving সঠিকভাবে কাজ করছে কিনা দেখো।

📚 সারসংক্ষেপ

পাবলিক ব্লকচেইন একটি রূপান্তরকারী প্রযুক্তি, যা বিকেন্দ্রীকরণ, স্বচ্ছতা ও নিরাপত্তার মাধ্যমে বিভিন্ন শিল্পকে নতুন আকার দিতে পারে। স্কেলেবিলিটি, শক্তি খরচ ও নিয়ন্ত্রক উদ্বেগের মতো চ্যালেঞ্জ থাকা সত্ত্বেও চলমান উদ্ভাবন ও প্রবণতা বিস্তৃত গ্রহণ ও উন্নত কার্যকারিতার পথ তৈরি করছে। পাবলিক ব্লকচেইন বিকেন্দ্রীভূত অর্থ, ডিজিটাল পরিচয় সমাধান ও সম্পদ টোকেনাইজেশনে গুরুত্বপূর্ণ ভূমিকা পালন করবে, যা একটি উন্মুক্ত ও অন্তর্ভুক্তিমূলক ডিজিটাল অর্থনীতি গড়ে তুলবে। উপরের সিনট্যাক্স ও এক্সারসাইজগুলো অনুশীলন করলে আপনি পাবলিক ব্লকচেইনের মৌলিক ধারণা আয়ত্ত করতে পারবেন।


এই পোস্টটি ToLearnTeam.com-এ প্রকাশের জন্য প্রস্তুত।
কোনো অংশ আরও বিস্তারিত করতে চাইলে জানাতে পারেন।

The post পাবলিক ব্লকচেইন কী? কাজের প্রক্রিয়া, জনপ্রিয় নেটওয়ার্ক, সুবিধা-অসুবিধা ও ব্যবহার appeared first on To Learn Team.

]]>
ব্লকচেইন কী? ইতিহাস ও বিবর্তন: ১৯৯১ থেকে ২০২২ পর্যন্ত সম্পূর্ণ গাইড https://tolearnteam.com/blockchain-history-evolution-bangla/ Sat, 15 Aug 2026 15:05:29 +0000 http://tolearnteam.com/?p=2616 ব্লকচেইনকে Chain of Blocks হিসেবে সংজ্ঞায়িত করা যায়, যেখানে প্রতিটি ব্লকে নির্দিষ্ট তথ্য থাকে। এটি একটি লেজার (Ledger), অর্থাৎ একটি ফাইল যা ক্রমাগত বাড়তে থাকে এবং সব লেনদেনের রেকর্ড স্থায়ীভাবে সংরক্ষণ করে। এই…

The post ব্লকচেইন কী? ইতিহাস ও বিবর্তন: ১৯৯১ থেকে ২০২২ পর্যন্ত সম্পূর্ণ গাইড appeared first on To Learn Team.

]]>
ব্লকচেইনকে 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)
নির্বাচনকম্পিউটেশনাল কাজকয়েন স্টেক
শক্তি খরচউচ্চকম
নিরাপত্তা৫১% অ্যাটাকঅর্থনৈতিক পেনাল্টি

📊 টাইমলাইন টেবিল

বছরBlockchainBitcoinEthereum
1991Stuart Haber এবং Scott Stornetta প্রথম Blockchain-এ কাজ করেনNANA
1992Merkle Trees গঠিত হয়NANA
2000Stefan Konst ক্রিপ্টোগ্রাফিক চেইন তত্ত্ব প্রকাশ করেনNANA
2004Hal Finney “Reusable Proof of Work” প্রবর্তন করেনNANA
2008Satoshi Nakamoto “Distributed Blockchain” ধারণা দেনNANA
2009James Howells Bitcoin মাইনিং শুরু করেনSatoshi Nakamoto Bitcoin White Paper প্রকাশ করেনNA
2014Blockchain 2.0 এর জন্মNAEthereum Blockchain Crowdsale-এ ফান্ডেড
2015Linux Foundation Hyperledger লঞ্চ করেNAEthereum Frontier Network লঞ্চ
2016Blockchain একক শব্দ হিসেবে গৃহীতBitfinex হ্যাক, ১২০,০০০ BTC চুরিNA
2017Block.one EOS blockchain OS চালু করেJapan Bitcoin বৈধ করেNA
2018Google, Twitter, Facebook ক্রিপ্টো বিজ্ঞাপন নিষিদ্ধBitcoin ১০ বছর পূর্ণNA
2019Amazon Managed BlockchainNAEthereum দৈনিক ১ মিলিয়ন লেনদেন
2020Stablecoins জনপ্রিয়NABeacon Chain লঞ্চ
2022NANAEthereum 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-এর ভূমিকা উল্লেখ করো।

🧭 সমাধানের পথনির্দেশনা

  1. প্রথমে ডেটা স্ট্রাকচার ঠিক করো: ব্লকে কী কী ফিল্ড থাকবে (index, timestamp, data, previous_hash, hash) লিখে ফেলো।
  2. হ্যাশ ফাংশন আলাদা করো: যাতে পরে সহজে বদলানো যায়।
  3. জেনেসিস ব্লক বানাও: প্রথম ব্লকের previous_hash হবে "0"।
  4. চেইন ভ্যালিডেশন ফাংশন লেখো: প্রতিটি ব্লকের হ্যাশ এবং previous_hash মিলছে কিনা পরীক্ষা করো।
  5. কনসেনসাস যোগ করো: প্রথমে সহজ proof-of-work ব্যবহার করো, পরে proof-of-stake দেখতে পারো।
  6. টেস্ট করো: একটি ব্লকের ডেটা পরিবর্তন করে দেখো চেইন ভেঙে যায় কিনা।

📚 সারসংক্ষেপ

ব্লকচেইন হলো একটি ক্রমবর্ধমান, সুরক্ষিত এবং অপরিবর্তনীয় ডিজিটাল লেজার। এর ইতিহাস ১৯৯১ সালে Stuart Haber এবং W. Scott Stornetta-র হাত ধরে শুরু হয়ে ২০২২ সালে Ethereum-এর Proof of Stake-এ রূপান্তরের মাধ্যমে একটি পরিণত প্রযুক্তিতে পরিণত হয়েছে। প্রোগ্রামার হিসেবে ব্লকচেইনের এই ইতিহাস ও মূল ধারণাগুলো জানা ভবিষ্যতের ডেভেলপমেন্টের জন্য অপরিহার্য। উপরের সিনট্যাক্স ও এক্সারসাইজগুলো অনুশীলন করলে ব্লকচেইনের মৌলিক ভিত্তি আপনার কাছে পরিষ্কার হয়ে যাবে।


এই পোস্টটি ToLearnTeam.com-এ প্রকাশের জন্য প্রস্তুত।
কোনো অংশ আরও বিস্তারিত করতে চাইলে জানাতে পারেন।

The post ব্লকচেইন কী? ইতিহাস ও বিবর্তন: ১৯৯১ থেকে ২০২২ পর্যন্ত সম্পূর্ণ গাইড appeared first on To Learn Team.

]]>