公链分析报告(10) - EOSForce

EOS FORCE

EOS FORCE相比EOS做了那些改进?

  1. EOS FORCE在EOS基础代码上的进行了很多改进。继承EOS映射完成后的账本余额的EOS主网,并具有升级版的共识规则,一票一投避免超级节点快速形成卡特尔联盟,允许超级节点以分红的方式吸引更多用户参与到社区治理中来,并在启动主网时尽量删掉了一些不必要的功能,使得整个网络更加稳定。

    EOS软件默认超级节点以任何方式参与用户分红,极大的削弱了用户参与社区治理的积极性,一票三十投的规则会迅速使头部超级节点联合投票,控制整条链,进而增加了产生双花的可能性。虽然社区多次讨论并提出了意见,但是依然无法达成一致。所以EOS FORCE修改了投票规则为一票一投。

  2. 支持为投票用户分红:

    • EOS代码对超级节点每年有1%的奖励,但严禁给投票用户分红,那普通用户的投票意愿就不强,全链币的投票比例就低,几个大户联合就可能操纵投票,影响选举从而进行分叉攻击,全链的安全性无法得到保证。
    • EOS FORCE每秒增发3个币,每年持续有94608000个EOS的奖励。超级节点可以独立设置自己的佣金比例,比如1%等。他们当选并出块后,就可以拿走每个块奖励的1%,剩余99%会进入每个节点的奖励池,用户根据自己的投票金额和投票时间的乘积得出“用户票龄”,再根据节点所有用户的“总票龄”,得出自己在奖励池中的分红占比,随时可以从奖励池中提取分红。用户每次提取分红后,“用户票龄”就会归0重新累计。
    • 如果全网只有3亿的币参与投票,那么这些人将平分94608000个EOS的奖励,年化利率接近30%。用户的年化利率随着投票参与率的升高而降低。随着币总量的上升,每年的奖励比例也会逐年下降。
    • EOS FORCE 主网的用户分红需要用户手动领取,这是为了减少频繁自动分发造成的大量运算资源,领取的快慢并不会影响分红数量。提取的分红会立即变成可用余额。
    • 用户在节点还是备选的状态下给节点投票,仍会累计贡献值,等到节点选中为超级节点后,与后续投票者一起共享节点奖励池。
  3. 一票只能投给一个节点:

    • EOS基础代码是一票30投,要求用户抵押一定的金额,比如1000个EOS,然后才获得投票权,挑选最多30个节点进行投票。这会造成超级节点间的拉帮结派,结盟进行相互投票,21个节点一旦形成联盟,他们相互投票后后续节点很难再进入,严重影响区块链网络的去中心化特性,而被这些联盟控制。同时用户不能根据对节点的信任程度对节点投不同数量的票。
    • EOS FORCE修改投票规则为一票一投,1个币只能投给某一个节点,但是可以给多个节点投不同数量的币。例如我有1000个EOS,节点A的佣金比例是1%,我投给他300个币,节点B的佣金比例是1.5%,我投给他100个币,最后我的可用余额剩余600个币,最终我会从这两个节点分别收获分红。
    • 用户还可以调整投票数量,增加投票或减少投票,如果是增加投票,则自动进行一次分红领取,并扣除可用余额。如果是减少投票,则也会自动进行一次分红领取,同时减少的币量会有3天的冻结时间,3天后,用户需要手动进行“解除冻结”操作,才能把投票金额变成可用余额。
  4. 稳定性高

    • EOS基础代码是0.5s一个块,一个节点连续出12个块,这种速度在全球性的分布式网络中并没有得到有效验证,网络的延迟会造成区块链分叉和停止。
    • EOS FORCE改为3s一个块,一个节点只出1个块。启动阶段速度不是网络的核心功能,等节点网络环境稳定了,各个超级节点也完成了前期训练,EOS FORCE会恢复0.5s的速度。
    • 启动阶段以追求稳定性为主:在此阶段,只有管理用户转账、投票、分红的系统合约,用户不能自主部署新合约。等链基础功能稳定后,再开放合约部署功能,开发者可以开发DAPP。
  5. 收取交易手续费

    • EOS基础代码需要用户抵押币来获取资源,从而竞争性地使用区块链,从而达到“免交易手续费”。但这其实是一种自欺欺人的操作,节点收获1%的年化奖励,而将用户的手续费转嫁为用户必须承担1%的年化通胀。而且如果是币少的用户,将无法与大户竞争资源,只能获得一点点的交易配额,而链又没有完善资源租赁和转让功能,导致这部分功能的稳定性比较低。
    • EOS FORCE恢复了交易手续费功能,为了防止链被DDOS。手续费金额无需用户指定,会自动从用户余额中扣除。由于用户获得了分红的权力,所有用户总体肯定还是“赚钱”的。
  6. 超级节点数变为23个

    • EOS的基础代码设置的21个超级节点数正好是3个整数倍,不好进行大于1/3否决,大于2/3通过的更新治理逻辑。
    • EOS FORCE修改超级节点为23个,收集够8票即可否决一个提案,收集够16票即可通过一个提案。同时这个数字关系也会用于不可逆区块的判定。
    • EOS FORCE 在创世块中默认会有23个引导节点,由预选的几个技术合作方负责,保证先启动主网。他们无法接受用户的选举投票,真正的超级节点需要自己进行注册,然后引导用户给自己投票,根据超级节点最新的选举排名,每天替换掉一个引导节点,23天后完成全网节点选举。
  7. 系统合约热更新

    • EOS基础代码的治理功能并不完善,白皮书中所说的宪法更新,合约治理,密钥替换等并没有开发完成。
    • EOS FORCE开发了简化版的系统合约升级功能,可以对系统参数、合约代码进行投票升级。
  8. 映射用户默认拥有用户名

    • EOS映射合约里只是EOS公钥,需要用户在激活时由其他已存在的用户手动设置用户名。有了用户名才可以进行链上交易,但这个代为创建的动作需要耗费手续费,映射用户也非常多。
    • EOS FORCE在创世块中直接为用户生成了用户名,以其公钥后12位为准,遇大写字母变小写字母,遇大于5的数字减5。映射用户省去了要求其他人代为激活的动作,导入私钥后就直接可以进行操作了。
  9. 采用分层主链的架构:

    • 结算层主链(资产记账) 计算层链(Token) 应用层链(DAPP)
    • 就EOSIO技术路线区块链举例,分层架构有如下优势。结算层主链基于简化版的EOSIO技术,性能可以保持在EOSIO的10倍,如果有一天EOSIO达到了百万TPS的初始愿景,那么结算层主链将达到数百万TPS,同时各条应用层链均可以保持百万TPS,都可以有自己宪法规则、资源发行规则等。结算层币承担计算层链Token的初始发行融资和大额记账工作,当应用层使用各类 DAPP时,可以进行跨链转账操作。结算层类似银行的核心系统只负责资产记账,实际的经济模式运转资金在银行外的电商系统一样。
    • EOSForce.io旨在提供比以前开发的任何协议更包容的平台, Eosforce将建立单个结算层主链和多个计算层侧链的分层架构。结算层主链承担结算层基础货币的主要功能,并支持发行结算层二级Token和各计算层侧链Coin。结算层将继续保持精简高效高安全性的定位,聚焦于资产记账和跨链交互逻辑。计算层将扩充网络技术栈,支持多种底层链技术和智能合约技术。 目前EOSForce.io主链已经支持智能合约开发,欢迎开发者一起交流和开发。

注意

  • 在EOS中一个transaction中包含很多个action,而在Eosforce中一个trx只能包括一个action。
  • Eosforce与EOS一个明显的不同是Eosforce采用了基于手续费的资源模型, 这种模型意味着,如果一个交易在超级节点打包进块时失败了,此时也要收取手续费,否则会造成潜在的攻击风险,所以Eosforce中,执行失败的交易也会写入区块中,这样每次执行时会调用对应onfee。 另一方面, Eosforce虽然使用手续费,但是还是区分cpu,net,ram资源,并且在大的限制上依然进行检查。 后续Eosforce会完成新的资源模型,这里会有所改动。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章