对于稳定币来言,设计过程中会遇到很多细节的问题,今天来讲述下有关通证设计过程中的一些问题。
1、计算手续费
计算费是交易费的一部分,转移给kUSD矿工,并由以下公式决定:
image.png其gasUsed(t) 是用于处理交易t的Gas,而gasPrice(t)是交易时的一个单位的价格 t。gasUsed(t) 和gasPrice(t)的定义类似于以太坊,计算费本身类似于以太坊的“合约执行费”。
对于简单的转账交易,gasUsed(t) 设置为21,000,而对于智能合约的交易,其值将取决于相关智能合约触发的操作。gasPrice(t) 的默认值当前设置为2 x 10^-8。
当前区块中所有交易的计算费总和将给予 该区块的当选提案人:
image.png2、币的销毁
块的销毁量定义为给定块的所有交易的维稳费用的总和的一半:
image.png其中T(b) 是形成块B的所有交易的集合。
销毁量被发送到一个死地址,它具有永久减少kUSD的供应量。随着时间的推移,销毁量允许kUSD有效地响应需求的减少。例如,如果每天只需15%美元(平均)的kUSD币供应是通过链上交易进行,那么在30天内的销毁量将减少8%以上,在180天内将超过41%。
3、维稳奖励和维稳合约
维稳奖励的目的是双重的:允许网络由一个不断扩大的人群参与,并激励支持网络效用的行为(通过在价格低于1美元时减少可供出售的kUSD数量)。向kUSD持有人分配维稳奖励是通过维稳合约来管理的,维稳合约是一种特殊用途的智能合约,该合约是作为单一主合约的子合约实施的。
每个维稳合约都存储多个地址:源地址,储蓄地址和维稳奖励地址。源地址是指资金转移到储蓄地址的原始地址。用于储蓄地址和维稳奖励地址的私钥是从源地址的私钥导出的,从而使源地址拥有者具有将资金从这些其他地址移出的独有能力,受到下面描述的交易。
为了获得维稳奖励,源地址所有者必须事先为其源地址创建稳定合约,并将一些kUSD从源地址移动到合同的储蓄地址中。
此外,交易约束来自储蓄地址的交易被发送到除了源地址之外的任何地方。
为了准备维稳奖励,我们首先将维稳量定义为区块的总维稳费用的一半。请注意,这个量等于销毁量(见上面销毁币)。换言之,总维稳费的一半是针对销毁量,另一半是维稳量。
image.png然后将维稳量划分为个体维稳奖赏,每个维稳合约,使用以下公式:
image.png其中b是区块编号,a是具有相关稳定性契约的源地址,A(b) 是与区块b的维稳合约相关联的所有源地址的集合,而savingsBalance(b,x) 表示从中获得的余额。
在区块b期间,与具有源地址x的智能合约相关联的储蓄地址的区块b。 每个智能合约的维稳奖励将转移到相关的维稳奖励地址,并且第二个交易约束阻止该维稳奖励被转出,直到kUSD的价格返回到1美元或更高。虽然所有者可以随时从他的储蓄地址中移除资金,但只有当kUSD的价格回到1美元或更高时,他才能在维稳奖励地址中领取资金。如果他在此时间之前移除了储蓄地址资金,相关的维稳奖励将被没收。
4、mUSD和其他mToken
Kowala协议是一个双通证系统。Kowala协议块链中的主要令牌是kCoin,即稳定的值支付令牌,如kUSD。此外,与每个kUSD相关联的是次要的挖矿通证或mToken;例如,与kUSD相关联的mTokens被称为 mUSD。这些最小数量(目前为30000)的所有权证明是挖矿kCoin的要求。
每个mToken将与加密地址和其他元信息相关联,目的在于安全地管理
a)跟踪挖矿的情况;
b)挖矿奖励的收件人地址;
c)mToken所有权;
d)将挖矿责任委托给第三方。
将创建专门的智能合约来管理此信息,每个kCoin将有2^30(1,073,741,824)mTokens铸造。一旦最初的mTokens被铸造,智能合约功能将阻止将来创建额外的mTokens。
5、Konsensus:Kowala的共识协议
Kowala的共识协议,Konsensus,有一套正式的规则,允许分散的参与者群体就区块链的推进达成一致,包括交易的处理和激励奖励的分配。
Konsensus来自Tendermint,这是一种大多数异步共识协议,它本身基于拜占庭容错(BFT)。工作基于Tendermint,因为它已经实现了远远优于其他广泛使用的方法,基于POW的区块链共识协议的交易性能,并且因为它具有易于理解的安全性配置文件。与Tendermint一样,Konsensus要求其参与者彼此保持联系。
在Konsensus中,网络由两个或多个通过明确定义的通信协议连接的节点组成。 在此上下文中,节点是运行与Kowala协议兼容的挖矿客户端的计算机。 使用TCP和UDP的标准以太坊模型实现通信。
像其他加密货币一样,kUSD将被开采。对于每个区块,所有符合条件的矿工都有机会通过为区块链的进步和安全做出贡献来获得kUSD的奖励。
矿工是网络上的活动节点,控制最小数量(当前设置为30,000)mTokens。 为了推进区块链,网络必须包括至少一个矿工,尽管我们通常期望还有更多。
Konsensus中的挖矿将一次挖一个区块。对于每一个区块,有一个领导,称为提议者,从当前的矿工中确定性地选出。所有其他矿工在出块期间被称为验证者。
提议者的功能是组合并提出链中的下一个区块,验证者的功能是投票决定是接受建议的块还是拒绝它。
提议者首先组装包含未处理交易的可用区块,然后将区块分发给验证者以进行验证。每个验证者检查区块是否适合,然后进行加密签名投票来接受或拒绝该区块。
如果三分之二或更多的验证者投票接受该区块,则提议者将该区块提交给区块链并向整个网络发信号通知该区块已完成。
如果未达到三分之二的通过率,则拒绝该区块。
然后,该过程再次开始,选择新的提议者提议另一个区块。
5、基于mToken所有权的选举
矿工有可能没有机会当选为提议者; 相反,它们被选择的可能性与节点只有的mTokens数量成正比。 选举矿工的可能性由下式给出:
image.png其中m和M(b) 分别是在当前区块b中挖矿的特定矿工和所有矿工的集合。 随着时间的推移,矿工将被选为提议者,其频率与他或她持有的通证数量与所有活跃矿工持有的总通证数量成正例。 当选后,提议者必须正确地执行提议的实际工作,然后将为此工作获得奖励。
文章作者:Wayne Wong
转载请注明出处 如果有关于区块链学习的交流,可以通过下面的方式联系我: 加我微信,注意备注: 区块链学习
wechat(微信):omnigeeker
github: omnigeeker (Wayne Wong)
telegram: @omnigeeker
twitter: @omnigeeker
medium: https://medium.com/@omnigeeker
steemit: https://steemit.com/@omnigeeker
zhihu:https://www.jianshu.com/u/103321b574ba
jianshu:omnigeeker
网友评论