NuShares(NSR)是 Nu 系统的股份,通过 PoS 机制挖矿,用于维护 Nu 系统的网络。NuShares 股东通过投票确定 Nubits 的发行量、保管人、Nubits 系统的利息等动议。NuShares 的投票通过挖矿实现,每个挖到块的人将自己的投票信息写入这个块。Nu 系统的盈利会以 PPC 的形式,在 Nu 系统内分发给 NuShares 的持有者。
在 Nu 生态圈内,NuShares 持有者管理货币 NuBits 的供应量,而不依赖于任何区块链之外的机制。如果多数持股人投票同意,就可以创建新的 NuBits,由被投票选出的保管人保管。保管人可以有多位,并且持股人可以决定更换他们。保管人可以决定自己是否要匿名,由于保管人是匿名的,数量很多,并且可以被持股人随意罢免,第三方的组织就不能通过威胁保管人来控制 Nu 网络。保管人也不能控制网络,他仅对系统的部分收入有支配权。NuBits 的创造和销售是整个生态圈的收入,保管人可以利用这部分收入来维护 Nu 系统以及发放红利。分红只能以点点币的形式发放,这就意味着保管人必须在准备发放分红之前去购买点点币。于是,对点点币的需求会与 Nu 系统发放的分红数量等比例增长。
反过来,Nu 系统还可以通过另一套机制来减少货币 NuBits 的供应量。这个机制被称作存放。持有者可以让自己的 NuBits 离开流通市场一段时间来获得利率回报。这个有点类似于以某一利率借款。NuShares 持有者在挖矿的时候可以通过投票的方式按照他们认为合适的收益曲线来动态调整利息率。一旦市场上对货币 NuBits 的需求减少,NuShares 持有者又可以提高存放利率来减少市场上的 NuBits 流通量。某些对 NuBits 货币不感兴趣的实体可能仅仅是为了获得利息而购买它们,所以 NuBits 的需求就不会降低。在市场对 NuBits 的需求又变增长的时候,又可以调低存放利率使需求回到之前的峰值,直到利息率降为零。
保管人维护巨大的卖墙将 NuBits 的价格控制在 1 美元,当市场给出 NuBits 需求降低的信号时,持股人为存放的 NuBits 提供利息来产生需求以便支持 NuBits 的一美元价格。在 Nu 系统运行的早期阶段,NuBits 的瞬时需求可能突然下跌造成价格短时跌破一美元,持股人将提高利率迅速把价格带回保管人的买墙附近。这会惩罚那些低于一美元卖出者,并给低于一美元买入者带来利润。大家很快就认识在低于一美元买永远是亏本的,而低于一美元买永远是赚钱的,这会阻止价格的下跌。有一种特殊的保管人可以给那些在一美元价格上卖出的人提供流动性深度,防止因为需求的突然降低而又来不及提高利率造成的价格下跌。
NuShares 持有人在挖到 PoS 块的时候就有权利投票,Nu 的客户端和用户界面允许持股人手动地配置他们的投票。由于投票数据有可能迅速变化,所以持股人可事先设定一个自动数据来源(这是持股人事先投票选定的)。市场上会出现多个提供数据源的实体,提供了多样性和自由竞争。当他们挖到一个块,他们的投票(手动或者来自数据源)将被放在区块链的利息币交易里面。三种投票的每一种都应被用户手工或自动配置。例如一个用户可以为利息率投票选择一个自动数据源,但在投票时进行手动配置。投票会以在挖矿时消耗的股龄(在点点币中是币龄)来进行加权平均。若要通过动议和保管人投票时,在 10000 个连续的区块中,必须获得 5001 个。利息率和保管人授权下文详述。
持股人可以进行三种类型的投票:
1. 把 NuBits 交给某一保管人:持股人只需在他们的客户端设置货币种类(目前只有 NuBits,但将来我们可能增加锚定欧元、英镑等的货币单位)、公共地址和授权数量。持股人可以投票给某一保管人(承诺分红)一百万 NuBits,同时又可以投票给另一保管人(核心开发团队成员)二十万 NuBits。而保管人的唯一标识是他的公钥地址。当 NuShares 持有者挖到一个 PoS 块,他的投票便会以交易的形式打包进 PoS 的利息币交易中,信息中包含了货币类型、RIPEMD-160 数值(一种 20 字节长的公开地址)和显示授权了多少聪的 uint64 数值。如果使用了多种签名交易,一个付到脚本哈希地址(pay-to-script-hash)会显示在 RIPEMD-160 类型数据下方。
2. 存放 NuBits 的利率曲线:NuShares 持有者要为不同的 NuBits 存放期限设定不同的利率。存放期限从 1 个块长度开始,以 2 倍逐步递增:2 个块、4 个块、8 个块……在系统里存放期限的块时间长度用一个 uint8 数字专门来表示:0 表示 1 个块,1 表示 2 个块,2 表示 4 个块,3 表示 8 个块……存放利率用一个 uint32 数字来表示,其值表示应该付多少聪的利息给每一个存放的 NuBits。被放入利息币交易信息中的利息率投票来自一个二维矩阵。其中第一维包括了 unit8 和 unit32 类型的数字。NuShares 持有者可以高效的设定最低和最高存放间隔周期,以便把其他周期排除。
存放期限 12 表示 4096 个块的时间,13 表示 8192 个块的时间,14 表示 16,384 个块的时间等等。19 表示 524288 个块的时间。这个持股人为 4096 个块的时间(周期代码 12)及以下设定了零利率。也投票给 524288 个块时间(周期代码 19)及以上设定了零利率。一个用户可以用任何一个非零利率周期存放 NuBits。比如存放 6000 个块或者 14000 个块的时间。这种情况下一个权重均值会计算出来做为最终存放利率。客户端界面可以允许用户手动配置彼此两倍周期长度的存放利率。周期代码会转化成区块计数再加一个时间跨度。(例如显示为 X 天)。除了输入聪的数量,用户也被要求给一个年化利率,这个年息可以被客户端转化为聪的数量。
存放投票界面会有一个按钮用于增加一个更短的周期,还有另一个按钮来来增加更长的周期。当这些按钮的任何一个第一次被按下去,在网格中会出现 131k 区块周期。额外的行数会根据哪个按钮被按下去在上方或下方表示相邻的周期。如果没有输入数据,其他周期的利率默认为零。计算每个被包含的区块时间,将这个数据放置在 UI 中,代码会解读为区块计数。在每个周期旁边是用来输入相应周期的利率的文本框。不要忘了最初是一分钟的区块间隔,我们期望改动这个所以这么写代码,这样就不必修改区块间隔,如果 PoS 区块目标间隔在后来改变的话。
3. 动议:由于提议可以是任何形式,它们无法被协议自动执行,我们也不准备这么做。当然,协议只能储存对提议的投票情况,然后检查投票来确认某个特定提议是否被通过了。由股东确保实现那些被通过的提议任何人都可以提出提议。虽然提议一般来说是文字形式,它其实可以使用任何电子格式或文件。使用 RIPEMD-160 哈希(40 个 16 进制字符的长度)对提议加密,并且随提议一同分发。当需要为提议投票的时候,在用户界面输入相应的 40 个 16 进制位字符,或者从一个数据来源中获得,而数据会占据 20 个字节的空间,当在区块链上写入利息币交易的时候。
一个提议若获得了在任何 10000 个连续区块中的 5001 张选票,并且获得了这 10000 个连续区块中的大部分股龄(币龄)的支持,就视为通过了。一个区块浏览器将发现并显示那些被通过提议的链接。这个区块浏览器将在本项目发布之前获得资金进行开发。PoS 的利息币交易长度将被协议限制在 1000 字节以内,虽然一般是大约 150 字节。除了投票和利息币之外,内容还包括用于在区块上存放交易的实际利息率(在挖矿者的投票之外)。