RSK と Ethereum で、毎年配当を支払う Solidity スマート コントラクトを構築したいと考えています。RSK と Ethereum の現在の平均ブロック間時間を想定して、ブロック時間を使用する必要がありますか、それともブロック番号に頼ることができますか?
1 に答える
RSK と Ethereum には、連鎖して実行されるトランク ブロックと、参照されるが実行されないアンクル ブロック (現在はオマーと呼ばれる) があります。RSK、イーサリアムともに難易度調整機能ありブロックの目標密度を維持しようとします (トランクとオムマーを含む)。言い換えれば、一定期間ごとにマイニングされた固定数のブロックです。RSK と Ethereum の調整機能は同じではありませんが、どちらもチェーン内のブロック間時間ではなく、ブロック密度を対象としています。したがって、マイニング ネットワークがより多くのオマー ブロックを生成する場合、一定期間に作成されるトランク ブロックの数は減少し、トランクの平均ブロック間時間は増加します。イーサリアムの場合、オマーの数は過去 5 年間で 5% から 40% の間で変動しましたが、過去 2 年間では 4% から 8% の間で比較的安定しています。これは、ブロック数に基づいて時間を測定する場合、+-2% のエラーに変換されます。ただし、イーサリアムでは、「<a href="https://docs.ethhub.io/questions-about-ethereum/what-is-the-difficulty-bomb/" rel="1ヶ月以内の短期間のみ使用。さらに重要なことは、イーサリアムが PoS に切り替わると、その時点で平均ブロック間隔が12 秒に減少することです。
ここでは、イーサリアムのオマーレートを示します: (出典: https://ycharts.com/indicators/ethereum_uncle_rate )
そして、これはイーサリアムの平均ブロック時間です: (出典: https://ycharts.com/indicators/ethereum_average_block_time )
スパイクは難易度爆弾によって引き起こされ、急激な減衰は爆弾を遅らせたハードフォークによって引き起こされます。
RSK では、ほとんどのマイナーは、マイニング プールの帯域幅を最小限に抑え、多数のオマーを作成するように構成されています。これは、設計によって許可され、奨励されています。また、ommer の数を最小限に抑え、より多くの帯域幅を消費するように構成することもできます。RSK は 33 秒ごとに約 2 ブロックの密度をターゲットにしています。現在、1 つのブロックは ommer であり、もう 1 つのブロックはトランクの一部です。RSK/Bitcoin マイナーが将来 ommer-minimizing モードに切り替えることを決定した場合、ommer はほとんど作成されず、平均トランク ブロック間隔は 16.5 秒に減少します (33 秒あたり 2 ブロックを不変に保つため)。これが、RSK のトランク ブロック間隔が現在非常に安定している場合でも、将来 (予告なしに) 22 秒から 16.5 秒に突然変更される可能性がある理由です。
一方、ノードはブロック時間が未来ではなく、親ブロック時間よりも前ではないことを確認するため、ブロック時間を簡単に偽造することはできません。また、RSK には、 RSK タイムスタンプをビットコイン タイムスタンプに結び付けるコンセンサス ルールがあり、マージマイニングによって生成されたバックデートまたはフォワードデートのビットコイン ブロックは無効になるため、不正行為は非常に高くつきます。
こちらは2018年6月から2021年3月までのRSKの平均ブロック時間と平均おじさん率です。X軸はブロック数を示しています。
グラフの各ドットは 1 日を表しています。ブロック間隔はおじさん率と高い相関があることがわかります。
EVM オペコード NUMBER (ブロックの高さを取得するために使用) は、ommer を考慮せずにトランク ブロックの数を返します。結果として、返された値を使用してすべてのタイプのブロックをカウントすることはできません。ただし、新しいオペコード OMMERCOUNT を追加して、現在のブロックまでに参照された ommer の総数を問い合わせることができます。NUMBER とともに、これらのオペコードを使用して、時間の経過をより適切に近似することができます。