区块链简介

概要

区块链是去年比较火的概念, 而让它这么出名的一个经典应用就是比特币. 区块链并不是指一种特殊的新技术, 而是一系列技术方案的集合, 通过这些技术方案的结合, 解决了去中心化的信用问题.

区块链是概念, 比特币则是区块链落地的一个实例.

区块链包含的技术

  1. 去中心化 区块链本质是一个 分布式的数据库 , 没有中央服务器, 所有的内容分布式的缓存在各个客户端.
  2. 信息编码: 目的是防止信息被篡改 信息编码采用 SHA 算法, 因为它有以下特点:
    • 原始信息编码后成 固定长度的字符串, 也就是 指纹
    • 无法从指纹反推出原始信息
    • 原始信息修改一点点, 指纹就发生很大的变化
  3. 加密: 目的是验证信息的真实性 一般采用非对称加密算法, 比如 ECC(椭圆曲线算法)

区块链的传输过程

  1. 发送方
    • 原文 –> SHA 算法 –> 指纹
    • 指纹 –> ECC 算法 + 私钥 –> 密文
    • 原文 + 密文 + ECC 公钥 –> 发送广播
  2. 接收方
    • ECC 公钥 + 密文 –> 指纹 1
    • 原文 –> SHA 算法 –> 指纹 2
    • 指纹 1 == 指纹 2 –> 接受成功; 否则信息非法

区块链的问题

  1. 客户端的信息如何同步? 当某个客户端 A 要改变自己的信息的时候, 比如 AB 进行了付款.
    这时 A 会广播交易信息, 所有接受到交易信息的客户端会同步自己的账本.

  2. 区块链分叉如何处理? 比如, 以比特币为例:

    • 客户端 A, B 账本是同步的, 最新的节点都是 x
    • A 基于当前账本挖到了新的比特币, A 的账本变成 x –> y, 并且广播
    • 同时, B 也基于当前账本挖到了新的比特币 z, B 的账本变成 x –> z, 并且广播
    • 同步之后, 账本就发生了分叉, x –> y/z

    如何解决分叉并不是区块链定义的范畴, 而是具体区块链应用自己定,
    比特币 来说: 如果出现分叉, 那么分叉之后, 先达到 6 个区块的那个分支, 被认为是主链, 另一个分叉被废弃.

对于上面那个例子, y 和 z 之后, 谁先到 6 个区块, 谁就是主链, 另一个分叉会被废弃.

posted @ 2019-04-23 00:33  wang_yb  阅读(1061)  评论(0编辑  收藏  举报