区块链的前世今生

  • 密码朋克(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.用私钥对摘要进行签名