本文从分布式系统角度讨论了区块链中的几种创新模式:不可变模式、异步和共识以及网络容错可靠性。
不可变模式
区块链是不可变的。分布式系统已经在相当一段时间内依靠不变性来消除异常。比如日志结构的文件系统、日志结构的合并树和Copy-On-Write是分布式系统中用于模拟不可变数据结构的常见模式/技巧。区块链以类似于事件溯源EventSourcing的方式来处理事务,这是分布式计算中用于处理事实和操作的常用技术。不是用最新数据覆盖旧数据,而是创建一个包含所有事件/行动的只能不断追加append-only的日志。
帕特·赫兰德在他重要的流行论文“不变性改变一切”中描述了不变性:
会计师不能使用橡皮擦;否则他们旧可能蹲监狱。分类流水账中的所有条目都保留。可以进行更正,但只能在分类帐中新增要进行更正的条目。正如当公司的季度业绩公布时,会包括上一季度的小幅修正,这种小修正是属于追加性质的,因为上一季度的数据已经公布,无法改变,只能在本季度进行数据修正,这种修正从时间角度看实际是新增追加。
全球金融科技实验室专家顾问:区块链+智能制造成推进工业化和信息化深度融合战略举措:业内专家普遍认为,区块链在生物医药、新能源、新材料等产业上的应用前景比较广阔。对此,全球金融科技实验室专家顾问郑磊博士表示,目前还没听说过有区块链技术的应用,在新材料领域有落地的项目,但区块链+智能制造成为加快推进落实工业化和信息化深度融合、打造制造强国的战略举措。智能制造的价值之一就是重塑价值链的透明度、灵活性,并能够更敏捷的应对生产、物流、仓储、营销、销售、售后等环节存在的问题。(证券日报)[2020/4/12]
区块链是简单的分布式会计分类帐,因此名称称为DistributedLedgerTechnology,简称DLT。
异步
区块链可能运行在距离数千英里的各种服务器上。在这种异步网络中想保证各种订单交易的前后顺序性是分布式系统经典问题。所有不可能的理论如像FLP定理(分布式系统的共识(consensus)算法)和CAP定理都适用于区块链。
《河北省应急产业发展规划(2020-2025)》提出推进区块链等与应急产业深度融合:河北省工业和信息化厅22日透露,为加快河北应急产业发展,该省近日印发《河北省应急产业发展规划(2020-2025)》提出,推进互联网、大数据、人工智能、区块链、物联网等与应急产业深度融合,加速应急产业数字化、网络化、智能化转型。(中新社)[2020/3/23]
如同分布式系统一样,区块链块中没有“现在”概念,分布式系统中的不同节点的时钟可能会相互隔离,因此,在全局所有机器上的对事件进行全局性的实时排序并不简单,因为所有节点时钟不能始终处于同步之中,因此使用机器本地时间戳将不再有帮助,除此之外,消息的延迟可以达到任意时间,可以是毫秒或秒级,甚至达到分钟甚至几天的数量级,对于比特币区块链,创始人中本聪设计了一种巧妙的方式来排序订单交易,以防止双重支出的问题,在没有全局时钟情况下使用了分布式Timestamp服务器。中本聪的比特币白皮书中说:
ChainUP与日本孵化器BINARYSTAR达成深度战略合作:今日,日本孵化器BINARYSTAR正式加入ChainUP全球超级节点合作伙伴,双方达成深度战略合作,共同助力日本企业区块链技术应用与产业升级。
BINARYSTAR是日本一家以区块链为核心的孵化器,坐落在东京市中心银座。BINARYSTAR在日本、及东南亚地区有多个分部,推广区块链行业应用,同时作为专业运营咨询机构,扶持区块链初创企业品牌和业务发展。
作为全球领先的区块链技术服务提供商,ChainUP实行集团化和全球化战略,拥有多家子公司及独立品牌,其中包含钱包技术服务品牌HiCoin、交易所流动性服务提供商BitWind、区块链金融衍生品技术服务平台EXUP。ChainUP在全球化进程中除新加坡总部之外已建立日本分公司、香港分公司,将全球区块链技术经验和产品进一步应用于本地化发展,为更多优质企业提供区块链技术服务与支持。[2020/3/20]
我们的解决方案是基于时间戳服务器,时间戳服务器的工作就是通过获取要被时间戳标识的某个区块的条目的哈希值,然后广泛发布这个哈希值,例如在报纸或BBS帖子中,总是附加具体的发布时间,这个时间戳提供了当时数据存在的证明。每个当前时间戳包含之前的时间戳哈希,由此形成一个链条,这样一个时间戳相当于有两份存在证明,更加坚固可靠。
声音 | 兴业银行副行长薛鹤峰:将加大区块链与绿色金融的深度融合:兴业银行副行长薛鹤峰表示,下一步兴业银行将重点打好四张牌,包括集团牌、创新牌、开放牌以及科技牌。科技牌方面,在首个绿色金融专业支持系统基础上,进一步加大人工智能、大数据、区块链等金融科技与绿色金融的深度融合运用。[2018/8/21]
这类似于DBMS中通过事务日志记录保存所有对数据库的写入操作事件。在这种情况下,区块链本质上是一个分布式事务日志。
共识
在没有全局同步时钟的情况下,决定订单交易顺序的唯一方法是通过分布式共识。就像在分布式机器上对事件/事务进行排序达成共识一样,但是在分布式系统中达成共识很困难:
FLP表明,在异步网络中,消息可能被延迟但不会丢失,如果至少有一个节点发生故障停机了,那么就不可能达到所有机器获得共识一致。
数字钱包Dbank将与360继续深度合作:360上周首次发布针对区块链领域的安全解决方案,今日又发现了EOS史诗级安全漏洞。作为360在数字钱包领域的首家战略合作方,Dbank表示将和360就安全和DAPP实现场景等领域继续展开深度合作。双方将结合360安全大脑,深度挖掘用户在数字钱包领域的需求,加固核心代码,同时拓展EOS超级节点安全解决方案和区块链应用落地场景。
Dbank核心安全技术由360支持,具备包括包括“手机病检测”、“数字证书安全”、“虚假合约地址识别”等10层安全防护。同时有便捷的“EOS一键映射”功能。[2018/5/29]
能够对网络的崩溃故障进行容错的算法有:Paxos,Zab,Raft,Viewstamped复制,这些网络容错算法能够在流程或机器可能发生崩溃或导致消息传递延迟的情况下达成共识一致性。上述算法通常在一个可控的组织内实现分布式系统。
区块链工作在更加复杂的条件下,用来处理称为“拜占庭将军问题”的故障类型,其中一些节点可能是恶意的,因为节点是由不相互信任的不同实体/组织运行。区块链假设是你自己的网络并不在你身边。因此,您需要拜占庭容错算法才能在区块链中达成共识。拜占庭容错算法已经在分布式系统文献中存在很长期的研究了。1999年,MiguelCastro和BarbaraLiskov介绍了实际拜占庭容错算法,该算法提供了高性能拜占庭状态机复制,每秒处理数千个请求,延迟时间为毫秒级。虽然这篇文章是在1999年写就的,但是直到比特币在2008年使用“工作证明”算法,还没有其他BFT算法的已知实践实现,只是在一些系统中用来限制垃圾电子邮件。区块链引起了对BFT算法重新研究的兴趣,并在学术界积极努力下催生了大量新的BFT算法,一些应用案例包括ProofOfStake,Bitcoin-NG,Tendermint和HoneyBadger.。
网络可靠性
与普通人大众想法不同的是:网络默认是不可靠。分布式系统工程师必须处理这个冷酷事实。比特币和其他加密货币被建立在互联网上工作,其中网络分区和消息丢失/重新排序是常见的。有趣的是,区块链数据结构本身是检测消息丢失和重新排序的一种聪明的方法。每个块都有一个指向前一个块的指针,类似于一个链表,可以很容易地检测到丢失的块。再次引用中本聪语录:
新的交易不一定需要广播到达所有节点。只要能到达大多数节点即可,这些新交易很快进入一个区块中。堵塞广播也能容忍消息的丢弃。如果一个节点没有收到一个块,它会在接收到下一个块时,如果意识到那块被忽略了就会重新请求它。
这个原理类似于复制交易日志或日志传送,这是用于保持副本同步的常用技术。当一个交易日志被订阅关注时,就会提供了一个简单的机制来检测差距和修复副本。类似地,可以通过检查区块中的merkle根来验证块链中每个块的完整性。因此,很容易发现缺少的交易。提醒一下,merkle树是在复制同步技术anti-entropy中非常常用的技术。
区块链是一个令人兴奋的技术突破。让我们首次拥有一个在不相互信任的实体之间实现的分布式数据库。我们还处在这个有趣技术的早期阶段,类似于当初编写第一个分布式的NoSQL数据库,如亚马逊的Dynamo或Google的BigTable时期。这些分布式数据库为我们展示了构建大型数据库的新途径,并且开辟了新的设计模式和数据结构。NoSQL数据库现在已经被商品化了。如果您听到有关新的NoSQL数据库,90%的模式和算法是一样的。DLT也正在经历类似的阶段,最终将成为商品化。但是现在还是早期阶段,我们正在挖掘建立它们的最佳模式。
免责声明:CoinVoice文章仅为资讯传播用,不构成任何投资建议。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。