一文带你全方位了解Acala产品与技术堆栈

一文带你全方位了解Acala产品与技术堆栈

01.项目概要|Abstract

一文带你全方位了解Acala产品与技术堆栈

Acala —— 全球首个去中心化开放式金融联盟、Polkadot 生态金融中心,旨在联合 Polkadot 生态系统创建开放式金融框架,为全球加密资产带来金融稳定性,流动性与可及性。目前已经推出了跨链多资产抵押的借贷协议、释放 Staking 资产流动性协议以及 DEX 等核心 Layer 1 模块,除此之外,Acala 还添加了兼容 EVM 的智能合约模块,允许 Solidity 开发者以最小的迁移成本进入波卡生态。

一文带你全方位了解Acala产品与技术堆栈

目前 Acala 得到了 Web3 基金会官方资金支持,并获得 Polychain、Pantera、ParaFi、Hypersphere、Digital Currency Group、CoinFund、1confirmation、HashKey、Coinbase Ventures 等在内的数家全球知名机构的投资。

一文带你全方位了解Acala产品与技术堆栈

Acala 主网上线进程与 Polkadot 上线进程保持一致,为更好地测试主网功能,Acala 也推出了具有经济价值的实验先行网 Karura,其底层代码与 Acala 主网一致,主网所有功能都会先在Karura上线,其相对Acala来说,节奏更加迅速,风格玩法会相对灵活。

# 简介 

成立时间

2019年10月

上线时间

插槽竞拍成功之后

先行网

Karura

02.技术|Web3 Infrastructure

Acala 基于 Substrate 框架构建,将作为平行链接入 Polkadot 生态,平行链的运作方式是通过插槽接入 Polkadot 网络,具体方式如下图:

一文带你全方位了解Acala产品与技术堆栈

  • Relay Chain(中继链):负责平台安全性。

  • Parachain(平行链):拥有自己独立的状态和业务逻辑,共享中继链提供的安全性。

节点

Validator(验证人):负责中继链的出块,同时验证来自收集人的证明,与其他验证人进行共识投票。

Collator(收集人):为验证人收集平行链的交易和状态转移证明(collation),所以,平行链不再需要自己的共识机制。

Fishermen(钓鱼人):监控验证人和收集者,检查无效的候选收据,验证人或者收集人都可以作为钓鱼人。

网络

目前 Polkadot 拥有三个不同的网络,Rococo 测试网、Kusama 实验先行网和 Polkadot 主网,每个网络都有其存在的意义,Acala 依据 Polkadot 网络的上线进程,也拥有三个不同的网络:
1)Mandala 测试网:目前已上线TC6版本的测试网,所有测试网资产仅用于体验 Acala 网络功能,没有真实价值,并在测试网更新后清零;
2)Karura 先行网:会参与 Kusama 的平行链插槽竞拍,资产名称为 KAR,在有一定经济价值的环境下优先上线并测试 Acala 的相关 DeFi 功能,其定位是成为 Kusama 上的去中心化金融中心;
3)Acala 主网:会参与 Polkadot 的平行链插槽竞拍,所有相关功能在 Karura 先行网上运行稳定后陆续上线,致力于成为 Polkadot 上的去中心化金融中心。

平行链插槽竞拍

平行链插槽(Parachain Slots)是中继链和平行链的接口,要想共享 Polkadot 网络的安全,与其它平行链进行业务交互,必须通过插槽来实现。插槽类型分为社区测试型插槽(Community Beta Slots)和商用插槽(Commercial Slots)两种,20%的槽位预留给 Web3 基金会来部署,作为社区测试型平行链促进整个 Polkadot 生态的发展,余下的80%作为商用插槽。因为插槽数量有限(约有100个),因此,将通过拍卖方式来公平分配。

平行链插槽的拍卖每6个月进行一次,每次仅释放一个插槽。插槽的租赁期以6个月为单位,分为6个月、12个月、18个月、24个月,参与拍卖的项目方可自由出价,竞拍单个或是相邻的多个租赁期,价高者得。中标人需要在相应地周期内锁定其DOT(Kusama中会锁定KSM),在平行链租期结束时,DOT将被解锁。租期越长,对于网络而言越稳定,竞拍模块由 Polkadot 官方提供。

根据 Gavin Wood 此前的介绍,待 Rococo V1 测试网稳定运行后,将率先在 Polkadot 先行网 Kusama 上开启平行链插槽竞拍,并在 Kusama 上线竞拍胜出的平行链,之后再将这套流程复制到 Polkadot 主网上。

