淘先锋技术网

首页 1 2 3 4 5 6 7

区块链入门笔记

       区块链(BlockChain),是区块(Block)和链(Chain)的直译, 每个区块存储规定时间内的交易数据.并通过密码学的方式.形成一个不可篡改、全员共有的分布式账本。

      区块链中的交易是一种去中心化机制,区块链特性:分布式存储,数据可溯源,不能被篡改,去中心化。

      哈希:将一串明文数据加密成一串密文,密文就是加密的哈希。

     (1)相同数据加密生成的HASH相同;

     (2)明文可以得到唯一的哈希,但哈希值不能倒推明文;(非对称算法)

    挖矿的过程就是算哈希的过程。

    什么叫挖矿?就是找到某个Nonce使满足生成的哈希值前面有4个0,即满足了系统给定的难度,匹配Nonce的过程就是挖矿的过程。

    区块:存储了当前时间的交易信息(交易地址,发送的比特币);

    区块链:把区块一个一个的串联起来,后面的区块存储了上一个区块的哈希值。

    创世块:第一个区块,它的上一个哈希值为0(没有上一个哈希,高度为0)。

    POW:工作证明

    POS:股权证明

    DPOS:委托权益证明

    比特币的介绍:

    比特币是新一代的加密数字货币,比特币由计算(挖矿)产生

    交易过程具有安全性,隐私性,可追溯,不可篡改等特性

    比特币采用区块链作为底层技术实现上述特性

    比特币:完全去中心化,总量一定(2100万枚),匿名记账

    比特币区块:每个区块大小被限定在1M,每个交易大约250字节,所以每个区块最多容纳4000个交易。由于每个被认可的区块平均产生时间为10分钟,意味着每秒钟只能处理7个交易。

     Merkle根节点:默克尔树

    叠叠加密的方式,即使不知道所有的数据,只需要知道这样的一个默克尔树根就可以知道数据是否被篡改。

    比特币中的双花

    每笔交易都需要先确认对应比特币之前的状态,如果它之前已经被标记为花掉,那么新的交易会被拒绝;如果诈骗者利用网络延迟同一笔金额在不同电脑花两次。

    下一个矿工选择在A基础上继续记账的话,A分支就会比B分支更长,根据区块链的规则,最长的分支会被认可。

    比特币的缺陷与解决方案:

    缺陷:交易效率低,交易确认时间长;

    解决方案:

   (区块链1.0时代)

   (1)BCH比特币进行扩容;  

   (区块链2.0时代)

    (2)ETH每ETH每挖一个区块奖励5个以太坊币,平均每10S左右出一个区块;

    (区块链3.0时代)

    (3)EOS每秒 (10,000/s100,000/s) EOS将使用并发机制来扩展网络,可能高达每秒数百万次的交易。  

     缺陷:POW共识机制引发高耗能问题

     解决方案:

    (1)股权证明(POS)

    (2)股权委托证明(DPOS)

     缺陷:区块、区块链账本的容量问题

     解决方案:

    (1)SPV轻钱包

    (2)网页版钱包

    (3)阻止灰尘交易

    缺陷:比特币不是图灵完备的

    解决方案:

   (1)V1.0:比特币点对点金融支付

   (2)V2.0:引入智能合约,ETH为代码,主要与“金融”领域结合

   (3)V3.0:区块链与商业应用的结合,EOS代表

    缺陷:安全性问题、去中心责任化问题。

    分布式账本->EVM的虚拟机(用来解析智能合约)->solidity合约编程语言->truffle的智能合约开发框架->web3.js的工具->后套的工具

 

    区块链的发展:

    V1.0: 

    2008 中本聪 比特币白皮书

    2009 比特币创世区块产生

    2010 10000比特币1个披萨

    V2.0: 2013~2014 以太坊(图灵完备的支持)、2015 R3成立

    V3.0: 2018 EOS与其它

    区块链技术:

   (1)区块链底层;(2)智能合约(超级账本,以太坊)(3)掌握区块链技术原理

    区块链的分类:(1)公有链;(2)私有链;(3)联盟链;

    解决的问题:(1)价值传递;

    区块链的架构模型:

    区块链的链式结构:

    区块头:

 

    链式结构:

    哈希函数:

   (1)确定性; (2)单向性; (3)隐秘性; (4)扛篡改; (5)抗碰撞

    实现:MD系列;SHA系列:推荐SHA256,SHA3;

 

    区块链核心技术:

    密码学和数字签名用于身份地址标识

    共识算法用于工作量证明、分布式存储技术用于存储交易记录和区块,分布式网络技术用于网络通信和节点发现。

    区块链是一个分布式数据库、加密货币和只能合约的基础;

    区块链是有着特定结构的数据库,一个有序向后连接的列表

    区块按照插入的顺序进行存储,每个块都被连接到前一个块

    快速地获取链上的最新块,并且高效地通过哈希来检索一个块

 

    工作量证明pow:

    工作的结果作为数据加入区块成为一个区块;

    完成这个工作的人也会获得奖励(即挖矿获得比特币);

    整个“努力工作并进行证明”的机制,叫做工作证明。

 

     为什么采用哈希算法?

    不可逆:无法从一个哈希值恢复原始数据,哈希并不是加密

    唯一性:对于特定的数据,只能有一个哈希,并且这个哈希是唯一的

    防篡改:改变输入数据中的一个字节,导致输出一个完全不同的哈希

   

    哈希算法特性:

    正向传递,给定明文和hash算法,有限时间和有限资源内能计算出hash值

    逆向困难:给定哈市值,有限时间很难逆推出明文

    输入敏感:原始输入信息修改一点信息,产生的hash值看起来应该有很大不同

    冲突避免:很难找到两段不同的明文,使得他们的hash值一致

 

    交易机制:

    区块链能够安全可靠地存储交易结果

    在区块链中,交易一旦被创建,就没有任何人能够再去修改或删除

    交易由一些输入和输出组合而来

 

    数字货币的地址及身份标识:

    某种途径可以识别出你的交易输出的所有者,称之为身份

    在比特币中,身份就是一对(或者多对)公钥(public key)和私钥

    所谓的地址,只不过是将公钥表示成人类可读的形式而已

    公钥加密算法使用的是成对的密钥:公钥和私钥

    公钥并不是敏感信息,可以告诉给其他人。但是,私钥绝不对不能告诉其他人;只有所有者才能知道私钥,能够识别,鉴定和证明所有者身份就是私钥。

    

    总结:笔者写这篇文章时正在进行区块链的学习,作为一个新入链圈的新人,接下来将继续记录相关的技术与笔记。