• 简体版 | 繁體版
  • 联系我们
  • 加入我们
  • 关于我们
  •  
  • 首页
  • 快讯
  • 价值号
  • 视频
  • 专题
  • 深度
  • 入驻价值号
  • 碳链APP
    微信公众号

    扫码下载App

  • 登录
  • 微信公众号

    微信公众号

导航
  • 首页
  • 快讯
  • 区块链+
  • 价值号
  • 视频
  • 专题
  • DeFi优选
碳链价值APP
专注服务于金融科技和区块链
立即打开

Filecoin中的WinningPoSt是什么?区块奖励是如何产生的?

IPFS星际联盟IPFS星际联盟  •  2021-09-13
星际联盟带您了解 Filecoin中的WinningPoSt是什么?区块奖励是如何产生的?

概述:

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

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

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

源码分析

(基于Lotus v1.11.1)

1. 启动

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

2. m.mine()

type MiningBase struct {

TipSet *types.TipSet

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

}

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

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。

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

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实现,具体如下:

let mut hasher = Sha256::new();

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

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

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

let hash = hasher.finalize();

let sector_challenge = LittleEndian::read_u64(&hash[..8]);

let sector_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最小的优先级最高,其打包的消息会被优先执行。

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

EC共识

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

上面的mineone代码逻辑中包含了Filecoin中最为重要的共识协议称为EC共识(Expected Consensus)。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/(t+p)∗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网络的建设,有助于项目的长期发展和价值提升,未来的局面也越发令人期待!

展开全文
打开碳链价值APP  查看更多精彩资讯
声明:本文内容为作者独立观点,不代表碳链价值立场,且不构成任何投资理财建议。
0 0
Filecoin

扫一扫,分享到微信

相关推荐

从FVM上线前的测试网统计报告中看前景,Filecoin将会迎来什么变化? 价值号

从FVM上线前的测试网统计报告中看前景,Filecoin将会迎来什么变化?

Web3践行者 2023-03-10 价值号
FVMFilecoinIPFSFIL
Hyperspace测试网的数据统计一方面是FVM的提前演练,另一方面也能看看合约处理的水准如何
DC真实数据都有哪些?Filecoin为DC数据存储的解决方案又是什么? 价值号

DC真实数据都有哪些?Filecoin为DC数据存储的解决方案又是什么?

Web3践行者 2023-03-03 价值号
FilecoinDC数据存储
数据来源于生活和工作,真实有效的数据需要存储和查询,如何高效长久地存储也是去中心化存储提供商Filecoin的工作内容
Filecoin:不是你该玩的东西 滚动

Filecoin:不是你该玩的东西

星空价值投资 2022-07-02 滚动
Filecoin
整个市场历经了公链、DeFi、BTC突破6.9K、NFT几次浩浩荡荡的行情以后,反倒是Filcion在国内散户中表现出了独一档的影响力。

碳链快讯更多 ›

2023-03-22

Telegram 支持用户在聊天中发送 USDT

2023-03-22

英媒:硅谷银行首席风险官空缺长达8个月

2023-03-22

BitRock Capital 拟于第三季度完成 1 亿美元新基金募集,将投资 SaaS 及 Web3 领域

2023-03-22

俄罗斯加密交易所 Bitzlato 现允许用户最多提取 50% 比特币

2023-03-22

Race Capital 完成 1.81 亿美元二期基金募资,已投资 10 个项目

2023-03-22

OneCoin 前合规负责人被引渡美国受审,恐面临 40 年监禁

2023-03-22

韩国游戏巨头 Nexon 宣布在 Polygon 上推出 NFT 游戏 MapleStory Universe

2023-03-22

富士通提交涵盖数种加密货币服务的商标申请

2023-03-22

白宫公开抨击数字资产给消费者和整个美国金融体系带来风险

2023-03-22

数字资产交易公司 Crossover Markets 获得 635 万美元的种子资金

2023-03-22

Cathie Wood 的 Ark ETF 出售 1350 万美元的 Coinbase 股票

2023-03-22

索尼已申请 NFT 相关专利,支持 NFT 在不同的游戏和平台转移

2023-03-22

加密初创公司 Turnkey 从红杉资本和 Coinbase 获得 750 万美元种子轮融资

2023-03-22

美国参议员敦促监管机构对加密公司的「虚假审计」采取行动

2023-03-22

Magic Eden 推出比特币 NFT 市场

2023-03-22

Sushi DAO 收到美国 SEC 传票

2023-03-21

美国国税局正考虑是否对 NFT 征税

2023-03-21

谷歌宣布推出人工智能机器人Bard 与ChatGPT展开竞争

2023-03-21

链游开发商CCP Games完成4000万美元融资,a16z领投

2023-03-21

比特大陆开启披萨节庆贺活动,可铸造NFT快速交易算力

2023-03-21

Coinbase 主管:以太坊上约 11.5 亿美元的资金已永久丢失

2023-03-21

Coinbase 向美 SEC 提交请愿书,强调加密质押服务不应按证券法处理

2023-03-21

Coinbase:目前 ChatGPT 执行的自动代币审查还没有达到安全标准

2023-03-21

红杉资本开放 Arc Europe 申请,以帮助 Pre-seed 和种子阶段公司发展

2023-03-21

马斯克:美联储本周至少需要降低50个基点

