Chives Blockchain 主节点技术白皮书

V1.0

更新时间:2022-02-10

1 Chives Blockchain发展概况

  做为一个草根的创业项目, 自发布第一个版本以来,Chives Blockchain已经取得了不错的发展成绩,包括:10519个矿工,375Pib的网络空间算力,以及161744个地址,和0.01USDT的价格。这些指标整体上面已经达到Chia的1%,部分指标像活跃地址已经达到了Chia的4.3%,表现非常不错,可能受益于Chives的空投和NFT市场发布。

下图是详细信息:

ItemNetwork SpaceActivity AddressMarketCap
Chives375161,7441,682,966
Chia32,7683,717,277219,656,024
Percentage1.15%4.35%0.76%

   Chives Blockchain的发展策略主要是跟随Chia的版本更新和升级,然后尽可能多的开发一些周边应用。主要目的是给Chives的用户提供一个尽可能方便和全面的使用体验。

  同时这些应用也兼顾到Chia的用户,共同发展和壮大整个Chia的生态环境。只有Chia发展壮大了,做为Chia的一个分叉,才能取得更好的发展空间。

2 Chives Blockchain主节点的源起

  “Chives 包含一个两层网络。第一层是由矿工组成的网络,为用户提供资金收发服务,防止双花。第二层由组成网络的主节点组成,为Chives网络提供独特的性能支持。

  主节点系统也称为服务证明(PoSe),因为主节点的本质是为整个Chives网络提供关键服务。整个 Chives 网络由主节点监督。如果矿工试图拥有所有区块奖励或运行旧版本的 Chives 软件,主节点网络将隔离该区块并阻止它被添加到区块链中。”

  Chives 主节点的概念主要来自于DASH COIN。在传统的BITCOIN架构体系中,挖矿并不需要运行一个全节点,只需要运行第三方的挖矿软件,接入对应的POOL就可以进行挖矿。因为挖矿不需要运行全节点,导致整个区块链网络的全节点数量很少,从而影响了整个区块链网络的安全和健康。

  DASH COIN给出的方案就是再增加一层主节点网络。给予这一部分的用户一些奖励,要求他们必须运行全节点,来维持网络的全节点数量。这些主节点的数量肯定要超过POOL的数量,所以当主节点进行软件升级的时候,必然会形成事实上面的多数,从而强迫其它少数节点也一并进行软件的升级,从而使整个网络维持在最新的版本之上。

  Chives 网络跟DASHCOIN网络的不同之处在于Chives网络的矿工即使加入POOL,也是需要在本地运行一个全节点才能进行挖矿。所以Chives网络的全节点数量不会因为矿工加入POOL而减少。

  这个显著的区别,造成了强制Chives 主节点运行一个全节点才能获得奖励变得多余。但是为了使Chives更加稳定和健康,决定还是按当初的设想,要求每一个主节点,运行一个全节点来扩大Chives网络的去中心程度。

3 Chives Blockchain主节点的奖励机制

       主节点的奖励机制跟DASH COIN保持一致,45%的区块奖励归所有的主节点。

       但是两者也有很大的区别。DASH COIN的出块时间为10分钟,在这10分钟时间之内,可以让所有的节点完成主节点网络异动信息的同步工作,从而可以使主节点奖励的发放放到COINBASE中去处理。而Chives 的出块时间大约为18秒,这个时间太短,根本无法在18秒之内完成主节点网络异动信息的同步工作。正是因为这个区别,导致了Chives网络主节点奖励的发放变得异常复杂和困难。

       这些难点总结如下:

       1 奖励的发放不能放在COINBASE中处理,因为区块产生的速度太快,在18秒内无法同步所有主节点状态的变化,从而也就没有办法得到一个准确的奖励清单。

       2 需要有一定的时间,比如10分钟时间,来让所有节点同步主节点信息的变化。这样的话,就需要有一个缓存池来缓存这些奖励。

       3 当缓存池收到这些奖励进行累积,当累积超过3000XCC(每10分钟32个区块,每个区块45%的奖励,合计2880XCC,大约3000XCC)的时候。就需要启动发送机制,把这些奖励发送给所有主节点的奖励地址。

       4 同时要求主节点奖励地址的发送间隔为至少6分钟。

       5 当网络空间增长过快,区块的出块速度增加,奖励余额在6分钟之内增加到3000XCC的时候,将会在6分钟的时候进行发送主节点奖励。如果区块的出块速度过慢,就需要一直等到累计到3000XCC的时候,进行发送奖励。

       6 会有一个专门的服务来监控这一过程的执行。

4 Chives Blockchain主节点奖励缓存池

       1 缓存池将是一个标准的COIN钱包,公开私钥,公钥和地址。

       2 这个地址下面所有的COIN,只能发给自己或是主节点中的奖励地址,不能发送给其它任何地址,这个会在代码中进行检查和校验,以防止恶意的转账操作。

       3 转账的过程就是一个标准的钱包转账操作。

       4 强制所有的输入COIN均为这个缓存池的地址,所有的输出只能所有主节点的奖励地址和缓存池的地址本身,不允许其它的转账地址出来。

       5 转出方的金额必须是3000XCC,所有接收方的金额必须是相同的。

       6 所有主节点奖励地址的奖励金额必须是一样的。

       7 转账过程中所有主节点的奖励地址至少包括10个区块以前的所有主节点的奖励地址。

       8 要求至少留下1XCC做为手续费,以便于增加交易优先级。

       9 当对主节点的奖励地址进行奖励发放的时候,不对TX的大小做出限制,这样就可以支持超大TX的交易,如2000个汇款地址,以便于完成对所有主节点奖励地址的一次性转账操作。

       10 上述规则均需要在提交内存池和区块头和区块BODY的部分进行合法性校验。

       11 如何把COIN转入缓存池中,这一部分的原理跟现有的10%社区奖励的机制一致。

5 Chives Blockchain 主节点注册和注销

       1 当需要注册主节点的时候,需要使用钱包,先构建一个金额为100000 XCC的COIN。

       2 使用这个100000XCC的COIN来铸造一个NFT,同时把获得奖励的地址和质押的地址写入到NFT里面,此时NFT处于有效状态。

       3 当注销主节点时,直接退还质押XCC,无需对此NFT做出改变。

       4 当服务进程过滤NFT列表得到质押地址的时候,会对该质押地址的余额进行实时判断,达到质押要求,才计入有效的主节点。如果余额为0,但是取消质押的区块和现有区块高度差小于10,则允许打包进入区块。

       5 过滤NFT列表的进程,将会一个单独的服务,每10分钟全新过滤一次,数据存储在数据库中,以供前端GUI调取。但是在构建转账交易的时候,将会实时获取最新的质押数据和奖励地址。

6 Chives Blockchain 主节点关键数据

       1 需要额外部署AWS服务器,拥有公网IP。

       2 主节点的质押金额为100000XCC。

       3 主节点45%的奖励将会先转入缓存池,再由缓存池发放给主节点。

       4 缓存池的密钥是公开的。

       5 将会有一系列的限制,来防止缓存池的XCC被恶意转走。

       6 主节点使用NFT来做为数据存储层,同时会缓存到数据库里面。

       7 测试网发布时间:2022-05

       8 预计主网发布时间:2022-06