私たちが提案するプロトコル
このセクションでは、前のセクションで述べた要件を満たすために RANDAO プロトコルに基づいて構築された提案について説明します。
私たちのプロトコルには、RANDAO ラウンドとして知られるプロセスが含まれており、前述の 3 つのフェーズで構成されます。 RANDAO ラウンドの結果はランドシードであり、スマート コントラクトによって乱数を生成するために使用されます。
このプロトコルでは、コミット フェーズとリビール フェーズのそれぞれの期間は N 単位の時間であり、N は構成可能なパラメータです。時間単位の長さも構成可能で、秒単位またはブロック数で測定できます。たとえば、RNGDAO での実装では、1 単位時間は 1 ブロックに相当し、約 1 秒かかると予想されます。
この設定では、RANDAO ラウンドの継続時間は 2N 単位です。最初の RANDAO ラウンドは時間 T(0) に始まり、2 番目のラウンドは時間 T(1) に始まります。 T(n) と T(n+1) の差は、正確に 1 単位の時間です。これは RANDAO パイプラインとして知られており、並行して実行される複数の RANDAO ラウンドで構成されます。各 RANDAO ラウンドには 2 つの隣接するラウンドがあり、最初のラウンドを除き、1 つは 1 単位時間早く始まり、もう 1 つは 1 単位時間後に始まります。
RANDAO パイプラインでは、単位時間ごとに新しい RANDAO ラウンドが開始されます。時間 T(2N-1) 以降、RANDAO ラウンドも単位時間ごとに終了します。これは、RANDAO パイプラインが時間単位ごとにランドシードを生成できることを意味します。時間単位の継続時間がブロックの継続時間以下の場合、プロトコルはブロックごとに乱数を生成できます。
当事者が提案されたプロトコルに参加すると、単一の RANDAO ラウンドだけでなく、アクティブなすべてのラウンドに参加することになります。 sha3(s) 値を送信する場合、トランザクションには、まだコミット段階にあるすべてのアクティブなラウンドの複数の値が含まれます。同様に、値を公開する場合、トランザクションには公開フェーズにあり、以前にコミットされたすべてのラウンドの複数の値が含まれます。
Last updated