LotusPoSt の一部が、キャンペーン PoSt から 2 つの新しい PoSt に変更されました。1 つはwinnerPoStで、もう 1 つはwindowPoStです。 まずはwinningPoStについてお話しましょう。名前の通り、winningPoStは勝利時のPoStです。勝利はブロック権を獲得することを意味します。 簡単に言えば、 winningPoSt はランダムにチェックされたセクターであり、その中でランダムに選択された 66 個の Merkle パスが正しい可能性があります。それでは、コードのロジックについてお話ししましょう。 Lotus コードより。すべては lotus/miner/miner.go の Miner 構造内のmineOne 関数のブロックから始まります。 func (m *Miner) mineOne(ctx context.Context, addr address.Address, base *MiningBase) (*types.BlockMsg, error) {mbi, err := m.api.MinerGetBaseInfo(ctx, addr, round, base.TipSet.Key())rand, err := m.api.ChainGetRandomness(ctx, base.TipSet.Key(), crypto.DomainSeparationTag_WinningPoStChallengeSeed, base.TipSet.Height()+base.NullRounds, nil) その中で、 MinerGetBaseInfo 関数は、抽出する必要があるセクター情報などのいくつかの基本情報を取得するために使用されます。 ComputeProof 関数は、winningPoSt 証明を計算するために使用されます。 このロジックの具体的な実装は、rust-fil-proofs (つまり、rust 言語) で実装されているためです。 Rust から Rust へ、多くのインターフェースが交差します: rust-fil-proofs によって提供される 2 つの API 関数のみが導入され、中間インターフェースは導入されません。 チャレンジするセクターの数とリーフの合計数は、rust-fil-proofs/filecoin-proofs/src/constant.rs で定義されています。 pub const WINNING_POST_CHALLENGE_COUNT:usize = 66; つまり、有効なセクターからセクターが抽出され、そのセクター上でチャレンジ対象となる 66 個のリーフ ノードが選択されます。 generate_winning_post_sector_challenge 関数は、部門のチャレンジ ロジックを実装します。コアロジックポイントで部門を確認するにはどうすればいいですか?具体的なロジックは次のとおりです。 fallback::generate_sector_challenges 関数内: mut hasher = Sha256::new() とします。 つまり、 random_provider_id の random_information とセクターの乱数を使用して sha256 ハッシュ値を計算します。計算結果は、現在の制限されたセクター数を法として算出されます。つまり、sector_index は最終クエリのセクター ID です。 generate_winning_post は、選択されたセクターで構成される Merkle ツリー (replica_r_last) 上のリーフ ノードをチェックします。チャレンジ リーフ ノードの計算ロジックは、 fallback::generate_leaf_challenge 関数によって実装されます。 mut hasher = Sha256::new() とします。 ランダム情報、セクター ID、チャレンジ リーフ番号をハッシュします。結果は葉の総数を法として計算されます。 32G セクターには 1G のリーフがあります。 ゼロ知識証明の計算部分は、rust-fil-proofs/post/fallback ディレクトリで確認できます。 rust/background/fallback/circuit.rs のセクター構造に関する議論。この構造は挑戦的です。合成関数から次のことがわかります。 // 1. comm_r を検証する comm_r をパブリック入力として使用し、その他の comm_r_last と comm_c をプライベート入力として使用します。 // 1. H(Comm_C || comm_r_last) == comm_r を検証する comm_r が comm_c と comm_r_last から計算されていることを確認します。 // 2. 包含パスを検証する for(i,(leaf,path))in leafs.iter().zip(paths.iter()).enumerate() { リーフ ノードが Merkle ツリーのルートを正しく計算できることを確認します。 Lotus PoSt は、 winningPoSt と windowPoSt の2 つの部分で構成されます。 WinningPoSt は、ブロック権限を取得するときに提供する必要がある PoSt 証明書です。すべての有効なセクターからセクターを抽出し、そのセクターの 66 枚の葉に挑戦します。 - 終わり - |
<<: 425万フィルの報酬はいつ開始されますか?当局者はこう語った。「起動時間についてはマイナーが最終決定権を持つ!」
>>: [Filecoinに関する100の質問と回答(写真付き)] 質問27:Tipsetとは何ですか?
最近、Smart Square チームは新しいアプリケーションである分散型マーケット [P2P Ta...
Ethereum 2.0とは何ですか? Ethereum 2.0 (ETH 2 または「Seren...
各市(州)発展改革委員会、四川省国家電網電力公司、四川省エネルギー投資グループ有限公司、四川省石炭産...
世界中の多くの国々にとって、地元経済が崩壊する中、これは非常に困難な時期です。ウクライナもその1つで...
スタンフォード大学はニューヨーク大学とデューク大学に加わり、ビットコインに関するコースを提供する予...
ビットコインを保有するのは再びクールです。ドナルド・トランプ米大統領が米国を「世界の暗号通貨の中心地...
編集者注: 著者の Erik Voorhees 氏は、デジタル資産取引所 ShapeShift.io...
電球、ビット、バイトコンピューター内のすべてのデータは 0 または 1 で構成され、データの最小単位...
著者 |ハシピ分析チーム...
デジタル通貨市場は今週末、好調な上昇を見せ、ビットコインは土曜日の午後に再び史上最高値(ATH)を更...
MinexCoin (MNC) は、ボラティリティの低い暗号通貨に基づくグローバル決済システムであり...
巨大な暗号通貨市場に参加したことのない部外者が抱く最も深い感情とは何でしょうか?その答えは、グラフィ...
史上初のASICビットコインマイニングチップを開発したCanaan Creative社が、ブロックチ...
Googleは、今年上半期にロシア居住者が検索した暗号通貨関連のキーワードを分析した。ビットコイン、...