Upgrade to Pro — share decks privately, control downloads, hide ads and more …

勉強会 #2

Avatar for titech.crypto titech.crypto
May 27, 2018
410

勉強会 #2

Avatar for titech.crypto

titech.crypto

May 27, 2018
Tweet

Transcript

  1. 東⼯⼤ブロックチェーン研究会 • 2018年3⽉に発⾜。勉強会は今⽇で2回⽬。 • ⽬的 • ブロックチェーンの技術、実装に根ざした勉強会を開催し、ブロック チェーンエンジニア、熟知者になる。 • ブロックチェーン界隈の情報、知財を共有・集約する。

    • アイディアを持ち寄り、実現する。 • 定例勉強会 • 週に⼀度、今は⼟曜⽇午前10時〜、場所は都内(渋⾕・六本⽊) • 定例:イーサリアム関連技術、暗号学 • ⾃由発表:Lightning Talk、実装に関する議論など。
  2. イーサリアムとは • 情報科学的、ステートマシン • 世界中からアクセス可能な単⼀状態を保持 • 単⼀状態に変更を加える仮想マシン • 社会的インフラ •

    オープンソースかつ、分散化された計算インフラ。ブロックチェーン 上のスマートコントラクトと呼ばれるコードを実⾏する。 • 仮想通貨 • Ether(ETH)単位で数えられる仮想通貨。スマートコントラクトの実 ⾏に必要な通貨。
  3. イーサリアムの誕⽣秘話 • Mastercoin • 世界初のICOプロジェクト(2013/7) • ビットコインブロックチェーン上で動作する、2nd layerソリューショ ン。ビットコイン上に独⾃トークンを発⾏。 •

    ビットコインを拡張することで、原始的なスマートコントラクトが実 ⾏可能。但しチューリング不完全。 • Vitalik Buterinの提案(2013) • ビットコインの更なる拡張、及び、Mastercoinのスマートコントラク ト⾔語の改善に関する提案。 →Awesome but too radical!!! ハードフォークの必要。 Ethereum (2013/12 whitepaper)
  4. イーサリアムの誕⽣秘話 • A prehisotry of the Ethereum Protocol(https://vitalik.ca/general/2017/09/14/prehistory.ht ml) •

    Mastercoin(https://bitcoinmagazine.com/articles/mastercoin -a-second-generation-protocol-on-the-bitcoin-blockchain- 1383603310/)
  5. 4つの開発ステージ ハードフォークを前提とする⼤規模アップデートが4回予定されている。 (但し予定外のハードフォークが⾏われたことも) • Stage1: Frontier (Block #0~) • 初期版のバグ修正など

    • Stage2: Homestead (Block #1,150,000~) • 難易度調整アルゴリズムの改善 • 現在のブロックタイムに • Stage3: Metropolis • Metropolis Byzantium • PoW→PoSへのアルゴリズム変更準備 • Metropolis Constantinople • 2018年中頃を予定 • Stage4: Serenity 今ここ 各種スケーリング施策
  6. Why Ethereum? • スマートコントラクトが実⾏可能なDappsプラットフォームの 代表。(NEM、NEO(中国)、QTUMなどもあるが…) • あらゆるDappsを作るアイディアを考える⼟台になる。 • Nonfungible-token…あらゆる価値の扱いが可能。 •

    事例の多さ • 既に1000弱のDappsがある。 • スキャム、ハッキングなども多々。 • スケーリング問題の解決策の最前線。 • ⽇本での開発者コミュニティ(学⽣)はまだ少ない。
  7. 楕円曲線暗号 • イーサリアムでは秘密鍵はランダムに⽣成、公開鍵は秘密鍵を 楕円曲線上で計算することで求められる。 楕円曲線 • イーサリアムの楕円: secp256k1 • p次元上に無限に広がっているが、⼆次元に

    投射すると左図のような感じらしい… • ビットコインのライブラリを使⽤するため に同じ楕円を使⽤。 - = 2 + 7 = 2-67 − 22- − 29 − 2: − 2; − 27 − 2< − 1
  8. 秘密鍵/公開鍵の⽣成 • 256bitのバイナリデータ(⼀般的には64⽂字の16進数で表現) の⼗分なエントロピー源からランダムに⽣成する • Ethereumで使⽤されるハッシュ関数: Keccak256 • イーサリアムアドレスは、公開鍵のKeccak256ハッシュの後ろ20バイ ト(40⽂字)である。

    Secret key = (Ex.) f8f8a2f43c8376ccb0871305060d7b27b0554d2cc72bccf41b2705608452f315 (x,y) = (Secret key)・G Public key = 0x04 + x + y Hash = Keccak256(Public Key) Address = Hash[-40:] 公開鍵 20バイト 抽出 アドレス Keccak256 秘密鍵 pk = sk ・G
  9. ICAP • 銀⾏間の国際送⾦規格IBANに準拠した形式でイーサリアムアド レスを表⽰する⽅法。 IBAN Ex.) IL## AAA BBB CCCCCCCCCCCC

    国名 + チェックサム + 国準拠⼝座情報 ICAP Ex.) XE##HAMICDXSV5QXVJA7TJW47Q9CHWKJDA ICAP Ex.) XE##ETHXREGKITTYCATS XE(無国籍イーサリアム) + チェックサム + アドレス XE(無国籍イーサリアム) + チェックサム + Indirectアドレス
  10. ICAP • 銀⾏間の国際送⾦規格IBANに準拠した形式でイーサリアムアド レスを表⽰する⽅法。 IBAN Ex. IL## AAA BBB CCCCCCCCCCCC

    国名 + チェックサム + 国準拠⼝座情報 ICAP Ex. XE##HAMICDXSV5QXVJA7TJW47Q9CHWKJDA ICAP Ex. XE##ETHXREGKITTYCATS XE(無国籍イーサリアム) + チェックサム + アドレス XE(無国籍イーサリアム) + チェックサム + Indirectアドレス ü 誤り訂正 ü 可読性 あまり使われていない?・・・・
  11. 誤り訂正: Capital Based Checksum • HEX表⽰でのローマ字部分を⼀定のルールに基いて⼤⽂字に置 き換えることで誤り訂正を導⼊する⽅法。(EIP -55) • ◎⾮対応実装では⽂字を識別しないで読み込める。

    • ◎アドレスの誤りを99.986%の精度で検出。 • ルール • Hash = Keccak256(Address)を得る。 • AddressとHashを先頭から並べる • Hash値が16進数で8以上の場合には⼤⽂字に。 元アド レス 1 a e 8 keccak 256 b 3 9 a CBCア ドレス 1 a E 8
  12. ENS: Ethereum Name Service • インターネットでのIPアドレス → urlのマッピングの様なもの。 イーサリアムアドレスに対して、7⽂字以上のENSを当てるこ とができる。

    • ENSのマッピング対応はスマートコントラクト上に記述される。 オークション形式で開催され、Etherをロックアップすること で取得可能。 0x001d3f1ef827552ae1114027bd3ecf1f086ba0f9 Titech-crypto.eth