了解 Compound 清算的基本概念和流程以及如何设计一个清算机器人。 原文标题:《清算人系列 | 如何设计一个 Compound 清算机器人?》 区块链数字资产和加密货币市场已发展成为一个充满活力的金融生态系统。但相较于传统金融市场,绝大多数项目的设计思路都是基于数字资产或加密货币在空间上的转移,而金融本身仍作为时间定价的工具,塑造了一个关于可量化、可交易的时间维度。Compound 项目在此背景下应运而生,该项目是一种基于供求关系的分布式协议,设计了一种基于货币市场设定利率的算法,实现了用户无时间摩擦地交易以太坊资产。 本文分为三部分,第一部分简要介绍该项目中与清算相关的基本概念,第二部分通过示例讲解清算流程,第三部分介绍如何设计一个清算机器人。 清算的基本概念Compound 项目中与清算相关的基本概念主要包括:cToken、Comptroller、Liquidity、Close factor 和 Liquidation Incentive。 cTokenCompound 协议目前支持 Erc20 和 Ether 两类基础资产,cToken 是两类基础资产在 Compound 上的集成,转换公式为 cToken = 基础资产 / 当前汇率。cToken 在 Compound 上有两种作用,分别是作为利息的衡量标准和贷款的抵押物。有别于传统银行的计算方式,利率是通过复利的形式增长的。cToken 在 Compound 协议中作为度量衡使用。 ComptrollerComptroller 通过 collateral factor 对 Compound 协议进行风险管理,即 Comptroller 为协议的风险管理层。每类基础资产都有相互独立的 collateral factor,其数值大小根据基础资产的流动性和市值规模在 0~90% 浮动。流动性越强,市值规模越高数值越大。若 collateral factor 为 0,该类基础资产不能用作抵押或者在清算中进行抵扣。Compound 根据 collateral factor 确定用户所需抵押品价值以及该用户是否可以被清算。 LiquidityLiquidity 是 Compound 协议清算的标志位。当账户的 Liquidity 不为正数时,将被该协议的其他用户清算,直到将 Liquidity 重新设置为正数。账户 Liquidity 计算由下列公式(1)、(2)、(3)求得: 其中,tokensToDenom 是将其他资产价格转换为 ETH 价格的汇率,oraclePrice 是从预言机中获得的单价。为解决在源码中 Liquidity 是 uint 类型、无法表示负数的问题,源码中定义 shortfall = sumBorrowPlusEffects – sumCollateral。很多清算程序为统一表示,将 Compound 协议清算标志位设为 health。Health 小于 1,则表示该账户需要被清算。 (责任编辑:admin) |