unitimes.io
全球视角,独到见解
11月1日晚8点,Unitimes成功举办第10期区块链技术与应用AMA。我们有幸邀请到了CovenantSQL 的首席研究员郭泽卿为大家带来了主题为“区块链数据的检索与存储的机遇和挑战”的分享。
本期AMA分为固定问答和自由问答两个环节。
固定问答:
01
Unitimes:你好,欢迎参加Unitimes AMA。请先介绍一下你自己以及CovenantSQL。
郭泽卿:各位好,我叫郭泽卿,在CovenantSQL担任首席研究员。在加入CovenantSQL之前自己做区块链相关的投资与研究,并曾在一家大型区块链对冲基金工作过一段时间。
CovenantSQL是前迅雷首席工程师敬宓在半年前启动的项目。CovenantSQL 是个去中心化,不可篡改,结合共享经济的数据库。CovenantSQL 不仅仅为 ĐApp 提供支持,并且同时支持传统 App。在兼容传统 SQL 的同时,实现了高性能的可拓展性、安全性及保密性。用户可以完全控制及分享数据,而不需要担心数据安全及隐私问题。简单的迁移步骤及兼容全类型 SQL 保证了用户迁移成本降到最低。
CovenantSQL适合一些对数据真实可信有要求的场景。比如说目前已经有资管团队、物联网公司、国际贸易公司已经开始使用我们的数据库。
如果想体验我们目前的系统或者进一步了解我们的项目细节、项目更新情况,请关注我们的github;关于CovenantSQL具体的介绍请参考我们项目首页。
02
Unitimes:什么是具有区块链特性或者说去中心化的数据库?和IPFS(星际文件系统)有什么不同?
郭泽卿:要解释这个问题首先要说明数据库是什么。数据库是一类用来存储、修改和检索数据的软件系统。我们将区块链的不可篡改的特性融合到数据库系统中,使得数据库能够提供真实可信的数据,这就是具有区块链特性的数据库。
IPFS是一个去中心化的文件存储系统,它是用来存储文本文件的,而CovenantSQL是一个用来存储、检索的数据库系统。举个例子说,你的微信头像是文件,存储在文件存储系统中,你的账户信息、聊天记录这些需要能高效增删查改的数据就存放在数据库中。
03
Unitimes:用户的数据是如何存储在CovenantSQL上的?其运作原理是什么?
郭泽卿:可以参考这幅图。用户第一次使用时根据自己的存储需求,向中间的主链申请资源。主链 Block Producer 组织 Miner 组成集群形成侧链。用户即可开始使用区块链数据库服务。
04
Unitimes:CovenantSQL如何保证用户数据的隐私和安全问题?
郭泽卿:我们在设计和实现一套 Key Server 系统,用于保存和管理私钥,这个系统由数据的所有者来运行,当需要把数据授权给第三方使用时,在 Key Server 系统中登记使用者的身份信息,使用者在获取数据后,通过所有者的 Key Server 进行身份验证并解密数据,Key Server 随后将解密后的数据发送给使用者。
除此之外我们在和美国 Northwestern University 的终生教授,前腾讯 AI Lab 总监刘晗教授以及他的团队合作探索MPC、同态加密在数据库上的应用。
05
Unitimes:CovenantSQL有哪些应用案例呢?能给我们举例说明一下吗?
郭泽卿:前文已经简单提到过一些。CovenantSQL适合一些对数据真实可信有要求的场景。
对于传统的商业应用,我们已经与国内一家物联网公司合作,他们在全国部署了40万充电桩。他们利用CovenantSQL记录用户点击广告的数据,保证广告记录的真实可信,并使用区块链的结算体系加快结算和核对流程。除此之外,我们还有一个资管客户,他们利用我们的数据库记录真实的操盘记录,保证交易日志的不可更改并通过智能合约按时公开。
对于DApp,我们可以通过跨链为DApp提供更加便宜、通用且结构化数据存储与检索服务。我们相信当DApp用户数量增长到数十万、百万量级时,高效的SQL数据库是不可缺少的基础设施。
06
Unitimes:贡献自己闲置资源对用户来说有什么好处?你们设置的激励机制是什么?
郭泽卿:这与其他的共享经济是一样的,贡献自己的闲置资源可以让用户获得经济上的奖励。
07
Unitimes:CovenantSQL的用户和矿工之间的费用问题如何结算?
郭泽卿:我们的激励机制是按照query量与存储大小周期性分配的,也就是每一个周期统计用户的闲置资源提供的数据库查询服务,他提供的query服务量越大他将获得更多的回报。
08
Unitimes:传统的大型商业应用如果需要向以太坊上迁移,会面临哪些问题?CovenantSQL如何解决这些问题?
郭泽卿:我认为存在性能、数据存储等问题。首先以太坊目前的性能还无法支持大型商业应用,这块目前很多layer2的项目在尝试解决这些问题。其次就是数据存储与检索,目前以太坊上存储数据的成本太高,对结构化数据的检索也不够友好(目前以太坊的思路是做一些ERC的标准去对特殊的场景进行优化),商业应用已经有自己的架构与范式,数据存储多是MySQL等关系型数据库。
我们的数据库采用众筹方式获得的闲散资源,因此成本极低。除此之外完全兼容SQL92标准,符合传统开发的既有技能栈。可以在价格以及项目迁移成本上满足商业应用的需求。
09
Unitimes:CovenantSQL的数据有备份吗?
郭泽卿:有的,用户可以在CovenantSQL上选择需要的备份数目,当然,数目越多需要付给矿工的钱越多。
10
Unitimes:我了解到你们很多工具都在Github上开源了,为什么要这么做?
郭泽卿:我们是一个重视社区的团队,也在开发的过程中得到了社区的很多帮助。因此我们希望能够开源一些开发中产生的工具回馈社区。除了我们的数据库代码外,我们还开源了在开发分布式网络中用来模拟网络延迟环境的GNTE;以及sqlite的加密功能。
自由问答:
固定问答环节结束后,参与此次AMA的成员可以自由提问。以下为Unitimes从群成员的提问中精选的几个问答:
1、我们的链上有些Dapp有在链上存储并检索类似商品和订单的数据需求,但是需要用我们链上发行的代币进行支付,用CovenantSQL能解决吗?如果能解决,那需要怎样和我们的链进行对接呢?
我们目前在进行跨链功能的开发,会打通token交换功能,将来以太坊上的DApp可以使用eth交换我们链上的数据库的服务。
您的意思是可以把商品和订单数据存在CSQL里,然后通过跨链技术完成我们链上Dapp对CSQL数据库的访问和商品交易及支付吗?
对的。
2、如果很多人(公司)使用的话,这个数据库会不会很大?
不会。由于我们的分层设计,一条主链下可以有无数条Shard Chain,每个公司可以随时创建自己的Shard Chain。当然,前提是他需要支持相应的费用。
3、CovenantSQL打算如何提高数据存储的速度和容量?
我们通过分层的设计在主链上只进行全局共识算法的运行,和集群治理的功能。在Shard Chain进行数据存储和检索。除此之外CovenantSQL把区块链和传统的分布式一致性算法做了很多的结合,我们在持续优化的Pipeline的Multi Transaction,可以大大提高集群的TPS。
4、你好,我想问的是key server的架构。是每个客户端维护各自的key server, 或者是一个全局中心化的结构。另外key server提供怎样的安全保障?
key server是由使用者自己部署,就像钱包,每个人的钱包由自己保管自己使用,这才满足去中心化的要求。同时我们也在密码学上进行探索,未来将采用更加便捷安全的方式保护链上数据的所有权。数据所有者可以动态授权给数据使用者。
5、主链与shard chain之间是怎样的关系?每个shard chain是否会跑共识算法?这个架构与plasma区别在什么地方 ?
主链与shard chain的关系如下图。shard chain运行的一致性算法是我们根据公网高延迟易丢包的特点改进过的paxos算法。在主链、shard chain交互的层面上是和plasma类似的。这意味着主链也需要智能合约支持。
6、你好,数据库与区块链应用有2个天然的冲突点。一是传统数据的频繁修改与区块链的数据性能不足;二是传统数据库的并发支持与区块链应用的串行化单线程支持。不知道你们是怎么平衡和解决的?
我们的链采用了双层结构设计,侧链负责解决性能不足的问题,主链用来做清算与数据hash记录。并发处理在shard chain上进行解决,shard chain上运行我们的数据库引擎,并用链计费。
7、你們的sql是否只有CR,支持到哪個標準? 如何實現UD的? CSQL有事務支持嗎?
1)我们不止支持 CR,对 UD 也是完美支持的,目前我们对 SQL-92 几乎完全支持。我们这里指的不能修改主要指的是数据的修改历史不能被篡改,但数据本身是可以按照业务需求进行修改的。
2)shard chain上运行我们的数据库引擎以支持UD
3)有的
你們有了解過騰訊的TrustedSQL嗎?異同點再哪?你們的優勢在哪?
了解的,我们是一个开源独立的公链项目,可以为任何需要使用数据库的团队提供支持,同时我们也提供对各大公链的跨链支持。
8、感谢分享,请问你们项目主要是用什么语言开发的?如果开发者要使用你们的服务的话,需要学习新语言吗?
我们是使用golang开发的。不需要,我们已经提供了 golang、java、nodejs和python的driver,未来会有更多语言的支持。
9、是不是我没太看明白,相比经典数据库,您的数据库是只加强了数据可信方面吗?
除了数据可信外,我们是一个基于闲置资源的数据库,利用去中心化的思想构建了新一代的共享经济系统。这在价格上相对于传统云数据库更加便宜。由于全球各地的矿工都可以参与,我们可以为全球各地的应用提供最短接入路径的数据库服务。
10、是不是可以这样理解,用户申请存储数据,矿工为其选择闲置节点组成侧链,提供存储服务? 那么侧链数据是每个节点都存储一份吗?主链全局共识的是什么信息? 数据的隐私保护key server是一个中心化的服务吧?
1)这个理解是对的。
2)同一个侧链数据是每个节点存储一份,不同侧链节点存储数据不同。
3)是区块链上的共识的信息。比如计费信息、数据记录hash等。
4)key server是由使用者自己部署,就像钱包,每个人的钱包由自己保管自己使用,这才满足去中心化的要求。
11、请问与传统的云数据库相比,除了价格更加便宜,CovenantSQL 还有哪些其他优势呢?用户数据的隐私和安全是否比云数据库更可靠?是否可以分享一下在国际贸易场景下CovenantSQL 的具体的应用呢?
1)用户的隐私将由区块链保证,不再向云服务商一样在黑盒中运行,也不用担心被云计算厂商读取数据内容。
2)当然。
3)具体应用场景比较复杂,简单说我们为定制的联盟链为贸易多方提供信任基础。
12、郭老师,感谢您的分享。请问如果某个用户向你们发送了无用或者恶意数据,你们有权拒绝为其提供服务吗?这一过程如何实现?
这要分多种情况。如果用户发送的请求是恶性攻击,比如说ddos,我们会在系统层面进行保证。如果是无用或者恶意内容,主要通过经济系统来实现平衡。
◆◆◆◆◆
以上是本次AMA的全部内容,非常感谢社群成员对Unitimes的大力支持,感谢可爱的郭泽卿~
领取专属 10元无门槛券
私享最新 技术干货