目前大多数去中心化应用都具有分红功能,因为分红能够帮助应用吸引新用户加入,增强老用户粘性。不同于不断抬高售价的简单资金盘功能,分红功能实现比较复杂。本文主要讲解目前流行的资金盘分红功能,以及如何实现。
什么是分红
分红就是通过已投入的资金来对后流入资金的收取红利。一般会定义分红比例,每笔流入资金会拿出分红比例的金额最为分红,放入分红池。这笔资金由当时所有已有资金平均分配。这样,先投入的资金,除了获得应用本身提供的价值为,还可以源源不断的获得后来资金的红利,越早投入收益越大,极大地提高了用户加入的积极性。一个典型的例子就是EOS曾经的现象级应用 - 像素大师。
为什么分红实现困难
应用可以接受多个用户的资金,每个用户可以多次投入资金。每笔投资都应平均分配给当时已存的资金,用户的每笔投资享受的红利开始时刻都不相同。下面举例说明这个过程。
应用APP具有分红功能,分红比例为10%。用户1,用户2,用户3分别调用应用APP各投入3笔资金。资金投入顺序及每次分红计算如下表所示,粗体数字表示每笔资金投入后计算的用户数据。
次序 | 用户 | 投入金额 | 累计投入金额 | 分红金额 | 用户1累计投入额 | 用户2累计投入额 | 用户3累计投入额 | 用户1本次分红额 | 用户2本次分红额 | 用户3本次分红额 |
---|---|---|---|---|---|---|---|---|---|---|
1 | 1 | 100 | 100 | 10 | 100 | 0 | 0 | 10 | 0 | 0 |
2 | 2 | 100 | 200 | 10 | 100 | 100 | 0 | 5 | 5 | 0 |
3 | 3 | 200 | 400 | 20 | 100 | 100 | 200 | 5 | 5 | 10 |
4 | 2 | 100 | 500 | 10 | 100 | 200 | 200 | 2 | 4 | 4 |
5 | 3 | 300 | 800 | 30 | 100 | 200 | 500 | 3.75 | 7.5 | 18.75 |
6 | 1 | 200 | 1000 | 20 | 300 | 200 | 500 | 6 | 4 | 10 |
7 | 3 | 250 | 1250 | 25 | 300 | 200 | 750 | 6 | 4 | 15 |
8 | 2 | 250 | 1500 | 25 | 300 | 450 | 750 | 5 | 7.5 | 12.5 |
1500 | 150 | 42.75 | 37 | 70.25 |
当用户数众多,交易频繁时,计算每笔交易分红变得非常困难。即使在中心化系统中,完成它也需要耗费很多资源,更不要说要在去中心化的区块链应用中实现。目前区块链操作无法支持复杂运算,否则会严重影响出块速度和系统响应。
如何实现分红
【区块链|区块链应用如何实现资金盘分红】实现区块链应用分红关键有两点
- 变推为拉 - 采用拉代替推模式,让用户主动提取分红,而非应用发放分红给用户。
- 考虑每笔投入 - 针对每笔投入资金计算全局分红,而不计算每个用户分红。但由于每笔金额只能享受它后面资金的分红,这里的重点是需要扣除它前面的全局分红值。
- 定义总投入金额
total_amount
,分红比例profit_percent
,以及总分红金额profit_amount
- 定义单位分红值
profit_per_amount
,即profit_amount / total_amount
的单位分红额度。 - 定义用户投入金额
user_amount
,此值基于用户,每个用户的可能都不同。 - 定义用户的分红扣除金额
user_profit_mask
, 此值基于用户,每个用户的可能都不同。 - 每次用户投入资金后,假设投入资金为
amount1
,做如下操作
5.1 计算总投入金额,total_amount = total_amount + amount1
5.2 计算总分红值,profit_amount = profit_amount + amount1 * profit_percent
5.3 计算本次投入的扣除分红值,
user_profit_mask = user_profit_mask + amount1 * user_profit_mask
5.4 计算单位分红值,profit_per_amount = profit_per_amount + profit_amount / total_amount
5.5 计算用户投入金额,user_amount = user_amount + amount1
- 用户提取分红时,做如下操作
6.1 计算用户分红值,user_profit_amount = user_amount * profit_per_amount - user_profit_mask
6.2 如果值大于0,将其转账给用户,同时更新分红扣除值,
user_profit_mask = user_profit_mask + user_profit_amount
次序 | 用户 | 投入金额 | 累计投入金额 | 分红金额 | 单位分红值 | 用户1累计投入额 | 用户2累计投入额 | 用户3累计投入额 | 用户1扣除分红额 | 用户2扣除分红额 | 用户3扣除分红额 |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | 1 | 100 | 100 | 10 | 0.10000000 | 100 | 0 | 0 | 0 | 0 | 0 |
2 | 2 | 100 | 200 | 10 | 0.15000000 | 100 | 100 | 0 | 0 | 10 | 0 |
3 | 3 | 200 | 400 | 20 | 0.20000000 | 100 | 100 | 200 | 0 | 10 | 30 |
4 | 2 | 100 | 500 | 10 | 0.22000000 | 100 | 200 | 200 | 0 | 30 | 30 |
5 | 3 | 300 | 800 | 30 | 0.25750000 | 100 | 200 | 500 | 0 | 30 | 96 |
6 | 1 | 200 | 1000 | 20 | 0.27750000 | 300 | 200 | 500 | 51.5 | 30 | 96 |
7 | 3 | 250 | 1250 | 25 | 0.29750000 | 300 | 200 | 750 | 51.5 | 30 | 165.375 |
8 | 2 | 250 | 1500 | 25 | 0.31416667 | 300 | 450 | 750 | 51.5 | 104.375 | 165.375 |
用户1分红 | 42.75 | 用户2分红 | 37 | 用户3分红 | 70.25 |
推荐阅读
- 推动NFT走出监管困境,BSN推出支持NFT基础设施网络
- 腾讯|SaaS的收入模型有哪些(终于有人讲明白了)
- 就业方向上什么才是最重要的(--- 来自程序猿的迷茫。(C++?Java?or算法?))
- 区块链中加密货币的含义
- 波场万倍潜力币HYL23号21:09分 正式上线JustSwap
- 《瀚兰房地产开发区块链应用及案例分享》BSN培训精华回顾
- 对联盟链而言,跨链协议为什么重要()
- 区块链能够应用在哪些行业
- BSN区块链服务网络中密钥托管模式和公钥上传模式有啥区别()
- 币圈人物传|币圈大佬今何在 唯有一诺正当时