Acala 在设计网络之时,便依据 Polkadot 主网的上线进程也设计了相应的三种不同网络,因此,Acala 先行网 Karura 将会首先参与 Polkadot 先行网 Kusama 的插槽竞拍,其后,在 Polkadot 主网上线后,再继续参与主网的插槽竞拍。

Karura 插槽竞拍方案

Acala 团队将首先在 Kusama 上接入 Acala 先行网 Karura,当前计划拿出 Karura 总量(1亿枚)的 11% 分配给 KSM 持有人,主要为了激励 KSM 持有人帮助 Karura 参与插槽竞拍。假设团队计划竞拍 Kusama 12 个月的插槽使用期限,如果用户愿意将自己的 KSM 锁定一年,每锁定 1 枚 KSM 将至少获得 12 枚 KAR,但是只有 30% 立即释放,剩余 70% 将在 12 个月内线性释放。用户锁定的 KSM 并没有经过项目方,所有参与竞拍的 KSM 都还在原链地址中锁定。另外还有推荐人机制(5%+5%)、6/8-6/11 早鸟奖励(10%)、6/15-6/17 竞拍启动奖励(5%)。

Karura 的上线流程,分为以下 7 步:

① 接入 Polkadot 平行链测试网 Rococo V1 进行相关测试;
② 平行链相关代码测试完毕后将会部署到 Kusama 上;
③ 公布第一次平行链插槽竞拍的时间表;
④ Kusama 会开启插槽竞拍的众筹模块,用户可以在 Crowloan 模块中选择 Karura 并锁定自己的 KSM;
⑤ 插槽蜡烛拍卖;(6 月 17 日处于该阶段)
⑥ 当 Karura 成功拍下插槽后,创始区诞生;
⑦ 分发 KAR。

03.产品|DeFi Hub of Polkadot

Acala 作为 Polkadot DeFi 生态的底层基础设施,Acala 将作为平行链接入 Polkadot 生态,共享 Polkadot 提供的安全性、互操作性等。同时面向用户搭建了各种去中心化金融应用程序,例如超额抵押借贷协议、DEX 等核心基础设施,营造更良好的用户体验;除此之外,也面向开发者提供了一套兼容以太坊的智能合约模块,可与 Runtime 层直接交互,帮助开发者在 Acala 应用层上构建各种类型的去中心化金融应用程序(例如 NFT、预测市场等),助力 Acala 生态的繁荣发展。

一文带你全方位了解Acala产品与技术堆栈

 超额抵押借贷协议

超额抵押借贷协议维护的是 Acala 网络中稳定资产系统的运行,通过超额抵押多种资产生成稳定资产 aUSD,目标价格为 1 美元,稳定资产的存在可保证价格的低波动性,从而实现流通价值,可为 Polkadot 整个生态提供基础设施服务。

一文带你全方位了解Acala产品与技术堆栈

借贷协议主要分为 CDP 模块、拍卖模块、喂价模块和治理模块,如图所示。在介绍这些模块的作用之前,我们需要首先了解以下几点。

稳定机制

1)调整稳定费率:保持 aUSD 价格稳定的主要手段就是控制市场上对 aUSD 的供需,而影响供需的关键因素就是借款利率,当借款利率上涨,利息越高,那么 aUSD 借贷需求就会降低,反之就会上涨。所以,保持价格稳定的首要方式就是调整借款利率,在 Acala 网络中,将其称为稳定费率

2)紧急关停(Emergency Shutdown):保证 aUSD 价格可兑付的最后手段,分为单一资产清算和全局清算。

单一资产清算:当某种抵押资产达到债务上限后,则会触发清算。清算流程为:

① 停止接受该资产作为抵押品;

② 提高清算率,逐步平仓;

③ 一定时间后强制平仓。

全局清算:当系统被恶意攻击或者网络升级时会触发全局清算,清算流程为:

① 最新喂价快照;

② 停止接受任何资产作为抵押品,调整仓位;

③ 清算系统债务及盈利;

④ aUSD 持有人按比例赎回抵押品。

aUSD 生成流程

aUSD 将美元作为价值锚定物,每个 aUSD 背后都会有价值大于 1 美元的资产支撑,例如,假如 1 DOT 的市场参考价格为 30 USD,如果用户A想要获得一笔 aUSD 贷款,抵押 1 枚 DOT 最多只能获得 20 aUSD,此时资产抵押率就为 150%。而市场价格波动较大,为保证抵押品的安全性,需要将抵押率控制在 150% 以上,抵押率越高,资产安全性越高。

