专栏首页GAIAWORLDGAIAWORLD神盾协议:能与现实世界交互的预言机
原创

GAIAWORLD神盾协议:能与现实世界交互的预言机

微信公众号:GAIAWorld

预言机VS图灵机

区块链应用落地最大的障碍在于难以和现实世界交互,链上世界和现实世界之间存在一条难以跨越的鸿沟,智能预言机是目前唯一可行的链接区块链网络和现实世界的方式。智能预言机通过黑盒的方式将现实世界的参数导入区块链网络,并使用链上图灵机回答决定性问题。

简单而言,智能预言机=能映射现实世界的预言者+图灵机。

图灵机的作用在一些区块链项目中被故意扭曲和夸大:“我们是图灵完备的,所以能做任何事情”。图灵完备只代表能做任何计算,不代表能做任何事情,图灵完备甚至不能解决停机问题。很明显,能做任何事情和能做任何计算之间有本质的差别。正因为图灵机只能做计算,所以一个单纯的图灵机无法和现实世界进行映射,必须给图灵机加上一个显式或者隐式的预言者,构成一个完整的预言机,才能解决区块链和现实交互的问题。

预言机雏形

比特币基于UTXO模型,简单的脚本没有达到图灵完备的要求,所以比特币并不具有智能预言机。以太坊基于传统的账户模型,且其虚拟机是图灵完备的,所以从广义上来讲,以太坊已经具备了一个智能预言机的雏形。比如,通过2/3多重签名可以实现一个简单的预言机。小王和小明竞猜18年欧冠皇马和利物浦谁获胜,胜者将获得2个ETH作为奖励,小红做裁判。

具体操作如下:

1. 小王、小明、小红三个人写了一个简单的智能合约,锁定了2个ETH

2. 智能合约规定:只有获得三人中至少两人的签名才能转移这2个ETH

3. 小明竞猜皇马赢球,获得了竞猜的胜利

4. 小红和小明使用签名将2个ETH转移到小明的账户上

这就是一个智能预言机的雏形。通过现实世界中皇马赢球,使得小明获得了2个ETH,小红在这个过程中扮演了预言者的角色。但是,这个雏形过于脆弱了,小红决定了整个预言机计算的结果。即使小王竞猜失败了,小红完全可以和小王合谋将2个ETH转给小王。所以,整个预言机的计算结果并不真正取决于现实世界中皇马是否赢得了比赛,而是小红愿意把这2个ETH转给谁。可见,一个现实可用的预言机,需要一个可信的预言者以及一个图灵完备的分布式网络系统。

神盾协议规范描述了如何实现一个可信任的去中心化的预言机。

虚拟机

首先我们需要一个安全可信赖的图灵机,用于执行链上代码。代码本质上就是数学化的合约。现实生活中的合约需要翻译为机器可理解的二进制代码才可以在链上执行。GAIAWORLD选择了经过定制的Javascript语言作为现实合约和二进制代码之间的桥梁,为此我们实现了一个轻量级的定制版Javascript虚拟机,称作GVM(Gaia Virtual Machine)。

之所以选择Javascript是因为该语言在互联网领域拥有最广泛的使用者,且拥有大量可使用的代码库方便程序员进行开发。潜在开发者的数量和潜在开发的难度是衡量一个区块链能否吸引足够开发者的重要指标,只有拥有足够开发者的区块链产品才能在长期的激烈竞争中存活。GVM可执行的代码被称作GSC(Gaia Smart Contract)。

GSC是应用程序员自己开发的,理论上无法保证GSC的绝对可信,所以我们对GVM和GSC进行额外的设计以减小恶意代码对区块链可能造成的破坏。

GVM是一个沙盒环境,在GSC在GVM内部执行,不会污染GVM以外的环境。每一个GSC的执行都会使用一个全新的GVM已避免相互干扰。除此以外,对于相互之间没有关联的GSC我们支持多个GVM同时执行,已期提高整体运行效率。

