区块链的本质是什么?其实就是分布式数据库

分享讲师

焦烈焱:

EAII-企业架构创新研究院 常务理事

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

视频介绍:普元CTO焦烈焱与普元主任架构师王延炯在直播区块链相关技术

区块链技术是基于比特币应用提出的一个概念,他是一个融合了多种技术的一个集成式创新。目前区块链的应用早已不仅仅局限在比特币上。人们在谈论或使用“区块链”这个词时,有时候是指技术的商业应用,有时是指技术实现本身。

在《区块链的业务价值是通过数据共享降低信任成本》

一文中,我论述了应用区块链技术的商业价值,有在多方参与的场景下更适合采用区块链技术,也提到了区块链的技术特征:(1)多副本、(2)可靠记录、(3)不可篡改、(4)多方透明几个特性,上述特性总结下来,采用区块链技术后,应用技术架构如下图所示,可以看出,区块链技术对应用而言,就是一个分布式数据库(估计看到我这个结论,很多砖就要拍过来了,请大家拍砖的同时继续看),我一一说来:

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

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

1、分布式数据存储

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

1)区块链存储的基本单元是区块,区块采用链式结构,即新增的区块(类似数据库一行记录)都知道自己前一个区块(前一行记录)是什么,可以一直追溯到根,区块的标识是区块的哈希值,同时链式结构保留了业务产生的轨迹,可以在新增交易的时候根据前面的记录做校验,保证了区块的内容不容易篡改。

这种模式,我们在传统的数据库设计也会采用,例如拉链表的形式,每次对数据的更新都采用追加( Insert而不是Update)模式,有起始时间、失效时间和是否生效标识,保持全部交易历史。区块链把这一点变成了一种底层固有模式,加入了哈希、时间戳等机制在技术上保证链条的正确性,因此非常有价值。

2)既然是分布式、多中心的存储方式,就必须解决存储时的分布式一致性问题。在区块链的前身比特币应用中,解决这一问题的方式是工作量证明(POW  Proof-Of-Work)方式,即通过工作以获得指定成果,用成果来证明曾经付出的努力。这也是接触区块链技术时第一个比较迷惑的地方,我为啥一定要用工作量来证明,是不是还有其他方式?区块链技术从比特币中独立出来后,大家把这一问题归结为共识问题,工作量证明是达成共识的一种方式,这样就清晰多了。

于是就产生了权益证明(POS Proof of Stake)方式,是一种通过业务规则达成共识的方式;实用拜占庭容错(PBFT  Practical Byzantine Fault Tolerance)方式,是一种通过技术规则达成共识的机制。在公有链上,工作量证明(POW)还是一种最主要的共识方式,不容易取代,但在联盟链上,完全可以根据自己的情况,创造出新的共识方式出来。我们就根据这一想法,在特定业务中创造过共识算法,解决分布式数据存储的一致性问题,以后有机会再展开说。

2、点对点可靠传输

区块链技术是一组技术的组合,既然是一个分布式的记账簿,就要解决数据可靠传输问题。包括记账节点(信任节点)之间、非记账节点(非信任节点)、客户端与记账节点(信任节点)之间的数据传输。在以前我们的方案中,往往通过可靠消息或者P2P方式解决数据传输问题,这些技术也被用于区块链技术中。

但必须说明的是,在真实业务场景下,不可能把所有的数据都记录在记账簿中,部分业务数据还是要保存在自己的系统中,这就还需要在技术框架上做到本地业务数据与区块链的记账簿保持一致,后面微服务架构与区块链技术整合时会具体阐述,总之,区块链平台只能保证自身数据之间的一致,业务不能完全依赖区块链平台保证数据一致性。

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

智能合约是指当一定条件满足的情况下,可以被自动执行的数字化合约。实现这一特性,在数据库中就是由触发器和存储过程完成的。虽然在目前流行的应用架构中,都不建议把逻辑写在存储过程中,但触发器和存储过程还是常用的工具,尤其在数据迁移相关的运维活动中。区块链技术中智能合约就是触发器和存储过程,他是一个在沙箱中运行的脚本,用于执行区块链业务中的业务逻辑,也可以用于各种检查。

举个例子,A产生一笔支付时,可以通过智能合约在数据链上进行检查,如果发现A的余额无法支付这笔交易,就可以中止这笔交易。和存储过程相比,智能合约运行在沙箱之中,不能对外部 API 做调用。这也比较好理解,如果允许外部调用,就可能无法保证自身的数据一致性,后面我们会讲到这种缺陷如何弥补。美中不足的是目前的智能合约并不支持 SQL 语法。

4、数据安全

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

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

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

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

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

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

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

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


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

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

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


初次接触区块链技术,矿工/挖矿这个概念让人非常费解:

(1)为什么一定要挖矿?

(2)为什么要给记账成功的节点奖励比特币来鼓励记账?

(3)非比特币的业务中如何鼓励记账?

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

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

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

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

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

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

三、总结

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

来源:中生代技术

原文链接

时间: 2024-09-10 11:18:12

区块链的本质是什么?其实就是分布式数据库的相关文章

VC看区块链:如90s的互联网,以攻城掠地之势投资

比特币的底层技术区块链如今尚处于早期阶段.不过,因其具有各项优异的性能,行业将其视为改变金融行业以及其他商业.生活领域的利器.分布式资本创始管理合伙人沈波表示,目前它就相当于互联网技术1995年1996年时候的水平,还有很长一段路要走. 是否存在泡沫?"泡沫也是推动力" 当一项前沿的技术出现在大众面前,并开始受到追捧时,大家就开始担心会不会一头栽到一堆泡沫中,获得一身伤.毕竟根据Gartner的技术曲线,我们也许要进入"第一次登顶"了. 对此,万向区块链咨询业务合伙

