区块链

区块链本质

生产关系的变革。


  • 生产力是从人类开始学会发明和使用工具开始以来,就在不断的提升。1784年,瓦特改良的蒸汽机、电力、铁路、飞机、计算机、互联网、大数据、云计算、物联网、人工智能,这些都是生产力革命,核心是“效率提升”。
  • 而生产关系的本质是,人类自从有了虚构故事的能力和想象能力以来,人类通过一个个虚构的故事来展开分工和协作的组织形态,部落、国家、公司这些都是生产关系的呈现。

而区块链的出现,说到底就是为了解决生产关系严重落后生产力的问题。

区块链诞生

区块链起源于比特币,2008年11月1日,一位自称中本聪的人发表了《比特币:一种点对点的电子现金系统》一文​​P2P网络技术​​​、​​加密技术​​、时间戳技术、区块链技术等的电子现金系统的构架理念,这标志着比特币的诞生。两个月后理论步入实践,2009年1月3日第一个序号为0的创世区块诞生。几天后2009年1月9日出现序号为1的区块,并与序号为0的创世区块相连接形成了链,标志着区块链的诞生。

区块链概念

区块链是一个分布式账本,一种通过去中心化、去信任的方式集体维护一个可靠数据库的技术方案。

从数据的角度来看:区块链是一种几乎不可能被更改的分布式数据库。这里的“分布式”不仅体现为数据的分布式存储,也体现为数据的分布式记录(即由系统参与者共同维护)。

从技术的角度来看:区块链并不是一种单一的技术,而是多种技术整合的结果。这些技术以新的结构组合在一起,形成了一种新的数据记录、存储和表达的方式。

区块链的特点


  1. 区块链由众多节点共同组成一个端到端的网络,不存在中心化的设备和管理机构。节点之间数据交换通过​​数字签名技术​​进行验证,无需互相信任,只要按照系统既定的规则进行,节点之间不能也无法欺骗其它节点。
  2. 单个甚至多个节点对数据库的修改无法影响其他节点的数据库,除非能控制整个网络中超过51%的节点同时修改,这几乎不可能发生。区块链中的每一笔交易都通过密码学方法与相邻两个区块串联,因此可以追溯到任何一笔交易的前世今生。
  3. 任何人都可以参与到区块链网络,每一台设备都能作为一个节点,每个节点都允许获得一份完整的数据库拷贝。节点间基于一套​​共识机制​​,通过竞争计算共同维护整个区块链。任一节点失效,其余节点仍能正常工作。
  4. 区块链的运行规则是公开透明的,所有的数据信息也是公开的,因此每一笔交易都对所有节点可见。由于节点与节点之间是去信任的,因此节点之间无需公开身份,每个参与的节点都是匿名的。

区块链分类


  • 公有链:公有链完全公开透明面向所有人开放,准入门槛低,世界上任何个体或团体都可以在公有链上发送交易或者开发自己的应用
  • 私有链: 是指其写入权限由某个组织和机构控制的区块链,参与节点的资格会被严格限制。由于参与节点是有限和可控的,因此私有链往往可以有极快的交易速度、更好的隐私保护、更低的交易成本、不容易被恶意攻击,并且能做到身份认证等金融行业必需的要求。
  • 联盟链: 是指有若干个机构共同参与管理的区块链,每个机构都运行着一个或多个节点,其中的数据只允许系统内不同的机构进行读写和发送交易,并且共同来记录交易数据。
  • 拓朴链:是指在固有联盟链的基础上,可以允许新的机构加入进来,一同参与建设。(个人杜撰 目前不存在哈)

区块链产品

比特币

1.区块链技术是比特币的底层技术,比特币是区块链的第一个应用。

2.比特币的交易信息都被记录在一个去中心化的账本上面,这个账本就是区块链。

以太坊

V神创建出了ETH(以太坊),早起的ETH也是基于POW的,但是V神他搞了一个东西叫做智能合约。

智能合约是个啥玩意儿呢?简单来说,就是在区块链传递的不是单纯的字符串了,而是一个可执行的脚本。

区块链交易

区别于传统的基于账户的交易。而是类似于管道的方式进行流转。

UTXO:未花费过的交易输出。

交易规则:

第一,除了 coinbase 交易之外,所有的资金来源都必须来自前面某一个或者几个交易的 UTXO,就像接水管一样,一个接一个,此出彼入,此入彼出,生生不息,钱就在交易之间流动起来了。

第二,任何一笔交易的交易输入总量必须等于交易输出总量,等式两边必须配平。(每笔交易必须全部消耗,为了平衡,多余的给自己)

