Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
勉強会 #2
Search
titech.crypto
May 27, 2018
570
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
勉強会 #2
titech.crypto
May 27, 2018
More Decks by titech.crypto
See All by titech.crypto
Crypgeek 勉強会 #13
titechcrypto
0
460
Lightning network
titechcrypto
0
43
About Bitcoin and its cryptography
titechcrypto
0
110
第8回 CrypGeek勉強会
titechcrypto
0
81
勉強会_7ゼロ知識証明.pdf
titechcrypto
0
440
勉強会7.pdf
titechcrypto
0
450
勉強会 #6
titechcrypto
0
370
勉強会 #6
titechcrypto
0
380
勉強会 #4
titechcrypto
0
330
Featured
See All Featured
Leo the Paperboy
mayatellez
10
2.4k
sira's awesome portfolio website redesign presentation
elsirapls
0
460
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.2k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
320
Intergalactic Javascript Robots from Outer Space
tanoku
273
28k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.9k
The World Runs on Bad Software
bkeepers
PRO
72
12k
The Invisible Side of Design
smashingmag
301
52k
Designing Powerful Visuals for Engaging Learning
tmiket
1
610
Transcript
東⼯⼤ブロックチェーン 勉強会 #2 1. イーサリアムとは 2. イーサリアムの秘密鍵, 公開鍵 3. アドレス
東⼯⼤ブロックチェーン研究会 • 2018年3⽉に発⾜。勉強会は今⽇で2回⽬。 • ⽬的 • ブロックチェーンの技術、実装に根ざした勉強会を開催し、ブロック チェーンエンジニア、熟知者になる。 • ブロックチェーン界隈の情報、知財を共有・集約する。
• アイディアを持ち寄り、実現する。 • 定例勉強会 • 週に⼀度、今は⼟曜⽇午前10時〜、場所は都内(渋⾕・六本⽊) • 定例:イーサリアム関連技術、暗号学 • ⾃由発表:Lightning Talk、実装に関する議論など。
• 現在アクティブメンバー 8名、FBメンバー34⼈ 東⼯⼤ブロックチェーン研究会
• 導⼊、何故イーサリアムを学ぶのか: ⼟屋 • イーサリアムの鍵とアドレス(楕円曲線含): ⼟屋 • Lightning Talk •
Gethのデモ: 川 • チューリング完全: ⼤川 2018/04/28: コンテンツ
Why Ethereum?
イーサリアムとは • 情報科学的、ステートマシン • 世界中からアクセス可能な単⼀状態を保持 • 単⼀状態に変更を加える仮想マシン • 社会的インフラ •
オープンソースかつ、分散化された計算インフラ。ブロックチェーン 上のスマートコントラクトと呼ばれるコードを実⾏する。 • 仮想通貨 • Ether(ETH)単位で数えられる仮想通貨。スマートコントラクトの実 ⾏に必要な通貨。
ビットコインとの共通点/違い どちらもコンセンサスアルゴリズムに基く公開/分散ブロック チェーン台帳を利⽤。相違点は… • イーサリアムはチューリング完全であり、スマートコントラク トの実⾏が可能。 • ビットコインは初期段階で⼤部分が採掘されている⼀⽅、イー サリアムは5年分の採掘量の半分がクラウドファンディングに よって調達されている。
• その他、データ構造、半減期の有無、ブロックタイム、⼿数料 計算法、マイニングの報酬形態などブロックチェーンの設計が 異なる。
イーサリアムの誕⽣秘話 • Mastercoin • 世界初のICOプロジェクト(2013/7) • ビットコインブロックチェーン上で動作する、2nd layerソリューショ ン。ビットコイン上に独⾃トークンを発⾏。 •
ビットコインを拡張することで、原始的なスマートコントラクトが実 ⾏可能。但しチューリング不完全。 • Vitalik Buterinの提案(2013) • ビットコインの更なる拡張、及び、Mastercoinのスマートコントラク ト⾔語の改善に関する提案。 →Awesome but too radical!!! ハードフォークの必要。 Ethereum (2013/12 whitepaper)
イーサリアムの誕⽣秘話 • 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/)
4つの開発ステージ ハードフォークを前提とする⼤規模アップデートが4回予定されている。 (但し予定外のハードフォークが⾏われたことも) • Stage1: Frontier (Block #0~) • 初期版のバグ修正など
• Stage2: Homestead (Block #1,150,000~) • 難易度調整アルゴリズムの改善 • 現在のブロックタイムに • Stage3: Metropolis • Metropolis Byzantium • PoW→PoSへのアルゴリズム変更準備 • Metropolis Constantinople • 2018年中頃を予定 • Stage4: Serenity 今ここ 各種スケーリング施策
Solidityはチューリング完全 • 計算理論において、ある計算のメカニズムが万能チューリングマシ ンと同じ計算能⼒をもつとき、その計算モデルはチューリング完全 (チューリングかんぜん、Turing-complete)あるいは計算完備で あるという(Wikipediaより) • ⼀般的なプログラミング⾔語はチューリング完全。 • 計算コスト、時間を考慮しなければ、あらゆる種類の処理を実現す
る事ができる。 • ⇔Bitcoin script: Turing Incompletenessな⾔語である。forループな どが実装されておらず、⽀払いtransactionなどのシンプルな処理の みが可能。 ◦処理に必要な計算コストが完全に予測可能。 チューリング 完全…⼤川君
Dapps • イーサリアムなどのオープンソースかつP2Pで分散されたシス テム上に実装されるwebアプリケーション。イーサリアム上の Dappsはブロックチェーン上のスマートコントラクトとして実 装され、分散された仮想マシンがこれ実⾏させることによって 動作する。 • The General
Theory of Decentralized Applications, Dapps • https://github.com/DavidJohnstonCEO/DecentralizedApplica tions
Why Ethereum? • スマートコントラクトが実⾏可能なDappsプラットフォームの 代表。(NEM、NEO(中国)、QTUMなどもあるが…) • あらゆるDappsを作るアイディアを考える⼟台になる。 • Nonfungible-token…あらゆる価値の扱いが可能。 •
事例の多さ • 既に1000弱のDappsがある。 • スキャム、ハッキングなども多々。 • スケーリング問題の解決策の最前線。 • ⽇本での開発者コミュニティ(学⽣)はまだ少ない。
イーサリアムの鍵, アドレス
公開鍵暗号⽅式 http://ascii.jp/elem/000/000/431/431308/index-2.html • 公開鍵…情報を暗号化することのみができる。鍵を公開してお くことで送信者は公開鍵で暗号化して送信。 • 暗号鍵…情報を復号化することのみできる 受信者は秘密鍵で復号化した平⽂を得る。 正当性 秘匿性
, , = 公開鍵pk, 暗号⽂cから平分の情報が得られない
楕円曲線暗号 • イーサリアムでは秘密鍵はランダムに⽣成、公開鍵は秘密鍵を 楕円曲線上で計算することで求められる。 楕円曲線 • イーサリアムの楕円: secp256k1 • p次元上に無限に広がっているが、⼆次元に
投射すると左図のような感じらしい… • ビットコインのライブラリを使⽤するため に同じ楕円を使⽤。 - = 2 + 7 = 2-67 − 22- − 29 − 2: − 2; − 27 − 2< − 1
秘密鍵/公開鍵: 楕円曲線での演算/公開鍵 加算が定義可能 楕円曲線上の点Pについて 整数kの掛け算が可能 K = k・G G: Generation
point(fix) k: 秘密鍵 K: 公開鍵 K: 0x04 + X座標 + Y座標
秘密鍵/公開鍵の⽣成 • 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
イーサリアムアドレスの表⽰形式 • 16進数は可読性が低い、またイーサリアムアドレスはチェック サムが導⼊されていない。 • これは、後からアドレスをラップアップする仕組みが考案され ていたため。 • ICAP: Inter
exchange Client Address Protocol • ENS: Ethereum Naming Service
ICAP • 銀⾏間の国際送⾦規格IBANに準拠した形式でイーサリアムアド レスを表⽰する⽅法。 IBAN Ex.) IL## AAA BBB CCCCCCCCCCCC
国名 + チェックサム + 国準拠⼝座情報 ICAP Ex.) XE##HAMICDXSV5QXVJA7TJW47Q9CHWKJDA ICAP Ex.) XE##ETHXREGKITTYCATS XE(無国籍イーサリアム) + チェックサム + アドレス XE(無国籍イーサリアム) + チェックサム + Indirectアドレス
ICAP • 銀⾏間の国際送⾦規格IBANに準拠した形式でイーサリアムアド レスを表⽰する⽅法。 IBAN Ex. IL## AAA BBB CCCCCCCCCCCC
国名 + チェックサム + 国準拠⼝座情報 ICAP Ex. XE##HAMICDXSV5QXVJA7TJW47Q9CHWKJDA ICAP Ex. XE##ETHXREGKITTYCATS XE(無国籍イーサリアム) + チェックサム + アドレス XE(無国籍イーサリアム) + チェックサム + Indirectアドレス ü 誤り訂正 ü 可読性 あまり使われていない?・・・・
誤り訂正: 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
ENS: Ethereum Name Service • インターネットでのIPアドレス → urlのマッピングの様なもの。 イーサリアムアドレスに対して、7⽂字以上のENSを当てるこ とができる。
• ENSのマッピング対応はスマートコントラクト上に記述される。 オークション形式で開催され、Etherをロックアップすること で取得可能。 0x001d3f1ef827552ae1114027bd3ecf1f086ba0f9 Titech-crypto.eth
Ethereum community • EIP/ERP • Ethereumに関する改善議論がERP, EIPとして改善案が纏められ、承認 されるとアップデートされる。 • https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1.md
• ethreser.ch • Plasma, shardingなど⼤規模アップデートに関する実装などが話合わ れている。
• EoF