“因为我们相信传统应用中对区块链是有诉求的,不管是信任、溯源、数据共享、数据交易、数据交换,相信这些都是有应用点的。所以把区块链技术和分布式数据库进行结合,希望做出新一代的数据库系统。”
9月16日,在2019上海区块链国际周Demo day的现场,CovenantSQL创始人敬宓介绍了CovenantSQL项目。并就CovenantSQL项目的特点,重点回应了去中心化数据库较传统数据库相比,能有更好额应用特点。据官方介绍,CovenantSQL是应用区块链技术构建的去中心化SQL云数据库,结合了区块链、共享经济、分布式数据库、密码学的优势,保障了数据隐私、安全性及所有权。PANews作为合作媒体在现场进行报道。
据敬宓介绍,在CovenantSQL项目之前,团队已经有过利用节点进行数据的存储和传输的项目经历,而这也催生了CovenantSQL的诞生——将文件的传输和存储应用到数据库领域。
敬宓表示,同IPFS相比,两者相似相同的地方是都有非常好的开放性,都是开源的去中心化的,大量地应用了P2P的技术,能够有很多不同语言之间的支持。而数据库存储有很大差别,处理的数据库类型是基于结构化记录进行的,不是说数据不能被篡改,只是修改历史不能被随意删除。
值得注意的是,在应用场景上,敬宓指出,通过区块链去中心化的数据库,能非常容易地进行数据历史溯源,能更好满足在银行、金融领域很多场景下的应用情况,每一个数据从创建表开始到表的修改、到数据的修改,每一个步骤都可以被记录在区块链数据库上,能非常方便地之后进行查询和修改。同时,数据库平台还能较好适应数据共享和隐私数据保护,在管理和验证上都能更便捷准确。
演讲内容如下:
在介绍CovenantSQL之前先简单介绍一下曾经做的一个项目。可能有部分参与的同学听众听说过之前的项目,从2013年起做的迅雷水晶的项目,当时迅雷水晶是比较新的概念,2014年迅雷在美国上市路演时做的应用,讲给路演IPO参与者的应用。从名字大家可以听出来这是通过众筹和P2P技术构建的CDN网络,在网络基本没有节点,是我们自己投入众筹的,使用节点进行数据的存储和传输。
这和现在的IPFS非常相似,的确如此。但我们很早就把项目投入到商业应用中了,2015年网络节点达到了100万节点数量,能够对外提供约1TB带宽峰值的输出,2015年网络存储了1PB数据量,同时比传统的CDN降低80%的成本。迅雷水晶是很早期的项目,在项目的基础上很早就引入了区块链技术在项目里进行共识、激励,激励大家把自己的节点投入到网络中进行使用。
有了背景后我们一直在思考能不能把文件的传输和存储应用到数据库领域?从2017年开始创业做新项目,就有了CovenantSQL。随着时间的发展,从2015年到2017年区块链技术得到了非常多日新月异的发展,所以我们也在把新技术应用进来其他。
作为区块链数据库为什么开头有这样的想法呢?因为我们相信传统应用中对区块链是有诉求的,不管是信任、溯源、数据共享、数据交易、数据交换,相信这些都是有应用点的。所以把区块链技术和分布式数据库进行结合,希望做出新一代的数据库系统。
对于传统的区块链项目而言,开发过程可能会比较复杂、性能有受限,所以在项目中更期望能够开发新一代区块链数据库,具备非常好的性能同时也很好地应用,所以我们引入了SQL的标准,数据库标准是完全支持SQL的,所以大家在系统里进行存储和查询可以通过SQL很快地完成。
正如刚才的视频介绍一下,这是CovenantSQL简单的架构介绍。最开始设置成双层链的结构,主链主要进行资源分配、钱包管理、系统治理工作。而子链进行真实的数据存储,通过矿机完成,主要为用户提供存储和检索的服务。系统从一开头就是可以被拆分开应用到Layer1、Layer2的系统里,当然自己也自成一套体系,能够非常好地运行。
我们团队一直在做分布式系统方面的开发,我们也深刻地认识到如果你想做全球化分布式项目应用的话,对网络模拟、全球环境下的模拟都是非常重要的,所以我们自己开发了一套新工具—GNTE,可以在单台机器上很轻松地模拟数百个网络节点,可以很容易地配置任意两个节点之间网络的连通信息,包括像延迟、丢包比例、数据包损坏比例、重复发包比例、乱序发包比例、两节点间的带宽。当然如果你有几百个节点的话配置两节点之间的信息是非常花时间的,所以我们也支持把很多个节点汇聚成整体来看,配置两个整体间的带宽信息。
就像右边图一样,如果需要模拟中国、日本、欧洲三个地区的网络情况,可以把节点分成三个大地区,分别设定两个地区间网络连通的情况,再设置其中每个节点网络连通的情况。这会非常方便大家在大型分布式网络的开发中调试和尝试网络不太可靠的情况,去检测系统是否真实可用。
开始做CovenantSQL的时候很多人都会问我们和IPFS之间的差别,像刚刚我讲到的IPFS和之前做的迅雷水晶系统更相似一些,其中IPFS针对的存储对象是以文件为对象的,主要处理的是静态文件数据情况。大家都知道数据一旦存放到IPFS网络之后文件就不可以再进行修改了,同时对偏存储和数据传输类型的项目,对存储和带宽的占用是非常高的,所以带宽的消耗非常重要,IPFS的工作量证明通过从存储的角度出发来解决共识的问题。
数据库存储有很大差别,处理的数据库类型是基于结构化记录进行的,不是说数据不能被篡改,只是修改历史不能被随意删除。工作量证明使用诉求主要是计算资源和存储资源,所以工作量证明是从存储和计算两个角度出发的。这两者相似相同的地方是都有非常好的开放性,都是开源的去中心化的,大量地应用了P2P的技术,能够有很多不同语言之间的支持。
去年的时候Amazon开发了新的服务——“Qusantum Ledger Database”QLDB,从某种角度来讲,CovenantSQL和QLDB是非常相似的,相似的点是都有不可篡改日志,都支持SQL的查询接口,也有很好的扩展性,并且都支持像Serverless的开发特性。
但是也有很大的差别,今天QLDB还是闭源的系统,而CovenantSQL是开源的系统,从某种角度上大家可以理解为开源的QLDB正因为开源性所以允许大家自行进行修改满足自己的需求。如果你要使用QLDB的话只能在AWS范围内使用,缺少自定义的能力,包括到今天为止AWS中国区还没有引入QLDB的使用,使用QLDB的话需要预约和通过审核,但CovenantSQL可以直接使用的状态。
在GitHub上的截图,这个图已经有一段时间了。从一开始的时候就开放了所有的代码,现在项目的代码大约10万行左右,对系统的工程技术要求还是很高的,所以现在系统的代码覆盖度大约在80%左右,也应用了第三方的服务队项目情况进行检测,同时也支持了很多不同的语言,使得大家在用不同语言进行开发的时候可以很容易地对接进来。
这一页是大家讲的比较多的应用架构,在去中心化应用架构里,CovenantSQL能够作为数据库的存在替代掉传统的MYSQL、MongoDB、PgSQL等database应用,能成为真正的数据存储,能基于CovenantSQL进行新去中心化特性的应用开发。
今天是Demoday,所以大家很关注应用场景。这一页的应用是现在金融银行系统里的应用,银行一直以来有对数据变迁追踪的需求,在传统的银行大数据应用系统里叫“数据血脉”,过去大家都是使用SAP、Oracle进行数据血脉的追踪,因为每个人的数据在银行的系统里经过不同部门处理的时候打上了不同的标签,但事后大家需要开发以及在银行应用的时候需要追踪是什么时候给这个人打上了什么标签,是为什么给他打上标签。所以“数据血脉”在银行内部是大家一直以来都有的需求。
过去都是用中心化的数据库解决,现在主要在使用区块链进行解决,大家都知道区块链的特点是可以非常容易地进行数据历史溯源,所以需求从技术上来说是非常好地满足了在银行、金融领域很多场景下的应用情况,对一个数据从创建表开始到表的修改、到数据的修改,每一个步骤都可以被记录在区块链数据库上,能非常方便地之后进行查询和修改,并且同时银行里涉及到的部门特别多,各个部门也能够通过查询自己管理节点的数据很容易地获取到整体数据的修改情况。
这是我们的另外一个应用,主要是在数据共享方面使用数据库平台。大家都知道区块链有很多节点,比如现在在和中科院大学附属医院进行应用,在医院里有不同的分支机构,有很多分支医院、不同部门有EMR数据需要共同进行存储,同时又有数据交换出于科研和解决病人医疗信息的需求,需要有数据的交换,所以通过区块链数据库允许在不同的医院间部署各自的节点,方便地进行数据交换。
但又考虑到病人隐私的保护,所以应用区块链技术和密码学技术可以非常好地进行数据脱敏,但又能够很容易地访问到不同的数据。为了应用又增加了行和列权限的管理,使得系统能够非常方便地满足在权限管理方面的诉求。
和物流公司进行合作,大家都知道物流涉及到客户、监管,所以这也是有不同的参与方很容易地存储和访问到整体的数据,同时也能够很容易地验证拿到的数据是否是真实的数据。