0%

区块链的一些简单理解

关于比特币、以太坊、区块链结构

比特币-区块链1.0

  • 高度自治,

  • 无国界贸易:

  • 不可篡改:交易一旦完成,交易数据不可篡改

  • 隐私安全:每个用户可以拥有一个或多个账户,且无需提供用户信息,只需要提供密钥即可

去中心化模型

去中心化模型:点对点(P2P)通信

去中心化并不是没有中心,而是中心不断的变化,每一次的中心都是由节点竞争而来

账本隐私和快速对账

比特币如何保护账本隐私:

  • 比特币系统利用哈希算法对交易信息进行加密、保护隐私
    • 交易信息:账户、信息内容
  • 哈希算法
    • 能够提取事物的特征
    • 通过哈希值是无法反推出原来的明文
    • 哈希算法 可以保护隐私和对账
      • 只要哈希值不一样,账本中的数据就存在差异

账本一致性

比特币系统规则:最长链为可信任的链条

比特币中的矿工:创造区块,使链增长

争夺记账权的方式:工作量证明

  • 工作量证明(Proof of Work)简称POW

  • 节点通过竞争PoW求解来获取记账权

    • 包括区块挖掘在内的区块链活动都是具有强时效性的竞争活动,竞争过程中,拥有哈希和拓扑优势的节点将有更高的概率获胜
  • 通过重复计算Nonce直至哈希值小于目标哈希值的过程:挖矿;这一整套算法成为POW算法

  • 算力的体现就是单位时间内Nounce尝试的次数

  • 伪造账本想要成为朱利安,必须要和比特币系统其余的人比拼算力,只有长时间的保持算力优先,才有伪造账本的可能。但保持长时间的算力优先的难度巨大,有可能高于伪造账本的获利

比特币的分叉

  • 不同矿工,使用不同版本的比特币系统进行挖矿,导致链条分叉
    • 硬分叉:系统的更新导致出现分支,无法合并,比如区块的扩容、
    • 软分叉:可以合并
  • 这是矿工再比特币系统 协议层面上产生了分歧

总结

  • 比特币不是一种货币,是一个分布式的账本系统

  • 账本记录交易过程,由节点广播道网络,保持其余节点数据一致


区块链技术的形成

区块链技术

  • 分布式数据存储
    • 每个参与者电脑上备份
    • 账本实时同步和对账–>保证公开透明
  • 点对点传输
  • 共识机制
    • 比特币系统的主链容易出现短暂的分叉,这个分叉最终是会合并到主链上去的
    • 比特币系统采用pow算法保证了账本的一致性,也让比特币系统变得更加安全可靠
  • 加密算法

以太坊-区块链2.0

对比

比特币的不足

  • 交易速度慢
  • POW算法、耗电
  • 仅仅完成了货币的去中心化,而现实中货币的价值建立在国家的公信力的基础上。

以太坊的改进

  • 交易速度加快

  • POW+POS算法,逐步向POS算法过度

  • 引入智能合约

    • 不受人为因素的影响,没有黑幕

    • 违反规则,直接扣除保证金

定义

以太坊是运行在计算机网络中的软件,它确保数据以及智能合约的小程序可以在没有中心协调者的情况下,被所有网络中的 计算机复制和处理

以太坊平台能够承载应用

以太坊的愿景是创建一个无法停止抗屏蔽(审查)和自我维持去中心化世计算机

智能合约

智能合约:跑在以太坊系统中的合同,其实质是一段代码

  • 它们像公示出来的法律合同,违反它们的人将遭到处罚

智能合约能表达:规则明确,不受主观因素影响的业务、规则不轻易修改的业务

  • 如果业务规则经常变化,无法通过智能合约编写,因为智能合约小程序一旦写完,运行在以太坊,是无法通过软件升级去进行规则更新的

ghost协议

以太坊快速出块产生的问题:区块分叉


区块链结构

Merkle树,快速归纳和校验大规模数据完整性的数据结构

  • 最下面的叶子节点存储哈希值或数据
  • 每个中间节点是两个子结点的内容的哈希值
  • 根节点也是两个子结点内容的哈希值

  • 只要存储数据的叶子节点由任何的变动,都会传递道相应的父节点,导致其Merkle树的根节点发生变化