GAIAWORLD限制了可使用的Javascript内部函数和语法规范,以提供更高的安全性。同时,将链上应用常用函数封装在官方库中,以期提高应用程序员开发效率,同时降低外部库引用给GVM带来的未知风险。在计划中,还会为GSC提供形式化验证,只有通过验证的代码才会被GVM执行,进一步提高了执行链上代码的安全性。

预言者

预言者是现实世界和GSC之间的纽带。预言者通过神盾协议预定义的接口规范和GSC建立链接,为GSC提供输入。预言者本质上是一个服务提供商,在链上缴纳足额保证金之后,即可提供预先申请的服务,通过提供服务收取费用获得收益。

预言者根据其所提供的服务类型,缴纳了数倍甚至数十倍于所提供服务的保证金,一旦作恶将会被罚没保证金,从经济角度上讲预言者最优选择是诚实提供现实世界的信息以期获得服务收益。GAIAWORLD会记录单个GSC的执行次数,通常来说,被执行的次数越多的预言者服务越诚信,链上用户会倾向于选择执行次数更多的智能合约。

此外,神盾协议还引入了评级制度。当然,单个预言者始终是不足够可靠的。对于可信度性要求更高的GSC,会采用多预言者模式。即同时使用多个预言者提供的相同服务,并且为每一个预言者分配权重,使用总权重最高的结果作为GSC的输入。在此基础之上,GAIAWORLD还实现了三级仲裁委员会制度,神盾协议和仲裁制度的结合会进一步保证预言机的可信度。

这就是GAIAWORLD神盾协议技术的逻辑,能更好的实现与现实世界交互。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 价值互联网时代因区块链而到来

    我们在BAT缔造的信息互联网商业帝国享受着互联网带来的便利和快捷,依靠着这些庞大的中心机构传递我们的聊天信息、购物信息和交易信息,感叹着互联网改变生活。同时,也...

    GAIAWorld
  • 吃瓜 || 一文看懂BCH分叉事件始末

    11月16日凌晨,比特现金BCH在唇枪舌战之后终于迎来了硬分叉时刻,以吴忌寒带领的BCH ABC链和澳本聪CSW代表的BCH BSV 链对立成两大阵营,在16日...

    GAIAWorld
  • GaiaWorld:疾风知劲草,深耕技术才能走得更远

    近期,“币圈”熊市来临,但这对于“链圈”来说是一件好事情,因为让更多的人回归初心,让大家看见投机撑不起区块链的未来,技术才是取胜的王道。

    GAIAWorld
  • 【算法提高班】《贪婪策略》系列 - 覆盖篇

    LeetCode 上对于贪婪策略有 73 道题目。我们将其分成几个类型来讲解,截止目前我们暂时只提供覆盖问题,其他的可以期待我的新书或者之后的题解文章。

    lucifer210
  • 剑指OFFER之树的子结构(九度OJ1520)

    题目描述: 输入两颗二叉树A,B,判断B是不是A的子结构。 输入: 输入可能包含多个测试样例,输入以EOF结束。 对于每个测试案例,输入的第一行一个整数n,m(...

    用户1154259
  • 云锁服务器端及客户端安装及简单使用体验教程

    魏艾斯博客www.vpsss.net
  • 用MongoDB Change Streams 在BigQuery中复制数据

    Chang Stream(变更记录流) 是指collection(数据库集合)的变更事件流,应用程序通过db.collection.watch()这样的命令可以...

    MongoDB中文社区
  • Code::Blocks配置GTK+2和GTK+3

    zhwhong
  • 听说你在找中药-靶点-疾病的关系,那么请收下这个数据库吧

    ETCM(The Encyclopedia ofTraditional Chinese Medicine)

    百味科研芝士
  • 解决Maven工程install时[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources

      最近的项目在用maven 进行install的时候,发现老师在控制台输出警告:[WARNING] Using platform encoding (UTF-...

    阿豪聊干货

扫码关注云+社区

领取腾讯云代金券