これは起源ブロックからの秒数で表される。・ブロックを生成した口座の識別子及び公開鍵。・親ブロックの識別子と要約値。ブロックに格納されている取引の数。・ブロックに格納されている取引の額面の合計。・ブロックに格納されている取引のデータ。・ブロックのペイロードの長さ。ブロックのペイロードの要約値。signature)。・ブロック全体の署名。difficulty)。ブロックを生成する権利を獲得するために、活動的な口座は所与の基底目標値より小さい要約値を生成しようとする(訳注:基底目標値ではなく、目標値の間違いであると思われる。活動的な口座は所与の目標値より小さい要約値を生成しようとする)。この基底目標値はブロック毎に異なり、親ブロックの基底目標値にそのブロックを生成するのに要した時間を掛けたものである(訳注:ここではこのように書かれているが、実際はブロックを生成するのに要した時間ではなく、ブロックを生成するのに要した時間を仕様上のブロック生成間隔と比べた割合であると思われる。Nxtのブロック生成間隔は60秒だが、実際のブロックを生成するのに要した時間が45秒であった場合、割合は0.75となる)。balance)に基づいて次のように計算される。BeTが目標値である。Tbは基底目標値である。Sは親ブロックが生成されてから経過した秒数である。Beは口座の実効的な残高である。この計算式から分かるように、目標値は親ブロックの時刻印の時刻から1秒毎に大きくなる。10^17であり、最小の目標値は親ブロックの基底目標値の半分である。この目標値と基底目標値は特定の高さのブロックを生成しようとする全ての口座で同じものである。基底目標値から次のように計算される。TbDcbが現在のブロックの累積難易度である。Dpbは親ブロックの累積難易度である。Tbは現在のブロックの基底目標値である。生成アルゴリズムブロックには生成署名という情報が含まれている。ブロック生成に参加するために、活動的な口座は自身の公開鍵で親ブロックの生成署名を署名する(訳注:公開鍵ではなく、秘密鍵ではないだろうか)。作成された64バイトの署名からSHA256により要約値を計算する。この要約値の先頭8バイトを口座の当たりくじ(hit)とする(訳注:当たりくじと呼ばれているにもかかわらず、この時点ではまだ「当たり」かどうかは確定していない)。当たりくじの値は現在の目標値と比較され、当たりくじの値の方が目標値より小さい場合には、親ブロックの次のブロックを生成することができる。目標値の項で書いたように、目標値は親ブロックの時刻印の時刻から1秒毎に大きくなる。ネットワークに活動的な口座がほんの少ししかない場合であっても、時間が経過すれば目標値は非常に大きくなるので、最終的には何れかの口座がブロックを生成できるようになる。このことから分かるのは、任意の口座の当たりくじの値と目標値を比較すれば、その口座がブロックを生成できるようになるまでに要する時間を推定できるということである。これは重要な点である。どのノードでもあらゆる活動的な口座の実効的な残高を調べることができ、全ての口座の当たりくじの値を計算することもできる。これはどのノードでもまあまあの精度でどの口座が次にブロックを生成する権利を獲得するか予測できるということを意味する。そのため、次にブロックを生成する権利を獲得する口座に残高を移動する攻撃を仕掛けることができる。attack)と言う。そのため、Nxtでは残高がブロック生成に貢献できるようになるためには1440ブロックそのままで待たなければならないようになっている(これが口座の実効的な残高である)。興味深いことに、次のブロックの基底目標値を十分な精度で予測することはできない。そのため、次のブロックをどの口座が生成するか決定する近決定論的な過程はより将来のブロックに関して予測しようとすればするほど確率論的になる。algorithm)の開発と実装の基礎を形成するのに役立つ。このアルゴリズムはまだ完全に実装されておらず、Nxtネットワークにおいてこのアルゴリズムが与えるであろう影響は大きいため、これに関しては別の文書において概説されることになるだろう。forgingという論文を参照してほしい。活動的な口座がブロックを生成する権利を獲得した場合には、新しいブロックに最大で255個のまだブロックに格納されていない取引を格納し、ブロックの頭部に必要な全ての情報を格納する。このブロックはブロックチェーンを構成するブロックの候補としてネットワークに送信される。ペイロードの値や生成口座やブロックの全ての署名はネットワークでブロックを受け取った全てのノードが検証する。同じ高さの複数のブロックが生成された場合には、ノードは最も高い累積難易度を有するブロックを正当なブロックとして選択する。ブロックのデータはピアの間で共有されるため、分岐が検出されたら累積難易度が低い方が取り除かれる。pizyumiプログラミング歴19年のベテランプログラマー。業務システム全般何でも作れます。現在はWeb系の技術を勉強中。コメントをキャンセルメールアドレスが公開されることはありません。唐突ですが、私には夢があります。#1「情報を制する者は世界を制す」をモットーに様々な情報を提供することを目指すブログです。現在はプログラミング関連情報が多めですが、投資関連情報も取り扱っていきたいです。