欢迎来到文档下载导航网!

区块链技术原理详解.docx

时间:2020-10-26|当前位置:首页 > 行业文档 > 金融/投资/证券 > |用户下载:

区块链技术原理详解.docx

PAGE 16 区块链技术原理详解 以数据库思维理解区块链作为一个数据库行业的老兵,我看到在区块链技术的热潮下,传统的IT技术同学们保持了十分理性,甚至是排斥的态度。其实不管是热捧还是排斥,两极观点之下,我认为我们应该从IT人比较能够理解的角度探讨一下区块链技术。因为区块链这个东西的本质和数据库技术非常相像,很多机制使用数据库的理念去理解会非常直观准确。 对于区块链和传统数据技术,我认为区块链技术的未来发展,主题是“融合”。我们就从数据库这个角度来解读区块链技术体系中各个技术点,以及通过“去中心化数据库”这个概念,把区块链与数据库技术做一个比较好的整合。 一、区块链技术现状 当前的区块链世界有人号称1.0、2.0、甚至已经到了3.0时代,但是从一个产品或技术打磨的角度来看,我认为当前的区块链也就相当于数据库的80年代,处于百花争鸣各种思想层出不穷的时代。 对技术人来说,这是最好的时代,各种新鲜的想法和思路大量爆发,在沉闷的技术领域带来新鲜的突破;同时这也是最坏的时代,没有任何产品或方向肯定是未来的主流,任何新鲜的思路也许在几个月以后就被证明不可行。 所以,我们要正确认知当前区块链技术的变革和发展,那我们来对比当年数据库所走过的道路,看看未来区块链世界会怎样发展。 1、技术演进路程 首先我认为,区块链一定会从当前的专有化向通用化演进。现在基本所有做公链的产品都是针对某一个特定的场景来实现与优化,但是我认为未来一定不会是一个应用一条链,而是有一种通用的开发范式。就好像传统数据库一样,不管大家开发什么样的应用程序,都可以使用这么若干有限的几个通用性产品就能够满足大部分业务场景了。 第二,向标准化演进。对于区块链技术,现在每个链基本都有自己的开发范式,甚至很多公链还模仿以太坊尝试自己做一个编程语言出来,这实际上是一种行业处于原始时期的标志。怎样判断一个行业开始走向成熟?就是业务模式基本固定、开发方式基本固定,这样就能够对大量的程序人员进行推广了。 第三,产品化和模块化不断加强。当前不管是以太坊、比特币还是很多其它新的公链,大部分的体系结构都是非常紧耦合的。对比起我们在大数据领域的Hadoop,基本每个模块都可以作为独立插件进行可配置可定制的插拔。所以我认为,随着区块链技术的不断成熟和稳定,未来一定会出现一款成熟产品,能够通过可插拔配置与插件的方式满足多种共识算法、安全机制等。 最后,性能与可扩展性的提升。实际上这也是数据库所走过的路,当前区块链世界想在短短的时间之内通过侧链、分片等机制跨过当年数据库几十年来的变革。 接下来我会介绍,从数据库的角度看待区块链其最大的性能与扩展能力制约瓶颈在什么地方,以及应当如何优化。 2、发展现状 那我们回过头看看当前区块链行业的现状。 抛开区块链上层的一些应用与金融领域的创新,单独从技术角度来看,我一直认为其最大的革新在于对等数据存储机制的建立。 在数据库这个行业里,大家一直遵从着主-从架构,而完全“多活”的系统从几十年前的提出一直以来都是传说中的事情,从来没有任何产品真正做到多活。 而当我们以创新的多活数据库来看待当前区块链技术时,就会发现三个急需改进的问题: 首先,区块链的体系结构现在非常混乱,大家还没有向传统数据库一样将其分类为事务、存储过程、鉴权、主从同步等模块,大部分人对区块链的认知还是停留在神秘的黑盒子阶段。 第二,区块链的开发语言完全不成体系。数据库在经过开始的“战国时代”后,渐渐使用SQL做到了业界的大一统。而区块链当前明显还处于“战国时代”,还没有一个统一的标准开发和使用标准。 第三,需求的多种多样,有些需求或白皮书的业务介绍是靠谱的,有些则是完全异想天开不知所云。实际上这个和区块链所带来全新的业务模式相关,很多人还在探索新的业务模型,从而导致需求没有形成标准范式。 二、区块链vs数据库技术:相同点 从数据库的角度对比,区块链技术即去中心化多活数据库技术,两者之间没有本质区别。 这里我列举了一些区块链里面比较重要的技术点,以及这些技术点在数据库领域中是以什么形式存在的。这些概念和数据库中的技术概念一一对应关系如下: 共识机制 一致性控制——共识机制 分布式数据库中叫做一致性控制,包括传统的主从复制、新一代的Raft、Paxos等算法。在区块链中为了解决额外的拜占庭问题,将算法改进为PBFT、PoW、PoS等协议。 存储机制 数据库日志——账本 区块链结构基本等价于数据库的事务日志,其主要新增的内容包括Merkle Tree结构用于快速验证数据的正确性,但是其本质与数据库的交易日志等价。同时数据库在日志中更会包括事务控制等企业级能力,是区块链数据结构所不具备的。 智能合约 智能合约——存储过程 智能合约与数据库存储过程一样,都是一段托管代码。本质上智能合约与数据库存储过程没有什么区别,都是通过外部调用或虚拟机执行一段代码,并可以将托管代码共享给其他用户进行调用。 分片 数据库分片机制早在MPP数据库时代就已经存在。通过将大量数据切分在不同分片中,达到限制每个分片数据总量,并提升总吞吐量和存储空间的目的。 应用开发接口 当前区块链还处于类似数据库当时的早期时代,接口没有统一标准化。根据区块链项目不同,其接口可以按照数据库、对象存储、API调用、甚至PaaS平台标准进行定义。 安全 区块链的安全机制与数据库安全机制具有相似之处。数据库安全一般分为鉴权与授权两个模块,分别代表用户登录以及访问权限。而区块链当前仅支持记录级写授权,但是对于读操作时完全共享的。因此,从安全策略上数据库比当前的区块链完善很多。 三、区块链vs数据库技术:不同点 数据库与区块链功能架构图 1、功能架构 黄色部分是区块链和数据库架构都拥有的功能。白色的部分是目前数据库独有的功能。 我们在上文也有提及数据库的SQL能力是实现其通用性的重要部分,SQL对于之后区块链的开发模式固定下来很重要。 索引管理这块,在数据库中主要是提升数据管理和数据查询的性能效率的,当具体的应用场景出现,性能将成为下一阶段需要提升的重要部分。因此,存储的数据的索引就成为很重要的组成了。 2、机制 在机制上,区块链和数据库的主要区别有如以下几点: 一致性 区块链的设计思想,与传统数据库设计思想最大的不同就在于多活,也就是去中心化这个体系下所带来的一致性模型的区别。 传统的关系型数据库遵循ACID强一致模型,写入的记录立刻可以读到。而一些新型分布式数据库采用最终一致性,也就是BASE模型,写入的数据暂时不一定读到,但是最终一定会存在。 但是,区块链或者说去中心化数据库的设计思路就存在明显区别,也就是说任何操作不存在“永久确认”这个概念。即使类似比特币,从核心原理上来看6个块之前的内容也只是“基本不会被回退”。 举个极端的例子,如果中美之间广域网出于什么原因突然断了三天,之后恢复的话比特币一定会出现大规模分叉,这个期间如果有账号同时在中美进行大额消费的话,想要恢复一个主链则一定需要牺牲很大一部分人的交易才能实现回退。 那么,既然在对等架构中没有办法保障强一致,那么区块链体系中的一致性则和传统数据库存在本质上的区别,从而引发后续一系列设计上的不同。 归根结底,在任何传统主从架构的数据库模型中,人们会想尽一切方法

上一篇:证券行业超融合桌面云解决方案建议书.docx

栏    目:金融/投资/证券

下一篇:一图掌握私募股权投资基金的8种架构设计.docx

本文标题:区块链技术原理详解.docx

本文地址:https://www.365weibook.com/html/20201026/210058.html

    正常预览或下载提示:

    本页面文档预览是由服务器自动提取的部分内容,并不是文档乱码。如您需要预览全文或下载文档,请点击页面左侧(点击去预览文档全文或下载文档)按钮,进行全文预览或下载。

推荐下载

联系我们 | 广告投放 |网站地图

免责申明:本网站不提供任何形式的下载服务,因此与之有关的知识产权纠纷本网站不承担任何责任。

如果侵犯了您的权利,请与我们联系,我们将进行删除处理。