• app_navCreated with Sketch.app_navCreated with Sketch.

    App

    扫码下载APP

  • tougao_navCreated with Sketch.tougao_navCreated with Sketch.

    投稿

  • Sign in_navCreated with Sketch.Sign in_navCreated with Sketch.

    登录

  • register_navCreated with Sketch.register_navCreated with Sketch.

    注册

区块链+数据库,底层技术融合是否带来更大爆发?
曹彪 05-02 09:3621788

现在区块链所说的“3.0阶段”,实际上更多的是偏向于业务,从数据库角度来看,现在区块链底层技术有很多可以提升的余地。刚开始大家只是做一个数字货币,随着合规的加入,大家可以在上面跑一些业务。

从技术角度理解,其实区块链技术就是一个特殊的分布式多活数据库。

区块链技术具体有什么样的演进方向?

方向1:从专业化向通用化演进。

现在玩以太坊和比特币,都是为了专门目的设计的一套软件,比特币是专门为转账设计的,以太坊是转账+智能合约,通用方面,可以使用JAVA、C++程序,写任何逻辑。现在区块链基本是为专有系统定制的一套软件,而不是一个通用的软件。

方向2:各自为政向标准化演进。

搞区块链最重要的是协议,而不是软件,大家只要知道比特币之间交互协议,可以使用专为比特币设计的矿机,也可以自己写一套东西,只要有协议就行。现在很多人做公链,每个公链都是独立的通信协议,这就会造成链与链中间通信受到影响,可以用跨链机制、侧链机制打破这些壁垒。

方向3:产品化与模块化不断加强。

现在基本上大部分数据库模块化做的非常好,比如希望用一种特殊的加密算法,就把这个加密的库替换原来库就可以,这是未来区块链需要提升的地方,就是框架能够做到更好的模块化。

方向4:性能与可扩展性。

针对分片、内存计算、磁盘结构等进行优化,从单点磁盘结构到多分片对等多活架构,从而使得性能发挥到极致。这一块需要技术上继续突破才能实现性能的提升。

现在区块链基本还没有一个真正的杀手项目,没有出现哪一个业务必须用区块链来完成,这样大家都想尝试,用区块链在这块玩一玩,在那块玩一玩,试试医疗、试试物流、试试IoT,哪个行业真正能用区块链颠覆,核心价值在哪,怎么用区块链做这个事情,这些问题是未来一段时间行业里需要去回答的,这几点暂时是薄弱环节。

一、区块链与数据库相同点

特性:共识机制、存储机制、智能合约、分片、应用开发接口、安全。这些实际上都是区块链底层老生常谈的一些模块,对应到数据库,有没有一些对应的点?

共识机制。在过去数据库架构里,所谓一致性控制都是有一个主节点,所有写操作会被复制到另外一个存节点做高可用配置。

不管是POW、POS所谓共识机制,真正本质是到底在一段时间之内以谁的信息为准,这个数据库里是以主节点为主,当它挂了以后,怎么选出一个新的节点,这些都不重要,只是实现问题。

存储机制。在区块链里,存储说的都是链本身这个事,大家有兴趣看一下比特币、以太坊,除了链本身,还有类似于状态存储,比如链很长,可能有100GB,涉及到某个账户多次修改,链本身实际上是交易日志,记录每一条记录修改方式,展现形式要归到一个数据库里,都是要内嵌一个小型数据库,把最终结果放到里面。

分片。大部分区块链项目里做得还不太成熟、不稳定,数据库分片是非常成熟的东西,区块链行业,由于分片之间交易很难保障,大部分区块链公链项目很难做好的分片。

应用开发接口。在MySQL或Oracle用SQL,无外乎写一段应用程序,扔到系统里,别人调用。而区块链技术也需要一个统一的访问方式,才能更好实现通用化应用。

安全机制。在数据库里,一个表单,到底谁能读、谁能写,有一套定义,但在区块链里,安全是行级的安全,比如在比特币里,相当于全局可读,只有输入可写的安全配置。

从这几块来看,区块链和数据库的世界有很多相通之处。

数据库共识方式

所有读写操作都是主节点,主节点会把信息传给两个从节点。在区块链的世界,主节点是随时跳跃的,当每一个节点自己认为自己变成主节点以后,会把一段时间之内接收到新的信息,通过区块方式传送给其他节点,这个传输过程和我们之前从主节点发送到从节点的方式基本也是很类似的。