一文带你全方位了解Acala产品与技术堆栈

获得 aUSD 贷款的过程就是创建 CDP(抵押债仓)的过程,具体流程如下:
1)存款并创建CDP:用户A连接钱包,通过门户将 1 DOT 存入协议,1 DOT 会被锁定在 CDP 中作为抵押品;
2)创建稳定币:基于 DOT 的价值,用户可以从 CDP 中获得一定价值的 aUSD,假设为 20 aUSD;
3)关闭 CDP:用户A可以随时偿还借出的 20 aUSD 以及支付这段时间的稳定费;
4)取款:20 aUSD 会被销毁,抵押品会被解锁并取出;
5)CDP 拍卖:当抵押品价值下跌时,即 1 DOT 现在的市场价值从 30 USD下跌为 25 USD ,而用户A借出了 20 aUSD ,此时的抵押率低于 150%,这时就会触发清算,系统会自动清算并拍卖抵押品,被清算的 CDP 需要支付一笔额外的操作手续费,我们将其称之为清算罚金( Mandala 测试网清算罚金设定为 3% )。

 CDP 模块

CDP 模块用于创建、管理和存储 CDP。CDP 模块通过抵押某种资产来创建与美元挂钩的稳定资产(aUSD),抵押品会被锁定在 CDP 中,创建的稳定资产价值通常小于抵押品价值。用户在关闭 CDP 时需要偿还所借的稳定资产数量+需要支付的利息,此时,即可取回抵押品。

清算人会监控每个 CDP 抵押品价值和债务价值的比率,如果抵押品价格下跌过多,CDP 内的抵押品会被转移至拍卖模块,被拍卖出售,以回收资产清偿债务,保证系统的健康运行。被清算的 CDP 除了要偿还债务和稳定费,还需要额外支付一笔清算罚金。

 喂价模块

该模块将列入一组白名单预言机,每个区块将存储预言机提供的公允价格,反馈给 CDP 模块和拍卖模块。

预言机需要向 CDP 模块提供喂价,以确定生成的 aUSD 的数量;向 CDP 清算部分喂价,以及时将抵押率过低的 CDP 内的抵押物转移至拍卖模块;向拍卖模块喂价,以确保系统和 CDP 创建者的最大化利益。

 治理模块

主要管理系统中的关键风险参数,例如稳定费年利率、清算率、清算罚金、债务上限等,未来在上线了多种资产后,不同抵押资产的抵押率、清算值等参数均不同。决定这些风险参数的人就是 ACA 持有人,在确定参数之后,将被设定在治理模块中,其他各项模块依据治理模块设定的参数分工协作。

清算

设计清算的目的在于激励借款人保持偿付能力,完善的清算机制可以避免借贷平台出现债务和划账。而 312/519 黑天鹅事件对于整个 DeFi 行业都是一次不小的考验,平台产生了总价近千万美元的坏账,而导致这么多坏账的原因主要有两个方面,一是底层以太坊网络的拥堵导致清算工作不能正常进行;二是清算效率不足。针对这些问题,Acala 协议做出了如下改进:

① 针对交易拥堵问题,Acala 网络使用的 Substrate 框架下的交易分为普通类(Normal)和运营类(Operational)两种。每个区块中约 20% 的空间预留给运营类交易,作为重要系统交易的优先通道(例如:报价预言机、风险参数调整、自动清仓)。

② 在清算过程中,有三重保护机制,首先,Acala 计划在触发清算后,先通过 DEX 出售抵押品以支付未偿债务,如不行再进行拍卖。如果抵押品拍卖有赢家,则在拍卖结束时将中标价格与交易所价格进行比较,以确保抵押品以最佳清算价格售出。这种设计可以更高效地清算有风险的仓位,小额仓位可以在 DEX 上直接清算,而大额仓位可以被拆成多个小额后售出,或者通过拍卖清算。其次,利用 Acala Treasury 中的优质盈余资产作为安全储备;第三,通过 ACA 拍卖进行兜底。

DEX概述

DEX(Decentralized Exchange)就是去掉传统一切可去除的中心化环节,包括撮合和清算。而把做市商也去掉的 DEX 方案,称作 AMM(Automated Market Maker,自动化做市商)。

做市商(Market Makers,MM)在金融市场中是指,为市场提供大量买卖挂单的个人或者机构,他们的主要目的不是为了在代币价格的涨跌中获利,而是为了获取价差(Spread),价差是指最高出价(买一)和最低卖价(卖一)之间的差异。

