月亮链 月亮链
Ctrl+D收藏月亮链

WIN:星际联盟解读 Filecoin中的WinningPoSt是什么?区块奖励是如何产生的?_MINIDOGEPRO币

作者:

时间:1900/1/1 0:00:00

概述:

WinningPoSt是Filecoin网络奖励存储提供者的机制,旨在构建一个安全、高效、可靠地分布式存储网络。

Winning代表出块权,Post就是在获得出块权时需要提交的时空证明。当存储提供者通过EC共识的leader竞选算法成功赢得出块权后,便要进行WinningPoSt挑战。WinningPoSt挑战的答案必须在短时间内提交,使得存储提供者来不及通过密封找到挑战的答案,以此保证挑战者存储了指定数据副本。证明答案会放进区块中,每个成功创建区块并被主链认可的存储提供者会得到FIL奖励,并且在区块中打包消息,可以收取其他Filecoin参与者的费用。如果存储提供者未能及时提交时空证明,便会失去本次打包区块的机会,但不会受到任何惩罚。

本文将详细分析Lotus代码中WinningPost以及EC共识的设计。

源码分析

(基于Lotusv1.11.1)

1.启动

使用lotus-minerinit初始化一个miner,该miner将主要负责两个任务,一个是worker的调度,另一个Mining协程就是负责出块。

2.m.mine()

typeMiningBasestruct{

??TipSet???*types.TipSet

??NullRoundsabi.ChainEpoch//从Base到当前高度,没有产生区块的轮次数

}

go?m.doWinPoStWarmup()??//唤醒WinningPoSt,log记录本次唤醒时长

派拉蒙影业公司将构建《星际迷航》NFT市场:金色财经报道,派拉蒙影业公司和Recur合作创建了一个名为 Paramount.xyz 的NFT平台,并发布《星际迷航》NFT,《星际迷航》的 NFT 将描述“算法生成的星舰”,能以每包 250 美元的低价购买。每包里面都有一艘船,但是只有 11% 的概率看起来像是Enterprise。这些飞船被存放在派拉蒙称为“Star Trek Continuum”的地方,该公司将其描述为“一个体验式中心,它将容纳这第一季和所有未来季的《星际迷航》NFTs”。根据派拉蒙的路线图,在“未来的季节”将涉及收集船员和做一些模糊的、未确定的任务。[2022/4/7 14:09:14]

For{

?For{

???Prebase=GetBestMiningCandidate??//获取最优Tipset

???如果base和prebase的高度、nullrounds相同,则退出循环进行出块??//如果此时拿到的不是最优Tipset,出块会形成孤块

???waitFunc??//等待一个网络传播延迟

???api.BeaconGetEntry(prebase.TipSet.Height()+prebase.NullRounds+1)?//等待能够获得最新回合的随机信标

???Base=prebase?

?}

?b=m.mineone()??//竞选Winner

?SyncSubmitBlock(b)//将新创建的区块通过PubSub同步到网络上

}

首先,Filecoin是一个由Tipset组成的链,一个高度对应一个Tipset,Tipset包含了对应高度生成的区块,目前一个高度预期出块数约为5,如果在一个高度没有人出块,则称为空Tipset。

星际AI量化交易系统于3月3日正式上线:据官方消息,2021年3月3日,星际AI量化交易系统(Interstar AI)正式上线,将提供多个交易所API绑定,多种币对供用户选择,多种智能量化策略逐步开放供用户使用,实现稳健收益。

星际AI量化交易系统是Space数字资产生态应用旗下的智能量化系统。用户只需在阿波罗交易所获取SEC后转入星际AI系统,然后使用SEC/USDT获取月卡或年卡,同时在星际AI里绑定自身交易所API授权即可启动智能量化交易。[2021/3/2 18:07:54]

Mine函数使用了两层循环,里面一层是为了获取最优Tipset,最优Tipset是指从当前轮次向前推,上一个非空的完整的Tipset,称为base,每有一个空Tipset,base.NullRounds加1。但由于产生空Tipset的概率非常低,一般情况下NullRounds值为0。外层是获取最优Tipset后开始竞选Winner,竞选的成功率基于泊松分布,如果竞选成功并创建区块同步到网络上,该区块被主链认可后,便能得到FIL奖励。

3.m.mineone()

//获取Base的基本信息,包括Miner和全网算力、需要抽取的sector信息、用于生成随机数的Beacon

MinerGetBaseInfo()?

????//获取900个高度前的Tipset

????GetLookbackTipSetForRound?

computeTicket()

????//依次写入base回合随机信标、加密类型、上一轮次和Miner地址计算Hash

????Store.DrawRandoness

????ComputeVRF?//使用私钥给Hash值签名,生成一段可验证的VRF输出

IsRoundWinner()

????//依次写入本轮的随机信标、加密类型、当前轮次和Miner地址计算Hash

首届Filecoin大矿工测试竞赛结束,星际大陆夺得第一:9月15日06:00,首届Filecoin大矿工测试竞赛圆满结束,全网有效算力为230PiB,为初始目标(100PiB)的2.3倍。矿工排名方面,星际大陆以21.61PiB的成绩排名第一,石榴矿池排名第二。单个矿工节点方面,智合云的矿工节点获得第一。[2020/9/15]