2023-03-21

Coinbase:已停止使用 Signature 数字支付平台 Signet,正寻找新的技术提供商

2023-03-21

土耳其加密交易所 Metatime 完成 1100 万美元的种子轮融资

2023-03-21

Aavegotchi 开发商 Pixelcraft Studios 获 3000 万美元代币融资

2023-03-20

ARK 分析师:比特币等加密货币像银行业崩溃时的「避风港」

2023-03-20

伯恩斯坦:银行业动荡为加密发展提供完美环境,近期涨势或由「加密原生资金」推动

2023-03-20

现货黄金站上2000美元/盎司,为2022年3月来首次

2023-03-20

阿里云将于4月面向开发人员及企业推出Web3安全工具

2023-03-20

瑞信:将确保业务经营活动正常有序开展,继续实施各项重组措施

2023-03-20

元宇宙游戏Star Life获得德国联邦经济事务与气候行动部120万美元融资

2023-03-20

香港财库局许正宇:金管局正研究「稳定币」监管制度,拟于2024年实施相关监管

2023-03-20

百度:文心一言云服务将于3月27日上线

2023-03-20

MakerDAO 创始人发布治理改革提案,旨在提升治理效率、透明度和包容度

2023-03-20

纽约社区银行旗下子公司已收购 Signature Bank

2023-03-20

TTV Capital 旗下第六支基金完成 2.5 亿美元募资,投资范围涵盖 Web3 等金融科技领域

2023-03-20

台湾金融监管委员会或成虚拟货币主管机关,最快 3 月底对外宣布

2023-03-20

数家美国加密友好银行倒闭以来,BTC-EUR交易量占比达历史高点

2023-03-20

新加坡金管局:准备提供流动性以确保稳定,瑞信客户将继续拥有完全访问权限

2023-03-20

Arthur Hayes:美联储向其他国家央行提供美元互换额度是一种救助方法

2023-03-20

机构:美联储的行动是另一种形式的QE并且脱离剧本

2023-03-20

比特币 Layer2 网络 Stacks 已激活 2.1 版本,提高挖矿效率并升级 Clarity 语言

2023-03-20

FDIC:纽约社区银行集团子公司将承接签名银行的过渡银行存款

2023-03-20

委内瑞拉将重组国家加密货币资产监管机构

2023-03-20

纽约社区银行正在寻求购买签名银行

2023-03-20

瑞银集团宣布以32.5亿美元收购瑞信

2023-03-19

DefiLlama 创始人:控制推特和域名的人决定发行代币,团队已推出分叉网站 Llama.Fi

推荐文章

  • 元宇宙土地:数字房地产为什么值钱?

    2022-06-03

  • 创始人自述:我是如何从零开始构建一个投资DAO?

    2022-06-03

  • 从监管视角解析NFT如何赋能实体产业

    2022-06-02

  • 来自 a16z 联合创始人的加密课程:Web3 应该从 Web1 学到些什么?

    2022-06-02

  • Consensys:代币设计和发行的 30 个注意事项

    2022-06-01

价值号更多 ›

吉时通信
吉时通信
文章: 133
  • 以太坊合并:如何影响显卡和区块链行业?
  • 以太坊合并的底层观察:区块结构和MEV
  • 宏观视角解析LUNA和UST崩盘:稳定币的路在何方?
链集市ChainMarket
链集市ChainMarket
文章: 177
  • 区块链产业周刊丨全球区块链商业委员会与全球数字金融合并;最高人民法院发布区块链司法应用相关意见;蚂蚁链区块链应用专利获国家授权
  • 区块链将如何帮助我们解决气候问题?
  • 区块链产业周刊丨国家级数据云平台“人民云”正式上线;徐工机械成立包含区块链技术的国重实验室;欧盟推进数字欧元发展阶段
Unitimes
Unitimes
文章: 380
  • 深度研究:如何设计代币经济学框架?
  • 创作者经济:正统性危机之下的变革之路
  • 哈佛商业评论:Web3的机遇和挑战
换一批

热门标签

新基建 比特币 以太坊 矿业 DeFi 共识对话 区块链+ 研报 美联储 央行数字货币 无限QE 加密衍生品 AI 云计算 大数据 5G 政策 交易所 稳定币 电子支付 Libra 算力产业 联盟链 公链 区块链 加密货币 Nervos Cosmos EOS STO

邮件订阅

及时、全面、专业、准确的资讯与数据,致力于为区块链爱好者以及数字货币投资者提供最好的服务。

App内打开

邮件订阅

及时、全面、专业、准确的资讯与数据,致力于为区块链爱好者以及数字货币投资者提供最好的服务。

Moshou

碳链价值是集资讯、行情、数据于一身的区块链信息服务平台,我们追求及时、全面、专业、精确的资讯与数据,致力于为区块链创新者和数字货币投资者提供优质的服务。

关于我们 加入我们 联系我们 隐私条款
微信公众号

扫一扫关注微信公众号

Copyright © 2018-2020 碳链价值 京ICP备18046423号
下载碳链App

下载碳链App

微信公众号

微信公众号

微信公众号

微信公众号

打赏文章作者

支付宝打赏二维码 支付宝扫一扫打赏
微信打赏二维码 微信扫一扫打赏

# 热门搜索 #

CBDC 比特币 DeFi 以太坊 区块链