巴比特专栏 | 从数据库角度思考区块链

巴比特专栏 | 从数据库角度思考区块链

蒙特卡洛 发布在 链圈子 39289

一、前言

很多新人朋友不明白区块链是个什么东西,不明白它为什么既可以跟比特币挂上钩,又可以跟发票挂钩,又可以跟银行、供应链金融挂上钩,甚至还可以跟存证挂上钩,如果去书本上找区块链的定义,又晦涩难懂。

我这里提供一种理解方法,从数据库的角度来理解区块链,我认为是一个比较好的角度。

二、比特币

以比特币为例,很多新人朋友经常问我的一个问题是:比特币到底是什么?它到底是有形的还是无形的?如果是无形的东西,它是怎么承担交易、转帐的价值功能的?

如果从共识、社会认可等角度去解释什么是比特币,未免可于宏大和空泛,如果从数据库的角度来理解则具体了很多。

每次有朋友问我这个问题的时候,我都会这么回答:比特币目前全节点的数据大小为几百个G,这几百G的数据就是比特币的载体,你可以简单的把这些数据理解成比特币,每次比特币的交易、转帐,本质就是这些数据的变化。

三、从数据库理解区块链

区块链这个词就是从比特币延伸出来的,所谓的区块链,从技术角度理解,就是区块+链的数据结构。

区块大致由以下几部分组成:交易、区块结构、随机数。区块与区块之间的划分既不是通过时间,也不是通过区块内交易的数量,也不是通过区块大小什么的,而是通过工作量证明计算出随机数。如果你在1min之内,计算出来了随机数,那么就是1min出一个块;如果下一个块是在30min之内算出随机数,那么下一个块就是30min之后出。也就是说,区块与区块之间,是依靠POW工作量证明来划分的。有POW,才有区块!没有POW,就没有区块!没有区块,自然也就没有区块链!

这是区块的定义,我们再来看看链的定义:一个一个的区块,通过特定的规则组合起来,就形成了链。一般来说,链的形成,有以下几个步骤:

1、新区块的选择——一般来说,哪个区块先算出随机数,就以哪个区块为准;但如果有多个节点同时出块,就涉及到选择的问题了。 2、网络传播——迅速将新生成的新区块广播出去,尽早传播到更多的节点。 3、最长链形成——并在此基础上构建下一个区块。

当然,还有一些更为细节的组成,但是大致步骤就是以上三步。其实链的形成过程,就是把全网不同节点的不同数据,收敛成确定且相同的数据的过程。

上面就是最典型的区块链数据结构,从最直观的角度来讲,什么是区块链?区块链不是空气,区块链就是以这种特殊的数据结构形成的那几百个G的数据库。

当然了,区块链绝对不仅仅是数据库,把区块链理解成为数据库,只是一种简化的理解方式,这种简化的理解方式便于我们想通很多问题。区块链的意义比数据库大很多,但它首先是一种数据库

四、互联网数据库存在的问题

我最近看过NEO创始人达鸿飞的一篇演讲,他说今天的互联网虽然看起来非常美好,但它却存在着三个问题:一是线上系统之间非常割裂,无法互联互通,二是物理世界与线上世界之间也存在着很多割裂,三是存在平台垄断和数据垄断的现象。

他这个话说的比较书面,我给大家举几个具体的例子大家就明白了,一个是线下的问题,一个是线上的问题。

线下的问题,最直接的表现就是目前仍然有很多地方需要排队!

我有一次生病住院,后来出院办理结算和医保报销的时候,我一个病人排了将近30分钟的队才把业务完成,这件事让我非常疑惑,互联网这么发达了,这种业务难道真的不能直接网上完成吗?一定要排队才能完成吗?

其实我排了那么久的队,最终只做了两件事,一是提交个人的身份,二个是提交自己的需求,再简单一点说,就是递身份证和说“办医保报销”这五个字,剩下的事情就是结算中心把住院部的数据下载过来,然后保理医保结算业务。

同样的,我们生活当中还有很多地方需要排队,比如说我们去办理房产过户,我们去办理工商登记,总之我们目前生活当中所有需要排队的地方都是面临着同样问题,这些业务为什么需要本人到场才能办理呢?其实无非也就是两件事:一、确认申请者身份,二、获取相关数据。

尤其是获取数据这一步,因为不同部门有不同的数据库,必须先验明申请者身份之后,再去请求相关数据,才能完成业务,说白了根本原因还是不同业务中心数据不连通的问题。

