Share
Embed
Transcript
39 slides
-
自己紹介 @nekomatu • Debian/Ubuntuユーザー • 組込み系 Linux のソフトウェア開発者 • 好きなOSSライセンスは
GPLv2 • 地方初参加で、実は発表も初めてです -
神資料があったので即終了 • https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf • 1ページ1アニメーションによる図解で平易な英語コメントになっている • 著者はTakenobu Taniさん ◦ プログラマーのためのCPU
入門 ~CPU は如何にしてソフトウェアを高速に実行 するか~ の著者 • 2018年3月の資料のため今は変化している部分もあるが入りとしては十分 ◦ EIP-2718とか -
皆様への質問! • Q1. Ethereumという名前を知っている人? ◦ 聞いたことあるよりは把握しているぐらいの温度感で • Q2. BitcoinのProof of
Work を何となく知っている人? • Q3. DYOR を知っている人? -
Ethereum とは • ブロックチェーン技術をベースにして、任意のプログラム実行とストレージ基盤を 備えたP2Pなソリューション • P2P ◦ トラストレス (悪意あるノードが入り込んでもワークすること)
◦ セキュリティ/ライブネス (システム停止しないこと) • Bitcoinはコイン用途特化で任意のプログラムを実行できない仕様 ◦ 元々、Bitcoinでプログラムを動かせるように提案したが却下されたので、 Ethereum が生まれたらしい -
それブロ? それブロックチェーンでやる意味あるの?(それブロ問題) • Q. ただAPIが公開されていて自由なサービスというだけではないか? • A. 運営企業の解散によるサービス停止の懸念や検閲耐性に優れる ◦ セキュリティ/ライブネス
->単一組織でなくみんなで運営しているから ◦ 検閲耐性 -> トラストレスだから ◦ ※完全にそうならないとはいっていない ▪ 国家レベルなら圧をかけることは色々できるので … -
それブロ? それブロックチェーンでやる意味あるの?(それブロ問題) • Q. ただAPIが公開されていて自由なサービスというだけではないか? • A. 運営企業の解散によるサービス停止の懸念解決や検閲耐性に優れる ◦ セキュリティ/ライブネス
-> みんなで運営しているから ◦ 検閲耐性 -> トラストレスだから ◦ ※完全にそうならないとはいっていない ▪ 国家レベルなら圧をかけることは色々できるので … 自由に開発して公平に実行できるソリューションだから嬉しい 🤗 -
StateとTransaction • State ◦ キーバリュー型のストレージ ◦ smart contract と呼ぶ任意のプログラムも含まれている •
Transaction ◦ Stateを更新するためのリクエスト • ここに説明は冒頭の神資料に全てあるので割愛 ◦ https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.p df -
EVM と Gas • Transaction を実行して State するのがEVM (Ethereum Virtual
Machine) ◦ そのプログラムを smart contract と呼んでいる • Gasは、手数料であり、EVM opcode を実行すると消費されバリデーターの報酬 にもなる • ユーザはGas feeを設定してトランザクション発行する ◦ 停止性問題の解決とソリューションへのスパム排除(実費性) ▪ ガス欠で止まる。DoSの緩和 ◦ fee が高めなトランザクションから処理されていくインセンティブ設計 ▪ 需要が増えると高い feeが必要になる -
Proof of Work でブロックチェーンを作る方法 • マイナーはトランザクションプールからGas feeが高い順に取り出してブロックを 生成する • State更新の計算をして検証する
◦ Gas feeはマイナー自身のウオレットに入るトランザクションがくっつく • 条件一致するマジックナンバーを探索する(マイニング) • 発見したらネットワークに早くブロードキャストして認めてもらう • 新しいブロックを他のマイナーから受け取ったら検算し、実行中のマイニングを 破棄して最初に戻る • 雑にいえば、一番チェーンが長いものが、正のチェーンという事になる ◦ 実際にはもう少し複雑な条件で判定していたが割愛 -
PoWのポイント • チェーンが同じタイミングで伸びてしまうことがある (unkle block) ◦ しかし、6回ぐらい伸ばしていくと収束する(Bitcoinの場合は. )(Finality) • マイナーはできるだけ早く新しいブロックを受け取りたい
◦ さもないと意味のない計算コストを払うことになってしまうため ◦ そのため発散ではなく収束する • 利点はシンプルなこと • 欠点は電気がかかってしまうこと ◦ 一定時間に終わることを期待したいので意味ある計算をもたせにくい -
Proof of Stakeでブロックチェーンを作る方法 • Ethereum では 32 ETH (1000万円ぐらい?)をデポジットすることでバリデー ターになれる。マイナーはもういない。
• バリデーターはランダムにブロックを作る権利がもらえる • 他のバリデータに作成したブロックを送信し検証してもらう • すると、Gas feeから一部手数料をもらえる -
PoSのポイント • 悪意ある動作をするとバリデーターに Slashing というペナルティが発生する ◦ 32ETHを担保・人質にしているということ • 利点はたくさん •
欠点は複雑であること、ETHそのものの価値がないと機能しないこと ◦ https://ethereum.org/en/developers/docs/consensus-mechanisms/pos/ -
PoW -> PoS PoW • 電気代が安い国が有利であり地理的分散性(国家検閲耐性)に懸念がある • ASICのような特別な機材の所有者が有利で分散性に懸念があるといえる ◦ EthereumはASIC化しにくいアルゴリズムにするなどで緩和していた
• インセンティブのためETHをたくさん発行する必要がある ◦ でも、発行するほど相対的に価値が下がってしまうジレンマ PoS • ETHを持っていないと参加できない -
困るのはメインネットのフォークを試みること いずれも意図的にフォークを狙っている操作 • 同一スロットに、2つの異なるブロックを提案、署名した場合 • あるブロックを「取り囲む」ブロックに対してアテステーションを提供した場合 (事実上、履 歴を変更した場合) • 同一ブロックの2つの候補にアテステーションを提供することで、「二重投票」を行った場
合 • https://ethereum.org/ja/developers/docs/consensus-mechanisms/pos/rewards -and-penalties/#slashing ◦ 与太話として過去に、オペレーターキーを過って複数のインスタンスに展開してしまい 結果的に二重投票が走ってしまった という運用ミスがあったらしい