2020年9月27日日曜日

あたらしいブロックチェーン8

「従来の」ブロックチェーンのヘッダーについて説明する。ヘッダーに格納されているデータにおいて、あたらしいブロックチェーンでは、2つの親ブロックのハッシュ値を格納している点が従来のブロックチェーンと異なる。(従来は1つ)

この説明は、ジェネシスブロックにも基本該当する。(ジェネシスブロックゆえの一部例外もある) 

●ブロックの構造
ブロックは、大きく分けて2種類のデータで構成されている。

1、そのブロックに関する情報(メタデータ)を含むブロックヘッダ
2、そのブロックに含まれるトランザクションのリスト

ブロックヘッダ詳細

サイズフィールド名説明
4バイトVersionソフトウェア/プロトコルのバージョン
32バイトPrevious Block Hash親ブロック(1つ前のブロック)のハッシュ値
32バイトMerkle Rootブロック内の全トランザクションに対するマークルツリーのルートハッシュ
4バイトTimestampブロックの生成時刻
4バイトDifficulty Targetブロック生成時のproof of workのdifficulty
4バイトNonceproof of workで用いるカウンタ


●直前のブロックのハッシュ値

ハッシュ値とは規則性のない固定長の値を吐き出す乱数のことです。

●マークルルート

マークルルートは先ほども解説したブロックヘッダに含まれる情報。これは、ブロック内の全てのトランザクションをまとめた要約値です。

●タイムスタンプ

ブロックの生成時刻。ブロックがいつ作られ、承認されたということがタイムスタンプとして生成される。

●ビッツ

マイニングの難易度を表すための表現方法。 ビッツを用いて算出される目標値をブロックヘッダのダブルハッシュの数値が下回った場合のみ、マイニングが成功する。

●ナンス

ナンスとは、ワンタイムトークンと言われ、リクエストが正当なものであるかどうかを見極めるためのものとして、ブロックチェーン上で、マイニングの際に使用されています。




あたらしいブロックチェーン7

取引データをまとめる、マークルツリー・マークルルート の概念を説明する。ブロックヘッダーにどのようにデータを格納、または連携させているか説明している。

マークルツリーの基本は2つのデータを1つにまとめる。AとBという2つのデータがあるとする。Aのハッシュ、Bのハッシュをそれぞれ計算します。このAのハッシュ、Bのハッシュそれぞれをまとめた値のハッシュが頂点の値になる。

マークルツリーが実際に使われる場合は、たいてい複数段のツリー構造で構成されており、2段、3段と2個づつハッシュをまとめていきます。最終的に得られた頂点のハッシュ値はマークルルートと呼びます。 



2020年9月26日土曜日

ゼロリスクを求めすぎない

 マスクをした方がいい。しないのは非常識。コロナ禍の東京からの帰省とか 当たり前や常識といえることがある。しかし、人によっては事情がありそうできない場合もある。当たり前のことを声高らかに言うことは容易だ、社会においては、そこから漏れる人もいる、日本ではこうだけど海外では違うとか「常識」もさまざまだ 。また他人に強制するものでもない。多様化の時代、年代による常識の差、国や地域。過敏になりすぎるのも問題だ。

プロジェクトを推進していく上でリスクは排除していいのは当たりまえではある。しかしグループ間、担当者間、会社間においては、ゼロリスクを追究しすぎるとギクシャクする。「信用していないのか」「じゃあかってにしろ」的な関係になってしまう場合もある。それがまた大きなリスクとなる。システムに対するリスクと人間に関するリスクはマネージメントのポリシーが異なる。

虻蜂(あぶはち)取らず

 虻蜂(あぶはち)取らず ある大臣と役人との間でつかわれた言葉だ。私は、数十年生きてきたが聞いたことも使ったこともなかった言葉だ。
興味があったので由来を検索してみた。
場所は、蜘蛛の巣でおこった。主役は当然蜘蛛だ。蜘蛛の巣に虻と蜂がかかった。蜘蛛はもがく虻と蜂の間を右往左往して結局両方取り逃がしてしまう。という話だ。同様の内容の故事はあるがこの例えは、欲を出して結果を出せない的要素が強調されているようだ。
蛇足だが、虻も蜂も似ている。虻は刺さないが蜂は刺す。こういうことが関連するのかな。と初めて聞いたときはそう思った。まったく関係なかった。(笑)

志を貫くこと

 周囲の評価や環境の変化、よって志を自ら閉ざしてしまうことはもったいない。私の例で恐縮であるが、良い話を聴いたことがない。不徳の致すところかもしれないと反省はするが。かといって外部評価がすべてではないしコロナ禍のように予測もしない逆境もある。自分を厳しく戒める、自己評価することは有用であるが、外部評価だけによって方向を決めてしまうのは早計だ。もちろん外部評価は意見として受け入れることも大切であるが。

