Blockchain Basics Skill
Master blockchain fundamentals including consensus mechanisms, cryptographic primitives, and distributed systems architecture.
Quick Start
Invoke this skill for blockchain fundamentals
Skill("blockchain-basics", topic="consensus", depth="intermediate")
Topics Covered 1. Consensus Mechanisms
Learn how distributed networks achieve agreement:
Proof of Work: Mining, hashrate, difficulty adjustment Proof of Stake: Validators, slashing, finality Byzantine Fault Tolerance: Leader election, view changes 2. Cryptographic Foundations
Understand the security primitives:
Hash Functions: SHA-256, Keccak-256, properties Digital Signatures: ECDSA, Ed25519, verification Merkle Trees: Proof construction, verification 3. Network Architecture
Explore distributed systems:
P2P Networks: Gossip protocols, peer discovery Node Types: Full nodes, light clients, archives Block Propagation: Compact blocks, relay networks 4. Transaction Lifecycle
Follow data through the chain:
Transaction Structure: Inputs, outputs, signatures Mempool: Fee markets, ordering, priority Confirmation: Finality, reorganization Code Examples Verify Merkle Proof import hashlib
def verify_merkle_proof(leaf: bytes, proof: list, root: bytes) -> bool: """Verify a Merkle proof for inclusion""" current = leaf for sibling, is_left in proof: if is_left: current = hashlib.sha256(sibling + current).digest() else: current = hashlib.sha256(current + sibling).digest() return current == root
Calculate Block Hash import hashlib import struct
def calculate_block_hash(header: dict) -> bytes: """Calculate Bitcoin-style block hash""" data = struct.pack( '<I32s32sIII', header['version'], bytes.fromhex(header['prev_block']), bytes.fromhex(header['merkle_root']), header['timestamp'], header['bits'], header['nonce'] ) return hashlib.sha256(hashlib.sha256(data).digest()).digest()[::-1]
Common Pitfalls Pitfall Issue Solution Finality confusion PoW is probabilistic Wait for 6+ confirmations Hash vs encryption Hashes are one-way Use proper encryption for secrets Timestamp trust Miners can manipulate Use block height for precision Troubleshooting "Why is my transaction not confirming?" Check transaction fee vs current mempool Verify nonce is sequential (no gaps) Ensure sufficient balance for amount + gas "How do I verify a signature?" from eth_account import Account from eth_account.messages import encode_defunct
message = encode_defunct(text="Hello") address = Account.recover_message(message, signature=sig)
Learning Path [Beginner] → Hash Functions → Digital Signatures → Transactions ↓ [Intermediate] → Merkle Trees → Consensus → Network Layer ↓ [Advanced] → BFT Protocols → Sharding → Cross-chain
Test Yourself
Unit test template
def test_merkle_root(): txs = [b"tx1", b"tx2", b"tx3", b"tx4"] root = build_merkle_root(txs) assert len(root) == 32 assert verify_merkle_proof(txs[0], get_proof(0), root)
Cross-References Bonded Agent: 01-blockchain-fundamentals Related Skills: ethereum-development, smart-contract-security Version History Version Date Changes 2.0.0 2025-01 Production-grade with validation, examples 1.0.0 2024-12 Initial release