区块链结构

每个Block分为两部分:区块头和区块体

区块头包括三组元数据


  1. 用于连接前面的区块、索引自父区块哈希值的数据。
  2. 挖矿难度、Nonce(随机数,用于工作量证明算法的计数器)、时间戳
  3. 能够总结并快速归纳校验区块中所有交易数据的Merkle(默克尔)树根数据

区块体主要是包含交易数据。

默克尔树

Merkle树的数据结构叶子节点存放所有的值,并以此为基础生成一个统一的哈希值。Merkle的叶子节点存储的是数据信息的哈希值,非叶子节点的存储是对其下面所有叶子节点的组合进行哈希计算后得出的哈希值。区块中任意一个数据的变更都会导致Merkle树结构发生变化,在交易信息验证对比的过程中,Merkle树结构能够大大减少数据的计算量。

区块链模型架构

区块链基础入门_java

区块链核心技术


  • 密码学与数字签名

    • 对称/非对称加密算法

      • 对称加密:
        • DES:
      • ​1、概念 DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信中使用,随后该算法在国际上广泛流传开来。需要注意的是,在某些文献中,作为算法的DES称为数据加密算法(Data Encryption Algorithm,DEA),已与作为标准的DES区分开来。 2、入口参数 DES算法的入口参数有三个:Key、Data、Mode。其中Key为7个字节共56位,是DES算法的工作密钥;Data为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。 3、基本原则 分组密码设计原则:混淆和扩散。混淆是使密文的统计特性与密钥的取值之间的关系尽可能复杂化,以使密钥和明文以及密文之间的依赖性对密码分析者来说是无法利用的。扩散的作用就是将每一位明文的影响尽可能迅速地作用到较多的输出密文位中,以便在大量的密文中消除明文的统计结构,并且使每一位密钥的影响尽可能迅速地扩展到较多的密文位中,以防对密钥进行逐段破译。 4、算法步骤 DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位(实际用到了56位,第8、16、24、32、40、48、56、64位是校验位, 使得每个密钥都有奇数个1),其算法主要分为两步: 1)初始置换 其功能是把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位,其置换规则为将输入的第58位换到第一位,第50位换到第2位……依此类推,最后一位是原来的第7位。L0、R0则是换位输出后的两部分,L0是输出的左32位,R0是右32位,例:设置换前的输入值为D1D2D3……D64,则经过初始置换后的结果为:L0=D58D50……D8;R0=D57D49……D7。 2)逆置换 经过16次迭代运算后,得到L16、R16,将此作为输入,进行逆置换,逆置换正好是初始置换的逆运算,由此即得到密文输出。 此算法是对称加密算法体系中的代表,在计算机网络系统中广泛使用。 ​
        • 3DES
      • 3DES(即Triple DES)是DES向AES过渡的加密算法,它使用3条56位的密钥对数据进行三次加密。是DES的一个更安全的变形。它以DES为基本模块,通过组合分组方法设计出分组加密算法。比起最初的DES,3DES更为安全。
        该方法使用两个密钥,执行三次DES算法,加密的过程是加密-解密-加密,解密的过程是解密-加密-解密。
        3DES加密过程为:C=Ek3(Dk2(Ek1(P)))
        3DES解密过程为:P=Dk1(EK2(Dk3(C)))
        采用两个密钥进行三重加密的好处有:
        ①两个密钥合起来有效密钥长度有112bit,可以满足商业应用的需要,若采用总长为168bit的三个密钥,会产生不必要的开销。
        ②加密时采用加密-解密-加密,而不是加密-加密-加密的形式,这样有效的实现了与现有DES系统的向后兼容问题。因为当K1=K2时,三重DES的效果就和原来的DES一样,有助于逐渐推广三重DES。
        ③三重DES具有足够的安全性,还没有关于攻破3DES的报道。



        AES

        密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。



    SM4



非对称加密:

  • RSA
  • ElGamal
  • 椭圆曲线


公钥和私钥技术:椭圆曲线算法
数字签名和防伪技术

共识算法

  • 工作量证明(POW:Proof Of Work):算力越高,挖的越久,币越多
  • 权益证明(POS:Proof of stake): 币量*持币天数越多,收获越多
  • 委托权益证明(DPOS:Delegated Proof of Stake)
  • 零知识证明
  • 拜占庭共识算法(PBFT)

存储技术

  • key和value存储
  • 签名和交易存储
  • 区块数据存储
  • Hash算法

P2P网络

  • 点对点网络通信
  • 邻节点路由及发现技术
  • 数据验证

智能合约
  • solidity