首页 > 编程知识 正文

区块链与分布式技术有什么关系,区块链的3个核心是

时间:2023-05-05 14:04:26 阅读:55789 作者:546

本文由微信号EAWorld转述。 扫描以下二维码,关注成功后回复“常用方法”,即可获得热门课程的免费学习机会!

《当微服务撞上区块链》系列微课如下。

1、区块链的商业价值是通过数据共享降低信任成本

2、区块链的本质是分布式数据库(正文)。

3、区块链和微服务是天生的一对

区块链技术是基于比特币APP技术提出的概念,他是一种融合多种技术的集成创新。 目前区块链的应用不仅仅局限于比特币。 人们在说、使用“区块链”这个词时,既可以指技术的商业APP应用,也可以指技术的实现本身。

在《区块链的业务价值是通过数据共享降低信任成本》的文章中,我论述了应用区块链技术的商业价值。 具有适合在多人参与的情况下采用区块链技术的特点。 此外,还提到了区块链技术的技术特点。 (1)多个副本,(2)可靠记录,(3)不可篡改,(4)总结了多人透明的特性,采用区块链技术后,应用技术架构如下图

一、从分布式数据库的基本概念理解区块链技术

与区块链技术相比,分布式数据库的概念明显更容易理解。 从分布式数据库的一些基本概念中,我了解数据存储、点对点可靠传输、存储过程和触发器(智能合约)、数据安全等区块链的技术实现:

1、分布式数据存储

区块链技术的数据共享是分布式的账簿,交易记录具有多个副本,因此首先需要解决分布式数据存储的问题。

1 )区块链存储的基本单位是区块。 砌块采用链条结构。 也就是说,新添加的块(类似于数据库中的单行记录)知道自己的上一个块(上一行记录)是什么,并且可以追溯到根。 块识别是块的典雅芝麻值,同时链结构保留了业务产生的轨迹,新增交易时可以根据上一条记录进行检查,保证块的内容不容易篡改。

传统的数据库设计中也采用了该模型。 例如,拉链表格式在每次数据更新时都采用插入模式而不是更新,显示开始时间、到期时间和是否有效,并保留所有事务处理历史记录。 区块链是以此为基础的固有模式,引入典雅的芝麻、时间戳等机制在技术上保证了链的正确性,因此非常有价值。

2 )既然是分布式多中心存储方案,就需要解决存储中的分布式一致性问题。 在区块链的前身比特币APP中,解决这一问题的方式是通过工作取得指定的成果,用成果证明曾经的努力的工作量证明(POW Proof-Of-Work )方式。 这也是接触区块链技术时的第一个迷茫之处,为什么要用工作量来证明呢? 还有其他方法吗? 区块链技术独立于比特币之后,大家都把这个问题归结为共识问题,工作量证明是达成共识的一种方法,这一点已经明确了。

因此,POS Proof of Stake (权益证明)方式应运而生,作为在业务规则上达成共识的方式的拜占庭容错(pbftpracticalbyzantinefaulttolerance )方式是通过技术规则达成共识的结构在公有链中,工作量证明(POW )还是最主要的共识方式,不容易取代,但在联盟链中,可以根据自己的情况,制定新的共识方式。 基于这个想法,我们在特定业务中创造了共识算法,解决了分布式数据存储的一致性问题后,有机会再进行讨论。

2、点对点可靠传输

区块链技术是一系列技术的组合,既然是分布式的账簿,就必须解决数据的可靠传输问题。 计费节点(信任节点)之间、非计费节点(非信任节点)、客户端和计费节点(信任节点)之间的数据传输。 在以前的方案中,经常使用可靠的消息和P2P方法来解决数据传输问题,这些技术也用于区块链技术。

但是,在实际的业务场景中,不可能将所有的数据记录在账上,有些业务数据需要保存在自己的系统中。 为此,必须在技术框架上确保本地业务数据与区块链账簿相匹配。 稍后将在微服务体系结构和区块链技术集成时具体阐述,总之,区块链平台只能保证自身数据之间的匹配,而业务不能完全依赖区块链平台来确保数据匹配

