Stafi(Staking Finance 的缩写)是一个 DeFi(去中心化金融)协议,旨在释放质押资产的流动性。STAFI 协议通过发行 ABT 代币来解决代币流动性和主网安全性之间的矛盾,ABT 代币提供了您的质押资产的流动性。ABT 代币将质押率提高到更高的水平(理论上为 100%),并且可以交易,其安全性由 STAFI 协议指导,该协议确保 ABT 代币是唯一可以申请从原始质押区块链(Tezos、Cosmos、Polkadot 等)赎回质押资产的抵押品[1][3]。
StaFi 是 Staking+Finance 的组合缩写。它是一个使用 Substrate 构建的去中心化协议。合约层由多个 staking 合约组成,应用层主要是 rToken 的交易平台[4][5]。
Stafi 是一个赋能流动性的去中心化协议。它包含 3 个层——底层、合约层和应用层。底层主要基于 Substrate 建立的区块链系统(Substrate 是 Parity 开发的区块链架构,整个架构集成了许多开发模块,包括共识模块、P2P 模块、Staking 模块等)。合约层支持创建各种 Staking 合约,例如 XTZ、Atom 和 Dot 的 Staking 合约。代币持有者可以通过 Staking 合约进行 Stake,这与普通 Stake 获得的通胀激励一致。但不同之处在于,持有者还可以获得 rToken。最后,应用层支持第三方基于 Stafi 的 API 或定制 API 创建去中心化的债券资产交易市场,以便 rToken 在 Stafi 协议上流通、转移和交易。
该协议以纯粹去中心化的方式运行。基于 Substrate 构建的 Stafi 将作为平行链连接到 Polkadot,共享 Polkadot 的底层共识。主要的安全性和性能也由 Polkadot 保证。核心层是合约层,Stake 代币的所有权由合约代码完全保证。Stafi 使用分布式密钥存储协议,通过多重签名确保 Stake 地址的安全。持有者可以随时随地发起 Stake 或赎回 Stake,而无需第三方干预。当代币持有者发起 Stake 代币到 Stake 合约时,可以定期获得系统的通胀激励。同时,任何 rToken 持有者都可以随时随地发起对相应 Stake 合约的赎回(赎回操作通过 Stafi 协议与原始链交互。在赎回交易写入链后,Stake 代币将在解锁后发送到提交的代币账户。)Stafi 协议保证每个替代 rToken 都与原始链上的代币唯一对应。也就是说,只有 rToken 的持有者才能发起将原始代币赎回到 Stake 合约。当 A 将 rToken 交易给 B 时,A 不再拥有这些代币的赎回权,而 B 现在可以发起对 Staking 合约的赎回。整个过程不需要第三方干预。
任何第三方都可以使用 Stafi 协议在应用层建立去中心化的债券资产交易所。所有 rToken 交易所共享交易深度。随着越来越多的公链采用 PoS 启动主网,Stake 代币的数量和种类将激增。rToken 的交易也将更加频繁。因此,开发者将从他们发起的 rToken 交易中获得丰厚的交易费用[6]。
与Stafi合约层面的Stake原始链创建交互的合约称为Staking合约(简称SC)。例如,创建一个XTZ-SC用于连接Tezos和Stafi。当持有XTZ的用户A在XTZ-SC上发起Stake操作时,Staking合约将首先创建一个多重签名地址,他将通过Tezos原始链将XTZ转移到该地址。当转移成功后,合约将执行多重签名地址的Staking操作。如果成功,代币将被锁定到原始链。然后,Stafi协议将收到Tezos原始链的证明(Proofs),然后触发合约生成与XTZ等量的rXTZ,并将它们发送给staker。
Staking合约的更新需要原始链和Stafi协议协同工作,因为需要监控每个链的合约状态,Staking合约的实现与跨链机制有很多相似之处。当持有者在Staking合约发起Staking请求时,多重签名账户的生成发生在Stafi协议上。同时,个人资产转移到多重签名地址由Stake用户的签名完成。此转移发生在原始链上。当合约捕获转移信息时,从多重签名地址向原始链发起Staking请求。在原始链上完成Staking后,Stafi捕获原始链上地址的Staking状态并验证它,验证成功后立即在Stafi协议上发行相应的rToken。在整个过程中,Stafi协议与原始链多次交互。状态的监控和捕获在整个协议的安全性中起着重要作用。Stafi协议通过时间延迟和多重验证来捕获原始状态,以确保原始链的最终真实性。幸运的是,优于现有的链间协议和PoW共识,2015年后推出的大多数PoS项目都将区块交易的最终真实性视为必须满足的需求。也就是说,当形成最新高度时,包含的交易是确定性的。
质押模型依赖于账户模型——当用户发起质押时,他们需要原始链地址的私钥进行签名。为了确保质押资产的所有权与rToken之间的专属对应关系,Stafi设计了一个中间地址模型。该地址中的资产所有权不属于任何人,这意味着没有人可以拥有该地址的私钥。Stafi通过安全多方计算技术和门限多重签名技术来保证中间地址的资产中立性,确保只有在rToken持有者发起赎回时才执行签名。安全多方计算涉及隐私,需要Stafi中一组具有特殊功能的认证者参与。一定数量的验证者,被称为Stafi特殊验证器(SSV),用他们自己的私钥进行签名,并通过安全通道传输以验证签名的有效性,最终实现中间地址签名的恢复。这个中间地址没有私钥,也没有存储在Stafi协议上。它仅在需要签名时才由特殊认证者的私有证书签名形成。门限多重签名技术的实现使得部分(而非全部)生成器可以生成私钥签名,这可以极大地满足签名需求。例如,一个多重签名地址通过多个验证者(比如21个)的公钥建立联系。当持有rToken的人需要发起赎回时,只需要21个验证服务器中的16个签名来验证质押和取消质押质押资产。
安全多方计算主要关注如何在不存在不受信任的第三方的情况下安全地计算预定义函数,解决了一个有问题的现实:结果依赖于多方数据计算,而这些方不愿意共享原始数据。通过安全多方计算,可以验证最终结果,而无需向其他第三方透露初始输入值。在Stafi的Staking合约中,进行Staking的用户必须生成一个新的多重签名地址。当rToken的持有者发起赎回到Stake合约时,多重签名地址需要创建私钥签名,这需要特殊验证器的参与进行计算和生成。验证器通过加密通道传输计算结果,并且他们可以相互验证结果,而无需透露他们自己的私钥。这是一种安全地解锁和赎回Staking合约的方式。
当Staking操作完成后,多签地址上XTZ的赎回权掌握在rXTZ的持有者手中。只有rXTZ的持有者才有权赎回XTZ-SC,其他持有者无权赎回。如果用户A将XTZ交易给用户B,那么用户A将失去对原始链XTZ的赎回权,并且合约中XTZ与多签地址的用户A地址之间的映射关系也转移给用户B。用户B可以根据自己的意愿发起赎回,或者将rToken交易给其他人。在这个过程中,多签地址通过Stafi上特殊验证者的签名完成多轮原始链XTZ的所有权转移,这些验证者与Polkadot世界中的验证者不同——它不需要区块生产共识。只有在生成地址和所有权变更时才需要。当用户A将rToken交易给用户B时,特殊验证者(SSV)需要进行签名并完成原始Stake XTZ的转换。
与 Stafi 验证人 (SV) 不同,SSV 是 Stafi Stake 合约中资产所有权的见证人。当符合条件的持有人向合约发起赎回时,特殊验证人将参与计算,并通过签名完成从多重签名地址到个人地址的资产转移。当没有赎回操作发生时,特殊验证人会在本地存储自己的私钥,等待被调用。特殊验证人由随机挑选的多人组成。在多重签名地址形成之前,Stafi 将通过随机算法从 SV 中选择 N 个 SSV。Stafi 将随机选择 N 个 SSV 在本地执行计算,并通过秘密通道传输结果。验证后,参与权将被获得并分别存储在服务器本地。整个过程由系统自动完成。
同时,每个 SSV 都需要运行 Stake 合约支持的项目的轻节点,以便验证原始链交易状态。该程序被写入整个特殊验证人客户端,并自动执行验证。
为了确保赎回通道的顺畅,Stafi中的特殊验证者以固定轮班的分组形式执行任务。在他们自己的轮班期间,单个验证者组完成多重签名地址的生成和密钥的存储,并在执行周期完成后,由另一个新组替换。这确保了当前验证者的参与。验证者的一届任期持续一个Era(1 Era大约24小时)。下一组的选举在前一个Era中完成。Stafi通过区块生产率、质押比例等从SV候选人中选择新的SSV。新的SSV将用他们自己的私钥替换旧SSV的私钥。同时,系统将销毁与旧SSV私钥建立的关系。然而,频繁的轮换会影响计算效率。当Stafi正式落地时,它将选择一个合理的替换周期,以平衡安全性和效率。
由于特殊验证人的重要性,Stafi 建立了一套针对他们的激励和惩罚制度,以刺激计算和存储等积极行为,并惩罚断开连接和未及时更换等消极行为。Stafi 协议规定,参与地址生成、计算和签名将获得 Stafi 的代币 FIS 激励。另一方面,Stafi 对安全问题的惩罚非常严厉。Stafi 将要求所有参与计算和存储的验证人保持指定的在线时间。如果验证人经常掉线,将被罚没。如果掉线时间超过 N 小时,验证人将被监禁,并且在一段时间内无法参与特殊验证人组的任何计算和存储。此外,该系统将严厉惩罚试图恢复私钥并基于链上可证明数据窃取他人资产的攻击。
持有Stafi代币的任何人都可以申请成为Stafi的特殊验证人。特殊验证人需要质押FIS代币。质押的FIS代币与可以接受的质押数量成正比,也就是说,质押的FIS越多,质押资产的计算和存储价值就越大。这可以有效地增加特殊验证人进行联合恶意行为的成本。质押的FIS将受到系统的激励,同时也是系统惩罚的资金池。由于Stafi系统的特殊性,对特殊验证人的要求非常严格,启动后的早期节点将逐步开放以供验证人参与。
Staking 合约的资产安全通过多种方式保障。首先,资产中立性,Staking 资产将被锁定到原始链上,并且其映射关系将被记录在 Staking 合约中。多重签名地址通过 N 个 SSV 的阈值多重信号共享技术来保证。因此,SC 不受任何单一第三方的控制。其次,多重签名地址使用资产机制。特殊的验证者由 Stafi 随机算法选择。验证者互不相识,勾结的可能性变小,并且资产保护将在一定时期内动态更换以确保安全。第三是惩罚性。当认证者参与私钥签名计算和存储时,需要质押一定数量的 FIS 才能参与。如果发生攻击或非法行为,质押的 FIS 将被 Slashed,质押的价值可以被处理。资产的价值成正比。当多种条件结合时,Stafi 系统可以有效地惩罚某些风险因素。在大多数人都是诚实的前提下,Staking 合约的资产可以保证一定的安全性。
当持有者通过 Staking 合约发起 Staking 时,所有 Staking 资产关系将集中在一个合约中。虽然每个 Staking 都是由单个地址发起的,但这不会影响去中心化的程度,但是当 Staking 资产过于集中时,它们更容易受到攻击。Stafi 通过为一种代币建立多个同类型的 Staking 合约来避免资产集中。合约总额将根据 Staking 资产的数量自动增加,新资产将进入新的 Staking 合约。同时,Stafi 将在初始阶段建立多个 Staking 合约。Stafi 系统会将初始 Stake 需求平均分配到这些 Stake 合约中,作为缓冲。随着 Stake 需求的增加,合约数量将逐渐增加,并通过变量进行区分。
同时,Stafi 是一个去中心化的开放协议。初始开发者开发的 Staking 合约将经过审计并开源给第三方,第三方可以创建自己的 Staking 合约来实现 Staking 资产的去中心化。
Stafi协议通过提供Staking资产的流动性来创造价值。Staker可以获得通货膨胀奖励,同时流通rToken以对市场做出及时反应。该协议捕获流动性的价值,并将价值输出到协议。FIS是Stafi协议的原生数字加密安全实用代币,FIS是Stafi协议中指定的归属功能的可转移表示,旨在在Stafi协议的生态系统中发挥重要作用,并且旨在仅用作平台上的主要实用代币。
Stafi协议由Substrate创建,并采用提名权益证明(NPoS),该协议通过在上层设置Staking合约以与公共链通信来完成Staking。Staking过程不受Stafi合约的影响,因为后者在Staking期间充当账簿。通过合约质押的代币将被写入合约,并最终在原始链上锁定。
为了维护Stafi协议,Stafi验证者(SV)和Stafi特殊验证者(SSV)至关重要。SV负责整个协议的安全性,而SSV保证所有Staking合约的安全性。在协议框架下,验证者的选举和他们的动机变得至关重要,这将在本文档的第三部分中进行阐述。
FIS是Stafi的原生代币。FIS参与3个场景:Gas、Staking和价值捕获。
Stafi协议中有两种类型的代币,一种是替代代币(目前为rToken),另一种是原生代币(FIS)。这两种代币在协议中的功能不同。rToken主要承担流动性的媒介作用,其权益归属于Staking Token。作为Stafi协议的原生代币,FIS主要作为系统交易媒介,主要负责价值捕获、共识激励和防止系统滥用(交易费用)[2]。
FIS 是一种不可退还的功能型实用代币,将用作 Stafi 协议参与者之间交易的交换媒介。引入 FIS 的目标是为在 Stafi 协议生态系统中互动的参与者提供一种方便且安全的支付和结算方式。FIS 并非,也不旨在成为公众(或部分公众)接受的用于支付商品或服务或偿还债务的交换媒介;也不旨在被任何人用作支付非发行人专门提供的任何商品或服务的付款。FIS 绝不代表基金会、分销商、其各自关联公司或任何其他公司、企业或事业中的任何股权、参与权、权利、所有权或利益,FIS 也不赋予代币持有人任何费用、股息、收入、利润或投资回报的承诺,并且不旨在构成新加坡或任何相关司法管辖区的证券。FIS 只能在 Stafi 协议上使用,并且 FIS 的所有权不具有任何明示或暗示的权利,除了使用 FIS 作为启用 Stafi 协议的使用和交互的手段的权利。
FIS 是 Stafi 协议的原生代币,初始发行量为 1 亿,并且未来每年都会有进一步的发行。FIS 对于 Stafi 类似于 Dot 对于 Polkadot,防止系统滥用和价值捕获。在 Stafi 中,FIS 的具体功能如下:
rToken 是 Staker 通过 Staking 合约获得的替代代币。如果您 Staking XTZ,您可以获得 rXTZ,Staking Atom,用户可以获得 rAtom。rToken 和 Staking Token 的比例为 1:1。持有 rToken 可以获得质押代币的激励。同时,rToken 可以在市场上交易,而不是 rToken。交易后,Staking 合约将修改奖励和赎回权。
rToken 的数量没有限制。理论上,它等于 PoS 项目中集成的代币总数。当 rToken 被赎回时,存在一个销毁机制,基本上保持与 Staking Token 的统一。
在 Stafi 协议中,rToken 的具体作用是:
rToken 是 Staking Token 的映射,Staking Token 获得的 Staking 奖励将发送给 rToken 的持有者。在赎回期间,rToken 将被锁定,其获得奖励的权利将暂时丧失。
rToken 可以交易。交易后,相应的激励和赎回权将相应转移。Stafi 协议将促进 rToken 和相应的 Staking Token 交易对在中心化和去中心化交易所上市,以为 rToken 提供更高的交易流动性。
rToken 是 Staking Token 唯一的赎回媒介。rToken 持有者可以向 Staking 合约发起赎回。在赎回过程中,持有者不再拥有激励权,rToken 将被锁定。在原始链上解锁 Staking token 后,它将被发送回用户的帐户。
rToken是由StaFi协议发行的、可赎回质押资产的代币,可在各种场所进行交易、借贷。每当用户通过相关的质押合约质押原生代币时,将根据质押合约中质押的原生代币数量和rToken的实时汇率发行一定数量的rToken。随着该原生代币的质押奖励累积,rToken的汇率将逐渐增加,可赎回的原生代币数量也将增加。
获得rToken主要有两种方法:
所有rToken都可以在去中心化交易所或支持rToken的中心化交易所进行交易,并按照市场汇率兑换为原生代币。
StaFi 将 rToken 分为四类:
由于每个PoS项目都有自己的奖励领取规则,StaFi将确保用户的Staking奖励能够按照相关项目规则及时获得。
StaFi 网络将每 Era(6 小时)计算所有验证者的奖励。但是,提名者(质押者)和验证者必须手动领取奖励。如果奖励在 84 Era(21 天)内未被领取,它们将被销毁。
在 21 天内,只要验证者或质押者领取奖励,系统将自动为所有质押者发放奖励。为了让质押者及时收到质押奖励,StaFi 质押合约将利用智能合约定期领取奖励,例如每 6 小时一次。
如果发生以下两种情况中的任何一种,StaFi 将更新 rToken 的汇率:
Polkadot网络将每Era(24小时)计算所有验证者的奖励。但是,与Stafi类似,提名者(质押者)和验证者除非领取奖励,否则不会收到奖励。如果奖励在84 Era(84天)内未被领取,它们将被销毁。
在84天内,只要验证者或质押者领取奖励,系统将自动向所有质押者发放奖励。为了使质押者及时收到质押奖励,StaFi质押合约将利用智能合约定期(例如每24小时)自动领取奖励。
如果发生以下两种情况中的任何一种,StaFi将更新rToken的兑换率:
根据以太坊基金会发布的关于以太坊2.0的最新官方文档,质押奖励每6.5分钟在信标链上发放一次,但在另行通知之前,这些奖励既不能直接领取,也不能转移。因此,在获得更多信息之前,StaFi也不会提供奖励领取功能。
因此,StaFi在计算汇率时,目前没有考虑以太坊2.0网络中奖励领取功能的影响。
Stafi 特殊验证人旨在保证 Staking 合约的安全性,这些合约记录了原始链上的资产与 rToken 之间的关联,因此至关重要。Staking 合约最基本的设计是链上的多重签名账户,这可能因不同的 Staking 链的合约或相应的合约而异。
SSV 的选举独立于 SV 的选举。由于更高的安全级别,设计了特殊服务,包括签名、RPC 和 Oracle 服务——尽管在 Stafi 的启动阶段,可能不需要最后一个服务。这些服务也是激励 SVV 的方法。这种激励也是独立的。也就是说,SSV 不仅可以获得自己的奖励,还可以获得 SV 的奖励。
rToken Staking合约的私钥管理将由StaFi链上的SSV验证器使用MPC+多重签名来实现,从而实现Staking合约的去中心化和高安全级别。
每个rToken资产的初始发行将在StaFi链上进行,因此大量的rToken将在StaFi链上发行和存储。StaFi链上的rToken资产将通过ETH桥、Polkadot桥或Cosmos桥与不同的公链互操作,在不同的DeFi生态系统中流通。