区块链的前世今生
- 密码朋克(Cypherpunk)
维基解密
——阿桑奇
BT下载
——布莱姆-科恩
WWW
——蒂姆博纳斯-李
智能合约
——尼克萨博
Facebook创始人
——肖恩帕克
中本聪
- Adam Back发明Hashcash,使用POW
- Haber/Stornetta提出时间戳方法保证数字文件安全协议
- 戴伟发明了B-money,强调点对点交易和不可更改记录
- 哈尔-芬妮 退出加密现金
- 2008中本聪 《比特币:一个点对点的电子现金系统》
区块链的前景
应用场景
- 资产: 数字资产发行、支付(跨境支付)、交易、结算
- 记账: 股权交易、供应链金融、商业积分
- 不可篡改: 溯源、众筹、医疗证明、存在性证明
- 点对点: 共享经济、物联网
- 隐私: 匿名交易
比特币
比特币是什么
- 数字货币
- 财产只受自己控制
- 无通胀(总量2100万)
- 没有假钞
- 流通性好(点对点到账,省去许多中间环节)
- 去中心化的记账系统
原理
账本如何验证
1.hash
哈希函数:Hash(原始信息)==>摘要信息
特点:
- 同样的原始信息用同一个哈希函数总能得到相同的摘要信息
- 原始信息任何微小的变化都会哈希出面目全非的摘要信息
- 从摘要信息无法逆推算出原始信息
MD5就是一个Hash函数。MD5可以用于校验下载文件是否出错:如果文件的数据有错误,那么文件的hash值就会和网站提供的正确的hash值不一样。这样就可以确定我们下载的文件是否出错。
同样的道理可以用在比特币账本校验中,对一个账本hash之后,就可以得到一个hash值,用这个hash值代替账本原始数据来对比,这样效率会高很多。
这样的hash值与其他数据保存下来,就形成了一个区块(也叫打包、记账、挖矿):
将序号、时间戳、Hash值称为区块的头部。假如这时候来了第二个账本:
注意:在对第二个账本进行Hash时,会传入第一个账本的Hash值,和第二个账本的原始数据一起进行Hash(就是通过这种方式将块与块相连接!)。如果hash值结果是正确的,就说明传入的hash值也是正确的。这样再将第二个账本的hash传入第三个账本,这样一直传递下去,产生第四个块,第五个块,第N个块…每个区块都连着上一个区块,这也是”区块链”这个名字的由来。每个节点核对信息的时候,只需要核对最后一个区块的信息是否正确,如果最后一个区块的hash是正确的话,那么说明整个区块链的账本都是正确的,由此完成高效的验证。 账户所有权
- 比特币账户就是地址
谁能用这个地址进行交易,谁就拥有这个账户的所有权。转账过程就是把比特币从一个地址转移到另外一个地址。账本上不保存任何个人信息。下图就是一个转账记录。
- 比特币中一个地址有一个私钥。
私钥和账户有着绝对确定的直接对应关系,而不能像银行卡那样再修改密码了。谁拥有了私钥,就相当于谁就拥有了这个账户,谁就可以用这个地址进行交易。
- 非对称加密技术(交易签名),不泄漏私钥情况下证明拥有某个私钥。
1.交易进行hash得到摘要
2.用私钥对摘要进行签名