初识区块链
1. 什么是区块链(比特币)?
区块链是一个信息技术领域的术语。从本质上讲,它是一个共享数据库,存储于其中的数据或信息,具有“不可伪造”、“全程留痕”、“可以追溯”、“公开透明”、“集体维护”等特征。基于这些特征,区块链技术奠定了坚实的“信任”基础,创造了可靠的“合作”机制,具有广阔的运用前景。
1.1起源
区块链起源于比特币,2008年11月1日,一位自称中本聪(Satoshi Nakamoto)的人发表了《比特币:一种点对点的电子现金系统》一文,阐述了基于P2P网络技术、加密技术、时间戳技术、区块链技术等的电子现金系统的构架理念,这标志着比特币的诞生。两个月后理论步入实践,2009年1月3日第一个序号为0的创世区块诞生。几天后2009年1月9日出现序号为1的区块,并与序号为0的创世区块相连连接形成了链,标志着区块链的诞生。
在比特币形成过程中,区块链是一个一个的存储单元,记录了一定时间内各个区块节点全部的交流信息。各个区块之间通过随机散列(哈希算法)实现链接,后一个区块包含前一个区块的哈希值,随着信息交流的扩大,一个区块与一个区块相继连接,形成的结果就叫区块链。
动态图示Demo
1.2发展
1.2.1 第一代(比特币)
区块链1.0:2008年由中本聪第一次提出区块链的概念,在随后的几年中,区块链成为了电子货币比特币的核心组成部分:作为所有交易的公共账簿。通过利用点对点网络和分布式时间戳服务器,区块链数据库能够进行自主管理。
1.2.2 第二代(以太坊)
区块链2.0:2014年,“区块链2.0”成为一个关于去中戏化区块链数据库的术语。对这个第二代可编程区块链,经济学家们认为它是一种编程语言,可以允许用户写出更精密和智能的协议。
1.3.3 第三代(EOS)
区块链3.02017年,为了解决以太坊网络、性能较低的问题,基于以太坊优化推出了区块链3.0
比较
2.区块链的分类
2.1公有区块链
公有区块链(Public Block Chains)是指:世界上任何个体或者团体都可以发送交易,且交易能够获得该区块链的有效确认,任何人都可以参与其共识过程。公有区块链是最早的区块链,也是应用最广泛的区块链,各大bitcoins系列的虚拟数字货币均基于公有区块链,世界上有且仅有一条该币种对应的区块链。
2.2 联合(行业)区块链
行业区块链(Consortium Block Chains):由某个群体内部指定多个预选的节点为记账人,每个块的生成由所有的预选节点共同决定(预选节点参与共识过程),其他接入节点可以参与交易,但不过问记账过程(本质上还是托管记账,只是变成分布式记账,预选节点的多少,如何决定每个块的记账者成为该区块链的主要风险点),其他任何人可以通过该区块链开放的API进行限定查询。
2.3 私有区块链
私有区块链(Private Block Chains):仅仅使用区块链的总账技术进行记账,可以是一个公司,也可以是个人,独享该区块链的写入权限,本链与其他的分布式存储方案没有太大区别。传统金融都是想实验尝试私有区块链,而公链的应用例如bitcoin已经工业化,私链的应用产品还在摸索当中。
3.幽灵协议
3.1分叉和篡改
The DAO计划基于以太坊智能合约建立一个众筹平台,于2016年5月正式发布,截止当年6月,募集资金超过1.6亿美元。之后,The DAO被黑客利用智能合约的漏洞,转移了市值五千万美元的以太币。为了挽回投资者资产,以太坊社区投票表决决定将更改以太坊代码,希望索回资金。为此,以太坊在第1920000区块进行硬分叉,回滚所有以太币(包括被黑客占有的)。
但是,有一部分人认为以太坊这种作法违背了区块链的去中心化和不可篡改精神,坚持在原链上挖矿,从而形成两条链,一条为不承认回滚交易的链-以太经典(ETC),一条为承认回滚交易的链即以太坊(ETH),各自代表不同的社区共识以及价值观。分叉时持有以太币的人在分叉后会同时持有ETH和ETC。
3.2 以太坊发行机制
- 无上限发币
- Pre-mine(矿前)
- 矿工奖励
- 区块奖励
- Gas奖励
- 索引叔块奖励,每索引一个叔块会奖励区块奖励的1/32
- Uncle. rewards(叔块奖励)
- Uncle referencing rewards(叔块引用奖励)
3.3主链
比特币判断主链的方式粗暴简单,谁最长谁就是主链,而第二代区块链的代表以太坊改变了原来的判断逻辑,采用一种新的协议-------(GHOST Protocol)Greedy Heaviest-Observed Sub-Tree
即贪婪最重可观察子树协议。与Bitcoin中的最长链原则不同,以太坊使用GHOST协议,通过判断最重子树来决定主链。
Btc出块速度:10分钟 tps 7左右
eth出块速度:15-30s. tps略微提高
根本原因,是为了解决出块过快,算力集中导致的收益分布不均问题
4.共识算法
现今区块链的共识机制可分为四大类:工作量证明机制、权益证明机制、股份授权证明机制和Pool验证池。
4.1工作量证明机制(PoW)
工作量证明机制即对于工作量的证明,是生成要加入到区块链中的一笔新的交易信息(即新区块)时必须满足的要求。在基于工作量证明机制构建的区块链网络中,节点通过计算随机哈希散列的数值解争夺记账权,求得正确的数值解以生成区块的能力是节点算力的具体表现。工作量证明机制具有完全去中心化的优点,在以工作量证明机制为共识的区块链中,节点可以自由进出。大家所熟知的比特币网络就应用工作量证明机制来生产新的货币。然而,由于工作量证明机制在比特币网络中的应用已经吸引了全球计算机大部分的算力,其他想尝试使用该机制的区块链应用很难获得同样规模的算力来维持自身的安全。同时,基于工作量证明机制的挖矿行为还造成了大量的资源浪费,达成共识所需要的周期也较长,因此该机制并不适合商业应用。
4.2权益证明机制(PoS)
2012年,化名Sunny King的网友推出了Peercoin,该加密电子货币采用工作量证明机制发行新币,采用权益证明机制维护网络安全,这是权益证明机制在加密电子货币中的首次应用。与要求证明人执行一定量的计算工作不同,权益证明要求证明人提供一定数量加密货币的所有权即可。权益证明机制的运作方式是,当创造一个新区块时,矿工需要创建一个“币权”交易,交易会按照预先设定的比例把一些币发送给矿工本身。权益证明机制根据每个节点拥有代币的比例和时间,依据算法等比例地降低节点的挖矿难度,从而加快了寻找随机数的速度。这种共识机制可以缩短达成共识所需的时间,但本质上仍需要网络中的节点进行挖矿运算。因此,PoS机制并没有从根本上解决PoW机制难以应用于商业领域的问题。
4.3股份授权证明机制(DPoS)
股份授权证明机制是一种新的保证网络安全的共识机制。它在尝试解决传统的PoW机制和PoS机制问题的同时,还能通过实施科技式的民主抵消中心化所带来的负面效应。
股份授权证明机制与董事会投票类似,该机制拥有一个内置的实时股权人投票系统,就像系统随时都在召开一个永不散场的股东大会,所有股东都在这里投票决定公司决策。基于DPoS机制建立的区块链的去中心化依赖于一定数量的代表,而非全体用户。在这样的区块链中,全体节点投票选举出一定数量的节点代表,由他们来代理全体节点确认区块、维持系统有序运行。同时,区块链中的全体节点具有随时罢免和任命代表的权力。如果必要,全体节点可以通过投票让现任节点失去代表资格,重新选举新的代表,实现实时的民主。
股份授权证明机制可以大大缩小参与验证和记账节点的数量,从而达到秒级的共识验证。然而,该共识机制仍然不能完美解决商业中的应用问题,因为该共识机制无法摆脱对于代币的依赖,在很多商业应用中并不需要代币的存在。
4.4 Pool验证池
Pool验证池基于传统的分布式一致性技术建立,并辅之以数据验证机制,是目前区块链中广泛使用的一种共识机制。Pool验证池不需要依赖代币就可以工作,在成熟的分布式一致性算法(Pasox、Raft)基础之上,可以实现秒级共识验证,更适合有多方参与的多中心商业模式。不过,Pool验证池也存在一些不足,例如该共识机制能够实现的分布式程度不如P oW机制等。
4.5实用拜占庭PBFT
PBFT是一种状态机副本复制算法,即服务作为状态机进行建模,状态机在分布式系统的不同节点进行副本复制。每个状态机的副本都保存了服务的状态,同时也实现了服务的操作。将所有的副本组成的集合使用大写字母R表示,使用0到|R|-1的整数表示每一个副本。为了描述方便,假设|R|=3f+1,这里f是有可能失效的副本的最大个数。尽管可以存在多余3f+1个副本,但是额外的副本除了降低性能之外不能提高可靠性。
5. 一些补充
智能合约
: 智能合约是电子版合同、数字化合约、智能化合约,是将合同合约用代码写成一段小程序,重要的是这段代码一旦写好就无法修改无法篡改,并公之于众保存在区块链中去中心化,当外界条件发生变化如违约或合同到期,智能合约会自动触发。
代币: Tokens
智能合约可以创造代币供分布式应用程序使用。分布式应用程序的代币化让用户、投资者以及管理者的利益一致。代币也可以用来进行首次代币发行。
零知识证明Zero knowledge proof
: 零知识证明就是既能充分证明自己是某种权益的合法拥有者,又不把有关的信息泄露出去——即给外界的“知识”为“零”。底层实现为默克尔树。
ps.
1.ETH黄皮书:需要私聊
2.ETH的ide(solidity): https://remix.ethereum.org/
3.ETH的区块链浏览器: https://www.etherchain.org/
4.论文及demo地址: https://andersbrownworth.com/blockchain
5.默克尔树: https://blog.csdn.net/weixin_37504041/article/details/80474636
6.图灵完备: https://www.zhihu.com/question/20115374/answer/288346717
本文来自博客园,作者:orangeScc,转载请注明原文链接:https://www.cnblogs.com/ashScc/p/15747705.html