事务日志

数据库里事务日志和区块链的链本身就是一个事情,在区块链里,每一个区块对应到数据库,可以认为对应的就是一个日志文件。

共识机制

POW本质是一种自我证明的方法,就是每一个节点大家都想让别人跟自己同步,自己想成为主节点,怎么成为主节点?POW方式是给大家很难的题自己去算,算完了以后,告诉大家算出来了,让大家来验证,如果验证是对的,跟我看齐。好处是大家会把大部分时间花在计算过程当中,而对于网络没什么太大压力。

POS正好相反,POS没有过多自我计算的过程,相当于一大屋子人都想成为主节点,大家通过某种方式进行投票,这种机制不需要自己去搞,但对网络压力很大,所以为什么POS也不能够完全真正解决高性能问题,因为当节点数太多,POS效率非常低。

DPOS,就是一屋子人选几个代表,大家跟几个代表看齐,从某种程度上是减少了网络压力。但怎么信这个代表,这个代表是不是代表广大人民的利益,是不是靠谱,这又是一个问题。

DAG,这跟我们一直说了POW、POS是本质的区别,不管是POS还是POW,做得都是跟我看齐的事,本质是当某一个人在一段时间之内成为一个基准,大家跟基准点看齐。

DAG唯一能做的事情就是转账,DAG算法里暂时很难突破排序的问题。传统区块链链式结构没有这个问题,这个节点先做加做做乘,没关系,只要说好了,他说先加就是先加,他说先乘就是先乘,这块是DAG网络和传统区块链方式最大的区别。

区块链链式结构和数据库日志结构是什么样的?

数据库日志结构

在一个事务里先做一个加法操作,再做乘法操作,两个操作之间同样有一套指针或链接,在数据库的日志结构和区块链结构有很多共同之处。

区块链用UTXO的形式,这个并不是最关键的点,UTXO只是一种协议的表示,在底层完全可以使用数据库把它表示出来。

典型区块链账本结构

区块链涉及到交易活动日志、数据状态库,在状态库基础上增加索引。对应到数据库里也是一模一样的,包括数据库Ctransaction、数据管理部分、索引,从结构来看,看待区块链底层结构和上层数据库结构都是非常相通的。

区块链与数据库功能模块对应关系

区块链是数据库交易日志,区块链State Store对应数据库的数据存储,区块链共识算法对应的是数据库一致性算法,区块链智能合约对应的是数据库存储过程等等。

二、区块链与数据库的不同

最大的不同是一致性

对于数据库来讲,一般都是强一致,比如Oracle,写入一条记录以后,确保数据一定是存在的,并且这条数据在数据库日志里确保不能被更改。

但区块链不一定,区块链可能会出现分叉,分叉完了还要做合并。

在区块链一定有交易成功确认过程,这在数据库里是没有交易确认,只要在数据库里写的东西一定可以成功。

分片机制

传统数据库分片很容易,都在一个数据中心之内,如果做两个分片之间的操作,先问所有参与交易的人是不是都准备好了,可以提交了,确保大家都在同一个状态下。

三、区块链技术和数据库技术融合的形式

而在底层技术上,我认为通过两者的技术融合,可能会出现“去中心化数据库”这么一种产品形态。

对于未来区块链商业模式来说,区块链未来绝不仅仅被局限于交易这么一个简单的操作,未来会是一个去中心化的协作组织。

相关推荐
区块链时代的大数据生态
长期以来,人们都希望找到一个合理的方式,既可以保护自己的隐私,掌控自己的数据、把自己的数据变现赚钱,又享受到大型互联网平台带来的便利应用体验。区块链的出现,可以将这个需求的两端同时满足。
澳洲首次实现区块链ID认证,将有数十万人参与其中!
12月9日,为了解决各个政府部门数据库分布过于分散、信息不完整问题,澳大利亚政府推出了基于区块链技术的身份识别系统Govpass。在接下来的一年中,将有多达8个大型政府服务机构将试行Govpass,将
比特币回暖,牛市什么时候来?
2018年,即将画上句号。这可能是最为惊心动魄的一年,也是蜜汁尴尬的一年。在这一年中,区块链项目爆棚,是区块链峰会和区块链网红频发的一年,在这一年里,区块链的从业人员,市场价格也达到最该高!