atom_crypto

Posted on Jul 01, 2022Read on Mirror.xyz

Agoric - Cosmos 上的JavaScript 枢纽(技术篇)

总览

Agoric是一条利用JavaScript语言,基于全新的虚拟机开发的搭建在Cosmos上的Layer1 应用链。他致力于将1200万JavaScript开发者引入加密圈。和其他独立主权应用链一样,Agoric也是基于Tendermint BFT共识机制和Cosmos SDK开发的。目前在Cosmos生态中,主要有三种VMs虚拟机, 包括1) CosmWasm,目前支持语言Rust, 后续会加入Golang, Vlang,接入链包括Osmosis, Juno Network, Stargaze, Injective, Secret Network 等2)EVM,支持语言Solidity, 接入链包括Evmos和Cronos 3)Agoric 虚拟机,支持语言JavaScript,接入链包括Agoric。

可执行的项目通常将虚拟机作为“去中心化计算”的计算引擎,而虚拟机则允许各种智能合约之间相互交互。

目前尽管以太坊虚拟机是迄今行业中最主要的虚拟机,主要受益于以太坊和其他EVM可兼容的Layer1的开发者社区,开发工具和网络效应。我们看到CosmWasm,一种兼具Cosmos SDK和IBC功能的智能合约引擎,在Cosmos中接入CosmWasm的项目在过去六个月内逐步增长,增长势头强劲。对CosmWasm感兴趣的朋友可以看我们之前的文章,CosmWasm on Osmosis, Cosmoverse的跨链智能合约引擎。接入CosmWasm的链主要分为两种,一种是以Osmosis,Stargaze为代表的可许可的应用链,一种是以Juno为代表的无需许可的通用型区块链。通过Osmosis接入的应用需要通过治理,而且需要助力于Osmosis的核心业务,AMM, Superfluid质押等。而Juno更推崇无需治理的开放式网络,所以目前在其上搭建的项目质量层次不齐,方向也包括Defi, NFT, DAO等,所以我们认同应用区块链才是Cosmos的真正的杀手锏产品,而对于像Juno这种搭建在Cosmos上的开放式的区块链来说,其发展还尚处于早期,而以太坊,Layer1或许对于很多无需可开发的dapp来说仍然是最优的选择。

Agoric会以许可链的形式启动,并逐步于年底过渡为无需许可的智能合约链。其主要逻辑是考虑到其背后合约异步通信的设计。本质上你可以理解为,当由于某些网络活动,导致整个链变得拥堵时,它们能够实现水平扩展,它们有多个独立的验证者集合,验证这些合约的子集。

核心技术框架

Agoric主要由多个组件组成的协议层(验证节点),应用层(dAPPs) 和终端用户等组成。

ENDO/加强版JavaScript

Web2.0 中,JavaScript 的开发应用中很多代码都是非常依赖于第三方代码(开源库,比如React.,VUE, Angular等),用户也为一些插件,扩展提供代码。这往往会导致很多风险。Agoric致力于通过加强版JavaScript解决这些安全问题。它仍然是JavaScript,但是通过在密闭的环境中运行任意和不可信的JavaScript, 提供可信任和安全的平台,将自由的的JavaScript置于安全可控的范围之内,减少系统性的bug。

在这个密闭的环境中,额外的安全措施可以确保智能合同可以在较低风险的情况下设计和运行。其中最主要的安全措施为最小权威原则(Principle of Least Authority), 这种方法对智能合约中每个对象被允许/授予执行的合法工作设置了权限,因而大大减少了漏洞可带来负面的影响。此外,加强版JavaScript可以理解为始终处于”严格模式“,意思是相较于常规JavaScript语言,限制了其重新定义内置函数的能力。比如在常规JavaScript中,个人可以冒着密码被盗的风险,重新定义更改密码功能以包含某些数组。而强化JavaScript中内置的标准是不可变的。

Endo对于强化版类似于Node.js对于常规JavaScript。Endo允许强化版JavaScript 运行客户端程序并且限制这些程序的访问权限。Endo在强化版JavaScript上负责连接和创建Node.js程序包,并且只能在服务器端运行。比如, 一个Agoric智能合约可以映射为运行在一个Endo 服务器端的一个Endo 程序(Web2的概念)。

电子权利转移协议 (ERTP)

