全节点 | 轻节点 |
---|
一直在线 | 不是一直在线 | 在硬盘上维护完整的区块链信息 | 只保存每个区块的head | 在内存中维护UTXO集合,以便快速校验交易的正确性 | 只存与自身有关的交易 | 监听比特币网络上的交易信息,验证每个交易的合法性 | 无法校验大多数交易的合法性,只能校验与自身有关的交易的合法性 | 决定哪些交易会被打包到区块中 | 无法校验网上发布的区块的正确性 | 监听别的矿工挖出来的区块,验证合法性 | 可以验证挖矿的难度 | 挖矿 决定沿着哪条链挖下去 选择分叉 | 只能检测哪个是最长链,不知道哪个最长合法链 |
- 比特币网络中大部分是轻节点,只是交易的话可以只用轻节点
- 如果有新发布的区块出现,需要重新组装候选区块,重新开始挖
- 重新挖矿的代价可以略过,因为无记忆性memoryless、process free:既无论什么时候开始挖矿的挖矿概率都是一样的
- 比特币的安全性保证,一方面是密码学上保证(前提是大多数是好矿工),一种是共识机制的保证
挖矿技术的演变 CPU -> GPU -> ASIC: Application Specific Integrated Cirual(高度定制化,使得只能解决一类mining puzzle问题)
矿池 almost valid block 工作量证明 提交share的数目
单个人算力过多时,存在的问题
- fork 分叉攻击
- Boycott攻击,不承认某个账户交易
|