下图是什么意思呢?
是的,你猜对了,垃圾交易!非常非常多,铺天盖地。
自我们的主网启动以来,我们检测到大量垃圾交易攻击:
- 域名注册或“域名抢注”:在NKN域名服务上“免费”注册超过7,000个热门域名(例如apple.com)。
- 订阅垃圾交易:包括订阅数量和数据大小两方面的垃圾信息。
- GenerateID垃圾交易:浪费了数百万个NKN ID,同时填满了每个节点的交易池。
这导致的后果:
- 所有节点的计算和内存需求都会大量持续增加:由于要处理的交易数量太多,因此内存少于1GB的节点会有时出现内存不足错误,导致这些节点重新启动。
- 区块链数据存储的大量持续增长:区块链数据文件每周增加近1GB。这太快了,如果一些节点只有8-16GB的磁盘空间,则会使这些节点无法正常运行。
NKN的解决方案
每个区块链项目都面临着一个微妙的权衡。一方面,您希望提供免费交易以刺激用户和应用程序的采用和增长。另一方面,您需要对抗垃圾交易和DDoS攻击,并对矿工支付合理报酬确保每个人都能根据他们消耗的资源来付费。
因此,NKN的核心开发团队经过慎重的考虑,并且咨询社区,采用新的提案(NKP)流程,制定了以下解决方案(技术和经济两方面):
- [NKP-0012]限制订阅元数据大小
- [NKP-0008]收取域名登记费
- 限制每个块中包含的免费/低成本交易数量
- 限制每个块中包含的免费/低成本交易的总存储大小
- 将这些费用分配给矿工或挖矿奖金地址(MBA)
通过引入这些经济政策和技术限制条款,即使无法根除,也能显著增加攻击成本。自从我们主网v1.0.8版以来,垃圾交易和DDoS攻击的影响已大大减少。但是,它也会带来一些副作用:
- 一键部署:加入网络的初始过程可能需要几个小时,在某些情况下甚至更长。为了使新节点加入网络,必须创建GenerateID。但是,账户余额为0的NKN新节点因为无法支付费用, 将无法快速创建GenerateID。
- D-Chat和Pub/Sub用户:新用户无法立即加入群组或频道,直到他们有一些NKN来支付订阅交易费用。(无法支付费用的用户加入频道时间将延长而不是完全无法加入)
核心开发团队和社区开发人员都在努力减少或消除应用障碍,特别是对于刚刚加入NKN网络并且还没有任何NKN代币的用户/客户。具体措施如下:
- NKN水龙头功能:为应用开发者,NKN客户端和用户,以及合作伙伴分发少量的免费NKN代币
- nknX.org快速部署:当用户通过nknx.org的快速部署方法成功部署NKN节点后,他们将自动获得少量免费$NKN以便马上加入网络。
- D-Chat水龙头和小费功能:当新用户加入D-Chat时,可以通过水龙头申请或现有会员给小费的两种机制来获得少量免费NKN。然后就可以使用新获得的NKN加入不同的频道和小组。
什么时候应该付费?所收费用会付给谁?
支付费用的时间:
- 在第一次启动时为新节点生成ID
- 将一些NKN代币从一个钱包到另一个钱包进行转账
- 使用NKN的发布/订阅服务订阅新主题(例如,在D-Chat中加入新的聊天组)
- 注册一个新的域名,例如SamAdams.nkn
费用会付给谁?
- 矿工:所有的交易手续费
- MBA(挖矿奖金地址):域名注册费
如何设置各种交易费率?
我们的主配置文件(nkn根目录中的config.json)是您可以设置和修改费用的地方。我们已经在软件中加入了默认值,应该涵盖大多数情况。但是,如果您更喜欢自定义这些设置,请参阅config.json的完整指南。
- NumLowFeeTxnPerBlock
矿工愿意在每个区块内包含的低费用交易数量。 0表示没有限制,默认值为0。
- LowFeeTxnSizePerBlock
所有低费用交易的每个块的最大允许大小(以字节为单位)。 0表示没有限制。默认值为4096。
- MinTxnFee
此节点的每笔交易的最低可接受费用(以NKN为单位)。如果交易中包含的费用低于此费用,则此交易将被视为低费用txn,并且适用低费用txn规则。默认值为0.1。
- RegisterIDRegFee
此节点愿意为GenerateID支付的注册费。
- RegisterIDTxnFee
此节点愿意接受的交易费用,以将此GenerateID包含在块中。默认值为0,但我们建议使用类似1(相当于0.00000001 NKN)的值。
下一步措施:
我们同时也有其他计划来进一步加强对垃圾交易的防范,详见以下NKP:
- [NKP-0014]使用PoW防止GenerateID txn垃圾交易
- [NKP-0015]删除僵尸ID以减少数据库大小
- 实施状态修剪以显著减少区块链数据库大小
- 将有效期和注册费添加到NKN域名服务中
如果[NKP-00014]和[NKP-0015]通过并实施,攻击将在很大程度上被遏制,新矿工也不一定需要支付费用才能加入。相反,他们需要在加入之前等待并解决一些加密计算(自动)。这个过程对大多数矿工来说都是透明的,因此会是比付费更好的用户体验。
从长远来看,我们还计划实施“快速同步”模式,以便节点只需要获取并存储最新的状态+最近的区块历史记录,而不是完整的区块历史记录。这样可以大大减少区块链数据库的大小,进一步节省矿工的存储成本。
关于NKN
NKN是一个完全去中心化,基于网络传输量工作证明,可支持千万级规模节点共识的区块链系统。由NKN所构建的这样一个有经济模型所驱动,社区共建共享的新型点对点网络,为开发者提供了一个开放、便捷、高效和安全的网络连接传输平台。基于NKN开发的各种应用将给终端用户带来各种全新的网络体验。
主页: https://nkn.org
邮箱: [email protected]
论坛: https://forum.nkn.org
Telegram: https://t.me/nknorg
Twitter: https://twitter.com/NKN_ORG
Medium: https://medium.com/nknetwork
Discord: https://discord.gg/yVCWmkC