• 区块链简介


    概要

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

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

    区块链包含的技术

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

  • 相关阅读:
    Keepalived安装配置
    Playbook 角色(Roles) 和 Include 语句
    Ansible Playbook
    ansible的Ad-hoc命令
    Android线程简介
    宝岛探险,DFS&BFS
    再解炸弹人,dfs&bfs
    解救小哈——bfs广搜
    解救小哈——dfs深搜
    数的全排列
  • 原文地址:https://www.cnblogs.com/wang_yb/p/10754042.html
Copyright © 2020-2023  润新知