这个过程之所以不能在网上完成,一方面是因为不同的部门数据库不相通,比如说住院部和出院结算的账目就不相通,需要你本人申请,然后下载才行,比如说房产部门和银行有很多数据就不相通,他们各自有各自的数据库,需要你本人去申请才行。另外一方面是目前的账户密码系统安全性不够,不足以证明“申请者身份”,比如如果你的帐户被破获,别人可以以你的名义开展业务,这种系统不适合大额资金结算,只适合简单的信息传递。

但是这些问题在区块链时代应该是不复存在的,在区块链时代如果要确认申请者身份,直接输入私钥就行,私钥具有个人专属性,只要输入私钥,再配合一些生物识别技术就已经能够证明“我是我”了,只要能证明“我是我”,后面的数据申请和数据传递就很简单了。

这是线下的问题,线上也有问题。线上最直接的问题是你没有办法用微信转账给支付宝,没有办法用支付宝转账给京东,这三者之间你甚至都不能相互通信,为什么在互联网高度发达的今天会有这样的现象呢?

同样是转账,银行之间就可以相互转账,只要提供账号,哪怕是跨行跨省都可以直接转账。

这背后的原因也在于数据库,京东、支付宝和微信,他们是中心化的机构,每个中心都有自己的数据库,数据库之间数据是不互通的,所以数据和钱就都没法转过去,但是银行和银行之间背后有银联这个清算结构,他们有共通的数据库,所以这些业务才能够处理。

目前互联网还存在着一些不便利的地方,这些不便利都是因为中心化的数据库而导致的,而区块链则正好解决这个问题。你可以简单的把区块链理解成为共同的数据库,比如说京东、支付宝、微信在支付领域共用同一个清算数据库,就可以相互直接转帐啦,就好像银行与银行之间共用银联的数据库一样。

而且,一般只有特定的数据需要用上共同的数据库,比如各大银行也只有在清算方面共用数据库,具体业务数据也是不共享的。像微信、支付宝这些商业组织也是一样的,只要在需要合作的地方使用共同的数据库(区块链)即可,一般来说主要是在具体的结算、清算、信用层面。

五、数据库的归属

共享数据库,听起来很美好,但面临最直接的问题是,数据库的归属权的问题。

数据库的维护是需要大量的人力物力的,成本不菲,这个成本谁来承担,这是个巨大的问题。比如说京东、阿里、腾讯这三家公司要做一个清算系统,那这个系统谁来维护?成本多少?谁占多少股份?话语权多少?这中间会涉及到非常多麻烦的问题。而这是所有联盟链都要面临的问题,如果有一家公司拥有数据的绝对话语权,那这又跟中心化的数据库没什么区别了,这个问题也是区块链迟迟无法落地的阻碍之一。

传统的公链是用发币来解决这个问题的,发币能够产生经济激励,使得维持这个帐本能够获利,所以很多人愿意自发的去维护这个帐本,甚至竞争着要维持这个帐本,这样这个问题就解决了,可是目前在国内发币又是不被许可的,所以这条路暂时不通。

大家再来想想,为什么目前政府层面是最积极拥抱区块链的?又为什么政府的区块链业务是落地最快的呢?比如国税局和腾讯合作开了区块链发票业务,比如说最高人民法院认可区块链存证的法律效力,比如说最新的消息杭州政府就开发了自已的政务区块链。

因为政府很容易解决数据库的产权和激励问题,行政层面一推动,各部门都会配合,相关业务部门把数据贡献出来,往链上一放就行,所以落地起来就容易很多。区块链从政府层面开始落地,是效率最高,阻力最小的路径。

六、结语

区块链的内涵非常丰富,它很多的衍生意义,比如说通证经济、生产关系这些东西,只用数据库来理解区块链肯定是不准确的,但是数据库确实是区块链的技术底层。

为什么全世界比特币能够直接转账呢?因为他们有一个共同的比特币数据库; 为什么微信、支付宝之间不能直接通信、转帐?因为它们属于不同的数据库; 为什么区块链不可篡改?因为区块链的数据库不属于任何单独一方; 什么是公链,公链就是一个开放的第三方数据库; 什么是联盟链?联盟链就是几个业务相关方维持一个共有数据库。

通过数据库来理解区块链原理和应用很方便,因为它很具体。事实上,在绝大多数情况下,每次市面上有项目声称自己是区块链应用,但你又完全不知道他们在做什么的时候,你把“区块链”这三个字换成“第三方数据库”就立马明白了。

评论
登录 账号发表你的看法,还没有账号?立即免费 注册