3、智能合约:触发器与存储过程

智能合约是指在满足一定条件时自动执行的数字化合同。 要实现这一功能,触发器和存储过程将在数据库中完成。 虽然目前流行的APP应用程序体系结构不建议将逻辑写在存储过程中,但触发器和存储过程是常见的工具,尤其是在与数据迁移相关的运输活动中。 区块链技术中的智能合约是触发器和存储过程,是在沙箱中运行的脚本,用于执行区块链业务中的业务逻辑和各种检查。

例如,从a支付时,可以通过智能合约在数据链上进行检查,如果发现a的余额支付不了这笔交易,就可以中止这笔交易。 与存储过程相比,智能约定在沙箱中运行,不能调用外部API。 这也很容易理解,如果允许外部调用,可能无法保证自身数据的完整性。 关于如何弥补这个缺陷将在后面叙述。 缺点是当前的智能合约不支持SQL语法。

4、数据安全

交易数据透明,但不全部透明,而是相对透明。 这是

是区块链技术的一个难点,关键有二:(1)如何保护隐私,仅仅能看到自己可见的数据;(2)密钥分配问题,例如新加入链中的一个节点会被分配一个新的密钥,如何用这个密钥解读以前链中存储的信息。可见与不可见,这是一个矛盾,理论上没有一个完美的方案,这里我不对区块链技术如何加密、如何做密钥管理、如何同态加密等方式做解读,而是讲讲如何通过业务方法而不是技术手段规避这一问题。

举个例子,在一个小企业支付的联盟链中,核心企业包括某银行、企业A,为A的上下游企业提供信贷业务,对于所有交易的数据,银行和核心企业A都是可见的,他们拥有记账节点,对于其他加盟企业,只拥有非记账节点,他们虽然也有全部的数据,但是只能看到自己相关的数据。

很明显,加盟企业放弃了自己的部分隐私权,但也得到了生意的机会,这种方式加盟企业是可以接受的,就好比贷款企业要向银行提供经营数据一样。数据安全问题,在技术上很难解决,但通过业务手段是可以规避的,这也是我们看好联盟链的重要原因。

二、理解区块链技术常见的几个困惑

从刚刚接触区块链技术的一头雾水,到概念的逐步清晰,再到区块链应用的研发,经历很多困惑,这里列出几个常见的困惑。

困惑1:比特币是区块链技术的一个应用,不能把比特币应用的所有内容都归结为区块链技术

上文提到,区块链技术从比特币中独立出来是 2014 年左右的事情,此前每每举出区块链的案例都是比特币,给区块链技术的应用造成了很多误解。我建议先了解区块链技术,再了解比特币,先理解联盟链的业务场景,再了解公有链的业务场景,公有链看作是联盟链的一种大规模延展,,可以少走一些弯路。

困惑2:公有链情况下数据存储性能不高,但联盟链的性能可以远高于公有链,能满足多数场景的要求

数据一致性问题是分布式存储最大的问题,而并发越高,冲突的概率就越大。区块链技术之所以能支持的每秒交易数(TPS)不高,主要是共识机制比较复杂,或者说共识机制就是刻意为了降低并发性,减少数据冲突的概率。

在公有链上,这是一个无法逾越的问题,只能从事实时性要求不敏感的业务。但是,在联盟链中,由于链中的参与方并不多,也不需要每个节点都记账,就可以使用一些性能更高的共识机制,例如前面说的PBFT。我们曾经尝试过一种全对等的算法,可以支持更高的性能。

困惑3:应用区块链技术不一定必须有矿工来挖矿

初次接触区块链技术,矿工/挖矿这个概念让人非常费解:
(1)为什么一定要挖矿?
(2)为什么要给记账成功的节点奖励比特币来鼓励记账?
(3)非比特币的业务中如何鼓励记账?

