ব্লকচেইন কী? ইতিহাস ও বিবর্তন: ১৯৯১ থেকে ২০২২ পর্যন্ত সম্পূর্ণ গাইড

Blog / ব্লকচেইন কী? ইতিহাস ও বিবর্তন: ১৯৯১ থেকে ২০২২ পর্যন্ত সম্পূর্ণ গাইড

ব্লকচেইন কী? ইতিহাস ও বিবর্তন: ১৯৯১ থেকে ২০২২ পর্যন্ত সম্পূর্ণ গাইড Detail Page

ব্লকচেইন কী? ইতিহাস ও বিবর্তন: ১৯৯১ থেকে ২০২২ পর্যন্ত সম্পূর্ণ গাইড

ব্লকচেইন প্রযুক্তির ইতিহাস – ১৯৯১ থেকে ২০২২ সাল পর্যন্ত বিবর্তন

ব্লকচেইনকে 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-এ প্রকাশের জন্য প্রস্তুত।
কোনো অংশ আরও বিস্তারিত করতে চাইলে জানাতে পারেন।

Leave a Reply

Welcome to To Learn Team, a dynamic educational platform where knowledge meets collaboration. Designed for students, educators, and lifelong learners, we provide a curated hub of interactive study groups, expert tutorials, and comprehensive resources across diverse subjects. We believe that learning is most powerful when done together. By uniting a global community, we transform curiosity into confidence and individual aspirations into shared achievements. Join the To Learn Team today—elevate your intellect and grow with us!

Get In Touch

Address

Dhaka, Bangladesh

Email

abir43tee@gmail.com

Phone

+880 1711427737

Quick Search