????Store.DrawRandoness?

???//若某Miner成功赢得选举提交区块,其他Miner可以通过提交的VRF输出判断winner是否符合条件

???ComputeVRF?

???//计算赢得的奖励数,算法基于泊松分布

???ComputeWinCount(MinerPower,NetworkPower)

???//抽取一个Sector,并计算该Sector上的66个叶子的CommR

???ComputeProof()

api.MpoolSelect()→CreateBlock()//从消息池中挑选一些Message打包成区块

MinerGetBaseInfo获取用于出块的基本信息,需要注意的是其中GetLookbackTipSetForRound获取了900个高度前的那个Tipset,因为此时可以认为该Tipset在链上的状态是稳定的,几乎不可能处于分叉链上。用于出块的Miner算力、全网算力、抽查扇区和worker均是基于900个高度前的Tipset,而不是当前的情况。

其中抽查扇区逻辑使用cgo调用rust函数generate_winning_post_sector_challenge实现,具体如下:

letmuthasher=Sha256::new();

hasher.update(AsRef::<>::as_ref(&prover_id));

hasher.update(AsRef::<>::as_ref(&randomness));

天河星际获颁“新时代品牌强国蓝海工程”牌匾:据IPFS100.com报道,8月29日,“新基建、新存储”2020数据能源高峰论坛暨天河星际周年庆典在长沙成功举办,在本次活动中《焦点关注》栏目制片人卞丽霞亲临现场为天河星际颁发“新时代品牌强国蓝海工程”牌匾,畅谈新基建分布式存储区块链技术,为大数据融合提供强大的存储支持。据悉。在本次IPFS——Filecoin大矿工测试奖励中天河星际单T产出领先,天河星际将借助权威媒体资源,树立中国品牌形象。[2020/8/31]

hasher.update(&n.to_le_bytes());

lethash=hasher.finalize();

letsector_challenge=LittleEndian::read_u64(&hash);

letsector_index=sector_challenge%sector_set_len;

其将prove_id、随机数和抽查扇区类型做sha256的hash计算,计算结果与扇区数取模,得到结果就是抽查的扇区ID。

这里选择抽查扇区ID时引入了随机数,随机数的生成基于DRand协议。DRand是一个公开的可验证随机信标协议,使用基于BLS的(t,n)-阈值签名方案。简单来说,就是生成n份签名,只需要收集到其中t份签名就能重构出完整的BLS签名,Filecoin使用blake2b散列算法将签名转换为一个256bit的字符串。drand轮数和Filecoin高度之间存在映射关系,在winning竞选前,MinerGetBaseInfo函数以当前高度和base高度为入参,得到相对应的DRand轮数来获取随机信标。如果DRand信标中断则会打断Filecoin区块的产生,期间Miner只能发布空块。不过DRand分发恢复后会快速产生drand值赶上当前回合,从而快速的恢复Filecoin区块生产。

ComputeTicket得到的Ticket存放到创建的区块中,用于该区块在Tipset中的排序,Ticket最小的优先级最高,其打包的消息会被优先执行。

声音 | 《星际迷航》主演:以太坊去了比特币还未去过的地方:《星际迷航》主演加拿大演员William Shatner发推文称,以太坊去了比特币还未去过的地方。此前2018年William Shatner曾表示过支持V神。[2019/9/5]

ComputeProof会调用Rust函数fil_generate_winning_post生成时空证明。该函数也引入了随机数,以从上述ID对应的扇区抽查随机的66个叶子节点,验证是否可以正确计算出CommR和Merkle树根。

EC共识

区块链世界中,千千万万个Miner夜以继日的工作为的就是取得出块权,分配出块权的机制称为共识,像Bitcoin使用的是PoW工作量证明,谁先算出哈希难题,谁就有权出块得到奖励。

上面的mineone代码逻辑中包含了Filecoin中最为重要的共识协议称为EC共识(ExpectedConsensus)。EC共识采用非交互的方式来选举leader,即每个节点私下进行运算,如果运算成功,提交一个证明即可。在每个Epoch开始时,所有的存储提供者都会运行一次leader选举,选举中它们做的是同一道题,计算量不大,只是每个人的参数不同,预期指定数量的参与者代入参数后答案不为0,竞选成功获得出块权。EC共识保证了竞选获胜者是随机的,获胜的几率仅仅与他们自身的算力大小相关,目前每一轮全网预期获胜数为5,并且EC共识的计算量很小,是一个绿色环保的共识机制,使得存储提供者更愿意投入存储空间而不是计算力。

1.泊松分布

X服从参数为λ的泊松分布,则概率分布为

期望E(X)=λ,λ很小时的泊松分布图像如下

2.ComputeWinCount函数

Lhs?=blake2b.Sum256(ep.VRFProof).Int??//获取一个随机数,位于[0,2^256)

λ=power/totalpower*5?//λ很小时,泊松分布图像如上图所示

Rhs(j)=1-P(X=0)-p(X=1)-…-p(X=j)??*2^256

