C++从零开始区块链:一个简单的总体介绍

本系列博文对理论性的东西叙述的不多,主要是以代码为主,本例是模仿比特币实现的一个电子货币记账系统。
虽然不打算介绍理论性的东西,但交易流程还是要说一下的,毕竟所有的代码都是为这个交易流程服务的。

交易流程

当发起一个交易的时候,交易发起方先准备一条“地址a要向地址b转账n个币”的消息,然后用地址a的私钥进行数字签名,用以表明发起方对地址a的所有权,最后再把该消息和签名信息在P2P网络上对其他节点进行广播。
其他节点收到广播后,先对消息的数字签名进行验证,验证通过后再检查余额是否够用。全部验证通过后将该交易记在自己的交易列表上。至此,交易流程结束。
虽然交易流程结束了,但还没有记到区块链上,那怎么记到区块链上呢?挖矿啊。当一个节点找到了一个工作量证明,就将自己记录的交易列表打包记到一个区块上,然后再向所有的节点进行广播,告诉其他人。
其他节点收到区块后,对工作量证明进行验证,验证后将区块挂在区块链上,再将该区块上的交易列表和自己的交易列表进行比对,将自己交易列表中已经在区块上记录的消息删除。
当然,比特币中的交易流程要比这复杂的多,我们只为学习,把流程进行简化了。

程序设计

综上所述,可以看出应该有三个主要模块:数字签名,P2P网络和区块链逻辑。以下是对三个模块的定义:

Cryptography

该类主要用于处理数字签名,编码解码等数学和密码相关功能。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木千

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值