04 BTC-实现
基于交易模式
UTXO:
说明:unspent transaction output,未被完全花费的交易输出
寻找条件:产生这个交易的HASH值与这个转账输出是第几个输出
UTXO中 输入 = 输出(比特币个数)
输出-输入 = 交易花费数额
基于账户的模式
ETH
区块:
块头信息
交易的默克尔树
挖矿条件
- 调整块头的nonce。
- 调整coinbase的指定数值。
- 前一个区块的哈希值
挖矿的概率分析
伯努利实验
多次伯努利
近似泊松分布:每次的挖矿成功的概率都相等,前面的工作对于下一次挖矿没有任何影响,算计强只是可以尝试的次数比较多,所以才能够更容易挖到区块。
如果不是概率相等:那么算力强的矿工,可以一直进行保底,前面贡献越多,保底的概率越大,对于其他小矿工是是分不公平的。
挖矿
- 维护区块链。
记账权可能的操作
zero的确认
- 说明:交易发布,但是区块未进行上链。
- 常用的认证操作。
- 原因:区块链首先接受接受先收到的交易。
伪造别人的签名
多次花币(回滚操作)
- 说明:
- 防范:
故意不发布某些合法的交易
- 可以在下一个区块进行发布。
selffish mining
- 挖到区块等待发布。
- 风险太大。
- 51%
- 好处:浪费别人算力、减少竞争。
04 BTC-实现
https://prelearn-code.github.io/2024/07/22/BlockChain/BTC/04 BTC-实现/