for(j=0;Lhs<Rhs(j)&&j<15;j++);

Wincount=j;

代码的逻辑是当Lhs>=Rhs(j)或j>=15时退出循环,Wincount=j

不难理解,wincount=0概率为p(0),以此类推,wincount=i的概率为p(i)

∴Wincount~P(λ)

3.WinCount

E(Wincount(p))=λ=p/t?*5

矿工的算力越大,获得的Wincount期望越高

E(Wincount(2p))=2p/?5≈2p/t?5=2E(Wincount(p))?

由于单个矿工的算力相对于全网总算力非常小,所以wincount的期望与矿工的算力线性相关,矿工拆分算力获得的奖励和不拆分获得的奖励几乎是一样的

又设单个旷工算力为Pi,则全网wincount总期望为

所以每个Epoch全网预计wincount为5

4.出块率

当Wincount≠0时,Miner便能获得出块权。Wincount>0时,Miner虽然只出一个块,但可以获得多份奖励,Wincount的和会被计入Tipset的权重中

9月8日全网总算力为10.4388EiB,得出块率和算力的关系图像如下

当Miner算力小于500PiB时,出块率和算力大小几乎成正比,每PiB获得出块权的概率约为0.00046。随着全网算力持续增长,单P出块率正持续下降。以8月8号为例,当日全网算力为8.77EiB计算得当日单P出块率为0.00054,仅仅一个月的时间,单P产量就下降了15%,另外当前全网存储总量已经超过了基线要求,有效算力高速增长致使出块的奖励也在减少,所以越早加入Filecoin网络,获取的收益率越高。

5.共识错误惩罚

出于利益,存储提供者可能会选择无视共识协议,试图分叉链,影响协议的公平性。为此,Filecoin为共识错误攻击设置了相当严重的惩罚。

如在同一个区块高度连续发布多个区块,就可能触发共识攻击惩罚。根据合约ReportConsensusFault,一旦出现共识错误攻击,所有网络节点均可报告,检验属实将会导致攻击者接下来7.5个小时不能出块,pre消息不能上链,并扣除一个区块奖励,举报者可以获得惩罚的1/20。

总结

Filecoin中每30秒存储提供者竞争一次出块权,全网预期赢得的区块奖励数为5。每个存储提供者出块的几率仅与自身的算力大小相关,当算力小于500PiB时,出块率和算力大小几乎成正比。此外,存储提供者拆分算力和不拆分获得的奖励几乎是一致的。获得出块权后需要对一个随机扇区的随机66个叶子节点进行验证,并挑选消息打包区块同步到网络上,被主链认可后便能获得区块奖励。

Filecoin使用了绿色环保的EC共识机制,有效的激励存储提供者积极封装算力,为分布式存储的未来不断添砖加瓦。而目前单P产量正处于快速下降中,对于存储提供者来说,越早的加入Filecoin网络才能获得更高的收益率,而对于整个项目来说,这表明正有越来越多的人参与到Filecoin网络的建设,有助于项目的长期发展和价值提升,未来的局面也越发令人期待!

标签:WINNERMININEWingStepTokenRunnerMINIDOGEPRO币kine币是哪个国家的

莱特币价格热门资讯
比特币:晚间必读5篇 | “天价”NFT背后隐忧:大崩盘可能来的更迅猛?_True Dollar Finance

1.SBF的造富效应有多强:研究了80个项目发现了这些SBF以及AlamedaResearch有哪些投资亮点,在今年投资了哪些项目,又有哪些项目已经发行代币,哪些项目尚未发行.

1900/1/1 0:00:00
ROLL:为何 Rollups + 数据分片是实现百万 TPS 的唯一途径?_CoinControllerCash

支持Rollups+数据分片(datashards)的理由是,二者的结合更加安全和去中心化。但这只是故事的一部分.

1900/1/1 0:00:00
区块链:晚间必读5篇 | 为什么大家都想发行稳定币?_加密货币

1.金色前哨|盘点Arbitrum生态市值排名前5的项目9月1日,以太坊Layer2扩容网络Arbitrum宣布主网测试版本ArbitrumOne全面上线.

1900/1/1 0:00:00
NFT:金色DeFi日报 | SushiSwap社区治理人0xMaki:已从日常运营转变为顾问_PEFI价格

DeFi数据1.DeFi总市值:1370.19亿美元 DeFi总市值数据来源:Coingecko2.

1900/1/1 0:00:00
数字人:数字人民币在跨境支付领域带来新机遇_数字货币

编者按:近期,卡内基基金会发布一篇关于我国数字货币的工作论文,该文认为我国的数字货币在跨境支付领域有很多优势,具有发挥作用的很大空间,从而可以促进人民币国际化并规避美国利用美元进行的制裁.

1900/1/1 0:00:00
NFT:如何筛选NFT项目?如何规避风险?_AOW币

如果不懂NFT深层价值逻辑,就无法理解OpenSea日益高速增长的成交额,更无法理解Beeple的NFT卖出6900万美金,也无法理解CryptoPunks地板价高达129枚ETH.

1900/1/1 0:00:00