5月29日 01:40
什么是区块链技术?请解释其核心特点和去中心化原理
区块链是一种分布式账本技术,通过密码学将数据区块按时间顺序链式连接,实现去中心化存储与验证。核心特点:去中心化(无单点控制,全网节点共持账本)、不可篡改(每个区块头包含前一区块哈希,篡改任一区块需重算后续所有区块哈希)、透明性(交易公开可验证)、安全性(共识机制防恶意攻击)。去中心化原理:传统系统依赖中心服务器,区块链中所有节点对等存储完整账本,通过共识算法(PoW/PoS/PBFT)对新区块达成一致。公有链任何人可参与,联盟链需授权,私有链由单一组织控制。
追问
- 哈希指针如何保证区块不可篡改?如果攻击者控制了51%算力会发生什么?
- PoW、PoS、PBFT 三种共识机制分别适用于什么场景?它们的吞吐量和最终确认时间有何差异?
- 默克尔树在区块链中起什么作用?轻节点如何利用默克尔证明验证交易?
- 公有链、联盟链、私有链在去中心化程度上有什么区别?各自适合什么业务?
- 区块链的"不可能三角"指什么?为什么无法同时满足去中心化、安全性和可扩展性?
写段代码
javascript// 简化版区块链:哈希链与工作量证明 class Block { constructor(data, prevHash) { this.data = data; this.prevHash = prevHash; this.nonce = 0; this.hash = this.mine(); } mine() { let h; do { this.nonce++; h = sha256(this.prevHash + this.data + this.nonce); } while (!h.startsWith('0000')); // 难度:前4位为0 return h; } } class Chain { constructor() { this.blocks = [new Block('genesis', '0')]; } add(data) { this.blocks.push(new Block(data, this.blocks.at(-1).hash)); } isValid() { return this.blocks.every((b,i) => i===0 || b.prevHash === this.blocks[i-1].hash); } }