经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 其他 » 区块链 » 查看文章
区块链简介
来源:cnblogs  作者:wang_yb  时间:2019/4/23 8:36:26  对本文有异议

概要

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

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

区块链包含的技术

  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 个区块, 谁就是主链, 另一个分叉会被废弃.

原文链接:http://www.cnblogs.com/wang_yb/p/10754042.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号