Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

向doc/公共数据挖矿介绍.md的品论 #13

Open
fulldecent opened this issue Aug 20, 2024 · 1 comment
Open

向doc/公共数据挖矿介绍.md的品论 #13

fulldecent opened this issue Aug 20, 2024 · 1 comment

Comments

@fulldecent
Copy link
Collaborator

关于:https://github.com/buckyos/DCRM/blob/23acce641f1095bbcb5ee59e3281c65727a276cf/doc/%E5%85%AC%E5%85%B1%E6%95%B0%E6%8D%AE%E6%8C%96%E7%9F%BF%E4%BB%8B%E7%BB%8D.md


大图

我理解游戏大部分是这么玩的:

sequenceDiagram
    participant Sponsor
    participant Public Data Contract
    participant Supplier
    participant Data Owner
    
    Sponsor->>Public Data Contract: 充入第一笔GWT余额 sponsorPublicData()
    Supplier->>Public Data Contract: 质押GWT成为Supplier supplyStorage()
    Supplier->>Public Data Contract: SHOW公开数据 showPublicData()
    
    Note over Public Data Contract: 本轮竞赛结束
    
    Public Data Contract->>Supplier: $GWT 80%
    Public Data Contract->>Sponsor: $GWT prize
    Public Data Contract->>Supplier: $GWT prize
    Public Data Contract->>Data Owner: $GWT prize
Loading

角色

  1. 应为“Sponsor......通常是第一个将NFT加入到公共数据合约中的用户”那不就是说Sponsor和Data Owner是同一个人吗?如果Data Owner是个多余的角色那就会无价值的复杂。
  2. 一个人可以存所有的数据再拿所有奖金但是他的服务器都没有上线让用户下载文件。

安全

  1. 这一句”如果在一个nonce_block上两个Supplier都SHOW了同一个数据“在依赖区块链没有竞争条件。

Hash

  1. 我没懂怎么会“虚假SHOW”。每一次SHOW都会通过Merkle认证。应该无法作假。
  2. 该hash过程能不能飞速把巨大一件空白文件hash了?这样可以拿奖池也不用存什么。
  3. “一方面来自于算力奖励”这个是PoW???
  4. NONCE怎么来的?是Storage方想到的的还是关于上一代的BLOCKHASH?

押金

  1. 如果Sponsor在一号付了30天的押金然后Supplier28号来pledge了,该Sponsor还是会付30天的费用吗?
  2. showType好像是多余的。
@waterflier
Copy link
Member

waterflier commented Aug 20, 2024

DataOwner的角色有逻辑上存在的必须性,今天有大量数据的版权方对Web3还不理解,我们的规则里给他们先保留了利益,后面他们加入生态后也会比较容易接受。有这个角色也建立了一些NFT社区和我们合作的基础。而且DataOwner不会因为公共数据存储规则而改变,是一个稳定的有利益的角色,DataOwner才是整个生态最long term的参与者。

一个人可以存所有的数据再拿所有奖金但是他的服务器都没有上线让用户下载文件。

如果有这样的人,他是需要消耗大量的质押币的。当前的合约是围绕存储证明的,并不会激励传输(这和ARwave一样),目前确实不能保证数据的可用性问题。目前我们所有的公共数据都是需要通过DMC DAO审核的,因此所有数据至少在DMC基金会的服务器上都会有一份,我们也会同步提供这些数据的多种协议的下载链接。而且从AR的经验来看,大玩家(大的持币用户)会为整个Token的健康,响应号召,提供一些上传能力。按计划下一个阶段有了传输证明和对应的激励体系,可以根本上改进公共数据的可用问题

这一句”如果在一个nonce_block上两个Supplier都SHOW了同一个数据“在依赖区块链没有竞争条件
我没懂怎么会“虚假SHOW”。每一次SHOW都会通过Merkle认证。应该无法作假。

存储证明的本质是要求矿工在确定时间里回答一个问题,所以一个区块只有一个问题,一旦有人回答了,后面的人可以抄答案的。除非他的答案更好,答案更好就说明前面的矿工的答案是错的。

该hash过程能不能飞速把巨大一件空白文件hash了?这样可以拿奖池也不用存什么。

如果公共数据列表里存在基于算法构建的文件,让每一个数据分片都相同,确实存在这个问题。不过我们目前的机制,处于公共数据列表的数据都是经过DMC DAO规则审核过的。而且基于现在的经济模型,做这种事情的收益不高。

一方面来自于算力奖励”这个是PoW

对公共数据来说,如果一个矿工对一个公共数据提交了1次以上的存储证明,那么在提交存储证明的时候就可以根据和上一次存储证明之间的时间差计算算力,并得到一定的奖励。存储算力的共识非常简单,就是 大小时长质押率, 算力再乘以一个当前的奖励比例的结果就是算力奖励了。详细可参考这个文档:

https://github.com/buckyos/DCRM/blob/main/doc/economic_sim/dmcx_economic_sim.ipynb

NONCE怎么来的?是Storage方想到的的还是关于上一代的BLOCKHASH?

提交存储证明的时候需要指定一个base_block_index,这个index和存储证明上链的block_index不能差距太大(目前是3个块,在XLayer上大概是15秒时间),然后合约里的验证算法会根据base_block_index的block.hash来得到nonce.

如果Sponsor在一号付了30天的押金然后Supplier28号来pledge了,该Sponsor还是会付30天的费用吗?

Sponsor在首次创建公共数据的时候,需要根据一个最小存储周期来计算其给公共数据充值的金额。其底层逻辑是认为Sponsor自己是拥有这个数据的第一个副本的。但这个质押和supplier的质押是两回事,Supplier的质押只要自己没有SHOW假的存储证明,就可以在一定时间后解锁取回。而Sponosr的充值是成为了公共数据的余额,是无法取回的(所以Spnosr在经济模型里也有更多的利益分成)

showType好像是多余的。

showType的引入本质上还是和“基于博弈的存储证明”有关,按设计,一个存储证明只有在挑战超时后才是有效的,此时用户才应该可以得到“展示存储证明的收益”,但考虑到这会带来多一次的合约调用,因此我们支持立即模式:用户只需要给出更多的质押币(相当于其预期收入的2倍),就可以立刻拿走本次SHOW的所有收益。 选择哪种模式取决于用户的金融策略。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants