zoukankan      html  css  js  c++  java
  • 区块链简介

    区块链--一种分布式基础架构与计算范式
    验证与存储数据:块链式数据结构
    生成和更新数据:分布式节点共识算法
    保证数据传输和访问安全:密码学
    编程和操作数据:自动化脚本代码组成的智能合约

    狭义来讲是一个分布式账本(分布式数据库)
    概念
    --一个分布式的链接账本,每个账本就是一个区块
    基于分布式的共识算法来决定记账者
    账本内交易有密码学签名和哈希算法保证不被修改
    当前账本有上一个账本的哈希值,账本之间的链接保证不可篡改
    所有交易可追溯

    特点
    1.去中心化
    2.去信任(数字签名技术进行验证)(数据透明,用户匿名)
    3.集体辩护(系统中所有人共同参与维护工作)
    4.可靠数据库(每个节点都拥有完整数据库拷贝,除非能控制整个网络中超过51%结点同时修改)

    区块链分类
    以参与方式:
    公有链/非许可链
    (任何人均可自由参加,自由接入网路,不受控制,一般适合于虚拟货币,面向大众电子商务,会联网金融,如比特币和以太坊)
    联盟链/许可链
    (加入和退出需联盟授权,读写权限和参与记账权限按联盟规则来制定,整个网络由成员共同维护,适合于机构间的交易,结算和清算。例:银行间业务,将各家银行的网关点作为记账节点,当网络上有超过2/3的节点确认一个区块时,该区块记录的交易将得到全网确认;有40多家银行参与的区块链联盟R3和Linux基金会支持的超级账本(Hyperleder)项目属于联盟链架构)
    私有链(企业内部,权力完全控制在一个组织中,如企业数据库管理,审计)
    以链与链的关系:
    主链
    侧链(侧链是用于确认来自于其他区块链的数据的区块链,可增强区块链的隐私保护通过双向挂钩(TwoWay Peg)机制使比特币,Ripple币等多种资产在不同区块链上以一定的汇率实现转换)

    区块链产业链
    基础网络层(数据层+网络层)
    中间协议层(共识层+激励层+合约层)
    应用服务层(可编程货币+可编程金融+可编程社会)

    具体:
    数据层:底层数据区块链,数据加密,时间戳等
    网络层:分布式组网机制,数据传播机制,数据验证机制
    共识层:网络节点的各类共识算法
    激励层:将经济因素集成到区块链体系中,包括经济激励的发行机制和分配机制
    合约层:各类脚本,算法,智能合约 (是区块链可编程性的基础)

     

    数据层:

    区块=区块头+区块体

    区块体:只负责记录前一段时间内的所有交易信息
    区块头:封装当前的版本号,前一区块地址,时间戳(精确到秒),随机数(记录解密该区块相关的数学题和答案的值),当前区块的目标哈希值,Merkle数的根值信息 (即大部分功能都有区块头实现)
    概括:区块≈交易信息+前一个区块形成的哈希散列,随机数

    随机数:交易达成的核心,所有矿工结点竞争计算随机数的答案,最快得到答案的结点生成一个新的区块,并广播到所有节点进行更新,如此完成交易

    • 哈希函数

    哈希函数可将任意长度的资料经由Hash算法转换为一组固定长度的代码,原理是基于一种密码学上的单向哈希函数,这种函数很容易被验证,但是却很难破解。通常业界使用y =hash(x)的方式进行表示,该哈希函数实现对x进行运算计算出一个哈希值y。

    常使用的哈希算法包括MD5、SHA-1、SHA-256、SHA-384及SHA-512等。

    • Merkle

    Merkle树是一种哈希二叉树,使用它可以快速校验大规模数据的完整性。在区块链网络中,Merkle 树被用来归纳一个区块中的所有交易信息,最终生成这个区块所有交易信息的一个统一的哈希值,区块中任何一笔交易信息的改变都会使得Merkle 树改变。

    • 非对称加密

    非对称加密算法是一种密钥的保密方法,需要两个密钥:公钥和私钥。

    公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密,从而获取对应的数据价值;如果用私钥对数据进行签名,那么只有用对应的公钥才能验证签名,验证信息的发出者是私钥持有者。

    因为加密和解密使用的是两个不同的密钥,所以这种算法叫做非对称加密算法,而对称加密在加密与解密的过程中使用的是同一把密钥。

     网络层:

    • P2P网络

    P2P网络(对等网络),又称点对点技术,是没有中心服务器、依靠用户群交换信息的互联网体系。与有中心服务器的中央网络系统不同,对等网络的每个用户端既是一个节点,也有服务器的功能。

    P2P网络其具有去中心化与健壮性等特点。

    共识层:

    • 共识机制

    共识机制,就是所有记账节点之间如何达成共识,去认定一个记录的有效性,这既是认定的手段,也是防止篡改的手段。目前主要有四大类共识机制:PoW、PoS、DPoS和分布式一致性算法。

    PoW机制,也就是像比特币的挖矿机制,矿工通过把网络尚未记录的现有交易打包到一个区块,然后不断遍历尝试来寻找一个随机数,使得新区块加上随机数的哈希值满足一定的难度条件。找到满足条件的随机数,就相当于确定了区块链最新的一个区块,也相当于获得了区块链的本轮记账权。矿工把满足挖矿难度条件的区块在网络中广播出去,全网其他节点在验证该区块满足挖矿难度条件,同时区块里的交易数据符合协议规范后,将各自把该区块链接到自己版本的区块链上,从而在全网形成对当前网络状态的共识。

       优点:完全去中心化,节点自由进出,避免了建立和维护中心化信用机构的成本。只要网络破坏者的算力不超过网络总算力的50%,网络的交易状态就能达成一致。

      缺点:目前比特币挖矿造成大量的资源浪费;另外挖矿的激励机制也造成矿池算力的高度集中,背离了当初去中心化设计的初衷。更大的问题是PoW机制的共识达成的周期较长,每秒只能最多做7笔交易,不适合商业应用。

    总结自:

     https://www.cnblogs.com/skyme/p/8717535.html

  • 相关阅读:
    使用 matlab 数据集的生成(generate datasets)
    从 RNN 到 LSTM (Short-Term Memory)
    从 RNN 到 LSTM (Short-Term Memory)
    OpenGL(二十二) gluBuild2DMipmaps 加载Mip纹理贴图
    概念的图解 —— 物理
    python数据库做成邮箱的注册系统!
    [每日一题] OCP1z0-047 :2013-08-15 描述GROUPING 函数 .......................................43
    OpenSSL之PKey的EVP封装
    最长回文字符串(manacher算法)
    POJ burnside&&polya整理练习
  • 原文地址:https://www.cnblogs.com/hotboxx/p/15348996.html
Copyright © 2011-2022 走看看