AMM 的算法能提供市场价格的原因,在于市场上套利者(Arbitrager)的存在。AMM 提供的价格高于或低于市场,都有套利者到这里进行交易,获得偏离市场价格的差价作为回报,同时将 AMM 池子的价格带回到市场价格。

 算法

Acala 网络中的 DEX 采用恒定乘积做市商模型,模型非常简洁,公式为

 x*y=K

x、y代表不同加密货币的数量,两者乘积为k,k是恒定常数,k值由第一笔注入的流动性决定:1)任何人都可以创建新的交易对;2)无论k值初始设定为什么,由于市场上存在套利者,使得k的值最终适应市场价格。

以 DOT-aUSD 为例,来说明 DEX 交易流程,设初始价格为 1 DOT=30 aUSD,交易池 DOT 储备量为 10,aUSD 为300,则 k 值为 3,000。用户用 1 个 DOT 购买 aUSD 的流程为(在忽略交易手续费的情况下):
1)用户发送 1 DOT 到 DEX Pallet;
2)交易池中的 DOT 数量更新为 10+1=11;
3)交易池中的 aUSD 数量更新为 3,000/11=272.73;
4)用户收到的 aUSD 的数量为 300- 272.73=27.27,即用户使用 DOT 购买 aUSD 的价格为1 DOT = 27.27 aUSD;
5)此时,新的k值为11*272.73=3,000.03。

恒定常数 k 的存在是为了计算出兑换率,即需要给用户多少 aUSD,也就是当 x*y=k,其中 x 变时,只有 k 不变才能求出 y,在一笔交易发生前就会计算出这个恒定常数,根据新注入不同数量才能去计算能够换出的资产数量。每次兑换之后,会产生新的流动池(新的 x、y ),同时也会产生新的恒定常数。

AMM 的问题在于,当流动性小的资产池面对大额订单时,会产生滑点(Slippage)。滑点是指下单的价格和最终成交的价格之间的差距。滑点取决于算法、订单金额和流动性大小。订单金额越大滑点越大,流动性越大滑点越小。算法越好,同等订单金额和流动性池大小的情况下,滑点越小。Acala 当前选择为用户设置滑点限制,滑点设置的越小,能够换出来的就越少,但是成本最低,反之滑点越大,能换出来的也就越多,但成本也就越高。

流动性释放协议

Polkadot 采用的是 NPoS(Nominated Proof-of-Stake)共识机制,任何持有 DOT 的用户都可以选择以验证人和提名人的身份,参与 Polkadot 的 Staking(质押)和治理。在这个过程中,整个系统需要通过锁定验证人与提名人所质押的 DOT 来保证网络的安全性,质押状态下的资产拥有质押收益和投票权,但是质押状态的资产无法流通,当用户想要退出质押时,还需要一段解绑期,这就使得资产流动性差以及资产价值无法得到充分应用。

针对 Polkadot 的流动性释放解决方案为创建一个质押池(Staking Pool),汇总每个用户供应的 DOT,再由 Acala 网络选取多个可靠验证人(从技术实力、运维能力以及是否提供担保服务等多个维度评估)进行质押。同时,按照1:1的比例为用户发放 L-DOT 作为质押凭据。所以,本质上 DOT 仍然处于锁定状态,具有流动性的是 L-DOT,可以在二级市场进行买卖,或者参与其他 DeFi 协议,例如,抵押生成 aUSD,获得额外的流动资金。

兑换

用户在任意时刻都可以使用 L-DOT 赎回标的 DOT,因为协议内会保留部分质押资产。当用户在兑回 DOT 时,会有 28 天的解绑期,兑换手续费以 ACA 支付。该协议是 DOT 在 Polkadot 网络上进行抵押及解绑的实际执行者,负责 L-DOT 的生成与 DOT 的赎回。L-DOT 是质押本金+质押收益(区块奖励)的资产组合,用户在赎回时,系统会给出实时兑换率,即兑换率=(本金+收益)/L-DOT 数量,所有本金及收益统一分配。

04.网络治理| Governance

Acala 网络由总理事会(General Council)和专门理事会(Specialized Council)进行治理,专门理事会管理网络特定领域,总理事会行使监督权,以确保Acala网络的整体健康运行。例如,流动性释放协议理事会专门用于管理流动性协议,L-DOT 持有人和 ACA 持有人有权对流动性协议相关提案进行投票,提案内容包括汇率模型、费用结构、复利策略等。

05.开放预言机|Oracle