电子权利转移协议 (ERTP) 是用JavaScript编写的 Agoric 的数字资产代币标准, 它可以创建具有相同安全属性和相同传输方法的各种数字资产。使用 ERTP 铸造的新资产存储在“支付”或“钱包”中。支付储存旨在“钱包”之间或者其他地方移动的数字资产。而“钱包”储存资产直到提款为“支付”用途。每个单独的“钱包”或者“支付”只可以容纳一种资产,比如一个钱包中有了Atom, 那么它就不能再持有Osmosis。同时,将资产存入钱包的过程需要确保其真实性,并且确保资产和钱包匹配。如果存入成功,那么ERTP将确保“支付”被销毁并且钱包包含其“支付”前所有的内容以及“支付”的全部内容。如果不成功,那么ERTP将确保调用前“支付”和“钱包”处于相同状态。

使用 ERTP 进行铸造会生产新的数字资产作为“支付”,而铸造只能生产一种资产。这种资产被称为“品牌”。对于每个品牌,都有特定的铸造,并且相应的特定发行人。而特定铸造只能创建品牌的资产,而特定发行人只能创建品牌的“钱包”和“支付”。中间层CapTP可以理解为分布式代码跨链运行以及安全计算的传输协议。而最底层的IBC是一种通用的消息传递协议,允许任何Cosmos Zone 可以互操作。其中包括基础层-Tendermint BFT 共识链; 传输层-从源链到目的链的无许可中继器; 认证层-轻客户端验证; 接口层 - IBC 数据包。

Zoe

Zoe为Agoric上的智能合约提供安全环境,可以理解为为开发者提供更为安全智能合约的智能合约框架环境。即使当智能合约有问题或者存在恶意攻击,用户仍然可以获得存入智能合约的全部退款。这个优势在目前的EVM虚拟机中,是很难无法实现的,也是用户最为看重的。大量的桥安全事故(几亿美金甚至更多被像朝鲜黑客这样的组织盗取)以及各种协议被攻击,大部分都是源于智能合约的潜在风险。而对于开发者而言,Zoe通过 JavaScript 提供可访问性,同时确保无论合约是否有问题,用户资产都是安全的,从而可以让开发者更快速地开发产品,和迭代创新。

当然这是通过“报价安全执行”来实现的。报价可以理解为一种结构化的方式来描述用户的意图,比如:“我会给你3个 IST 换取4个OSMO代币”。当然这个报价并没有明确这个交换是如何发生的(Zoe会确保这个的发生),而兑换功能的智能合约只需要确保交换了什么资产,以及交换的具体数量。所以,本质上双方的资产都通过Zoe托管,直到以下两种情况下的一种情况发生,

比如1)双方用户的报价一致且匹配,兑换可以完成 2)合约有问题,报价无法匹配,资产返还。所以当用户将资产给到Zoe,他们会收到JavaScriptd的未来支出承诺。

Inter Protocol 协议可以理解为Agoric链上的综合经济层,作为Agoric经济活动和大规模应用的中心焦点。。对于其以及其超额抵押,锚定美金的稳定币IST感兴趣的朋友可以参考我们之前的Cosmos生态原生稳定币IST - 暨Terra算法稳定币的噩梦,非常详细的解读了整个运作机制以及对Agoric以及整个Cosmos生态的影响。Luna事件之后,Cosmo意识到其IBC生态缺少主要的,安全的,超额抵押稳定币,而Agoric希望为其区块链上的用户提供稳定的交易和费用,同时也可以将其作为一种价值存储手段,因此Agoric通过IBC的集成将为整个Cosmos生态,乃至其它外部生态提供可信的稳定币解决方案,从而进一步反哺Agoric的发展。

之前我们提到过有三种方式可以铸造IST 1) 治理通过的白名单资产,比如Atom, OSMO, SCRT等 2) 提供相对较安全的稳定币USDC (类似于Maker的方案) 3)质押BLD (Agoric的治理代币。当然虽然是超额抵押稳定币模型,当资产价格出现波动时,第一种方案仍然存在风险;第二种方案相较于提供原生资产,而生成稳定币(例如在Terra中,提供Luna,生成UST)的方案不同,任何IBC资产都可以作为抵押品(只要通过治理),这一定程度上分散了风险,因为作为抵押的资产只占全部总供应量的小部分,同时提升了用户体验,用户可以无缝且轻松通过抵押资产铸造稳定币,大大减少了参与跨链Defi的摩擦(Thanks to the IBC)。同时,可以帮助IST流动性覆盖到整个IBC生态(甚至之外),并且增加了每个应用链资产的应用案例。

所以我们可以认为Agoric 链的成功部分取决于 IST 是否能够得到大规模应用,这个设计和Terra有点异曲同工之妙。但是它的设计大大提升了安全性和扩展性。首先,IST是超额抵押,并且通过多层崩盘保护机制确保协议安全。同时,Agoric采用了直接从IST的使用和经济活动中受益的收益捕获模型,而非Terra的铸造和销毁机制。而Agoric的质押者和验证者也受益于IST增长,并且获得稳定的美元计价收益,更具有长期的捕获价值。

Agoric和Inter Protocol的收入来源主要来自于以下方面:

1)Agoric上的燃料(网络)费用,交易手续费以IST计价,并且通过奖励池分发给质押者以及验证者

