区块链系统是完全去中心化的运行方式,即系统自主运行发展,不容任何其他组织干扰。优秀的区块链系统应该是一个既去中心化又会自我繁荣的组织,而后者往往是最难达成的,放眼行业,不同的区块链系统纷纷给出了相应的解决方案,它们中绝大部分都通过设计精妙的激励机制来解决这个问题。激励机制如何设计,是现在很多区块链系统项目面临的一个难题,波场(TRON)作为目前区块链行业中最优秀的几个公链项目之一,也提出了一整套激励机制解决方案,并在实践中逐步加以创新和完善。
本文首先简单介绍区块链的一些基础知识,然后重点介绍波场(TRON)目前的激励机制,最后介绍TIP 53针对当前激励机制的优化,以期能够使读者对波场(TRON)的激励机制有一个直观的认识。
区块链本质上是一个分布式的存储系统,数据存储于被称为区块(block)的数据结构之中,一个一个的区块按照一定的顺序组织起来就形成了一种链式的结构。如果把区块链比作一本书,那么每一个区块都可以看作是书中的一页,每一页记录着数据,同时还有一个页码。在区块中我们将这个“页码”称作区块高度(block height),同时每个区块还有一个唯一的标记被称为区块哈希(block hash)。
我们已经了解到区块链本质上是一个数据库,自然会有两个疑问:区块链记录的数据从何而来?这个数据如何被存储到区块链之中?第一个问题很好回答,数据无非就是用户“输入”到区块链之中的,“输入”是大众化的说法,更科学的可以将“输入”理解为用户借助客户端构造一笔交易并向区块链网络广播之。第二个问题要相对复杂一些,交易会在网络中的节点中相互广播,因此在极短的时间内整个网络中绝大部分节点都会收到这些交易,网络中有选出一些节点具有将交易打包进区块中的权利,当一个区块被网络中绝大部分节点验证通过并保存在自己的数据副本之中以后,交易数据就随之被存储下来了。
此时,我们已经知道区块链数据大概的生成过程,而区块链的魅力在于其记录的数据不能被随意篡改,这使得区块链技术大放异彩。简单来说,区块链提供的数据不可篡改性特点是建立在一个多数节点诚信的基础之上。因为区块链数据会在每个运行着区块链系统的节点上都保留一个副本,修改一个或是几个节点上的数据并不能被网络中的其他节点所认可,在区块链网络中运行的节点数量非常多,并且各个节点的管理权属于全世界范围内许多组织、个人的情况下,想要同时修改绝大部分节点的数据几乎是不可能的,当然这是一个比较简单的描述,实际的情况还要复杂的多。
如果我们将区块链比做一本书,那么它就是一本永不完结的书,类似于新的书页不断地被添加到书中,区块随时都会被添加到现有区块链的中。那么此处的问题应该有两个方面:
谁有资格生产区块?
这个问题实际上描述的是区块生产的权利如何确定,波场中采用DPOS共识机制确定区块生产者(他们被称为见证人,Witness),关于DPOS的机制介绍将在其他文章中详细介绍。
有何动力生产区块?
这个问题可以等价于Witness通过完成区块生产的工作将可以获得什么收益,这是一个非常重要并且耐人讨论的问题。从直观上来讲,Witness进行区块生产工作必须要运行节点,那么势必会付出机器设备,网络带宽、人工等各项成本,区块链系统本身是一个去中心化的系统,并不被一个组织或者个人控制,或者是说并没有人为Witness付出的成本买单,而这恰恰是区块链系统需要通过良好的激励机制来要解决的问题。
从激励机制的表现形式上来讲,区块链系统发行了一套运行于区块链中的数字货币,这些数字货币对于区块链的作用就如同汽油对于汽车一样。使用区块链的用户需要通过购买这些数字货币进行付费,维护区块链系统运行的节点通过完成生产区块的工作获得相应的数字货币。通过数字货币这个媒介,完成了价值的确认和转移。基于区块链系统发行的数字货币,我们就构建了一个激励机制,对于Witness,他们完成了区块生产就可以获得相应的数字货币奖励,对于使用区块链的用户需要消耗数字货币来使用区块链系统中的功能。
首先基于奥德赛v3.6.2版本,介绍波场的激励机制。
波场网络中发行的数字货币称为波场币,英文代号为TRX,其初始发行总量为1000亿枚。波场网络的共识机制以DPOS为基础,任何持有TRX的用户都可以对波场网络中的Witness节点进行投票,每1个TRX对应1张选票,每个维护期中进行一次计票工作,排名在前27名为正式Witness节点(也被称为超级代表,Super Representative,SR),剩下的Witness节点为备选Witness节点(也被称为超级代表候选人,Super Representative Candidate,SRC).
波场网络中区块产生的时间是3秒,由于系统中设定每经过6个小时,进入一个维护期(Maintence period),每个维护期占用2个区块生产周期不生产区块。这样每天24小时生产的区块数量是 24 * 60 * 60 / 3 = 28800,故每天有2 * 4 = 8个区块生产周期被用做维护期,故每天实际生产的区块数量是 28800 - 8 = 28792个。
每个SR轮流承担生产区块的工作,SR每成功生产一个区块可以获得32TRX的奖励,称为出块奖励,记为;同时所有的SR和SRC按照得票数来分配16TRX的投票奖励,称为投票奖励,记为。
每天的总出块奖励(Block Reward)数量记为:
每天的总投票奖励(Vote Reward)数量记为:
(注:发放投票奖励时不会排除维护期占用的8个出块周期)
理论上,每天波场币TRX的增加量为出块奖励和投票奖励二者之和,记为:
在目前的波场网络中,奖励是发放给SR和SRC的,SR和SRC每24小时可以提取一次。
TIP53是社区为了改进和优化波场TRON激励机制所提出的建议,具体实现将发布于奥德赛v3.6.5版本,主要包含2个提案:
将奖励的方式由原来的奖励SR和SRC修改为直接奖励投票者(Voter),SR和SRC可以根据自己的成本和期望收益调节奖励的分配比例作为自己获得的佣金。之前奖励的发放过程是直接发放给SR和SRC,SR和SRC是否将奖励转发给投票者完全由他们来决定, 这样不能保障投票者获得收益的权利,而新的奖励发放方式直接按照投票的比例发给投票者,如果SR和SRC设置的佣金比例过高自然不能赢得投票者的选票,而且奖励数据和佣金比例都是保存在区块链上并可以被公开查询到。
降低出块奖励的数量,从每个区块奖励32TRX降低为16TRX;提高投票奖励的数量,从每个区块奖励16TRX提高为160TRX,随时可以根据实际的运行情况通过提案进行修改。
之前的激励机制,奖励发放给SR和SRC是在区块链上进行的,之后SR和SRC可以在链下自行决定是否将获得的奖励发放给投票人,也可以决定发放的比例,因此奖励发放给SR和SRC的过程是去中心化的并接受区块链的监督,而SR或者SRC将奖励发给投票者的过程是中心化的,因此投票者获得奖励的多少甚至是否能获得奖励都是不能被保证的。
新的激励机制将奖励的发放过程完全放到链上进行,是完全去中心化的。SR和SRC可以通过发送交易来设置佣金比例,这个比例可以在链上公开查询到,也是对SR进行综合评估的重要指标,投票者可以据此对SR投票。
结合目前每天用于奖励的TRX数量,以及当前全网总的投票数量88亿,我们可以计算每张选票一天的平均收益是:
。
采用TIP53提出的方案之后,每天用于奖励的TRX数量:
进而计算出每张选票一天的平均收益是:
对比可以看出选民可以获得更高的收益,这样会吸引更多的用户参与到波场网络的质押投票中。
DPOS:委托权益证明,是一种共识机制。
https://github.com/tronprotocol/tips/blob/master/tip-53.md
更多信息请关注:
https://github.com/tronprotocol