区块链-去中心化账本
比特币-基于交易的账本模式
比特币:
每个区块记录这交易信息(转账、铸币),系统不记录各账户余额,需要通过交易记录推算账户余额。(UTXO)
UTXO(Unspent Transaction Output)包含产生交易的哈希值,以及其处于第几个交易值。
作用:通过UTXO检测新发布的交易是否合法
全节点在内存中维护UTXO,以便于快速检测双花攻击。 同时每笔交易都需要说明币的来源
total input=total output(+交易费)
相比于以太坊显式记录账户余额,比特币的隐私保护性更好
比特币挖矿安全性:
大部分算力掌握在诚实的人的手里,较大概率保证记账权在无恶意矿工手里。
如果落在恶意节点中:
1.将其他账户的币转走
不能将其他账户的币转走
此伪造交易在其他无恶意的节点上验证不通过
2.故意制造并行的双花,如果M转给A的交易使得外部产生不可逆的效果(例如购物)接着再进行交易回滚(并将此交易扩展为最长链),那么M就能从中不当获利。
如何防范:如果该交易节点后还接着几个区块,这样回滚的难度就会很大
解决方法:
1.多等几个(确认)区块,大约六个确认区块就会认为该交易不可篡改(1h)
2.zero confirmation
3.selfish mining 挖到区块后不急着发布
优点:能够减少挖币竞争
风险:如果矿力不够,导致之前所挖区块为无效区块