这个困惑归根结底还是把区块链和比特币混淆造成的。前面说过,挖矿是通过工作量证明(POW)达成共识的机制,挖矿能力愈强就取得了记录权。更重要的是比特币的货币属性,发行货币要么靠国家信用(例如纸币),要么靠奇缺资源(例如黄金),比特币为了防止滥发,就需要用算力做为一种奇缺资源。

这样说来,比特币实际上把共识算法、货币属性、鼓励记账这几件事都用挖矿来解决了,思路确实精妙。但是,在业务规则不同的联盟链中就不一样了,除了有其他更高效的共识算法外,不需要奇缺资源,不需要专门对记账做鼓励,因为必须记账已经是核心企业之间的契约,可以通过技术手段保证数据的同步,支持审计等能力,自然就不需要挖矿了。

困惑4:目前应用区块链技术不是去中心,而是多中心

去中心是一个理想,经常有人问,为什么要去中心?去中心有什么好处?真的能去中心吗?后来,我深入研究联盟链的场景时发现,实际的业务场景大多是多中心(这又是比特币惹的祸,他真的想去中心),例如上述的企业联盟方式,几个建立联盟的核心企业就是多中心,他们共同成为一个新的中心。传统方式建立新的中心,往往通过建立清算机构的方式,而区块链技术让建立中心的成本降低了。

困惑5:不是所有的区块链节点都是记账节点,很多节点仅仅用来进行数据同步而已

多中心就意味着不是每个节点都需要记账,记账的工作由几个中心节点负责就可以了,其他节点与记账节点间是数据同步的关系,也就是非记账节点上也有全部数据。联盟链中非记账节点一般处在加盟企业,由于数据可见性的要求,非记账节点中的数据并不是都可见的,但是这一副本可以做为一种法律依据,提高了篡改数据的成本。

三、总结

从数据的角度来看,区块链本质是一种分布式数据库,这里的“分布式”是指区块链技术利用链式存储结构不仅解决了分布式数据存储问题,也解决了存储时的分布式一致性问题。区块链技术利用分布式记账簿保证数据可靠传输和访问,利用可自动执行的智能合约来编程和操作数据。所以,我认为,基于分布式数据库来理解区块链,认清区块链技术常见的一些困惑和误区,可以让大家对区块链有个比较正确的理解方式。

采用区块链技术后,应用技术架构是什么,与微服务架构的关系,现有应用如何进行迁移?下节微课我会为大家逐一详细介绍。

关于作者
友好的麦片
EAII-企业架构创新研究院 常务理事
2001年加入普元信息,现任CTO,全面负责普元信息技术与产品的运营工作,公司技术发展战略的重要决策人。友好的麦片在企业技术架构研究方面有二十余年的经验,长期致力于分布式环境的企业计算、 SOA与云计算技术研究与实践。加入普元信息后组织完成一系列核心产品的研发工作,包括SOA应用平台、以BPM &/ESB为核心的业务集成平台、以复杂事件处理/数据治理/作业调度为核心的大数据平台,期间主持了中国工商银行、中国建设银行等多家大型企业技术平台的规划与研发。著有《SOA中国路线图—实施版》一书。

关于EAWorld
微服务,DevOps,元数据,企业架构原创技术分享,EAii(Enterprise Architecture Innovation Institute)企业架构创新研究院旗下官方微信公众号。

扫描下方二维码,关注成功后,回复“普元方法+”,将会获得热门课堂免费学习机会!
微信号:EAWorld。

全新形态的PWorld2017盛大开启,首四场定于7月1日在北京、上海、广州、成都四城同步举行。CSDN专项报名通道可获得现场伴手礼个性T恤一件!

7月1日北京站报名:http://www.bagevent.com/event/611620?bag_track=csdn

7月1日上海站报名:http://www.bagevent.com/event/626256?bag_track=csdn

7月1日广州站报名:http://www.bagevent.com/event/625055?bag_track=csdn

7月1日成都站报名:http://www.bagevent.com/event/626275?bag_track=csdn

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。