Acala 计划构建一个去中心化、开放式预言机系统,旨在让任何人都能贡献价格数据,需要数据的实体则可以自由选择他们偏好的数据。该系统会维护一份喂价白名单,每个预言机服务商都需要通过治理批准才能进入白名单。当前,该系统由 Acala 自建的多个节点来运营,接受多个节点数据来源,这些数据来源将会基于 Default Oracle Pallet 聚合成一个公允的喂价,从而为网络提供链下数据以及评估链上能力与系统清算风险。

06.智能合约|Acala EVM

要成为 Polkadot 生态目前有三种方式:部署为平行链、平行线程或者成为平行链或者平行线程上的 Dapp。Acala 计划成为 Polkadot 平行链,对于那些想要接入 Polkadot 生态但是又不想要负担太高成本的项目则可以部署在 Acala 上,成为 Acala 上的 Dapp。Acala 目前已经提供了一系列开箱即用的 DeFi 生态组件,如超额抵押借贷系统,释放质押资产流动性的协议以及去中心化交易所等,除此之外,还构建了应用层相关智能合约模块,帮助其他项目在 Acala 上部署。

因为当前很多项目合约都部署在以太坊上,所以 Acala 智能合约模块也考虑到对以太坊的兼容性,但是其希望提供与以太坊截然不同的体验,因此,自行开发了一套解决方案 Bodhi,这套方案不兼容以太坊 RPC(远程过程调用),而是做了一个JavaScript SDK,模拟Web3 provider,可以把 Polkadot Extension 包装成类似 MetaMask 的扩展,这样现有的以太坊 Dapp 也能用 Polkadot Extension 来和 Acala EVM 交互,从而直接使用 Acala 的 DeFi 产品基础组件,跨链桥等,或是在应用层构建其他更加有趣的 DeFi 应用,如合成资产等,充分利用 DeFi 产品间的可组合性,创建更加丰富的 Acala 生态。

Acala 智能合约模块所要实现的目标:
1)允许用户只用一个钱包就能够与 Substrate 的 runtime、EVM 合约或者 WASM 合约进行交互;
2)允许协议兼容 EVM 以及 Runtime 层;
3)允许开发者在开发和部署去中心化金融应用程序时能够获得开箱即用的工具支持(如DEX、稳定币等)。

07.Acala Treasury

Acala 实际会创建多个链上理事会,分为总理事会和专门理事会两种类型,总理事会成员由 ACA 持有人选举产生,并且可以投票轮换总理事会成员,用于管理 Acala Treasury 。该基金中资产由一个链上账户控制,收益来源有三种方式:① CDP 稳定费;② 清算罚金;③ L-DOT 协议费(即赎回DOT时的手续费)。

因为 Acala 计划租用6年的平行链插槽,总共进行 3 轮租赁拍卖,所以,该基金的收入盈余会尽可能多的回购 DOT,建立 DOT 储备。如果其有充足的 DOT 储备,原本预留给帮助Acala第二轮竞拍的 DOT 持有人的奖励就可以存入 Acala Treasury,用于回购 DOT。而且储备池中的 DOT 还可拿到流动性协议质押,获得 Polkadot 的提名者奖励,同时,再将这些收益存入协议中,进行不断复利,为下一轮及未来的平行链拍卖做准备,最终实现自身的可持续发展。

一旦 Acala Treasury 拥有足够独立支撑插槽租赁的能力,Acala Treasury 将考虑把收入盈余用于购买其他有价值的资产,丰富平台收益结构与储备资产种类,从而强化风险抗压能力。

08.跨链消息传递|xTokens 

Acala 团队推出的跨链资产标准 “xTokens” 已交付 Web3 基金会第 5 次 Grant,该标准的提出将为所有 Polkadot 和 Kusama 平行链提供一套统一的跨链消息传递解决方案。简单来说,XCM 和 xTokens 是跨链生态系统和实现 Polkadot 和 Kusama 愿景的基本组件。跨链消息格式 (XCM) 是一种非常灵活但定义宽松的通用消息格式。因此,我们需要一个允许跨链传输的用例实现,即将资产从一个链跨到另一个链,以及在中继链与另一个链之间发送和接收可替换资产。

我们已经推出了一个关于 xTokens 的实现指南,并且该指南已经被 Acala、Laminar、plasm、HydraDX、Phala、Bit.Country、Snowfork、Crust、Darwinia、Moonbeam 和 Nodle 等 Polkadot 生态项目团队使用和验证,他们都在 Polkadot 的平行链测试网上成功完成了跨链可替换 token 的转账交易。

一文带你全方位了解Acala产品与技术堆栈

扫一扫手机访问

一文带你全方位了解Acala产品与技术堆栈

发表评论