美文网首页Genaro(...
公有链七大挑战之打破区块链数据孤岛

公有链七大挑战之打破区块链数据孤岛

作者: GenaroNetwork | 来源:发表于2018-07-27 13:48 被阅读21次

                                                                   < 本文看点 >

    区块链至今仍然是一座数据孤岛,现有的预言机并不足以使其建立与现实世界的数据通道,过去十年,区块链作为账本的使命已经走到了尽头,在接下来的十年,区块链将打造智能数据分享社区。

    前文中,我们在探讨建立点对点的共享社区中提及了数据的价值。但是,现实世界该如何与区块链进行交互呢?即我们每个人的数据,每个企业的数据价值转移该如何在区块链上进行体现?想了解这个问题,先来了解一下智能合约。

    >> 智能合约:智能合约允许在没有第三方的情况下进行可信交易。这些交易可追踪且不可逆转。智能合约早在1994年由Nick Szabo首次提出,因以太坊发扬光大。

    智能合约可以视为一段编程语言撰写的一段代码,例如Solidity。我们不需要明白Solidity具体如何工作,只需要知道这是软件工程师写的一段用来操作机器的代码,规定发生什么情况,该如何处理。我们每天用到的App都可以视为一段代码,编程语言正如人类的语言一样有多种多样,例如苹果App可以用Swift,网站可以用PHP也可以用Nodejs等。

    以太坊“矿工”是如何执行智能合约的?

    答案就是以太坊虚拟机-EVM(Ethereum Virturl Machine)。

    >> 虚拟机(Virtual Machine):指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。

    举个简单的例子,如果我们有一台Mac电脑,但我们需要经常使用Windows系统,怎么办?我们可以在Mac电脑上装一个虚拟机,在虚拟机中装Windows系统。当我们在Mac上通过虚拟机登陆windows时,我们相当于在操作一台windows电脑,而这个就是虚拟机通过软件来模拟出来的。

    在没有虚拟机的公有链中,例如比特币,用户发送交易,矿工来验证交易并获得奖励。

    在有虚拟机的区块链中,例如以太坊,用户不单单可以发送简单的一笔交易,而是可以使用Solidity来撰写一个智能合约,使得交易更为复杂。

    我们可以拿以太坊典型应用(爱西欧)来举一个简单的例子:如果写在智能合约中并开源,大家都明白可追踪且不可逆转,交易变得更受信任。

    如果采用比特币进行爱西欧,因为比特币并没有智能合约,则完全是根据交易记录来人工统计,例如创建Excel表格,在技术上没有任何保证,单纯凭借交易双方的信任。

    由此可见,智能合约是一个自动化的代理,通过调用ABI,来执行一些在合约里定义过的交易,然后这些交易被记录在区块上。

    在上述例子中具体来讲,流程是:

    Step1. 某程序员把软顶硬顶等规则写成一个智能合约

    Step2. 将此合约编译、签名并部署到以太坊上

    Step3. 矿工确认后,将合约代码存在以太坊区块链中

    Step4. 当有用户参与爱西欧时,向合约地址打ETH,矿工根据合约地址找到合约,启动EVM运行合约,将本次交易结果记录在区块中,用户会得到一个相应的Transaction Hash

    智能合约越复杂,消耗的算力就越大,占用的存储越多,就需要越高的Gas作为矿工奖励。

    >> 硬顶:如果没达到硬顶数额,则接受转账,否则,原路退回;

    >> 软顶:如果10000个区块内(区块链没有时间的概念,是利用区块高度衡量“时间”进程)没达到软顶则全部之前的转账原路退回,否则都接受; 

    >> 线性释放:达到某个区块,部分Token变为可转移的;

    讲完了智能合约,我们可以理解,即便是相互不信任的交易多方,在没有第三方权威机构的确认下,都可以通过智能合约的可追踪与不可溯源的特性,来保证交易的信任度。

    所以,在有智能合约的链上交易、处理数据,是真实可信的。

    那么,我们现在需要解决的问题是:链下数据上链,如何保证其数据上链之前的真实性?

    目前的方法是利用预测市场做预言机,为区块链推送现实世界中的数据。

    前文我们以爱西欧举例,但爱西欧本身就是一个区块链封闭系统的事情:用户使用ETH转到合约地址,收到相应通证,这都是区块链“圈内”的事情。

    我们举一个现实世界与区块链结合的例子:假设我的一次出差行程是通过智能合约来安排执行,在定机票与酒店的时候,智能合约会根据我的需求自动完成预定并在出行时做出相应扣款。

    这是智能合约的理想状况,但目前难以实施,主要问题在于:在预定酒店的时候,如果谷歌任意一个酒店名字就会发现,同样的房间在不同网站(携程,Expedia,官网等等)价格略有不同,而上万名矿工几乎不可能同一时刻从同样的数据源获取价格达成一致。

    这个问题正是智能合约和现实世界的“断裂”之处:矿工无法去获取数据。那么我们需要有一个东西,可以准确的为矿工们推送可信任、可被审计的数据,这个东西,就叫做预言机

    目前,预测市场起到了预言机的作用。 世界上最早期的一个DApp:Augur,就是预测市场项目,其顾问就是以太坊的创始人Vitalik Buterin。

    事实上,在以太坊白皮书中探讨的未来可能的应用中,单独说了预测市场:

    后来又有一些著名的预测类项目例如:Gnosis,Delphy, Bodhi等等。预测市场所采取的方法核心思想都是:通过人而不是机器来获取数据,也即通过Stake的方式来打造一个预测市场。最终,这个预测市场便起到预言机的作用,将预测结果推送至区块链中。

    具体来讲,对于一个数据,例如上面例子中的酒店价格,用户用自己的Token进行押注竞猜,假设我认为价格为一百块,押注100个Token,你认为是五十块,押注60个Token。如果我猜的是对的,那么你的Token归我,这是一个正常的逻辑。

    但这种类型的预测市场问题在于:一般预测市场需要一个第三方的权威机构,为区块链推送可靠数据,预测市场还需要一个第三方仲裁机构,来判定谁的结果正确。

    这就成为了一个死循环——用本身不确定的机构来判定不确定的市场,结果更加不确定。

    于是,现有的解决方案只能是哪方押注多,哪方就是对的

    背后逻辑是有一定的道理的:我押注了我的Token,我一定是有了准确的数据才会这样押注,不然便是用我的Token随意冒险。而假设网络中的其他节点也都像我一样,并且不知道其他人说真话还是假话,那么每个人最好的策略就是用Token押注真话。这个哲学思想类似于比特币/以太坊中节点达成共识的思想。

    然而,这也意味着Token多的人说了算。甚至会出现赵高指鹿为马的情况,只要一个人的Token多,便可以肆意更改结果。要知道,并不是每个在预测市场中的竞猜都要求所有人强制参与,实际情况下根本不需要超过总数50%的Token就可以随意更改结果。

    所以,预测市场主要不是对已有数据进行真实性判断推送至区块链,而是对未来结果进行竞猜。例如大家来竞猜本次世界杯的冠军是谁,美国下一任总统是谁,今年涨幅最高的数字货币是谁,等等,这些都是不确定的。

    当然,这些项目有其对应的价值,例如激发了群体预测功能,只是并不能解决预言机的原始问题:如何确保链外数据的真实性并将其推送给区块链。

    如果没有一个预言机准确的推送可信数据,那么利用区块链来释放数据的价值则更是幻景,让我们再考虑一个场景:

    Facebook希望分享自己的数据使用权来获得收益(也即在不暴露自己数据本身的情况下分享数据的统计学价值),而智联招聘希望使用Facebook的数据来得到有用的结果。

    比如,Facebook有100万条应聘者职业发展的数据,包括性别、年龄、年收入、职业、跳槽情况等隐私数据。但Facebook不能将这些数据公之于众,所以目前只能闲置(Facebook甚至自己都不能窥探服务器中的这些隐私数据)。

    而智联招聘的CTO设计了一套深度学习的算法,通过在大量数据中运行此算法,可以得到一些可靠的结论:例如30-45岁年收入在20万美金的工程师最容易跳槽。有了一些宝贵的结论,便可以为客户推送更精准的候选人。

    现在,Facebook和智联招聘需要有这样一个系统,Facebook把数据放入其中,智联招聘把算法放入其中,算法基于数据运行了三天三夜,将结论反馈给智联招聘,同时将数据返还给Facebook。

    双方彼此相信,这个系统会对内容绝对保密,同时还可以根据Facebook的数据情况对智联招聘进行结算。

    这个系统,就是区块链。这个结算方式就是智能合约。双方只需事先在合约内约定好,根据数据条目、完整度等进行结算即可。

    让我们先假设这个区块链可以跟存储网络顺畅沟通(下篇所探讨的问题),并且不受TPS、共识能耗等问题的影响。那这件事能否做到呢?

    做不到!原因很简单。

    智联招聘如何相信Facebook放入系统中的数据是真实可靠,而不是瞎编乱造的?当然,如果是Facebook这样的巨头,我们可以信任或者说,只能选择信任。但更多的数据是闲置在每个中小型组织机构的数据,甚至是个人的数据。事实上,巨头的数据也是有每个人的数据所组成的。

    假设一个组织上传了真实可信的数据,获得了用户的信任,那么他完全可以在下一次提供数据服务时篡改数据,欺骗后来的数据使用者。从而造成了一个困境:任何人在任何场景下提供的数据都是不可信的。

     这就是公有链现在的困境 —— 数据孤岛,无法和现实世界联通,并及时判定推送数据的真假。如果无法连通区块链与现实世界中的数据,那么,我们所设想的使用智能合约签署法律文件,履行商务合同,防伪溯源,征信,等等,所有的领域,全部无法实现我们预想的功能 —— 数据上链后可保证无法篡改,但无法保证数据上链前的真伪

    对于数据第一次上链的真伪,无法自动识别,因为第一次上链是纯手动,没有任何参考。所以我们只能依靠初期数据使用者的反馈进行判定,并将每一次数据变更记录在册。

    一个理想的流程是这样的:DApp的开发者进行数据的初始化,并制定数据的更改与监管规则与权限,之后通过一种类型的签名进行数据的加密增改。如果社区认可这套规则或者说相信DApp的开发者,就会用这个DApp,反之亦然。

    为了做到这件事情,首先,我们需要一个存储网络,来存放DApp的数据,同时,我们需要一个用来做数据传输的加密协议,作用于传输的数据结构,通过这个协议的初始化,将数据进行结构化之后加密存储到存储网络中。之后数据的更改只需要将增量通过这个协议,将指定的数据更改加密后传输到存储网络即可。在取数据的时候,则会通过这个协议将存在存储网络中的加密数据提出来,解密并将结果同步到链上的存储结构中,可以通过虚拟机进行之后的操作。

    也就是说,通过某种进行初始化、结构化数据,可以通过此协议进行数据的广义上链,数据本身存在链外的存储网络中。而在链上则保留着可以找到数据的指针,可以通过不同的需求对数据进行使用,而数据的创建方可以选择数据的修改域以及查看域,数据的使用方可以选择自己喜欢的数据分享方进行数据的调用。

    这就是Genaro给出的解决方案,这个协议称之为GSIOP(Genaro Streaming IO Protocol)。Genaro打造一个存储网络与公有链的双底层智能数据生态,用数据进行链上治理。将区块链与数据放在一个整体世界当中,GSIOP则在这个整体世界,完成上述操作。

    是不是特别难懂?我们举个例子方便理解:

    比如现在企业A和企业B都想做一个去中心化的约车软件,社区B的DApp的数据权限的收益比社区A的更受欢迎。那么,社区A可以选择使用B的DApp。

    而不是像现在一样,要么数据上链对所有人公开;要么链下获取所有人的完整数据(有隐私数据泄漏风险)来进行大数据分析。

    在整个软件数据频繁使用的时候,只会通过协议向存储网络发加密数据,不会过度的使用链上的Transaction导致链的卡顿。

    最后,补充一点,普适性的公有链保守估计有几十个在正常运行,也有越来越多的人在做垂直领域的公有链。例如U Network做的是内容保护领域的公有链。在未来,公有链可能会成百上千 —— 每条链都有其特色而产生一定的竞争力,而不像互联网一样只有安卓、苹果等很少一些开发平台。那么,公链之间的交流便也是需要解决的一个大问题 —— 一个DApp可能需要在多个公链研发版本,其数据需要统一。否则,每个公有链,都各自成为了一个数据孤岛。

    而前文提出的Genaro的解决方案——GSIOP,不仅可以帮助Genaro Network上的DApp联通现实世界的数据,还可以用相同的思路来联通其他公有链。

    GSIOP采取加密的方式将数据与交易同步链接,不仅解决了预言机数据源不可信的问题,还可以实现一个重大突破:数据的加密与否具备了可选性

    在现在的区块链存储中,数据要么是完全公开的,对于链上数据,也即区块数据,每个人都可以查看,对于链外数据,例如IPFS中,数据也是明文存储,数据的所有者会得到一个数据对应的地址,其他人通过地址也可以对数据进行访问。

    要么是完全加密的,例如在Sia与StorJ这样的去中心化存储网络中,只有数据的主人可以查看数据,其他人都不可以。

    而在互联网世界中数据的部分可见非常常见,而在现在的区块链系统中这样的应用无法实现。例如最早的互联网应用——邮件。邮件内容,尤其是附件,占据较大的存储空间,同时,一封邮件的内容需要让指定的一批人看到,同时具备很好的加密属性,其他人都看不到。这样的应用举不胜举,例如微信朋友圈的部分可见。

    那么最后一个问题来了,如果我们打通了区块链与现实世界的数据通道,那么这些数据,存在哪里呢?

    要知道,现在以太坊的容量为180G,显然DApp的海量数据是无法上链的,不然任何一个人都没有实力成为全节点,这个问题的解决办法且看下文。

                                                                   【往期回顾】

                                 《公有链的七大超级难题之设计可持续发展的共识算法》

                                       《公有链七大超级难题之建立点对点的分享社区》



                                         《公有链的七大超级难题之兼得安全性的高TPS》



    公有链七大挑战,是公有链绕不开的关键。七大挑战环环相扣,需要一个从宏观到微观的深度认知,不仅仅涉及到技术领域,同时,经济、营销、市场、社会等领域都需要深入考虑,Genaro Network点对点存储和公有链的通证经济的体系设计,不仅是未知领域的探索,更是一场艺术之旅,大家请继续关注系列文章《公有链七大挑战》和我们一起踏上未来旅程,迎接区块链的挑战与变革。

    本文作者:Genaro创始人 Larry

    本文技术校对:Genaro创始人 Waylon

    本文内容校对/编辑/学术整理:Genaro Core Member Xuan, Sophia,Iris

    相关文章

      网友评论

        本文标题:公有链七大挑战之打破区块链数据孤岛

        本文链接:https://www.haomeiwen.com/subject/zyawmftx.html