Stafi是一个去中心化债券协议,整个协议分为底层,合约层和应用层。底层主要是基于Substrate建立的一条区块链体系(Substrate是Parity开发的一套区块链架构,整个架构集成了很多开发模块,其中包括共识模块,P2P模块,Staking模块等),其合约层支持创建多种Stake合约,如XTZ的Stake合约,Atom的Stake合约,Dot的Stake合约等,持币人通过Stake合约进行代币Stake,该方式和普通方式Stake获得的通胀激励一致,不同的是,持币人还同时获得了一个有价债券XXX_S(如XTZ_S)。应用层则支持第三方基于Stafi的API或者自定义API创建一个去中心化的债券交易市场,供XXX_S资产在Stafi协议上流通,转移,交易。
协议以完全的去中心化方式运行,基于Substrate搭建的Stafi会以平行链的方式接入到Polkadot当中,共享Polkadot的底层共识,主要安全和性能由Polkadot底层来保证。核心层在Stake合约层,Stake代币的所属权完全由合约代码保证。Stafi采用分布式密钥存储协议,通过多验证人签名保证Stake地址的安全性,在完全无需第三方介入的情况下,持币人可以随时随地发起Stake或者赎回Stake。当持币人向Stake合约发起Stake代币的动作后,可以在合适的时间获得系统的通胀激励,而任何持有XXX_S的持币人也可以向随时随地向对应的Stake合约发起赎回操作(此赎回操作通过Stafi协议和原链交互,赎回交易上链后,Stake会在系统解锁后发送到提交的提币账户)。Stafi协议保证有价债券XXX_STAKE对原链代币一对一的所属权,即只有拥有XXX_S的持币人,可以向Stake合约发起赎回原链代币,当A将有价债券XXX_STAKE交易给B后,A不再拥有XXX的赎回权,而B可以向Stake合约发起赎回,整个过程无需第三方介入。
任何第三方可以在Stafi协议的应用层,采用Stafi的协议建立一个去中心化的债券交易所,所有的债券交易所共享交易深度,该交易所还支持围绕XXX_STAKE资产创建多种类型的服务,如券化,增信,担保和保险等。开发者可以利用开放的接口创建合适费率或者多种债券产品,而且,可以把传统资产证券化的多种服务都搬到Stafi上层来实现,提高XXX_S资产交易可靠性。随着采用PoS共识的公有链越来越多的上线主网,Stake的代币数量和种类也变得越来越多之后,这种资产的交易会变得频繁,开发者可以从构建的债券交易手续费中获得丰厚的回报。
具体实现
1. Stake合约
在Stafi合约层创建和Stake原链交互的合约,我们称之为Stake合约。比如在Stafi上创建连接Tezos的XTZ-Stake合约,当持有XTZ的用户A在XTZ-Stake上发起Stake操作时,Stake合约会先创建出一个多签地址,用户A会将XTZ通过Tezos原链转移到多签地址中来,当转移成功后,合约执行多签地址的Stake操作,当Stake操作成功的后,Stafi协议会接收到一个Tezos原链的证明(Proof),进而触发合约生成一个对等数量XTZ的有债债券XTZ_STAKE(n),简写XTZ_S(n),如果用户A Stake的XTZ数量为100,则该债券表示为XTZ_S(100)。XTZ_S(n)是Stafi协议上流通发行的Token,因为Stake数量的不同,每个Stake债券都对应不一样的价值。
Stake合约的状态更换需要原链和Stafi协议共同配合实现,因为需要监测各个链的合约状态,Stake合约的实现方式其实和跨链机制有非常多的相似之处。当持币人在Stake合约发起Stake请求时,多签账户的生成发生在Stafi协议上,同时,由Stake用户签名完成个人资产到多签地址的转移,此转移发生在原链上,Stake合约在捕获原链上的转移状态后,由多签地址向原链发起Stake请求。在原链完成Stake操作后,Stafi捕获该地址在原链上的Stake状态,并验证,验证成功后随即在Stafi协议上发行对应的XTZ_STAKE(n)资产。整个过程Stafi协议和原链交互多次,互相之间对状态的监控和捕获对整个协议的安全起到重要作用,Stafi协议对原链状态的捕获通过时延和多道验证保证原链的最终确定性。比目前跨链协议跨PoW共识要庆幸的是,2015年后半年上线的项目PoS项目当中,大多数都将区块交易的最终确定性当成一种目标来实现,即最新高度形成的时候,包含的交易就是最终确定性的。目前,业界对最终确定或者及时确定性的实现方案,最普遍的解决方案是前置验证交易合法性,后再打包数据到确定的新高度。这种实现依赖于BFT拜占庭容错算法,也依赖于一些人为指定的分叉惩罚机制Slash。鉴于此,Stafi协议在和PoS共识原链交互的时候,安全性大大提高。
2. 多签地址
目前几乎所有的Stake模型都依赖于账户(Account)模型,在用户发起Stake时,都需要一个原链地址的私钥来进行签名,为了保证Stake资产拥有权和XXX_STAKE(n)的一对一关系,Stafi设计了一个中间地址来完成此目标,该地址的资产权不属于任何人,也就是说没有任何一个人能拥有此地址的私钥。Stafi通过安全多方计算技术和门限多签技术实现中间地址的资产中立性,保证只有拥有XXX_STAKE(n)的持币人发起赎回时才执行签名。安全多方计算属于隐私计算,该计算需要Stafi中一群拥有特殊职能的验证人角色参与,一定数量的验证人通过自己的私钥签名,并通过安全通道传输,验证签名的合法性,最终实现恢复中间地址签名的方式。此中间地址并不会存在一个私钥,更不会存储在Stafi协议上,并且只有在需要签名的时候,通过特殊验证人的的私钥签名来形成。门限多签技术实现的是生成私钥签名的过程,部分生成人就可以完成私钥签名的生成,能够极大的满足对签名的需要。比如多签地址通过多名验证人(如21个)的公钥建立联系,当持有XXX_STAKE(n)的人需要发起赎回时,需要21个验证人服务器中的16个验证人签名即可以完成Stake资产的Staking和Unstaking。
3. 安全多方计算(Secure Multi-Party Computation)
安全多方计算主要研究的针对无可信第三方的情况下,如何安全地计算一个约定函数的问题。主要解决的是现实一些场景中,依赖于多方数据计算结果,各自之间又不愿意分享原始数据的问题,不需要向第三方透露出初始输入值的情况下最终结果可验证。在Stafi的Stake合约中,用户操作Stake需要新生成一个多签地址,当持有XXX_STAKE(n)的持币人向Stake合约发起赎回时,多签地址需要创建私钥签名,私钥的签名由特殊验证人参与计算生成,验证人之间经过加密通道,传输计算结果,彼此之间能互相验证计算结果,且不需要向他方透露出自己的私钥,从而实现Stake合约的解锁和赎回。
4. 所属关系转换
当完成Stake操作后,多签地址上XTZ的赎回权在XTZ_S(n)的持有人手中,只有XTZ_S(n)的持有人有权向XTZ-Stake合约发起赎回,其他持币人没有赎回权。如果用户A将XTZ_S(n)交易给了用户B,那么用户A就失去了对原链XTZ的赎回权,同时合约中多签地址的XTZ和用户A地址的映射关系也变换成了和B地址的映射关系。用户B根据自己意愿,可以发起赎回,也可以交易XTZ_S(n)资产给其他人,这一过程中,多签地址通过Stafi上验证人的签名完成对原链XTZ所属权的多轮更换。多签地址的Stake签名由Stafi上一种特殊的验证人共同生成,Stafi上的验证人和Polkadot的共识验证人不同,并不需要完成出块共识,只需要在多签地址生成和所属权更换时完成共识,当用户A将XTZ_S(n)资产交换给用户B后,特殊验证人需要执行签名,并完成原来Stake XTZ的所属权更换。
5. 特殊验证人(SV, Special-Validator)
区别于共识验证人,特殊验证人为Stafi Stake合约中资产拥有权的见证人,当符合条件的持有人在向合约发起赎回的时候,特殊验证人会参与计算并完成资产的转移,通过签名完成资产从多签地址中转移到个人地址。在未发生赎回操作时,特殊验证人在本地存储着自己的私钥,等待被调用。特殊验证人由多人随机组成。多签地址形成前,Stafi会通过随机算法从验证人群组中挑选N个验证人,N个验证人本地执行计算后通过秘密通道传输结果,验证后获得参与权,同时存储在各自的服务器本地,整个过程由程序自动化执行。
同时,每个特殊验证人会被要求运行Stake合约支持项目的轻节点,用于验证原链交易状态。此程序会被写入整个特殊验证人客户端,自动执行验证。
6. 特殊验证人群组
为了保证赎回通道的通畅,Stafi中的特殊验证人是以群组的方式执行任务,有固定的工作周期。在这段周期内,单个验证人群组共同完成多签地址生成和秘钥的存储工作,并且在执行周期完成后,随着新的一个群组介入,替换之前群组的计算和存储角色,以此保证当前验证人的活性。验证人的选举更迭以Epoch为周期(一个Epoch周期大概是1个自然日)前一个Epoch完成当前Epoch的选举工作,Stafi从候选人当中每次随机选出新的N个特殊验证人形成群组。新的特殊验证人通过秘密通道验证的方式,实现新旧验证人的更换。新的验证人会以自己的私钥替换掉旧的验证人私钥,同时系统对旧的验证人私钥执行的关系销毁。但频繁的更替会导致计算效率低下的问题,Stafi上线时,会在保证安全和效率的基础上,会选择一个比较合理的更替周期。
7. 特殊验证人奖惩
由于特殊验证人的重要性,Stafi对验证人设立了奖惩机制,对计算和存储等正向行为实行激励,对掉线,不按时更替等负向行为实行惩罚。在Stafi协议中,参与生成地址,参与计算,签名都可以获得Stafi的token–SFI的激励。同时,Stafi对于安全问题的惩罚也是极其严厉的,Stafi会要求所有参与计算和存储的验证人保持严格的在线时间,如果验证人经常掉线,会被Slash,如果掉线时间超过N小时后,验证人会被Jailed,一段时间内无法参与特殊验证人群组的计算和存储。另外,系统会根据链上可证明数据,对尝试恢复私钥,盗取别人资产的攻击行为进行严厉惩罚。
8. 特殊验证人的Staking机制
任何持有Stafi token的人都可以申请成为Stafi的特殊验证人,成为特殊验证人需要质押SFI Token,质押的SFI Token和能接受的Stake量成正比,也就是质押的SFI越多,所能处理的Stake资产计算和存储的价值也就越大,这能有效提高特殊验证人联合作恶的成本。进行Staking的SFI会得到系统的激励,同时,也是系统惩罚来源的资金池。由于Stafi系统的特殊性,特殊验证人的要求比较严格,上线初期节点会采取逐步开放的方式让验证人参与进来。
9. Stake合约安全
Stake合约的资产安全受到多方面的保证,一是资产中立性,整体的Stake资产被存储在一个多签地址地址中,多签地址的资产变动通过门限多签共享技术由N个特殊验证人保证安全,不受任何单一第三方控制。二是多签地址使用资产机制,特殊验证人通过Stafi随机算法选出,验证人互相不知道彼此,合谋的可能性变小,并且资产的保护在一定周期内会动态的实现更换,保证安全性。三是可惩罚性,验证人在参与私钥签名计算和存储时,都需要抵押一定的SFI才能参与进来,在发生攻击或者不合法行为时,抵押的SFI会被Slash,抵押的价值和能处理的资产价值成正比。多种条件组合在一起,Stafi系统能有效抵押一定危险系数的攻击,在大部分人都是诚实的假设下,Stake合约的资产能够保证一定的安全。
10. Stake合约的资产去中心化
当持币人从Stake合约发起Stake时,整个Stake资产会集中在一个合约当中,虽然每个Stake都是一个地址发起的,不会影响去中心化程度,但是当Stake资产较为集中时,被攻击的概率就会增大。Stafi通过建立多个同种Token Stake合约的方式,避免资产的集中。合约整体的数量会根据Stake资产的多少来自动增加,新的资产进入新的Stake合约Stake。同时,Stafi会在初期启动时建立多个Stake合约,Stafi系统会自动将初始Stake的需求平均分配到这些Stake合约中,起到一个保障作用,后期随着Stake需求的增加,逐步将合约的数量增多,并且加以变量区分。同时,Stafi是一个去中心化的开放协议,初始开发团队开发的Stake合约都会经过审计并开源给第三方使用,第三方可以创建自己的Stake合约,一起实现Stake资产的去中心化。
11. 开放接口
去中心化协议的开放性非常重要,Stafi协议提供多种类型的架构/接口,方便开发者使用。包括,使用Stake合约资产的定制化接口、自行建立Stake合约的底层接口,实体/虚拟ABS化资产的自定义底层接口,Stake资产,ABS化资产的链上撮合接口等等丰富的RPC,最大自由化的提供开发者使用Stafi协议资产和在Stafi协议上开发/发行新的资产。
上层应用
1. 债券资产流通
Stafi上创建的Stake合约将Stake资产释放出来,可以在Stafi上进行流通,用户无需在等待系统的锁定时间,可以轻松的将资产交易给别人。系统层面保证XXX_STAKE(n)资产和原链资产1对1 的关系,所以持币用户可以随时赎回原链资产。
Stake资产除了流通在Stafi协议上之外,也可以作为一种通用资产流通在不同的区块链交易通道中,比如中心化交易所,中心化交易所可以接通Stafi接口,定义不同XXX_STAKE(n)的初始定价,因为n不同,所以每种资产的交易成交价可能会有所变动。当然,去中心化交易所同样可以上线XXX_STAKE(n)类资产,提供多种撮合方式。更加进一步的合作是,交易所可以将Stake合约集成到自己的项目当中,并和自己交易所上持有原链资产的用户做结合,发行的资产直接同步到Stafi协议中,交易所通过连接Stafi协议,就可以轻松完成资产的对接,实现交易。
2. 债券交易市场BDEX
Stafi协议会提供多种Stake合约,Stake资产的对接。并且,在Stafi上会创建一个基于资产API的去中心化债券交易所,这个债券交易所简称BDEX。BDEX在V1版本会支持所有开放接入的Stake资产,支持充提,支持自动化撮合的订单交易系统。
3. 可扩展的ABS
ABS俗称资产证券化,Stafi希望成为未来ABS的一种资产入口,整个协议框架的搭建都以资产加未来收益的模型搭建,是一个面向未来的一个债券交易协议,所以Stafi在初步完成Stake的资产ABS化后,会逐渐开始现实ABS化资产的接入,流通。
Token Economy
Stafi作为一个去中心化债券协议,支持资产的ABS化,以及流通和交易,和传统资产的ABS化不同,Stafi在资产ABS化的过程中,需要消耗计算资源。人们通过在Stafi协议上部署合约,以去中心化可自动化执行的方式,实现债券资产发行的自由权。SFI是Stafi上的Native token,作为流通的价值媒介协调整个协议运行,在无需第三方信任的情况下,发行债券,流通债券,交易债券都将使用SFI Token来保证协议运行。在整个协议的设计当中,SFI承载着以下几个作用
1. Staking
多位特殊验证人需要保证合约资产的所属权,为了激励验证人参与,同时也为了防止参与的验证人作恶,验证人需要使用SFI进行Staking来获得参与机会,并在真正完成相应计算和存储之后,获得系统的SFI奖励。Staking的SFI会被锁定,只有在新的一轮特殊验证人进行更换时候,才能发起解锁定。同时,为了合约资产的安全,系统规定Staking的SFI数量和能处理的Stake资产数量成正比,意味着Staking的SFI越多,能处理的Stake合约资产也就越多,也能获得更多的SFI奖励。如果特殊验证人的不诚实行为被系统检测出,系统会对Stake的SFI执行Slash,Slash比例视情节轻重来定,比如Stafi对验证人的在线时间要求较为严格,掉线时长超过2小时,会被Jailed,1个自然日不能获得奖励机会,掉线时间超过1个自然日,会被Slash掉5%的Staking SFI。严重情况下,比如尝试恢复非自有财产,全部的Staking SFI会被Slash。所以Staking的设计作为Stafi系统中一个重要的功能,保证合约资产安全。
2. Stake合约部署&存储
Stafi协议支持部署多种Stake合约,也将是未来ABS化资产债券化的部署平台,一个新的Stake合约部署,需要消耗一定的SFI来执行。和以太坊的GAS消耗模型一致,执行所需要消耗的SFI通过以下模型计算
Fee=Gas x GasPrice
其中,Gas等于10^-9SFI,初始参数由Stafi系统Stafi设置,GasPrice由部署人自定义,最终Fee以SFI定价,支付的SFI如果高于系统运行所需要的资源,那么运行完成后系统会将剩余的SFI返还给合约账户,反之,系统会在无SFI支付资源时停止运行。
3. Stake合约调用
Stafi协议会开放多个接口给第三方使用,合约调用会消耗系统的计算资源,为了限制恶意的低成本攻击,也为了满足一定程度的商业调用,合约调用频率达到一定高频率时,调用者需要承担一定的计算资源成本。当然,商业调用方可以自定义支付人,可以是平台使用者,也可以是平台自己支付。
整体的Fee模型以SFI计价,系统会计算调用时,节点付出的计算资源和存储资源,比较调用方所支付的SFI,最终确定最后的执行情况。
4. Transaction Fee
在Stafi上创建的Stake合约,通过原链Stake的方式获得了在Stafi协议上流通的XXX_STAKE(n),在Stafi协议上流通XXX_STAKE(n)需要支付SFI来获得计算力,验证人打包交易并上传到最新的区块数据中,更新完最新的区块高度后,XXX_STAKE(n)的交易得到转移。SFI的支付数量和所需要运行的交易数据大小有关系,普通交易的手续费模型如下:
Fee=Gas x GasPrice
其中,Gas等于10^-9SFI,初始参数由Stafi系统Stafi设置,GasPrice由部署人自定义,最终Fee以SFI定价,支付的SFI如果高于系统运行所需要的资源,那么运行完成后系统会将剩余的SFI返还给合约账户,反之,系统会在无SFI支付资源时停止运行。
以上所有的Fee会流向一个系统的Pool中,用以支付在Polkadot上运行Parachain的费用和激励特殊验证人。
Summary
目前解决Stake资产的流动性是一种用户刚需,随着2019~2020年更多PoS公有链上线主网,加密货币圈子会出现非常多的Stake资产,预计未来的2~3年,Stake资产的规模会达到千亿美元以上的市值,届时大量资产会因为安全问题被系统锁定,丧失了流动性价值。Stafi协议以Stake资产ABS化为起始点,旨在创建一个去中心化的ABS资产发行协议,初期以提供Stake资产为重点,支持无需第三方信任的方式,跨链发行Stake资产的ABS产品,解决Stake资产流动性和系统安全性的矛盾关系。无论是XTZ,ATOM,亦或是还未出现的DOT,DFN等,都会在Stafi协议上发行对应的XXX_STAKE(n)资产,支持流动,为一些对流动性需求较强的资产构建一个可交易,可流通的平台。
平台支持高度可编程化,可以实现多种接口的自定义。底层架构为Stake资产的ABS产品构建,可以快速,简单的实现多种公有链的结合,发行对应的Stake资产。开发者可以根据自身需要,在Stafi上开发Stake合约,或是直接使用已有合约接口,构建Stake资产流动的平台。
Stafi的愿景是创建一个资产ABS化的区块链底层架构,支持开发者或者机构利用此协议创建各种ABS化资产,并且能简化掉繁琐的审批流程,实现去中心化债券的发行和买卖自由。但是,获得自由的背后往往隐藏了多方面的风险,如投资保障,投资回报等需要明确的投资风险。这些风险在现实当中是通过增信机构背书,通过保险公司来保障的,但这些方式往往和去中心化精神所背离,也会带来中心化背书的风险。现今的分布式金融发展的越来越快,相信未来会有更多的分布式商业着手解决此类问题,比如去中心化保险,去中心化增信等等,这些去中心化产品的出现,会更好的和Stafi协议结合在一起,为ABS资产提供更好的价值背书,而这一切都是去中心化的,这也是Stafi未来的一个发展方向。
未来工作
完成一个去中心化资产债券的发行过程,需要很多挑战,这些挑战是未知的,但是从现实中ABS化资产过程窥探究竟,目前ABS化资产需要经过很多层级的审批和增信,以此来实现ABS资产的优质化,整个优质化的过程其实是耗时和耗力的,Stafi实现了ABS资产的自动发行,并减少了中间比较少的第三方参与环节,但由于区块链金融发展尚属早期,ABS资产的去中心化”背书“远远没有达到要求,这段空白时间,要求参与的投资者要有足够成熟的心智。未来,为了让更多的资产,通过Stafi发行,也为了让更多的投资者进入,Stafi希望发展成一个可以以去中心化方式保护投资者的ABS发行和交易协议。为此,Stafi还要考虑以下要做的工作。
链上治理
Stafi是一个去中心化的协议,其升级方向和治理息息相关,将Token Staking作为投票权成为了众多PoS共识项目的治理手段之一。在Staking的基础上,不同项目的实现细节会有不同,比如通过激励来增加投票的参与度,比如通过预测市场来提供投票的参考,又比如通过代理制度避免投票结果走向中庸。Stafi认为现实中的投票问题颇多,参与度,结果都是为人诟病的一些问题,尝试提供更多参考意见和激励机制可以有效解决投票问题,但是现行的一些投票机制当中,并不存在完美的解决办法,大部分都是通过间接的解决手段结合区块链来优化投票,但这往往又带出来了新的问题,所以投票一直都是一个比较棘手的问题,虽然结合区块链带来了效率提升,但这种结合还触动不了一些根基问题,Stafi会在初始阶段实现基本的投票逻辑,再升级成为链上治理逻辑,同时将投票问题的解决放在长期优化的计划中。
私钥维护方式
目前多签地址的私钥签名是通过门限多签算法,由多名特殊验证人参与保管的,验证人的私钥存储在验证人本地服务器上(加密后),但是资产的保存和验证人的存在时间都具有一定的时效性,两者有效性在现实中无法达成一致,会危及到资产的存储安全。目前Stafi通过定期轮换的方式,保证私钥存储的随机性和随时性,但是动态频繁更换验证人会耗费无效的计算资源,所以频率上需要保持一定的合理水平。目前并不能确定最佳的频率,未来的工作有一部分重点将放在调整频率和安全的关系上。
同样,门限多签技术仍需要保证对随机验证人的信任,Stafi正在研究和寻找新的可用于降低信任的算法,以此来推进协议安全的升级。目前隐私计算如MPC,TEE等技术的研究方向和Stafi上所需要的安全模型有一定的契合,隐私计算技术也在快速发展当中,工程化落地的项目开始变多,未来协议层也会积极探索该方向。
分散智能合约
当持币人通过Stake合约进行Staking时,Token会被原链锁定,原链的安全机制保证Stake Token的安全,但是由于有跨链发行债券XXX_STAKE(n)的存在,资产多签账户的映射关系会保存在Stake合约中,当Stake的原链代币越来越多的时候,这个合约被攻击的可能性会加大。虽然映射关系不是原链资产赎回的决定性要素,但会对系统造成有危害。Stafi尝试创建一套分配体系,将Stake合约的生成根据Stake资产的价值而变化,为每个Stake合约预设一定的阈值,当超过阈值后Stake将不会从此合约中Staking,而会从新生成的Stake合约中实现。动态设定解决资产集中化问题,也降低了大额资产被攻击的风险。
业界有成熟的设定,能实现Stake的合约并不拥有全部锁定的Stake资产,相反,当调用Stake合约时,会创建一个只有持有人权限的单独合约。该合约和单一Staker有强相关关系。另外,发布前,此合约将会被第三方审计机构审计。
原链资产安全
ABS Token的发行根据原链证明,当原链上完成Staking后,ABS Token会被锻造出来并发送给相应用户。Stafi协议保证了ABS Token和原链资产1对1的赎回权,但是如果当原链上的Staking模块出现问题时,ABS Token也会相应的减少价值。比如用户在初始Staking的10个XTZ,那么初始得到一个对应的XTZ_S (10),当该XTZ被Slash后,变成了5个XTZ的价值,那么ABS Token会有减少对应的价值,变成XTZ_S (5),动态监控涉及到Stafi和原链的频繁交互,这使得整个协议变得复杂,所以,维持合理的监控和交互频率,也会是未来Stafi协议一个比较关注的重点。
债券发行风控
去中心化的投资风险全有个人投资者承担,这使得参与的投资人需要有更加成熟的心智,大量投资失败的案例可能会阻碍了很多新的投资人参与的机会,所以我们看到现实中很多投资品是有背书,大的机构或者是体制支持,当Stafi协议引入ABS资产的时候,节省了过程中很多中心化背书和审计的环节,虽然提高效率但也带了新的投资风险。为了降低风险评估决策,Stafi会创建新的一套,以去中心化模式运行的体系,如去中心化保险,去中心化增信,去中心化风控等,帮助不同投资人完成投资。
关于更多Stafi信息:http://stafi.io/