- 1.前言
- 2.为什么是区块链编程而不是比特币编程?
- 3.为什么是 C#?
- 4.预备条件
- 5.本书众筹
- 6.补充阅读
- 7.图标
- 8.许可: CC (ASA 3U)
- 9.项目设置
- 1.比特币地址
- 2.交易
- 3.区块链
- 4. 区块链不仅仅是比特币
- 5.支付比特币
- 6.作为真实性验证方法的所有权证明
- 1.足够随机了吗?
- 2.秘钥加密
- 3.秘钥的生成
- 1.P2PK[H] (向公钥付款 [Hash])
- 2.多重签名
- 3.P2SH ( 向脚本哈希付款)
- 4.灵活机动性
- 5.使用 TransactionBuilder
- 1.颜色币
- 2.发行一项资产
- 3.传输资产
- 4.单元测试
- 5.李嘉图合约
- 6.流动的民主
- 7.烧钱和声誉证明
- 8.存在性证明
- 1.比特币发展的挑战
- 2.如何证明一个币存在于区块链上
- 3.如何证明一个颜色币存在于区块链上
- 4.断开与第三方 API 的信任关系
- 5.防止延展性攻击
- 6.保护你的私钥
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
3.区块链
你也许注意到,当我们证明发出去的 TxOut 所有权时,并没有证明 TxOut 的实际存在。这就是区块链的主要作用一显身手的地方:
区块链是所有交易的数据库,记录了第一个比特币交易以来的所有信息,第一个区块又叫做创始块。区块链在全世界范围内被复制。如果你使用比特币核心,你的电脑上将拥有所有区块链。一旦在区块链上发生交易,那就不能否认它的发生了。
矿工只有一个目标,就是在区块链中插入一条交易记录。一组新的交易被添加后,一个区块就被全网广播了。网络上的其它节点确认这个新的区块遵守先前设定的比特币协议。
创建一个区块成本很高。如果一个矿工企图增加一个无效的交易,其它节点将不会认可这个区块,矿工在创建这个区块时花费的投资将打水漂。
一旦矿工提交了一个有效的区块,里面所有的交易都将被确认。当这个发生时,所有矿工都必须放下手中的工作,开始新的交易。一个区块被确认后,它就被写进区块链了。随着后面继续加入新的区块,它被撤销的概率也就越来越低。
在历史上我们第一次拥有的这样一个数据库,它不能被轻易地改写,不再需要信任和审查机制,而且是大范围分布式的。如果我们把比特币当作是一种货币,那区块链就是一套账本。
区块链是一个数据库,你给里面的数据赋予含义。你很快就可以发现,一次比特币交易包含的信息远远超过比特币的传输。一次比特币交易在数据库中就是一行记录,永远不可能擦除。
作为用户,你可以通过两种不同的方法验证一次交易是否已经记录在区块链里面。
- 检查整个区块链,它在写作本书时有好几个 GB 大小
- 寻求一颗 merkel 树,大概有几 K。我们将介绍 merkel 树的更多内容,它与简单支付验证有关联。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论