日本語のWhitePaperがあるけど
まずこのざっくりしたやつを読もう
はじめは仮想通貨の歴史
ここらへんはTwitter上にあるゴリ学習メモを見ておくとわかりやすい
(これでイーサリアムわかったような気もしたけど全然わからんかったから今また勉強しなおしてる)
やっぱトランザクションが頭にしっくりと入ってこないので復習
トランザクションとは:取引、データ処理のこと
技術的観点から見ると、(本来 Bitcoin は、状態を持たない、ただの関数の鎖に過ぎない純粋なものですが、) Bitcoin をはじめとした暗号通貨の帳簿は、全 bitcoin の所有状況をあらわす「状態」と、状態と取引(トランザクション、状態遷移関数のこと)から新たな状態を出力する「状態遷移関数」をもった、「状態遷移」のシステムとしてみることができます。
っていうのは
A状態からB状態に変わります!
A → B
この矢印がトランザクション
もっとわかりやすく例を出して、図も描いて
「状態」はいかなる点においても、ブロック内に記述されないことに注意してください。(ブロックは状態遷移関数をつなげ合わせた関数そのものであり、入力値 である「状態」については何も書かれていません)
んんん???
ブロックは状態遷移関数をつなげ合わせた関数そのものであり、入力値 である「状態」については何も書かれていません
ブロックとは改めて
「ブロック」と呼ばれる「トランザクションを梱包したもの」
「タイムスタンプ」
「ノンス(=マイニングの答え)」
「直前のブロックへの参照値」
「(直前のブロック生成後から現在までに遂行された)トランザクションのリスト」
つまり情報として刻まれるのは「今どうなっているか」ではなく「何が起きたのか」
「何が起こっているのか」の連続性に齟齬がなければ、今の状態を記述しているのと変わらない
「分子Xが今LUMOだよ」というのは「分子XはHOMOからLUMOになったよ」とか「分子XがHOMOからLUMOになった後、変化はないよ」と書き換えることが可能
後半がブロックの中の、「分子XがHOMOからLUMOになるよ」というトランザクション
OK理解した
採掘については何となくわかるからいいや
みんなでたった一つの財宝求めてONE PIECEって感じだよ、ほんま
ありったけの夢をかき集め探し物探しに行くんだよ
次いこ、次
マークル木
はい出ました~いきなりよくわからないやつ~前に飛ばしたやつ~
マークル木ってなんだよ木って
そしてマークル木とは図のようにトランザクション一つ一つをそれぞれハッシュ化し、さらに2つまとめてハッシュ化し、それをさらに2つまとめてハッシュ化、さらにまとめて、、、とまとめていって、最終的に一つのブロックに含まれる全てのトランザクションを一つのハッシュ値にまとめたもののことを言います。
ハッシュ化のトーナメント大会ってやつか
ビットコインのブロックではハッシュの要約を~っていう説明はここに繋がるのか
甲斐の将軍から与えられた書物にMarkleTreeってあったので後で読もう
ハッシュにハッシュを重ねているからどっか不正な点が入るとハッシュ全体が崩れてハシュシュハシュシュ
ノードは、ひとつのソース(ネットワーク上の自身とは別のノード)からブロックヘッダだけを、 別のソースから、必要なトランザクションに関連する小さな部分木を、ダウンロードすることができ、それでもなお全データの整合性を保証できるのです。
を日本語にすると
全てのユーザーは全てのトランザクションを把握する必要はなく、自分の必要なトランザクションのハッシュ値を辿っていくことで、ブロックの正当性の検証が可能です。
ということか
で、Namecoin, Colored coinsの話
ここは話題が出る都度、見返せばいいかな
Bitcoin ネットワークにおける「完全ノード、フルノード」とは、「全ブロックの全トランザクションを保管・処理するノード」のことで、 2014年4月の時点で 15GB の容量をとり、ひと月あたり1GB以上の速さで増え続けています。 現在、これはデスクトップコンピュータ上で目視できますが、携帯電話では確認できません。 容量的な観点から、後々の未来、完全ノード に参加できるのは、ビジネスや趣味の範疇に限られてくるでしょう。「SPV (簡素な支払検証)」として知られるプロトコルにより、「完全ノード」とは別タイプのノードが開発されました。 「軽量ノード、ライトノード」と呼ばれ、このノードは、ブロックヘッダをダウンロードし、ブロックヘッダで proof of work を検証し、そして自身に関係のある トランザクションの「枝、ブランチ」だけをダウンロードします。 軽量ノードは、セキュリティを強く保ったまま、トランザクション履歴や残高を、状態遷移関数により決定することができるというのに、 全ブロックチェーンの小さな部分木をダウンロードすればよい、というものなのです。
全部のトランザクションを保存・処理できる奴は限定されていくらしい
しかし技術に進歩により全部を検証しなくてもよくって、自分が関係するトランザクションを検証すればいいってことね
次いこ、次
なんかBitcoinを元にすると制限が多くて使いにくいらしいっすね
だからこそのイーサリアムということで、イーサリアムの話になると
Ethereum では、「状態」は、「アカウント」と呼ばれるオブジェクトから作り上げられ、各「アカウント」は、20 byte のアドレスと、アカウント間における値や情報の直接的やりとりである状態遷移 を保持します。
Ethereum アカウントは4つのフィールドを含みます。
・nonce 、各トランザクションの処理が一度きりであることを確約するためのカウンター
・アカウントの現在の ether balance
・アカウントの contract code (もし存在すれば)
・アカウントの storage (デフォルトは空)
一般的に、アカウントには二つの種類があります。 秘密鍵により管理される EOA (externally owned accounts) と自身のコントラクトコードにより管理される contract (contract account) です。
Ethereum アカウントは4つのフィールドを含みます。
・nonce:そのアカウントが送信した累積トランザクション数
・ether balance:そのアカウントが所有するether量
・contract code:コントラクト・コード(EOAの場合は空)
・storage:そのアカウントが保持する任意のデータ
アカウントは二つの種類があります。
EOA(externally owned accounts)
と
contract (contract account)
です。
Ethereum入門から引用ってあるのでこれ見ましょうか
うーむ
つまり、Bitcoinベースのブロックチェーンでは使い勝手が悪い
だからといって新しくブロックチェーンを作るとノード、計算量の取り合いになる
そこでイーサリアムは、ブロックチェーンを利用した技術の基準として誰でもどのようにでも使えるようにしつつ、さらにそのブロックチェーンはイーサリアムに参加しているみんなで処理しようぜっていう理念
で、アカウントの話
4つのフィールドと2つのアカウントがあるらしい
これもゴリ学習メモにあったな
1人の人間が2つのアカウントを持ってそれぞれ4つフィールドがあると
今日はここまで
次はこのアカウントとフィールドについて理解を深めていこうと思う