区块链这个近几年来被炒的很热的话题,很多小伙伴虽有耳闻,也有些不明觉厉,但似乎并不能给别人讲明白它到底是个什么东西,它能在我们的日常生活中起到什么作用,基于区块链技术的比特币到底有没有投资价值,是不是有一个所谓的“概念股”呢?下面作者试着从区块链的特点,工作原理,底层结构,基本类型,发展脉络,共识机制建立等方面给大家分享下我所认识的区块链,其中举一些和大家生活息息相关的列子辅助大家的理解。
区块链的发展脉络
根据区块链科学研究所创始人梅兰妮·斯万(Melanie Swan)的观点,区块链技术发展分三个阶段或领域:区块链1.0、区块链2.0和区块链3.0。
区块链1.0:以比特币为代表的可编程货币。它更多是指数字货币领域的创新,如货币转移、兑付和支付系统等。
区块链2.0:基于区块链的可编程金融。它更多涉及一些合约方面的创新,特别是商业合同以及交易方面的创新,比如股票、证券、期货、贷款、清算结算、所谓的智能合约等。
区块链3.0:区块链在其他行业的应用。它更多地对应人类组织形态的变革,包括健康、科学、文化和基于区块链的司法、投票等。
从账本演变的角度来看,区块链是一个分布式共享的账本系统。
这个账本有以下三个特点:
1.可以无限增加的巨型账本
每个区块可以视作这个账本的一页,每增加一个区块,账本就多了一页,这一页中可能会包含一条或多条记录信息;
2.加密且有顺序的账本
账目信息会被打包成一个区块并加密,同时盖上时间戳,一个个区块按时间戳顺序链接形成一个总账本;
3.去中心化的账本
由网内用户共同维护的,它是去中心化的。
区块链的工作原理
目前我们的信用建立在第三方这样一个中心化的平台中,就拿最常见的淘宝交易来说,如何建立买家与卖家之间的信任,支付宝作为一个桥梁,搭建起了这个平台,他不仅建立了信任机制,同时也拿着各位卖家与买家的数据搭建自己的大数据帝国,并用这些被用户不小心授权的数据给你做推荐,一遍遍的提醒你优惠券要到期了,xx明星的同款服装上架了,XX的限量款包包,仅淘宝有售的广告…
区块链的技术就是为了去掉支付宝这个中间角色,当有一笔交易发生时,会广播所有的区块节点,每个节点开始挖矿,即通过计算区块的哈希值来验证交易是否有效,被验证的节点纳入区块中,并接入前一个区块编码后,从而形成一个区块链
区块链公信力有什么特点呢?
1.区块链是分布式的,区块链公信力在网络上会有许多独立的节点,每一节点都有一份备份信息。每个有授权的人都可以从任意一个节点下载全部的信息(被授权的前提下),同时,区块链公信力网络也是不可篡改的,任何节点企图更改信息都会被其他节点发现,而更改的节点不会被确认,就会立刻丧失公信力
2.在区块链公信力模型中,区块链不制定政策,它只是一个公证人的角色,是政府建立和执行政策的工具。区块链的作用是帮助政府更快速和准确地让政策被全民所接受与认可,同时,因为区块链是一个不变的、可以被复制的数据库,政府的政策就变得公开和透明。
区块链的四大特点
经过无数次的记账,区块链就成为一个可信赖、超容量的公共账本。它具有以下几个特征:
1. 去中心化:在一个去中心化的金融系统中,没有中介机构,所有节点的权利和义务都相等,任意节点停止工作都不会影响系统整体的运作。(可以想象在区块链的世界中,连接着全球的各个节点,他们共同来维护区块链的安全,试想其中某个节点的罢工是否会影响安全性呢?
还可以这么理解,只要区块链中低于1/3个节点能够正常工作,区块链就不会受到根本性的影响)
2. 去信任:系统中所有节点之间无须信任也可以进行交易,因为数据库和整个系统的运作是公开透明的,在系统的规则和时间范围内,节点之间无法欺骗彼此。
3. 集体维护:系统是由其中具有维护功能的所有节点共同维护的,系统中所有人共同参与维护工作。
4.可靠的数据库:系统中每一个节点都拥有最新的完整数据库拷贝,修改单个节点的数据库是无效的,因为系统会自动比较,认为最多次出现的相同数据记录为真。
区块链的模型架构
区块链基础架构分为6层,包括数据层、网络层、共识层、激励层、合约层、应用层。每层分别完成一项核心功能,各层之间互相配合,实现一个去中心化的信任机制。
数据层
数据层主要描述区块链技术的物理形式。
起始节点是“创世区块”,之后在同样规则下创建的规格相同的区块通过一个链式的结构依次相连组成一条主链条。随着时间的推移,生成的区块越来越多,每一个紧挨着前一个,从而形成了一个链条,就叫做区块链
网络层
网络层的主要目的是实现区块链网络中节点之间的信息交流。
区块链网络本质上是一个P2P(点对点)网络。每一个节点既接收信息,也产生信息。
接受信息-每一个节点为了获得挖矿奖励,将会帮助验证某一笔交易的真实性,因此会接受被人广播要求被验证的交易
产生信息-每一个节点在验证某一笔交易的时候,一旦计算出哈希值,就会广播通知全网,因此需要保证全网之间的互联。
当全区块链网络中超过51%的用户验证通过后,这个新区块就可以被添加到主链上了。
共识层
即前面所提到的信任机制,在一个去中心化的前提下,如何保证大家互相信任。
共识层能让高度分散的节点在去中心化的系统中高效地针对区块数据的有效性达成共识。
区块链中比较常用的共识机制主要有工作量证明、权益证明和股份授权证明三种,他们只是生成区块过程中的不同的算法,对技术有兴趣的同学可以深入了解。
激励层
前面提到,每一笔交易都有众多节点见证,也就是所谓的挖矿,那么为什么别人要挖矿,比特币的创始者中本聪提出了一种奖励机制,用来奖励辛苦劳作的矿工们。
为了有效限制通货膨胀,不让比特币像人民币那样每年有着3%左右的膨胀率,比特币共2100万枚。在比特币总量达到2 100万枚之前,奖励机制有两种,新区块产生后系统奖励的比特币和每笔交易扣除的比特币(手续费)。而当比特币总量达到2 100万时,新产生的区块将不再生成比特币,这时奖励机制主要是每笔交易扣除的手续费。
合约层
合约层主要是指各种脚本代码、算法机制以及智能合约等。我们以比特币为例,比特币是一种可编程的货币,合约层封装的脚本中规定了比特币的交易方式和过程中涉及的种种细节。
应用层
应用层封装了区块链的各种应用场景和案例,比如基于区块链的跨境支付平台,区块链在金融,医药等各个领域内的应用。
区块链的基本类型
一、公有链
公有链是指全世界任何人都可读取、任何人都能发送交易且交易能获得有效确认,任何人都能参与共识过程的区块链——共识过程决定哪个区块可被添加到区块链中,同时明确当前状态。
就好像互联网中的搜索工具,每个人都可以免费的使用,可以公开的发布与查询任何想要的信息
公有链有如下几个特点:
1.保护用户免受开发者的影响
在公有链中程序开发者无权干涉用户,区块链可以保护其用户。
2. 访问门槛低
任何人都可以访问,只要有一台能够联网的计算机就能够满足基本的访
问条件。
3. 所有数据默认公开
公有链中的每个参与者可以看到整个分布式账本中的所有交易记录。
二、私有链
私有链是指其写入权限仅在一个组织手里的区块链,目的是对读取权限或者对外开放权限进行限制。
好比几个小伙伴之间的小秘密,没有给其他人查阅的权限,因此他只能在我们几个人之间进行扭转。
私有链有如下几个特点:
1.交易速度非常快
私有链中少量的节点具有很高的信任度,并不需要每个节点都来验证一个交易。因此,私有链的交易速度比公有链快很多。
2.为隐私提供更好的保障
私有链的数据不会被公开,不能被拥有网络连接的所有人获得
3.交易成本大幅降低甚至为零
私有链上可以进行完全免费或者至少说是非常廉价的交易。如果一个实体机构控制和处理所有的交易,它就不再需要为工作收取费用。
4.有助于保护其基本的产品不被破坏
银行和传统的金融机构使用私有链可以保证它们的既有利益,以至原有的生态体系不被破坏。
三、联盟链
联盟链是指其共识过程受到预选节点控制的区块链。例如,对由15个金融机构组成的共同体而言,每个机构都运行着一个节点,为了使每个区块生效需要获得其中半数以上也就是8家机构的确认。区块链可能会允许每个人读取,也可能会受限于参与者走混合路线。联盟链可以视为“部分去中心化”,区块链项目R3 就可以认为是联盟链的一种形态。
注释,R3可以视为由多家金融机构组成的区块链的成员,类似于欧盟一样,大家为了一个共同的目标(建立合理,公正,公开的金融体系)而努力。
区块链的共识机制
我们在了解共识机制之前,先来看两个古老的引入问题,类两军问题和拜占庭将军问题。
类两军问题
有两个相距很远的军队要传递信息,蓝军派遣一个信使去跟红军说:“有本事把意大利炮拿出来!”红军收到信息后又派了一个信使去跟蓝军说:“收到指令!”然后蓝军又派一个信使去跟红军说:“知道你收到指令了!”然后红军又派一个信使去跟蓝军说:“知道你知道我收到指令了!”然后蓝军又派一个信使去和红军说:“知道你知道我知道你收到指令了!”然后就没完没了了。
拜占庭将军问题
拜占庭罗马帝国在军事行动中,采取将军投票的策略来决定是进攻还是
撤退,也就是说如果多数人决定进攻,就冲上去。但是军队中如果有奸
细(比如将军已经反水故意乱投票,或者传令官叛变擅自修改军令),
那怎么保证最后投票的结果真实反映了忠诚的将军的意愿呢?
我们详细说明一下这个问题。
在很久很久以前,有一个强大的帝国叫作拜占庭,它的军队非常强大,周围有10个小国家,饱受拜占庭帝国的欺压,但是,必须同一时间有6个以上的国家进攻才有可能打败拜占庭帝国,否则就一定会战败。这个时候,问题就出现了,古时候军队之间的通信完全依赖于人,如果一个国家的军队里有奸细,无论是下令的将军还是传信的通信兵,都可能会使得另外9个国家收到假消息,从而造成作战失败。那么,如果你是其中一个小国的国王,你该如何判断一定会有另外5个以上的国家与你并肩作战呢?毕竟一个不小心,你就亡国了。
区块链上的共识机制有多种,没有一种共识机制是完美无缺的,同时也意味着没有一种共识机制是适合所有应用场景的
常见的共识机制主要有工作量证明、权益证明和股份授权证明三种。
一、工作量证明
工作量证明(Proof of Work,简称PoW)通常只能从结果证明,因为监测工作过程通常是烦琐且低效的
比特币在区块的生成过程中使用了PoW机制,
即要证明一个区块的有效性,需要通过大量的计算,得出一个“密码”,在后续验证的过程中,输入密码,即可查看对应区块内的信息,如果输入密码不能查看,说明区块内的交易被修改,从而通过对比全球账本内上的信息来验证谁对谁错
当某个节点提供出一个合理的区块哈希值,说明该节点确实经过了大量的尝试计算,当节点拥有占全网n%的算力时,该节点即有n%的概率找到区块哈希值。PoW依赖机器进行数学运算来获取记账权,资源消耗大、共识机制高、可监管性弱,同时每次达成共识需要全网共同参与运算,性能效率比较低,容错性方面允许全网50%节点出错。
PoW的优点:完全去中心化,节点自由进出。
PoW的缺点:目前比特币已经吸引全球大部分的算力,其他再使用PoW共识机制的区块链应用很难获得相同的算力来保障自身的安全;挖矿造成大量的资源浪费;共识达成的周期较长。
二、权益证明
权益证明(Proof of Stake,简称PoS)
PoS根据每个节点所占代币的比例和时间,等比例地降低挖矿难度,从而加快找到随机数的速度。
在PoW中,一个用户可能拿1 000美元来购买计算机,并加入网络来挖矿以此产生新区块,从而得到奖励。
而在PoS中,用户可以拿1 000美元购买等价的代币,并把这些代币当作押金放入PoS机制中,这样用户就有机会产生新区块而得到奖励。总体而言,这个系统中存在一个持币人的集合,他们把手中的代币放入PoS机制中,这样他们就变成验证者。比如对区块链最前面的一个区块而言,PoS算法在验证者中随机选取一个(选择验证者的权重依据他们投入的代币量,比如一个投入押金为10 000代币的验证者被选择的概率是一个投入1 000代币验证者的10倍),给他权利产生下一个区块。如果在一定时间内,这个验证者没有产生一个区块,则选出第二个验证者代替产生新区块。与PoW一样,PoS以最长的链为准。
PoS的优点:在一定程度上缩短了共识达成的时间;不再需要大量消耗能源去挖矿。
PoS缺点:还是需要挖矿,本质上没有解决商业应用的痛点;所有的确认都只是一个概率上的表达,而不是一个确定性的事情,理论上有可能存在其他攻击影响
三、股份授权证明
BitShares(比特股)社区首先提出了股份授权证明(简称DPoS)机制,它与PoS的主要区别在于节点选举若干代理人,由代理人验证和记账,但其合规监管、性能、资源消耗和容错性与PoS相似。类似于董事会投票,持币者投出一定数量的节点,进行代理验证和记账
DPoS的工作原理如下:每个股东按其持股比例拥有相应的影响力,51%股东投票的结果将是不可逆且有约束力的,其挑战是通过及时而高效的方法达到“51%批准”。为了达到这个目标,每个股东可以将其投票权授予一名代表。获票数最多的前100位代表按既定时间表轮流产生区块。每位代表分配到一个时间段来生产区块。所有的代表将收到等同于一个平均水平的区块所含交易费的10%作为报酬。如果一个平均水平的区块用100股作为交易费,一位代表将获得一股作为报酬。
DPoS的投票模式可以每30秒产生一个新区块,并且在正常的网络条件下,区块链分叉的可能性极其小,即使发生也可以在几分钟内得到解决。执行该模式的基本步骤如下:
1. 成为代表。成为一位代表,你必须在网络上注册你的公钥,并获得一个32位的特有标识符。该标识符会被每笔交易数据的“头部”引用。
2. 授权投票。每个钱包有一个参数设置窗口,在该窗口里用户可以选择一位或更多的代表,并将其分级。一经设定,用户所做的每笔交易将把选票从“输入代表”转移至“输出代表”。
3.保持代表诚实。每个钱包将显示一个状态指示器,让用户知道他们的代表表现如何。如果他们错过了太多的区块,那么系统将会推荐用户更换一位新的代表。如果任何代表被发现签发了一个无效的区块,那么所有标准钱包将在每个钱包进行更多交易前要求选出一位新代表。
类似于投资者选择投资标的一样,通过查看财报,会内部调研的方式了解所投资企业的运营情况,如果运营ok,那么继续持有,也可能在下一阶段继续投资,如果运营业绩差,那么将会退出,以降低损失,或重新选择一个新的标的
4. 抵抗攻击。在抵抗攻击上,前100位代表所获得的权力是相同的,即每位代表都有一项平等的投票权,因此,无法通过获得超过1%的选票而将权力集中到单一代表上。由于只有100位代表,不难想象一个攻击者可以对每位轮到其生产区块的代表依次进行拒绝服务攻击。幸运的是,由于每位代表的标识是其公钥而非IP地址,这种特定攻击的威胁很容易被减轻。这将使确定DDoS(分布式拒绝服务)攻击目标更为困难。而代表之间的潜在连接将使妨碍他们生产区块变得更为困难。
DPoS的优点:大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证。
DPoS的缺点:整个共识机制还是依赖于代币,而很多商业应用是不需要代币的。
而已区块链为底层技术的比特币又是如何运作的呢?
运行比特币网络的步骤如下:
1.新的交易向全网进行广播;
2.每一个节点都将收到的交易信息纳入一个区块中;
3.每个节点都尝试在自己的区块中找到一个具有足够难度的工作量证明;
4.当一个节点找到了一个工作量证明,它就向全网进行广播;
5.当且仅当包含在该区块中的所有交易都是有效的且之前未存在过的,其他节点才认同该区块的有效性;
6.其他节点表示他们接受该区块,而接受的方法则是跟随在该区块的末尾,制造新的区块以延长该链条,并将该区块的随机散列值视为新区块的随机散列值。
比特币的基本原则:
1、一个纯粹的点对点电子现金系统,使在线支付能够直接由一方发起并支付给另一人,中间不需要通过任何金融机构。
2、不需要授信的第三方支持就能防止双重支付,点对点的网络环境是解决双重支付的一种方案。
3、对全部交易加上时间戳,并将他们并入一个不断延展的基于哈希算法的工作量证明的链条作为交易记录。除非重新完成全部的工作量证明,形成的交易记录将不可更改。
4、最长的链条不仅将作为被观察的事件序列的证明,而且被视为来自CPU(数CP中央处理器)的计算能力最大的池。只要大多CPU的计算能力不被合作攻击的节点所控制,那么就会生成最长的、长度超过攻击者的链条
5.这个系统本身需要的基础设施非常少,节点尽最大努力在全网传播信息即可,节点可以随时离开和重新加入网络,并将最长的工作量证明作为该节点离线期间发生的交易的证明。
以上是区块链的一些基础的概念,关于区块链的跨界应用,将在下一篇中讲述。