干货|Obyte重大升级,自治代理协议(Autonomous Agents)介绍

来源|medium.com 翻译|头等仓July 译文版权属头等仓所有,任何转载请保留前言信息。
头等仓APP下载

来源|medium.com
翻译|头等仓July
译文版权属头等仓所有,任何转载请保留前言信息。

自治代理协议介绍

Obyte平台自发布起就公布了智能合约功能。

以传统合约为原型,在特定条件下,智能合约允许部分用户拥有协议权力。举个例子,满足特地条件之后,比如支付完成、货物或服务完成交付、或下注的团队取得优胜以后,就有权将锁定在智能合约中的货币取走。

与传统合约不同,所有网络节点检查智能合约条件并强制执行,仅在满足所有条件时将其添加到账本。这是一个完全独立于任何政府法律体系的去中心化模型。

智能合约的出现启用了一系列应用和用例:

· 有条件付款;
· P2P预测市场;
· P2P保险。

所有应用程序都是围绕P2P交互构建的——建立在自由、平等、自愿基础上的交互关系。

但是,仍然有智能合约无法覆盖的应用类型——即中央自治机构与多个用户交互、严格按照公开规则、可预知、不可篡改的应用。

这就是自治代理(Autonomous Agents)。

自治代理(AA)按照关联的程序运行,运作方式类似于自动贩卖机,读取键盘输入的数据或接收的硬币,然后用一杯咖啡、播放一首歌、或以任何程序编写的方式响应。

干货|Obyte重大升级,自治代理协议(Autonomous Agents)介绍

但是还是有一点不同,自动贩卖机可以进行重新编程或关闭,但自治代理是完全“自治”,其程序在创建时存储在Obyte分布式账本中,不能更改,也不能删除。

对终端用户来说,使用体验和自动贩卖机一样,用户只需将钱从Obyte钱包发送到AA地址(看起来就像常规的Obyte地址),可以选择附加所需操作相关数据,然后,AA将此交易作为请求,启用程序处理交易。作为响应,AA可以执行许多任务,例如将代币发送回用户、将数据发送到账本、将代币发送给不同的用户、甚至是将代币和数据发送到另一个AA。

从应用程序开发人员的角度来看,自治代理程序是一种用简单语言编写的程序,用户在分布式账本中创建AA,AA的源代码需要部署在账本上,部署完毕可供所有人使用,源代码开源,所有用户都能预知AA操作。

与P2P交互匹配的智能合约不同,自治代理可以与多个用户进行交互,始终保持在线,随时准备接收请求和提供服务。

应用

这个特点极大地扩大了开发人员的设计空间,自治代理进行编程后几乎可以完成所有人工服务提供商可执行的操作,还兼具:

· 完全自动化
· 严格遵照预先设定程序,不可更改。与人工不同,AA永远只做自己应该做的事。

------

一些可基于AA构建的应用程序:

· 预测市场的流通股;
· 期货合约;
· 基于算法的稳定币;
· 综合资产;
· 其他衍生品;
· 抵押贷款;
· 保证金交易;
· 去中心化交易所;
· 去中心化预言机;
· 支付通道;
· 游戏经济;
· 做市商;
· 投资组合自动管理;

还有很多目前我们想不到的应用程序类型,不仅仅局限于去中心化金融领域。

自治代理当然充分使用Obyte的独特功能,比如协议级别代币、轻松访问预言机发布的数据、以及广大用户身份证明。

透明度

Obyte智能合约的特别之处在于人工可读,用户可以直接阅读协议条件,无需破译复杂的术语。

那么自治代理呢?它们是用计算机语言编写的,虽然以一种简单公开的方式在账本上发布,但仍然是计算机代码,非开发人员很难理解。

本着为广大受众提供透明度和开放性原则,我们找到了另外一种解决方案,当用户从Obyte钱包发起转账时,钱包会预先计算用户交易的预期效果,并将该信息显示给用户。

干货|Obyte重大升级,自治代理协议(Autonomous Agents)介绍

用户不需要阅读代码、不需要确定采用多少代码分支,就可以看到感兴趣的内容——也就是最终结果。

加密货币项目能将透明度实现到这个程度着实让人出乎意料,目前为止,用户只是将货币发送给协议,其他信息一概不知晓,盲目相信开发者所言,认为“智能合约”真能像预期那样运行。

Oscript——自治代理的语言

自治代理是用Oscript编写的——这是一种专门为此目的而开发的编程语言,任何有主流语言(如JavaScript、PHP、Java、C/C++等)开发经验的开发人员都不存在学习困难。

该语言的部分功能:

· 轻松访问描述账本状态和触发(要求、激活)交易的变量,这也是使用专用语言的原因,可以使用的变量包括:
· 触发交易中接收的金额;
· 触发交易中接收的数据;
· 谁发送了触发交易;
· 当前和其他AA的状态变量;
· 数据馈送;
· 证明;
· 当前AA和其他AA的余额;
· 有关资产的信息;
· 算术运算;
· 逻辑运算(AND,OR等);
· 比较;
· 字符串连接;
· 一些数学函数;
· 一些用于计算哈希和验证离线签名的加密函数;
· if/else分支;
· 无循环;
· 无函数(防止无限递归);
· 标量和对象数据类型;
· 由seed生成确定性伪随机数。

为了节省资源,每个自治代理的高成本操作(如加密函数和数据库访问)次数限制在100,该限制会在部署时进行检查,不会部署试图突破此限制的AA,这一点也确保了不会出现AA由于“缺乏燃料”这样的理由而无法运行。

没有复杂的操作定价和运行时长资源计算,我们只是追求简单,仅仅设置一个高成本操作数量上限。

用户和AA支付费用的标准仍然是1字节数据等于1 Byte代币。

Oscript用于指定交易响应内容,这具体取决于触发交易和账本的整体状态,反过来,响应交易可以向其他AA发送资金并触发其执行,但是,响应交易必须首先写入账本,在初始AA在将控制权交给下一个AA之前完成。这种处理请求的方式确保在任何时候都能轻易获取程序状态,因为在初始AA的执行过程不受影响,所以不存在重入问题。

无矿工——无抢先交易,无矿工操纵

在区块链中,矿工可以操纵区块中的交易顺序、或拒绝某些区块交易、或优先插入某些交易来利用智能合约,这些现象都非常普遍。而非矿工用户在看到这类现象时也愿意支付更多的手续费来获取区块有利位置,所以每个智能合约设计都必须经过深思熟虑,以规避和减轻这类威胁带来的影响,也说明了为什么当前区块链上的智能合约设计富有挑战性,也容易出现失误。

Obyte不存在区块,也无所谓矿工,所以这些问题根本就不存在。交易按照在DAG上的排序进行处理,手续费不可更改订单,用户只需将他们的交易添加到DAG本身,没有权限决定订单或交易包含内容。

在向AA发送代币的触发交易变得稳定以后,AA代码自动执行(也就是说,确保没有“双花”)。每个完整节点自行执行代码,并将生成的响应交易添加到账本,且不需要将响应交易广播给各节点,因为所有的节点遵循相同的规则并生成相同的响应结果,结果仅由规则决定,不需要投票或竞赛证明。

自治代理与智能合约

自治代理与智能合约不同,但他们有很多共同之处。

(智能)合约发起于两方或多方之间,但(自治)代理只是一种交互。

智能合约涉及的各方地位自由平等(或代表自由平等参与方的软件代理),但自治代理仅仅只是无自由意志的服务提供商,用户和AA的关系在设计上就是不平等的——所有权利都属于用户,AA仅仅只是遵循用户命令。

智能合约和自治代理之间有什么共同之处?两者都有与之相关的规则;规则以机器可读的形式编写;可供所有用户查看,不可更改;规则应用于网络所有节点,没有节点享有特权。

概述

这是Obyte协议的首次重大升级,开发历时9个月。我们对协议升级的态度一般比较保守,因为协议升级有可能破坏现有应用程序,我们认为技术堆栈越少,堆栈层就越稳定,作为基础层的协议,应该最大程度实现稳定。

虽然当前的更新不至于影响应用程序,但还是有可能存在漏洞,所以在正式发布之前还需要进行全面的测试。

目前暂时只在测试网上进行升级。

我们还举办了开发竞赛,邀请开发人员创建许多不同的AA,在测试网上运行,发掘可能出现bug的边缘用例,希望在主网发布升级版本时能有足够多经过测试的AA。

预计测试和开发需要耗费2-4个月。

如果您是开发人员并且有兴趣尝试自治代理,可以访问我们的测试网testnet.oscript.org,在简易浏览器编辑器中编写首个AA,并将其部署到测试网!我们的开发者网站上还有许多可供学习和入门的指南。

干货|Obyte重大升级,自治代理协议(Autonomous Agents)介绍

本文由 区块链资讯平台头等仓 作者:Jaden 发表,其版权均为 区块链资讯平台头等仓 所有,文章内容系作者个人观点,不代表 区块链资讯平台头等仓 对观点赞同或支持。如需转载,请注明文章来源。
头等仓APP下载

发表评论