2)IST的铸造费用,用户通过超额抵押的方式获取IST,通常需要支付铸造费用,稳定费用(按日计算),清算罚息等。而这些费用会分发给奖励池和储备池。注意,尽管IST的铸造需要通过Agoric,但是当IST大规模使用后,IST的获取或者交易并不必须通过Agoric链执行。

3)Agoric正在开发原生AMM DEX以及稳定币兑换协议, 其上交易费用也会反哺给Agoric

  1. 和其他POS机制下的链一样,Agoric治理代币BLD的增发会给到维护网络的质押者。

所以IST的增长以及使用会增加Agoric的收入,从而增加网络的安全性,并为节点质押者带来长期价值。而代币(BLD)持有者的收益以及IST的成功,会吸引更多的用户和开发者,反哺整个生态。

Agoric生态和未来发展路径

部署在 Agoric 上的项目可以享有和JavaScript类似的开发环境。同时,我们上文提到,Zoe是为开发者提供更为安全智能合约的智能合约框架环境,可以在确保用户资产不会因为合约漏洞而损失的情况下,开发者可以更大胆放心地开发应用程序。同时,由于Agoric的安全设计,应用的组件可以被信任并且广泛集成,基于这些组件的广泛可用性,所以开发者可以快速的开发。所以这些组件可以理解为Defi 乐高,可以是清算机制,预言机机制等开发者可以集成于应用的组件。所以Inter Protocol本质上可以理解为一篮子合约,包括仓位机制,清算机制,AMM设计,锚定稳定币机制等。比如当Inter Protocol发生清算时,因为其上的合约都是异步通信的,允许清算可以在Kinetic AMM上动态清算。这限制了清算时间期间价值突然损失以及价格的影响 (这里储备池负责为Kinetic AMM提供流动性以及清算兑换,不过和MakerDAO的链下清算模式不同)。而对于用户来说,通常与智能合约交互会有资产损失的风险。但是Agoric的设计确保即便在智能合约出现问题的情况下,用户仍然可以全款退款,大大保证了其资金安全。

同时,和其他独立主权应用链一样,在Agoric上开发的应用可以享有Cosmos上几十亿美金的锁仓量。同时,thanks to IBC again,IBC提供的无需可互操作性和可组合性实现了不同链间的最小化信任互通。同时,IBC也正在计划通过composable Finance接入Polkadot, Near,Avalanche (subnet架构)以及Polygon等。

而异构链间通信,我们可以通过可信任跨链通讯协议实现,比如Axelar等协议(被Osmosis选为EVM链桥的合作方,社区投票超过了Wormhole, Graviry Bridge 以及Nomad。Axelar致力于将比如Ethereum, Avalanche, Optimistic Rollups等EVM链以及Layer2连接到IBC。当然,可信任桥存在着中心信任风险(最强的假设是最小数证实假设,最弱的假设就是多签,甚至是单签)。不过桥的设计使得开发者可以无需选择首先在哪个链上部署,然后将流动性分散在不同的协议上,而是可以直接/ 快速通过单个桥接入多个生态。

总结及潜在风险

我们看到了Agoric的野心,致力于将1200万JavaScript开发者带入加密生态,其创新的EVM设计,通过多个独立节点集实现的水平扩展,以及给开发者以及用户带来了的效率以及安全保证,让Agoric以及IST持续成为Cosmos社区热议的话题,然而其仍然存在以下风险:

1)竞争虚拟机

EVM仍然是行业中主要被采用的虚拟机,并且考虑到与EVM架构相关的工具和基础设施,大量EVM兼容Layer1以及Rollups正在利用其网络效应快速拓展自己的生态,同时它也逐步被Polkadot,Polygon, Avalanche等其他生态接纳。CosmWasm也积极地利用设计优势,资源优势快速占领市场份额。

2)抵押品中心化

DAI的设计中,主要抵押资产为USDC, 鉴于USDC高度中心化,这给DAI的设计引入了中心化和监管风险。而对于IST来说,尽管其三种抵押资产类别的细分比例仍然未知,相关风险也的确存在。除此之外,考虑到这些稳定币的不同桥接版本,IST也承担着这些桥的不同安全风险(每个桥的USDC版本也不同)。所以,不同桥对应的USDC抵押品的安全性也不同。

Reference

Nasen Alpha Research

Cosmos