区块链的P2P网络

混合式:集中式+分布式

  • 网络中存在多个超级节点组成的分布式网络

  • 而每个超级节点由多个普通节点和它组成局部的集中式网络

  • 新节点的加入:
    • 先选择一个超级节点进行通信
    • 该超级节点再推送给其他超级节点列表给新加入节点
      • 洪泛广播只发生在超级节点之间,避免大规模洪泛
    • 加入节点根据列表中的超级节点状态选择一个具体的超级节点作为父节点

比特币网络:混合式

所有节点都会

  • 参与校验、广播交易和区块信息;
  • 发现和维持与其他节点的连接

全节点Full Node

  • 承担网络中交易和区块的验证工作

  • 包含完整的区块链数据库,包括所有交易数据

轻节点(LightWeight Node)或SPV节点

  • 只存储区块链数据库的一部分
    • 一般只存储区块头而不存储交易数据,通过简化交易验证(SPV)完成交易检验
    • 验证前置交易的有效性

比特币网络中的节点四大功能(只有比特币核心节点才会包含所有四大功能):

  • 钱包 Wallet
    • PC或手机客户端的功能,用户通过钱包查看自己的账户余额,管理钱包地址和密钥,发起交易等
    • 除了比特币核心钱包是全节点,大部分钱包都是轻节点
  • 挖矿 Miner
    • 挖矿节点通过解决PoW算法问题,与其他挖矿节点相互竞争创建新区块
    • 独立矿工:全节点,存储完整的区块链数据库
    • 矿池矿工:和其他节点一起连接到矿池,参与集体挖矿
      • 形成了一个集中式矿池网络,中心节点是一个矿池服务器,其他挖矿节点全部连接到矿池服务器
  • 区块链数据库 Full Blockchain
  • 网络路由 Network Routing Node

整个比特币网络:

  • 主网络:不同节点间使用比特币协议作为通信协议的的网络
  • 矿池网络:扩展网络
    • 不同的矿池网络可能使用不同的矿池挖矿协议
      • Stratum协议:支持挖矿节点,支持瘦客户钱包
  • 矿池矿工和矿池服务器之间的通信协议:矿池挖矿协议
  • 矿池服务器作为全节点与其他比特币节点使用主网络的比特币协议通信

比特币传播网络(比特币中继网络):

一个专门的传播网络:加快新区块在矿工之间的同步传播

矿工创建新区块后,需要广播给全网所有节点,当全网都接受了该区块,给矿工的挖矿奖励才有效,然后才好开始下一个区块Hash的计算;

  • 矿工必须最大限度缩短区块的广播和下一个区块计算之间的时间

结构化P2P

  • 分布式网络:结构化网络、所有节点按照某种结构有序组织
    • 对比分布式网络:随机网络
  • 结构化网络的实现,基于DHT算法
    • DHT(Distributed Hah Table,分布式哈希表
      • 网络模型,不涉及具体实现
      • 解决分布式环境下快速准确地路由、定位数据
      • 具体的实现算法:Chord、CAN、Kademlia等等
        • 以太坊网络采用Kademlia

DHT

P2P的两种空间:

  • 资源空间:所有节点保存的资源集合
  • 节点空间:所有节点的集合

对所有资源和节点编号:对资源名称或内容用hash函数变成一个数值

  • 一个资源一个ID、一个节点一个ID、资源ID和节点ID建立映射关系
  • 将资源n的索引信息存到节点n上,要搜资源n,则找节点n
    • 能够避免洪泛广播
    • 能够快速准确路由 和 定位数据

DHT算法在资源编号和节点编号上使用 分布式哈希表,使得资源空间和节点空间的编号具有唯一性、均匀分布式


以太坊网络:结构化P2P

  • 采用Kademlia算法实现:分布式哈希技术

Kad网络

  • 每个节点由一个唯一的节点ID
  • 不同节点间的距离:逻辑距离,两个节点ID异或得到
  • 给定一个节点a和距离L,有且仅有一个节点使得a^b=L
  • 通过这种方式能有效度量Kad网络中不同节点间的逻辑距离

近期的区块链架构