ibm区块链失败
1. 区块链 --- 共识算法
PoW算法是一种防止分布式服务资源被滥用、拒绝服务攻击的机制。它要求节点进行适量消耗时间和资源的复杂运算,并且其运算结果能被其他节点快速验算,以耗用时间、能源做担保,以确保服务与资源被真正的需求所使用。
PoW算法中最基本的技术原理是使用哈希算法。假设求哈希值Hash(r),若原始数据为r(raw),则运算结果为R(Result)。
R = Hash(r)
哈希函数Hash()的特性是,对于任意输入值r,得出结果R,并且无法从R反推回r。当输入的原始数据r变动1比特时,其结果R值完全改变。在比特币的PoW算法中,引入算法难度d和随机值n,得到以下公式:
Rd = Hash(r+n)
该公式要求在填入随机值n的情况下,计算结果Rd的前d字节必须为0。由于哈希函数结果的未知性,每个矿工都要做大量运算之后,才能得出正确结果,而算出结果广播给全网之后,其他节点只需要进行一次哈希运算即可校验。PoW算法就是采用这种方式让计算消耗资源,而校验仅需一次。
PoS算法要求节点验证者必须质押一定的资金才有挖矿打包资格,并且区域链系统在选定打包节点时使用随机的方式,当节点质押的资金越多时,其被选定打包区块的概率越大。
POS模式下,每个币每天产生1币龄,比如你持有100个币,总共持有了30天,那么,此时你的币龄就为3000。这个时候,如果你验证了一个POS区块,你的币龄就会被清空为0,同时从区块中获得相对应的数字货币利息。
节点通过PoS算法出块的过程如下:普通的节点要成为出块节点,首先要进行资产的质押,当轮到自己出块时,打包区块,然后向全网广播,其他验证节点将会校验区块的合法性。
DPoS算法和PoS算法相似,也采用股份和权益质押。
但不同的是,DPoS算法采用委托质押的方式,类似于用全民选举代表的方式选出N个超级节点记账出块。
选民把自己的选票投给某个节点,如果某个节点当选记账节点,那么该记账节点往往在获取出块奖励后,可以采用任意方式来回报自己的选民。
这N个记账节点将轮流出块,并且节点之间相互监督,如果其作恶,那么会被扣除质押金。
通过信任少量的诚信节点,可以去除区块签名过程中不必要的步骤,提高了交易的速度。
拜占庭问题:
拜占庭是古代东罗马帝国的首都,为了防御在每块封地都驻扎一支由单个将军带领的军队,将军之间只能靠信差传递消息。在战争时,所有将军必须达成共识,决定是否共同开战。
但是,在军队内可能有叛徒,这些人将影响将军们达成共识。拜占庭将军问题是指在已知有将军是叛徒的情况下,剩余的将军如何达成一致决策的问题。
BFT:
BFT即拜占庭容错,拜占庭容错技术是一类分布式计算领域的容错技术。拜占庭假设是对现实世界的模型化,由于硬件错误、网络拥塞或中断以及遭到恶意攻击等原因,计算机和网络可能出现不可预料的行为。拜占庭容错技术被设计用来处理这些异常行为,并满足所要解决的问题的规范要求。
拜占庭容错系统 :
发生故障的节点被称为 拜占庭节点 ,而正常的节点即为 非拜占庭节点 。
假设分布式系统拥有n台节点,并假设整个系统拜占庭节点不超过m台(n ≥ 3m + 1),拜占庭容错系统需要满足如下两个条件:
另外,拜占庭容错系统需要达成如下两个指标:
PBFT即实用拜占庭容错算法,解决了原始拜占庭容错算法效率不高的问题,算法的时间复杂度是O(n^2),使得在实际系统应用中可以解决拜占庭容错问题
PBFT是一种状态机副本复制算法,所有的副本在一个视图(view)轮换的过程中操作,主节点通过视图编号以及节点数集合来确定,即:主节点 p = v mod |R|。v:视图编号,|R|节点个数,p:主节点编号。
PBFT算法的共识过程如下:客户端(Client)发起消息请求(request),并广播转发至每一个副本节点(Replica),由其中一个主节点(Leader)发起提案消息pre-prepare,并广播。其他节点获取原始消息,在校验完成后发送prepare消息。每个节点收到2f+1个prepare消息,即认为已经准备完毕,并发送commit消息。当节点收到2f+1个commit消息,客户端收到f+1个相同的reply消息时,说明客户端发起的请求已经达成全网共识。
具体流程如下 :
客户端c向主节点p发送<REQUEST, o, t, c>请求。o: 请求的具体操作,t: 请求时客户端追加的时间戳,c:客户端标识。REQUEST: 包含消息内容m,以及消息摘要d(m)。客户端对请求进行签名。
主节点收到客户端的请求,需要进行以下交验:
a. 客户端请求消息签名是否正确。
非法请求丢弃。正确请求,分配一个编号n,编号n主要用于对客户端的请求进行排序。然后广播一条<<PRE-PREPARE, v, n, d>, m>消息给其他副本节点。v:视图编号,d客户端消息摘要,m消息内容。<PRE-PREPARE, v, n, d>进行主节点签名。n是要在某一个范围区间内的[h, H],具体原因参见 垃圾回收 章节。
副本节点i收到主节点的PRE-PREPARE消息,需要进行以下交验:
a. 主节点PRE-PREPARE消息签名是否正确。
b. 当前副本节点是否已经收到了一条在同一v下并且编号也是n,但是签名不同的PRE-PREPARE信息。
c. d与m的摘要是否一致。
d. n是否在区间[h, H]内。
非法请求丢弃。正确请求,副本节点i向其他节点包括主节点发送一条<PREPARE, v, n, d, i>消息, v, n, d, m与上述PRE-PREPARE消息内容相同,i是当前副本节点编号。<PREPARE, v, n, d, i>进行副本节点i的签名。记录PRE-PREPARE和PREPARE消息到log中,用于View Change过程中恢复未完成的请求操作。
主节点和副本节点收到PREPARE消息,需要进行以下交验:
a. 副本节点PREPARE消息签名是否正确。
b. 当前副本节点是否已经收到了同一视图v下的n。
c. n是否在区间[h, H]内。
d. d是否和当前已收到PRE-PPREPARE中的d相同
非法请求丢弃。如果副本节点i收到了2f+1个验证通过的PREPARE消息,则向其他节点包括主节点发送一条<COMMIT, v, n, d, i>消息,v, n, d, i与上述PREPARE消息内容相同。<COMMIT, v, n, d, i>进行副本节点i的签名。记录COMMIT消息到日志中,用于View Change过程中恢复未完成的请求操作。记录其他副本节点发送的PREPARE消息到log中。
主节点和副本节点收到COMMIT消息,需要进行以下交验:
a. 副本节点COMMIT消息签名是否正确。
b. 当前副本节点是否已经收到了同一视图v下的n。
c. d与m的摘要是否一致。
d. n是否在区间[h, H]内。
非法请求丢弃。如果副本节点i收到了2f+1个验证通过的COMMIT消息,说明当前网络中的大部分节点已经达成共识,运行客户端的请求操作o,并返回<REPLY, v, t, c, i, r>给客户端,r:是请求操作结果,客户端如果收到f+1个相同的REPLY消息,说明客户端发起的请求已经达成全网共识,否则客户端需要判断是否重新发送请求给主节点。记录其他副本节点发送的COMMIT消息到log中。
如果主节点作恶,它可能会给不同的请求编上相同的序号,或者不去分配序号,或者让相邻的序号不连续。备份节点应当有职责来主动检查这些序号的合法性。
如果主节点掉线或者作恶不广播客户端的请求,客户端设置超时机制,超时的话,向所有副本节点广播请求消息。副本节点检测出主节点作恶或者下线,发起View Change协议。
View Change协议 :
副本节点向其他节点广播<VIEW-CHANGE, v+1, n, C , P , i>消息。n是最新的stable checkpoint的编号, C 是 2f+1验证过的CheckPoint消息集合, P 是当前副本节点未完成的请求的PRE-PREPARE和PREPARE消息集合。
当主节点p = v + 1 mod |R|收到 2f 个有效的VIEW-CHANGE消息后,向其他节点广播<NEW-VIEW, v+1, V , O >消息。 V 是有效的VIEW-CHANGE消息集合。 O 是主节点重新发起的未经完成的PRE-PREPARE消息集合。PRE-PREPARE消息集合的选取规则:
副本节点收到主节点的NEW-VIEW消息,验证有效性,有效的话,进入v+1状态,并且开始 O 中的PRE-PREPARE消息处理流程。
在上述算法流程中,为了确保在View Change的过程中,能够恢复先前的请求,每一个副本节点都记录一些消息到本地的log中,当执行请求后副本节点需要把之前该请求的记录消息清除掉。
最简单的做法是在Reply消息后,再执行一次当前状态的共识同步,这样做的成本比较高,因此可以在执行完多条请求K(例如:100条)后执行一次状态同步。这个状态同步消息就是CheckPoint消息。
副本节点i发送<CheckPoint, n, d, i>给其他节点,n是当前节点所保留的最后一个视图请求编号,d是对当前状态的一个摘要,该CheckPoint消息记录到log中。如果副本节点i收到了2f+1个验证过的CheckPoint消息,则清除先前日志中的消息,并以n作为当前一个stable checkpoint。
这是理想情况,实际上当副本节点i向其他节点发出CheckPoint消息后,其他节点还没有完成K条请求,所以不会立即对i的请求作出响应,它还会按照自己的节奏,向前行进,但此时发出的CheckPoint并未形成stable。
为了防止i的处理请求过快,设置一个上文提到的 高低水位区间[h, H] 来解决这个问题。低水位h等于上一个stable checkpoint的编号,高水位H = h + L,其中L是我们指定的数值,等于checkpoint周期处理请求数K的整数倍,可以设置为L = 2K。当副本节点i处理请求超过高水位H时,此时就会停止脚步,等待stable checkpoint发生变化,再继续前进。
在区块链场景中,一般适合于对强一致性有要求的私有链和联盟链场景。例如,在IBM主导的区块链超级账本项目中,PBFT是一个可选的共识协议。在Hyperledger的Fabric项目中,共识模块被设计成可插拔的模块,支持像PBFT、Raft等共识算法。
Raft基于领导者驱动的共识模型,其中将选举一位杰出的领导者(Leader),而该Leader将完全负责管理集群,Leader负责管理Raft集群的所有节点之间的复制日志。
下图中,将在启动过程中选择集群的Leader(S1),并为来自客户端的所有命令/请求提供服务。 Raft集群中的所有节点都维护一个分布式日志(复制日志)以存储和提交由客户端发出的命令(日志条目)。 Leader接受来自客户端的日志条目,并在Raft集群中的所有关注者(S2,S3,S4,S5)之间复制它们。
在Raft集群中,需要满足最少数量的节点才能提供预期的级别共识保证, 这也称为法定人数。 在Raft集群中执行操作所需的最少投票数为 (N / 2 +1) ,其中N是组中成员总数,即 投票至少超过一半 ,这也就是为什么集群节点通常为奇数的原因。 因此,在上面的示例中,我们至少需要3个节点才能具有共识保证。
如果法定仲裁节点由于任何原因不可用,也就是投票没有超过半数,则此次协商没有达成一致,并且无法提交新日志。
数据存储:Tidb/TiKV
日志:阿里巴巴的 DLedger
服务发现:Consul& etcd
集群调度:HashiCorp Nomad
只能容纳故障节点(CFT),不容纳作恶节点
顺序投票,只能串行apply,因此高并发场景下性能差
Raft通过解决围绕Leader选举的三个主要子问题,管理分布式日志和算法的安全性功能来解决分布式共识问题。
当我们启动一个新的Raft集群或某个领导者不可用时,将通过集群中所有成员节点之间协商来选举一个新的领导者。 因此,在给定的实例中,Raft集群的节点可以处于以下任何状态: 追随者(Follower),候选人(Candidate)或领导者(Leader)。
系统刚开始启动的时候,所有节点都是follower,在一段时间内如果它们没有收到Leader的心跳信号,follower就会转化为Candidate;
如果某个Candidate节点收到大多数节点的票,则这个Candidate就可以转化为Leader,其余的Candidate节点都会回到Follower状态;
一旦一个Leader发现系统中存在一个Leader节点比自己拥有更高的任期(Term),它就会转换为Follower。
Raft使用基于心跳的RPC机制来检测何时开始新的选举。 在正常期间, Leader 会定期向所有可用的 Follower 发送心跳消息(实际中可能把日志和心跳一起发过去)。 因此,其他节点以 Follower 状态启动,只要它从当前 Leader 那里收到周期性的心跳,就一直保持在 Follower 状态。
当 Follower 达到其超时时间时,它将通过以下方式启动选举程序:
根据 Candidate 从集群中其他节点收到的响应,可以得出选举的三个结果。
共识算法的实现一般是基于复制状态机(Replicated state machines),何为 复制状态机 :
简单来说: 相同的初识状态 + 相同的输入 = 相同的结束状态 。不同节点要以相同且确定性的函数来处理输入,而不要引入一下不确定的值,比如本地时间等。使用replicated log是一个很不错的注意,log具有持久化、保序的特点,是大多数分布式系统的基石。
有了Leader之后,客户端所有并发的请求可以在Leader这边形成一个有序的日志(状态)序列,以此来表示这些请求的先后处理顺序。Leader然后将自己的日志序列发送Follower,保持整个系统的全局一致性。注意并不是强一致性,而是 最终一致性 。
日志由有序编号(log index)的日志条目组成。每个日志条目包含它被创建时的任期号(term),和日志中包含的数据组成,日志包含的数据可以为任何类型,从简单类型到区块链的区块。每个日志条目可以用[ term, index, data]序列对表示,其中term表示任期, index表示索引号,data表示日志数据。
Leader 尝试在集群中的大多数节点上执行复制命令。 如果复制成功,则将命令提交给集群,并将响应发送回客户端。类似两阶段提交(2PC),不过与2PC的区别在于,leader只需要超过一半节点同意(处于工作状态)即可。
leader 、 follower 都可能crash,那么 follower 维护的日志与 leader 相比可能出现以下情况
当出现了leader与follower不一致的情况,leader强制follower复制自己的log, Leader会从后往前试 ,每次AppendEntries失败后尝试前一个日志条目(递减nextIndex值), 直到成功找到每个Follower的日志一致位置点(基于上述的两条保证),然后向后逐条覆盖Followers在该位置之后的条目 。所以丢失的或者多出来的条目可能会持续多个任期。
要求候选人的日志至少与其他节点一样最新。如果不是,则跟随者节点将不投票给候选者。
意味着每个提交的条目都必须存在于这些服务器中的至少一个中。如果候选人的日志至少与该多数日志中的其他日志一样最新,则它将保存所有已提交的条目,避免了日志回滚事件的发生。
即任一任期内最多一个leader被选出。这一点非常重要,在一个复制集中任何时刻只能有一个leader。系统中同时有多余一个leader,被称之为脑裂(brain split),这是非常严重的问题,会导致数据的覆盖丢失。在raft中,两点保证了这个属性:
因此, 某一任期内一定只有一个leader 。
当集群中节点的状态发生变化(集群配置发生变化)时,系统容易受到系统故障。 因此,为防止这种情况,Raft使用了一种称为两阶段的方法来更改集群成员身份。 因此,在这种方法中,集群在实现新的成员身份配置之前首先更改为中间状态(称为联合共识)。 联合共识使系统即使在配置之间进行转换时也可用于响应客户端请求,它的主要目的是提升分布式系统的可用性。
2. 如何通俗的理解ibm区块链技术hyperledger-fabric中的共识算法pbft
1、区块链的技术是什么? 如果我们把数据库假设成一本账本,读写数据库就可以看做一种记账的行为,区块链技术的原理就是在一段时间内找出记账最快最好的人,由这个人来记账,然后将账本的这一页信息发给整个系统里的其他所有人。
3. 区块链+物流=
区块链+物流=?看看UPS、马士基、IBM是怎么做的
2018年开年,什么最火?区块链无疑是其中之一。这样的技术将给物流业带来哪些革新?国外的同行做出了哪些探索?曾老师的这篇文章做了全面的梳理汇总,相信将给中国的同行带来一定启发。
2017.2.21:IBM官方发布物流和运输解决方案
2017年6月21日,IBM和AOS--一家专门提供物流解决方案的哥伦比亚公司 - 一起宣布,他们正在合作开发一个解决方案,建立在IBM Cloud上的Blockchain和Watson IoT,以提高全国各地的物流和运输行业的效率。
区块链作为记录业务(Transaction)网络成员之间交易的不可变总账( immutable ledger) 。在供应链中,这为所有许可的成员提供了在整个运输周期内交换信息的可视性(visibility),从而提高了数据和交易的透明度。
传统上,供应链交易是手动完成的,记录错误和延迟的风险概率较高,这可能导致记录和实际加载的内容之间存在差异。通过使用区块链和物联网对此过程进行数字化处理,相关信息直接从放置在卡车上的传感器获取,然后进入区块链,从而创建一个单一的共享存储库,供所有授权参与者访问,参与者只能是达成共识各方。
通过该解决方案,一旦卡车离开分销点,就会向客户自动发送消息,通知他们有关负载,重量和预计到达时间。如果部分交货已退回,则可以根据交付的实际货物自动开具发票。此外,通过位于卡车上的传感器,使用物联网和区块链,一个信息库(informationrepository)就生成了,该区域链跟踪从分发点到最终客户的每辆卡车及其各自负载所进行的所有交互,停车和交易。透明度的提高可以帮助增加托运人与其客户之间的责任和义务区分,促进业务流动。
对于AOS来说,这个项目对于整个国家的物流行业来说非常重要。 "妥善处理和使用与货物有关的交易和交换信息是物流和运输行业的关键,因此,我们采用这一解决方案的主要目标是在整个运输周期内提供透明度和安全性",Ricardo Buitrago, AOS创新部门负责人说到,"现在,该解决方案可作为IBM Cloud上的功能原型 (functional prototype) ,适用于哥伦比亚全国物流,供应链和运输行业的公司",Buitrago补充道。
该解决方案还集成了Watson物联网,旨在监控卡车发生的情况。例如,该解决方案捕获装载和卸载情况以定义卡车可用容量,以及哪个仓桶哪个司机可以承接负载;并且该数据还与外部信息(如天气,湿度,温度和驾驶员数据)相关,以估计交付给客户的时间。
"物流和运输行业面临的最大挑战之一是保护其资产和货物,这就是为什么在云(Cloud)中实施这种区块链和IoT解决方案是一个各方可以按需求访问关键数据,并为企业利益做出更明智决策的机会",IBM哥伦比亚首席技术官Jorge Vergara说。
未来,该解决方案预计将包括新的功能,例如用于陆地货物控制和监控的电子封条机制。
2017.11.7:UPS加入区块链货运联盟
除IBM外,一些物流巨头也在该领域进行探索。相关人士表示,区块链应该能够在物流行业提高交易效率并减少支付纠纷。自动驾驶汽车和亚马逊今天还是航运业炙手可热的流行语,但很可能很快会让位给区块链。
就在2017年底,美国联合包裹服务公司(UPS)宣布已加入区块链货运联盟(BiTA),并正仔细研究该平台的产品。
"这项技术有可能提高发货人,运营商,经纪人,消费者,供应商和其他供应链利益相关者的透明度和效率,"UPS企业架构和创新总监Linda Weakland在一份声明中表示。
然而,UPS此举对投资集团Stifel来说并不意外。Stifel分析师John Larkin在10月29日的一份报告中写道:"我们认为,区块链将与整车定价期货市场结合,并通过数据分析辅助,人工智能辅助装载和空载的实时匹配。
Larkin表示,三家公司将"在技术上投入足够的资金来推动围绕这些核心转型技术的行业整合-"UPS,C.H. Robinson Worldwide 和XPO Logistics"。
Larkin说:"理论认为,区块链支持的供应链参与者将能够更快速,更安全地处理交易,减少错误,减少整个流程中涉及的人力成本。"
Stifel说,消费者可以从整个物流行业广泛采用区块链技术中受益。Larkin写道,由于区块链的缘故,产品将更便宜,更快,更准确地到达。如果该技术是按理论实施的,即使是软件提供商,数据提供商和拖车租赁公司也可以从日常运营中看到更大的价值。
但是,"有几个组织或者部门可能被完全或部分被区块链引入卡车业务所革命",Larkin说。
"潜在的失败者是那些选择不遵守BiTA行业标准协议,或者选择不透明业务,"Larkin说。
总体而言,Stifel表示,"区块链应该能够提高交易效率并减少支付纠纷,但距离仍有数年之遥。"
2018.1.16:IBM和马士基拟创建新区块链公司
IBM和丹麦航运巨头马士基正联手组建一家新公司,其目标是将区块链技术商业化 - 由加密货币比特币而导出的时尚的共享分类账。
某匿名纽约风投称新的合资企业股权Maersk拥有51%,IBM拥有49%。该公司旨在帮助全球供应链中的托运人,港口,海关,银行和其他利益相关方追踪货运,并用防篡改数字记录替换相关文书。
IBM和马士基在2016年夏季首次进行区块链试验。新公司首席执行官Michael J. White说,这个试点追踪了从Mombasa, Kenya运到荷兰鹿特丹的一批鲜花,还有一些其他的跟踪证明了马士基系统的潜力。
自那时起,两家公司已与杜邦(Dupont),陶氏化学( Dow Chemical) ,瑞士食品加工商Tetra Pak,以及各种港口和海关办事处进行了测试合作。通用汽车(GeneralMotor)和宝洁公司(P&G)等其他公司正在探索如何使用该技术简化其供应链的记录。
"我们看到了提高货物运输效率和及时性的机会,"White告诉Fortune。此前,怀特曾担任马士基集装箱航运部门马士基航运公司的北美总裁。
"即使是小规模的改进也会对全球贸易产生重大影响,"IBM区块链团队总经理Marie Wieck说。
Wieck说,目前,许多航运供应链陷入了大量中间商纷繁的文件和行政沟通的泥潭之中。文件如果丢失或延迟导致易腐货物受损,最终可能花费高达运输总费用的五分之一。
根据2013年世界经济论坛的一项研究,在国际贸易中减少信息共享和边界管理方面的摩擦"可能会使国内生产总值增长近5%,交易量增加15%" ——这一数字可能达到数万亿美元。
IBM和马士基将采用区块链视为实现这种改进的一种方式。他们认为,通过对复杂的各方网络中发生的所有交易提供单一视图,区块链可以帮助消除可观的资源浪费。
新合资企业的董事长在一份声明中表示,"提供一个中立,在开放的数字平台以安全和便捷的方式交换信息的潜力是巨大的,整个供应链的所有参与者都会从中受益。
市场研究公司IDC的区块链战略研究主管Bill Fearnley Jr说:"供应链现在是一个非常热门的话题,只是从这里加速发展"。他指出,IBM和马士基的新公司将比竞争同一市场的小型区块链初创公司具有竞争优势,因为它背后的公司之间建立了业务关系。
IBM和Maersk的技术建立在Hyperledger 上,这是由IBM首先开发的区块链,现在由Linux F的Hyperledger小组维护。
IBM与沃尔玛(WALMART),雀巢(NESTLE),联合利华(UNILEVER)等公司合作,分别在食品安全和供应链领域,使用区块链技术。该公司还正在从事金融,医疗保健和其他行业的试点工作。
与微软(MICROSOFT),安永(EY)等公司一样,马士基还与海运保险公司进行了单独的区块链试验。
White表示,他预计Maersk-IBM联合创业公司将在今年春季获得监管机构的批准,并在今年第三季度开始销售软件,与此同时,新公司正在组织一个行业和政府官员咨询委员会来帮助指导其开发。
4. IBM推出简化银行担保流程的区块链试点
科技 巨头IBM推出了一个区块链平台的试点,旨在简化银行担保流程。
在7月3日与Cointelegraph共享的一份新闻稿中,IBM表示,该试点是与四家澳大利亚金融服务公司合作推出的。
该试点名为Lygon,由IBM,澳大利亚和新西兰银行集团有限公司,联邦银行,房地产运营商Scentre Group和澳大利亚第一家银行Westpac提供支持。 从4号开始,试点集团的零售物业租赁客户将试运行八周。
从本质上讲,Lygon是一个基于区块链的平台,将零售物业租赁领域的银行担保发行和管理进行数字化。根据发布的文件,将流程数字化将降低欺诈风险,减少潜在错误,并提高透明度和安全性。
一旦试点完成,Lygon计划扩大其支持的数字化银行担保的范围,并开始向其他行业提供这些担保。西太平洋银行(Westpac)企业和机构银行业务总经理迪迪埃•范诺特(Didier Van Not)表示:“我们创建了一个基于区块链的平台,将银行担保生态系统数字化。该试点将使用分布式账本对实时交易进行测试,以证明该技术在商业上是可行的。这是改善客户体验的数字化转型的一个很好的例子。”
到目前为止,IBM已经推出了许多enterprise区块链产品。上个月,巴西银行和金融基础设施服务商CIP通过与IBM合作,使用Hyperledger Fabric正式推出了区块链ID平台。它的目标是使用移动设备验证数字签名。
今年3月,5家日本银行合作推出了基于IBM分布式账本技术的金融服务基础设施。
5. 区块链连接验证失败原因
策略失败。区块链连接验证失败原因是策略失败。区块链(英语:blockchain或blockchain)是用分布式数据库识别、传播和记载信息的智能化对等网络。
6. 区块链革命来了,对ibm和uber们有什么影响
IBM全球企业咨询服务部银行业总经理赵亮认为在供应链金融、数字票据、P2P理财、电子货币、小额信贷、跨境支付、抵押品管理及合约执行等互联网金融领域,区块链技术都有着广泛的应用前景,可以更好地对接金融机构与非金融企业。
而区块链的原理还能更广泛的应用在其它创新领域。比如区块链有望建立起一个积分交换与交易系统,用于电信话费积分、航空里程积分、酒店住宿积分等各种积分的交换与交易。而在物联网领域,IBM已经与芬兰Kouvola Innovation合作,在区块链与Watson物联网技术上建立了物流全过程的可信货物视图。
实际上,未来几年内物联网将会成为区块链最激动人心、规模最大的应用领域之一。区块链解决了物联网海量设备和节点之间的信任问题及金融交易。基于区块链和电子货币的物联网,能让智能家电自动完成缴纳电费账单等金融交易,而IBM Watson认知技术能通过学习历史数据来自动建议更为合理的电量使用水平,从全社会看则可形成真正的智能电网。
2016年5月,有两家中国区块链企业宣布加盟由IBM和Linux基金会主导的HyperLedger超级账本项目。同样在5月,平安保险集团则宣布加入国际R3联盟,与其它金融机构一起共同开发基于分布式共享账本技术的创新型商务应用。
现在,区块链已经不仅是对互联网技术有影响力那样简单,而是要创造全新的去中心化的下一代商业模式,这才是区块链革命的真正意义。
7. 为什么区块链将重新定义世界
比特币背后的技术建立起了一个可依赖的账薄,从而改变很多人的生活,其意义远远超过加密货币的范畴。
1,当洪都拉斯警方在2009年某天冲进Mariana Catalina Izaguirre家里并要驱逐她离开的时候,她已经在这个破旧的房屋住了三十多年。与她的邻居不同,Mariana Catalina Izaguirre甚至都有政府的房屋证明,但很不幸,来自当地政府房屋委员会的资料显示,该房屋署与另外一个人,而这个「房主」向法院申请驱逐令,最终 Lzaguirre女士被迫离开。
由于登记不详或记录丢失,这类扯皮的事情在全球都很普遍。房屋所有权保障的缺失也是不公正的源头。也从让利用房屋或土地作为抵押物进行融资等等变得困难。
比特币可以让这类问题消失,比特币是一种基于加密算法的「聪明」货币,我们更应该关注的是比特币背后的技术:区块链。它的意义要远远超越货币或现金。它创造的一种解决彼此之间不信任的记账方式。
这正是政客们咨询Factom公司来清理洪都拉斯财产机构的原因,Factom是一家美国的创业公司,为基于区域链的土地登记提供一种原型。希腊也对此产生了兴趣,它没有合适的土地登记政策,只有7%的土地在绘出的地图上是正确的。
2,区块链与相似的「分布式账簿」的其他应用可以扩展到阻止钻石偷窃与超市流水线。NASDAQ交易所很快就会用区块链系统来记录私有企业的交易。英国银行以不喜欢科技文明,但看起来也被刺激了:它在去年的研究报告中写到,分布式账簿是个了不起的创新,会对金融业有着深远的影响。
政客则想得更远:当合作伙伴与左翼聚集在今年的巴黎的OuiShare Fest来讨论草根企业是如何撼动了大型数据公司如Facebook的时候,区域链出现在了每一场演说中。在世界的自由梦想里,更多的政府规范被个人间的私人合同所取代——加密算法会自行加强。
区块链由Satoshi Nakamoto所设想,了不起且至今唯一被确认身份的比特币创始人——「完全对等的电子货币」,他在2008年发表的文章里写道。为了让它像货币一样,比特币必须要从争取的账户里转移,可以被同一个人消费两次。为了实现Nakamoto这样去中央化的系统的梦想,比特币必须避免任何对第三方的依赖,例如隐藏在普通支付系统背后的银行。
而区块链可以替代第三方。它可以容纳每个比特币的交易历史,提供任何时间任何人物的证据。分配系统可以在几千台电脑中复制——比特币的「节点」——在全世界的每个地方,并可以公开。但即使有如此的公开性,它依然是可信的,安全的。数学算法的复杂性与建在它的「共识机制」——节点同意根据比特币流通来升级区块链的处理过程——内的计算暴力破解保证了这一点。
举个例子,Alice希望给Bob支付租赁服务。他们都有着比特币钱包——一种直接通往区块链,而不是像浏览器通往网页但没有识别系统内的用户的软件。Alice的钱包开始提出申请的时候交易开始了,区块链开始改变,以显示Alice的钱包少了一些,而Bob的多了一些。
网络在此过程中需要通过数个阶段来完成改变。当申请通过网络内多个节点检查,检查账本,确认Alice是否有她想要花费的比特币。如果一切看起来没问题,特定节点会指令miners捆绑Alice的请求连通其他相似的有信誉的交易,在区块链中创造一个新的模块。
这其中牵涉到需要通过给加密一个散列函数来将模块分解为一系列指定长度的数据(见图表)。像许多加密一样,这种散列是一条单行路。数据分散可以,但反过来由分散聚合为数据是不可能的。但是尽管散列并不容纳数据,它依然是独特的。通过任何一种方法来改变进入模块——通过简单的一个数码来改变交易——散列就会不同。
3,随着其他的数据一起,散列会被放置在制定模块的首位(header)。首位继而变成切实数学谜题的基本,又一次涉及到散列函数。谜题只能被测试与错误解开。通过网络,miners要实验上亿种可能来寻找答案。当一个miner终于找出答案时,其他节点会迅速检查(又一次通过单行路:解决很难,但检查容易),每个节点会确认解决方法随之升级到区块链。首位的散列会成为新模块的确认线,这个模块现在是账簿的一部分了。Alice支付给Bob,模块里容纳的其他所有交易都被确认。
解密阶段引进了三种大大加强比特币安全性的东西。一个是偶然性。你无法预测哪个矿工会解决谜题,因此无法预测谁会在指定时间升级区块链,除了它必定是最用功的一个矿工,而不是其他随机的怠工者。这让作弊很困难。
第二点是历史。每一个新的首位容纳了之前模块首位的散列函数,其容纳了后者之前的散列函数,如此循环往复直至起点。这种关联让模块成了一个循环链。从账簿里的所有数据开始,重新产生最新模块的首位是一件小事。尽管在任何地方制造一个改变——甚至返回到最早的几个模块之一——改变了的模块首位会变得不同。这意味着下一个模块也是如此,以及所有以后的模块。账簿将不会通过最新的模块识别器,并被拒绝。
有没有解决的办法呢?想象一下Alice改变了支付Bob的主意,试着重写历史,这样的比特币就会还在她的钱包里。如果她是一个有能力的矿工,她可以解决亟待处理的谜题,并制作出一个区块链新版本。但是在她这样做的时间内,网络中的其余人会已经延长了原始的区块链。节点会一直在区块链最长的版本中工作。这个规定阻止了两个矿工同时找到了解决办法的情况并导致了链中出现比临时叉更糟的后果。它还会阻止作弊。为了让系统接受她的新版本,Alice需要比其他人更快地延长它。无法控制一半以上的电脑——专业术语叫做「51%的攻击」——那应该是不可能做到的。
4,且不说颠覆上述网络的可能性,另一个深层次的问题是:为什么要成为这个网络的一员呢?这个答案就是第三个「解密」步骤,而且还是有奖励的,每个新区块有新的比特币,解开谜题的人会得到25个比特币奖励,约合7500美元。
所有上述精巧的设计并非比特币真正吸引人的原因。其价值在于不稳定性和不可预测性,如下图所示,但比特币的总量却是一定的。区块链的机制也运行良好。根据一家名叫blockchain.info的网站数据,平均每天有超过12万的交易记录被添加到区块链中,这意味着大约有7500万美元的交易。目前有38万区块,这个帐本的大小将近45GB。
大多数位于区块链里的数据都是比特币,但这也不是必须的。Mr Nakamoto 也创造一种分布式系统,并且撰写了相关阐释。科技极客们称之为:开放式平台。这个平台仿照的就是就是互联网,也包括诸如Android或Windows这样的操作系统。开发者可以开发基于区块链上基本功能的应用程序,并不用得到任何人的许可。投资多家比特币创业公司的Andreessen Horowitz公司Chris Dixon表示:这种网络最后会变成一个公开的数据库。据了解,Andreessen Horowitz公司已经投资了比特币钱包公司Coinbase以及面向大众的比特币硬件设备公司21。
目前基于区块链的应用有三大领域。第一种就是将所有建议都通过区块链的方式完成。创业公司Colu押注在这个模式,他们开发了一种算法去「润色」一些小额的比特币交易,从而使得这些交易可以代表诸如证券、贵金属交易。
保护土地或房屋签名有效性成为第二类的典型应用。比特币交易都会将签名一起加入到区块链的账本上。一家名叫everledger的创业公司用这种方式保护奢侈品,比如他们在区块链数据中记录一块宝石的质地属性,假如宝石丢失可以提供最直观的证明。Onename使用类似方式存储个人信息;注意,由于这种应用并非纯粹的比特币交易,因此你需要首先赋予更多信任,比如你需要将自己的一些准确信息告诉应用开发者。
第三种应用则有着更大的雄心,「智能合同」能够自动检测是否具备生效的各种环境。这是因为,比特币可以被编程,这样就能保证在特殊情境下的可用或不可用。
由一位知名比特币工程师Mike Hearn开创的Lighthouse就是一个去中心化众包的项目。如果足够多的资金进入这个项目,那么一切就启动,如果目标没有达到,就停止。Heran认为,他的项目能够比那些以比特币协议的友商们更便宜也更独立。
5,在纽约风险资本公司Albert Wenger of USV看来,分布式账本的出现开启了一个几乎是全新象限的可能性,这家公司已经投资了多家去中心化的公司,比如提供P2P交易的OpenBazaar。在对区块链一片欢呼声之外,也有人质疑其的安全性和扩展性。区块链在比特币上很适用,但在一些小众的应用程序上,还无法承载数百万用户的使用。
尽管 Nakamoto的对区块链的设计到目前为止证明是攻坚不摧的,学术研究也认为,假如没有控制整个区块链的51%,想在区块链上做坏事几乎也是不可能的。过去比特币的玩家都局限在很小的圈子里,如今的比特币挖矿被各种大比特币池把持,在这里「池」里,小的挖矿者分享他们的努力并获得奖励。
另一个对担心则是对环境。为了获得更多比特币,挖矿者对于计算能力的要求很高,也这意味着要不断增加计算机的功耗。根据blockchain.info的数据显示,挖矿者每秒要进行45万次的计算尝试,这些都会带来巨大的能量消耗。
由于矿工们对于硬件的情况守口如瓶,外界很难知道这些计算机的具体功耗。一份粗略的计算显示,如果每个人都采用最具效率的硬件,每比特的电力消耗为2兆瓦,一年的电力消耗约为加州15000居民的用电量。
但这些围绕比特币的挥霍都是有极限的。Nakamoto当时对于比特币的设计是这样的:每兆数据中约有1400次交易,这意味着每秒的交易数为7次。相比于目前美国的确每秒1736次的Visa卡交易,比特币区块还能更大,不过更大的区块要通过花费更长时间去生成,也会增加一定的风险。
以前的一些经验或许可以参考。当上世纪90年代网络浏览器发明后,数百万的人开启了在线生活,很多预言家都预测互联网会停滞发展。但事实上互联网一直在发展中,同样道理,比特币的发展也不会停滞。更多可用于挖矿的计算设备会更节能,开发者们也会更热衷于基于比特币的平台上开发应用,并使用比特币交易,更快的网络连接也会加速比特币区块的扩大速度。
关于比特币的很多问题并非是缺乏解决方案,比特币机制的任何变化都需要得到比特币社区的许可,而要达成意见并不容易。一方主张尽快扩大比特币区块的规模从而能够成为传统支付的颠覆者,但另一方却认为如果不进行调整,现有的系统可能会在明年崩溃。
6,Hearn先生与Gavin Andresen是两位比特币大亨,是比特币大交易的领头人。他们呼吁挖矿企业来安装比特币的新版本,支持更大的交易规格。一些矿工们的确遭受到了网络攻击,并且在广泛证明其需求与危险下,这次升级与系统正在被浩如烟海的微小交易逼到极限。
这一切都为比特币区块链建立一个替代品的提出奠下基础,可以优化存储分布式账簿而不是加密运行。复试链(multichain),Coin Science所提供的一个定制区块链的平台证明了可能的方向。它还提供了建立一个像比特币一样的区块链的所需资源,并可以用来建立私有链,仅对特定用户开放。如果所有用户开始相信矿工的需求,工作证据被减少或消除,那么现有对账簿的连接就变成了多余的选择。
第一个采用这样的区块链的后代的企业也许正是那些最开始失败并启发了Nakamoto的公司之一:金融。在最近的几个月,私有区块链以防止破坏的银行融资热情开始涨高。比讽刺还要讽刺的是,其中一个原因是反政府自由人士的技术诞生可以让银行在知晓它们的客户与反洗钱规则后更好地符合政府需求。但是这里还有一个更深层的吸引存在。
工业历史家们指出新能源早在最高效的处理方法产生前就存在。当电动机第一次研发时,它们就像之前出现过的巨大的蒸汽引擎机器一样。生产商花费了数十年才看到了分散的电动机可以重组他们做事的任何方面。英国银行在它的数字货币报告中写到,它也在金融行业中看到了相似的东西正在前进中。这要感谢便宜的计算金融公司已经将它们内部的工作数字化,但是它们还没有将自己的组织改变到足以与之相匹配。支付系统目前仍然是中心化的:货币的转移要通过中央银行。当金融公司彼此生意往来时,同步内部的账簿是个耗时几天的繁重任务,桎梏住了资本并带来了风险。
分布式账簿在几分钟甚至几秒钟就完成交易,对解决这些问题和实现数字化银行的承诺可能大有帮助。账簿还可以帮助银行节省很多钱:Santander银行,到2022年这些账簿可以降低行业每年高达200亿美元的账簿。供应商仍然需要证明,他们可以处理过高的比特币交易价格;但大银行已经开始推动比特币这种新兴技术标准化。其中瑞银联合银行,已提议建立一个标准的「结算货币」。R3 CEV的第一要务是块环链的启动,瑞士投资银行与高盛、摩根大通和其它22家银行联合投资,为私人帐开发标准化的架构。
7,银行的问题也并不是唯一的。很多公司和公共机构都难以维护,同时还有经常不兼容的数据库和相互交流的高成本问题。这就是Ethereum想解决的问题,可以说是最雄心勃勃的分布帐项目。21岁的加拿大编程天才Vitalik Buterin的创作品,Ethereum的分布式分类帐可以比「比特币」处理更多的数据。它有一个编程语言,允许用户编写更复杂的智能合约,当货物到达自动支付并打印发票,或如果利润达到一定水平,自动发送给业主股息。Buterin先生希望,如此聪明的「去中心化的自治组织」的形成——基本上,虚拟企业只是给「Ethereum blockchain」设置一些运行的规则。
这样的想法可能有激进影响的领域之一就是在「物联网」——数十亿之前静音日常用品,如冰箱、门闩和草坪洒水装置。从IBM最近的一份题为「设备民主」的报告,认为不可能集中跟踪和管理这些数以十亿美元计的设备,这样的尝试也不明智;这种尝试会让他们容易受到黑客攻击以及政府的监督。分布式寄存器似乎是一个不错的选择。
Ethereum提供的可编程性,不仅仅是让人们的财产被跟踪和注册。它有一些新的用途。在各种各样的方法规则下,车钥匙中嵌入Ethereum blockchain,就可以被出售或出租,产生出租或共享汽车的新P2P。更远,一些人谈论应用该项技术,使自动驾驶的汽车成为社会公共资源。根据预先设置的程序规则,这样的车辆可以自己存储一些数字的钱来支付他们从出租燃料,维修和停车位。
8,不出所料,一些人认为这些计划过于激进。Ethereum1(「创世纪」),8月才被开发,目前只是一个小的启动生态系统集群。虽然Buterin先生在最近的博客中承认这有点缺钱,但区块链最终繁荣的特定细节,远远少于广泛分布式帐的激情,而真实这些激情带领着初创企业和现有的大型企业,检查他们各自的潜力。尽管社会对会计师的能力总是嘲笑,但帐目确实重要。
当今世界深深依赖着复式记账法。其记录着借方和贷方的标准化系统,是理解一个公司核心财务状况的必然选择。在20世纪早期,德国社会学家的维尔纳?桑巴特声称,现代资本主义为了发展,是否绝对需要这样的簿记,值得更深入地去讨论。虽然复式记账系统始于文艺复兴时期的意大利商人,也刚好是一个时间巧合;那时候,复式记账在世界各地的传播比资本主义的传播更缓慢,直到在19世纪末才开始广泛使用。但毫无疑问,技术的根本重要性,不仅仅在于记录一个公司做什么,而是能够定义公司的未来。
帐目,不再需要由公司或政府维护,可以及时刺激新公司和政府关于工作方式的变化、对未来的期望以及当下能做的工作。没有集中记录的系统,可以一样值得信赖,因为他们也能带来彻底的改变。
这些想法虽然仍是一个只适用在几个领域的新奇事物,和他们传播能力以及被扩大的可能性。他们还面临一些未知的阻力。一些比特币的批评人士一直将其视为最新「加州意识形态」的尝试。(加州意识形态意指那种以技术拯救世人的使命感)。这只是一个编码的信任机制,而并非民主政治、合法性和问责制,很难吸引人或者授权。
与此同时,整个世界都会被数字化地记录,这也将有很多好处。如果区块链有一个基本的矛盾,也就是:即使提供了相同的过去和现在,区块链的未来会很不一样。
本文选自《经济学人》,机器之心编译出品,参与成员:黄志臻、Chen、赵赛坡
瑞泰币、莱特币、狗狗币等数字加密货币也都是利用了区块链技术。