区块链技术分享

大家好,我是国付宝CTO邓明. 今天很高兴能跟大家分享一下区块链相关的信息.从今年年初开始,相信大家陆陆续续在很多媒体.场合看到对区块链的宣传,很多时候都将区块链作为一项颠覆式的技术,与互联网等技术相提并论.本次分享,我们也希望通过对区块链技术本质的分析,共同探讨其对业务带来的影响. 本次培训主要是针对初次接触区块链的听众,所以前面会花些时间讲解一些基本概念,已经了解这些概念的大拿可以直接跳过.讲解过程中如有不当,也请指正.   在介绍区块链之前,先介绍一下国付宝的情况.国付宝是一家第三方支付公

区块链技术指南.

区块链技术指南 邹均 张海宁 唐屹 李磊 等著 图书在版编目(CIP)数据 区块链技术指南 / 邹均等著. -北京:机械工业出版社,2016.11 ISBN 978-7-111-55356-4 I. 区- II. 邹- III. 电子商务-支付方式-指南 IV. F713.361.3-62 中国版本图书馆CIP数据核字(2016)第268750号 区块链技术指南 出版发行:机械工业出版社(北京市西城区百万庄大街22号 邮政编码:100037) 责任编辑:高婧雅 责任校对:殷 虹 印 刷: 版 次

“价值互联网”时代,带你读懂区块链

区块链乍看似乎是一个去中心化的分布式账本,但这只是基于比特币来说,实际上连狭义的区块链都算不上. 区块链从本质上来说是一串使用密码学相关联所产生的数据块,每一个数据块中包含了多次网络交易有效确认的信息. 链的组成:节点(每一个参与者)--节点与节点的交易历史(组成区块)--区块连接区块(形成链) 每个交易都应用了非对称密码学(比特币是哈希数值),每条区块链的形成都有一个共识机制. 用元界CTO陈浩的话来说就是:区块链更像是一门交叉学科,结合了P2P网络技术.非对称加密技术.宏观经济学.经济学博弈

关于区块链技术的12个误区

区块链--分布式账本技术,已经成为科技产业和其他领域热捧的对象.区块链技术提供了一种记录交易或任何数字交互的方式,这种方式的设计具有安全.透明.抗中断.可审核和高效率的特点;同样,它也可能因此扰乱行业,并开启新的商业模式.这是一项年轻且快速变化的技术,想要广泛商业化还需要几年的功夫.尽管如此,为了避免出现猝不及防的破坏或错失良机,行业和商业职能部门的战略家.规划者和决策者现在就应该留意并开始研究这项技术的应用. 区块链是一个维护持续增长的数据记录的数据库.它呈自然式分布,也就是说无需主计算机控制

IEEE:全球超一半大公司正在研究区块链,但是你需要区块链吗?

根据 Juniper Research 今年七月发布的一项研究报告,全球超过一半的大公司正在研究块链技术,目的是将其集成到产品中.已经推出了一些项目,这将颠覆我们对医疗健康记录.财产权,供应链甚至网络身份的管理.但是,在我们将整个数字生态系统重新嵌入到区块链技术之前,我们要明白哪些地方是适合使用区块链技术,与之相关的成本是什么. 区块链技术本质上是一种管理数据的创新方式.因此,它与我们已经拥有的数据管理系统存在竞争关系. 关系数据库是将可更新表中的信息定位在我们今天使用的许多服务的技术基础上.已

区块链颠覆金融行业底层架构 开启价值互联新时代

区块链(Blockchain)本质上是一个去中心化的数据库,同时作为比特币的底层技术.区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块. 近年来,互联网金融凭借更优的用户界面.细分的市场定位及有利的经济环境和监管政策实现了快速发展,但尚未触及金融行业的底层逻辑架构和基础IT设施.区块链的出现,将从基础技术层面真正建立"去中心化"信任,颠覆传统金融信用中心式服务模式,实现价值在网络上的实时传递,进而

《Node.js区块链开发》——1.4 加密货币可靠吗

1. 1.4 加密货币可靠吗 从上面的讨论中,我们可以了解加密货币是怎么回事了,但是你可能仍然会怀疑加密货币的实用性,它真的可靠吗?这是最初很多人都会问的问题.结论当然是可靠的,但是要解释清楚为什么,就要动用很多技术和理论.还好,这些技术和理论,都是目前成熟的技术.您只要认为它们是可靠的,那么下面的解释就很好理解,不然,要想说服自己,接受加密货币比一些网站的数字币更可靠,那还是很难的. 1.去中心化 首先我们需要明白什么是"中心化".目前,我们通过浏览器浏览的各大网站,都是中心化的,必

【区块链之技术进阶】金融的未来,区块链将用于何方?

上一篇文章"区块链:通往互联网第二纪元的革命 "可以说是一篇技术哲学文章,其实它的思想源自于 William Mougayar 的著作<商业区块链:下一代互联网技术的展望.实践及应用>,的确,区块链技术将会是一场革命,通往互联网信用纪元的革命.这场技术海啸目前或许还停留在爆发前的沉默期,而当区块链技术正真走向成熟时,其所蕴含的能量或许将变革千百年来的金融秩序,彻底摧毁由权威中心构建的信任机制而形成由无数个平等个体组成新的信任体系,而在新的信任体系中,你我也是其中的一环.不得