同プロジェクトに新しく参画した若手に仕事を説明して任せた。その返しにXXさんはこの仕事のどれだけ担当してくれるのですか?平たくいえば半分やってね。的な話だ。ジェネレーションギャップを感じた。

あたらしいブロックチェーン5

 説明のために、ブロックチェーンの構造と、格納するデータを区別して説明する。あくまで説明上の便宜のため。ブロックチェーン自体のデータ構造には実際のデータは格納されておらず、そのデータのハッシュを格納していることを説明している。従来と本サイトで説明する新方式ともデータの格納は同一でも実装できる。

※取引データとブロックチェーンデータ構造の関係性(現行)

直線状の データ構造に対して取りきデータが接続されている。

ブロックの対して取引データが接続されている。



あたらしいブロックチェーン6

 ブロックチェーンでは、ビットコインにおいては取引の記録を「ブロック」と呼ばれる記録の塊に格納する。生成されたブロックが、時系列の順番で連結されていくデータ構造が、ブロックチェーンと呼ばれる理由である。一つのブロックの中には、代表的以下の値がで構成されている。

(1)一定期間ごとの取引データのハッシュ(マークルルート)

(2)前ブロックのハッシュ

(3)ナンス値と呼ばれる任意の数値


●取引(格納)データ

取引データとは文字通り、ビットコインにおいては、利用されるブロックチェーンのある特定の取引に関する情報の固まりのことである。ビットコイン・ブロックチェーンの場合、取引データには、送金額などの取引情報が含まれる。ブロックは10分間に1回の頻度で生成され、この間の取引データがブロックに格納される。ブロックチェーンをチェーン状の形を構成するのブロックには、実際に取引データは格納されていない。その代わりそのデータのハッシュを格納している。このブロックのハッシュ値をブロックチェーンのデータ構造では、マークルルートとして格納している。ここではこれを「実データのハッシュ」と呼ぶ。

●前ブロックのハッシュ値

ハッシュ値とは、元となるデータから一定の計算方法によって求められる規則性のない固定長の値のことを指す。元のデータからハッシュ値を求める操作のことをハッシュ関数と呼ぶ。ハッシュ関数は、同じデータからは必ず同じハッシュ値が得られるが、少しでも異なるデータからはまったく異なるハッシュ値が得られる仕組みになっている。

●ナンス値

ナンス値とは、「number used once」の略称であり、使い捨ての数字のことを意味する。ナンス値自体には特段の意味はないものの、ブロックチェーンの場合、ナンス値に応じて、後続するブロックで使用するハッシュ値が変化する点が重要である。ブロック全体のデータ構造は、「取引データ」+「前ブロックのハッシュ値」+「ナンス値」から構成されるが、このうち、「取引データ」+「前ブロックのハッシュ値」の部分はすでに決定しているため、後続するブロックに使用するハッシュ値を決定するために変化させることができる要素は、ナンス値のみとなる。

新規のブロックを追加できる条件として、「ブロックのハッシュ値が一定の条件(※ハッシュ値の最初に一定以上のゼロが続くこと)を満たすものになることが必要」というルールが定められており、新規のブロックを追加するためには、この条件を満たすハッシュ値を生成するようなナンス値を見つけ出す必要がある。


■2個のハッシュ値(あたらしいブロックチェーンの特徴)

チェーン型のデータ構造を構成するために「前ブロックのハッシュ」が格納されている。1次元の線状の現行のブロックチェーンには、データ構造構成のための「前ブロックのハッシュ」は1つである。あたらしいブロックチェーンは、連結する前ブロックは複数あるため「前世代のブロックのハッシュ」となる。

本件は、この「前世代のブロックのハッシュ」を複数(2個)格納し、1次元でなく網状の2次元の構成と実現する。この2次元のデータ構造をジェネシスブロックを複数円状に利用し3次元のチューブ状のデータ構造を実現している。類似例として「前ブロックのハッシュ」と「自ブロックのハッシュ」を格納する例は既知の特許確認している。本件の相違点は、「前ブロックのハッシュ」(「前世代のブロックのハッシュ」)を複数件(2個)格納している点が異なる。このハッシュは、「自ブロックのハッシュ」ではない。含まない。


網状のデータ構造に対して、取引データが接続されている。




アマチュア無線で利用する1.8Mhz のアンテナ作成に挑戦

■作成にあたり感想をつぶやく(いまだ完成ではないが) 〇チューニングする項目 ・コアのサイズ ・エレメントの長さ(ループに利用したケーブル)      ループアンテナのエレメントにRFケーブルを利用した。      試行錯誤をする中で、      ループを作成には      太い...