these are protocols used for changing the bitcoin network protocols

Slides:



Advertisements
Similar presentations
並列プログラミング言語による Dining Philosophers Problem の検証 大井 謙 数理科学コース 4 年 福永研究室 2010 年 3 月 4 日 ( 木 ) 1.
Advertisements

Trac と Eclipse の 便利な機能. プロジェクト管理システム: Trac 0. はじめに バージョン管理システム: Subversion 統合開発環境: Eclipse ・ Wiki による情報 管理 ・進捗状況の管理 ・プログラムの作 成 ・リポジトリに データを集める.
演習3 米澤研究室 発表2 山崎孝裕. 主な内容  分散動的サーバモデル(復習)  掲示板システムの問題点と仮定  掲示板システムの大まかな動き(細かい エラー処理は考慮しない)
Brabio2.0 クイックマニュアル ブラビオ株式会社. 特徴的な機能① 特徴的な機能② 特徴的な機能③.
SPSS操作入門 よい卒業研究をめざして 橋本明浩.
F5 キーを押すか、または [スライド ショー] > [最初から] をクリックして、コースを開始してください。
PROCESS 14:一般情報(2) InstallShieldLecture
Chapter11-4(前半) 加藤健.
Android と iPhone (仮題) 情報社会とコンピュータ 第13回
SHA-1の高速化tips 2007/9/15
Androidアプリを公開する方法.
秘密のリンク構造を持つグラフのリンク解析
モバイルP2Pを用いた携帯電話 動画配信手法の提案 第5回
DNASシステム上のアプリケーション起動シーケンスのための基盤であるdsh部分の性能評価
IM、プレゼンス、連絡先 IM 要求に応答する プレゼンスを設定または変更する ユーザーを検索する
アルゴリズムイントロダクション第5章( ) 確率論的解析
Extremal Combinatrics Chapter 4
TCP (Transmission Control Protocol)
PuTTYとパスワード変更 文責:亀 彩.
社会心理学のStudy -集団を媒介とする適応- (仮)
P,Q比が変更可能なScaLAPACKの コスト見積もり関数の開発
記 憶 管 理(2) オペレーティングシステム 第10回.
OSが乗っ取られた場合にも機能するファイルアクセス制御システム
岩手県立大学 ソフトウェア情報学部 澤本研究室 佐々木拓也
IPマルチキャスト通信とXcast 早稲田大学後藤研究室 Xcast班.
V. 不正直な信号の原因 多くの場合,信号は正直であるが,以下の場合,不正直であるかもしれない。 ○非平衡の共進化,
SS2009 形式手法の適用ワーキング グループの報告
同期的にアドバイスを活性化できる分散動的アスペクト指向システム
~企画~ GO,桑田,ヒルズ.
現金に替わる電子マネーの実装 200702894 大城 翔太 木下研究室.
Java ソフトウェア部品検索システム SPARS-J のための リポジトリ自動更新機能の実現
SpectreとMeltdown ITソリューション塾・第28期 2018年5月30日 株式会社アプライド・マーケティング 大越 章司
Windows 2000 拡張カーネルの技術紹介 2018年6月10日 黒翼猫.
論文紹介 Query Incentive Networks
セキュリティ(6) 05A2013 大川内 斉.
耐故障処理 Fault Tolerance 「分散計算の基礎」 12章 発表者 : 高橋 慧.
PGP インターネットで 広く使われている暗号技術
オープンソフトウェア利用促進事業 第3回OSSモデルカリキュラム導入実証
Jh NAHI 横田 理央 (東京工業大学) Hierarchical low-rank approximation methods on distributed memory and GPUs 背景  H行列、H2行列、HSS行列などの階層的低ランク近似法はO(N2)の要素を持つ密行列をO(N)の要素を持つ行列に圧縮することができる。圧縮された行列を用いることで、行列積、LU分解、固有値計算をO(NlogN)で行うことができるため、従来密行列の解法が用いられてきた分野では階層的低ランク近似法
12/14 全体ミーティング 米澤研究室卒論生 山崎孝裕
【班での話し合い方】 ①ふせんに書いていることを読みながら台紙にはる。 ②同じような考え同士グループ分けし、貼りなおす。
私の立場 OSカーネルを手がけるエンジニア 大阪市立大学 創造都市研究科の学生
0.2 プロジェクトの準備 DXライブラリを使うための準備.
計算量理論輪講 chap5-3 M1 高井唯史.
Xmingの起動方法   作成者 3BSP3102 櫛田研 山田.
インタラクティブ・ゲーム制作 プログラミングコース 補足資料
暗号技術 ~暗号技術の基本原理~ (1週目) 情報工学科  04A1004 石川 真悟.
「選挙の大切さについて」 資料モデル 1 選挙制度の意義や目的について、選挙の歴史や制度の特徴 などを踏まえてわかりやすく説明する。
プログラミングを 体験しよう 選択情報⑧.
多層的な知人関係に基づく 自己情報コントロールの実現
アトミック的にコインをスワップする: クロス・ブロックチェーンとプライバシーための交換
P2P ネットワーク上で 実時間ストリーミングを実現するための 分散制御プロトコルの提案
生物情報ソフトウェア特論 (2)たたみ込みとハッシュに 基づくマッチング
超短期トレードで生き残るためのテクニックと考え方
データ構造とアルゴリズム (第5回) 静岡大学工学部 安藤和敏
アルゴリズムとデータ構造 2011年6月16日
高齢者支援アプリケーション Term Projectの最終発表 Bull:ECN Takatoshi:親
Cソースコード解析による ハード/ソフト最適分割システムの構築
表紙 分散遺伝的アルゴリズムのための 新しい交叉法.
契約法の経済分析 麻生良文.
C10:秘匿共通集合計算プロトコルを用いた 就職活動支援システム“JHT”
異種セグメント端末による 分散型仮想LAN構築機構の設計と実装
アルゴリズムとデータ構造 2013年6月20日
参考:大きい要素の処理.
情報生命科学特別講義III (3)たたみ込みとハッシュに 基づくマッチング
マルチエージェントシステムにおける 通信コストの構造依存性に関する解析
Libra 株式会社アプライド・マーケティング 大越 章司
第6分科会 商品コンセプト開発の研究 要旨 2013年度テーマ 商品開発手法「キーニーズ法」(ニーズアプローチ)の有効性検証 1.研究の目的
コンピュータと音 B3 入野仁志(irino).
2010応用行動分析(3) 対人援助の方法としての応用行動分析
Presentation transcript:

these are protocols used for changing the bitcoin network protocols のプロトコルである)

these are pro.to.cols used for chan.ging the bit.coin net.work pro.to.cols

食事する哲学者 5人のミュート哲学者は夕食を食べるために5本のフォークを持っている。 彼らのスパゲティを食べるためには2本のフォークが必要。 シェアの方法は? 並行処理の管理を証明するために利用する。

食事する暗号作成者 3人の暗号作成者は夕食を食べる。 ウェイターはその請求書が 彼らの誰かまたはNSAによって支払われていることを伝える。 NSAからのごちそうをもらったか公開せずにグループの誰かが払ったのは分かれる? 暗号のプライバシーの管理 を証明するために 利用する。

食事するビットコイナー 3人のビットコイナーは ピクニックをする。 テーブルの上にフォークが無いことが気づいた。 皆が賛成する食器を選ぶ方法はどうするか? プロトコルの変更の管理 を証明するために 利用する。

「フォーク」は何ですか? リナックス 仮想通貨 何でも好きなコードを実行できる パッチを使うためにマスターにマージされる必要は無い Linusを納得させるために辛辣な議論が必要 全員が同じコードを実行するべき パッチをマスターにマージして動かす必要がある 世界を納得させるのはもっと辛辣な議論 リーダーは居ない

Bitcoinの基本フォークの種類 ハード フォーク ソフト フォーク 破壊させる変更であり、 すぐに全ネットワークの関係者がアップグレードするべき。 例:ブロック・サイズは2MBに拡張 後方互換性の変更であり、現在のルールの上にのせる新しいルール。 例:ブロック・サイズは0.5MBに減少

フォークの良い点/悪い点 ハード soft + より良いコードのクオリティ 中央的な判断と決定 全員を納得させることが出来ない もっと変更があればもっと口論が出てくる より悪いコードのクオリティ + 全員が最新バージョンを  実行するのは保証出来ない 「クローズド・ソース」 の 変更? + もっと少ない変更なので、  口論はもっと少なくなる

altcoinの解決 tezos stellar ネットワークはコード変更互換性をチェックする機能が入っていて、シンプルな投票システムも入っている「nomic」。 「ブロッキング・セット」の間にネットワークのコンセンサスがあり、そのノードたちは前進を止めることができる。 ブロッキング・セットは強制的にプロトコルのアップグレードを実行させる。

Bitcoinのソフト・フォーク

nop  verify upgrades `OP_NOP<N>`  `OP_CHECK<t>VERIFY` 例えば SHA3 を追加したら: `<x> <SHA3(x)> OP_CHECKSHA3VERIFY`

segwit `0 <h(x)>`  v0でスクリプトxを実行する アップグレードのとき `1 <h(x)>`  v0でスクリプトxを実行する (v1なければ、ずっとtrue)

ソフト・フォークはどう作られたのか?

ブロックの高さ h が超えたら、新しいルール 高さにより ブロックの高さ h が超えたら、新しいルール

bip9: versionbits Bitcoinの32-bitのバージョン・フラグを利用して、同時ソフト・フォークをデプロイする ソフト・フォークは名前、ビット(0-28)、スタート・タイム、とタイムアウトを持つ 先行する2016ブロックの95%がビットを設定していることを確認してください

Versionbitsはどこが間違えたのか?

小さな誤解 大きな論争

BIP9は「準備が整った」の信号であるはず 「賛成」か「却下」の投票ではない signaling 対 voting BIP9は「準備が整った」の信号であるはず 「賛成」か「却下」の投票ではない

ソフトフォークはBIP9に入ったら デベロッパーたちは「実行する予定」と想定する signaling 対 voting ソフトフォークはBIP9に入ったら デベロッパーたちは「実行する予定」と想定する

しかしマイナーたちは違う考えを持つ 「賛成」と「却下」の投票として使っている signaling 対 voting しかしマイナーたちは違う考えを持つ 「賛成」と「却下」の投票として使っている

反対をするなら BIP9に入るまでに却下するべき、 コンセンサスの議論しているときに signaling 対 voting 反対をするなら BIP9に入るまでに却下するべき、 コンセンサスの議論しているときに

(細かいことに気を取られて全体を見通せない) penny wise (細かいことに気を取られて全体を見通せない) pound foolish

マイナーにコストは無い Yes/Noを見せるか、後で変えるか 正直な信号を表す マイナーにコストは無い Yes/Noを見せるか、後で変えるか

信号を表すにはコストが必要 その信号が本当であることを証明するため 正直な信号を表す 信号を表すにはコストが必要 その信号が本当であることを証明するため

残りの期間が分かったら 行動に影響をさせることができる タイムアウトは延期になる 残りの期間が分かったら 行動に影響をさせることができる

タイムアウトは延期になる もっと緊急を感じる 残りの時間が短ければ

この緊急性は力を与える Bitcoinをコントロールしたい人には タイムアウトは延期になる この緊急性は力を与える Bitcoinをコントロールしたい人には

この問題を解決する

spork スポーク sorta probably a fork おそらくフォークかもしれない

単純なスポーク 確率的なブロック・フィルター 上記の条件を満たす後に実行する。 d > hash(hash(block)||“upgrade name”) 上記の条件を満たす後に実行する。

デモ op_cbhv アイデアにラフなコンセンサスがある Bitcoinはリプレーの防護が欲しい Reorgのときに無効化Txを許可する Mempoolのリライトが必要

NOP8  OP_CHECKBLOCKATHEIGHTVERIFY デモ op_cbhv bipのドラフト NOP8  OP_CHECKBLOCKATHEIGHTVERIFY E[activation of rule] = ~6 months h(h(block)||“cbhv”)/(2256-1) < 4e-5

デモ op_cbhv bipのフィードバック+ラフなコンセンサス 意図的で無いヘッダーのパーシング scriptSig: <header> scriptPubKey: dup sha256 <height> <hash> cbhv dropX3 解決: non-sha256 ハッシュ

bitcoin-core implements spec デモ OP_CBHV リファレンス実装 bitcoin-core implements spec v0.18 + backports to v.014

demo OP_CBHV チェーンのロールアウト 6 months 6 months N 6 months

アップグレードはスポークにのせられたときに 大まかな合意には達している 解析: 投票 アップグレードはスポークにのせられたときに 大まかな合意には達している

マイナーは反対を投票したいときに そのブロックの上に作らなければ良い 解析: 投票 マイナーは反対を投票したいときに そのブロックの上に作らなければ良い

でも反対をするときに 自分のブロックはOrphan Blockになるべき かもしれない 解析: 正直 でも反対をするときに 自分のブロックはOrphan Blockになるべき かもしれない

でも却下されたら難しさは調整される なので、全員のマイナーにずっとコストがある わけではない 解析: 正直 でも却下されたら難しさは調整される なので、全員のマイナーにずっとコストがある わけではない

でも、アップグレードを実行すると インセンティブがある 解析: 正直 でも、アップグレードを実行すると インセンティブがある

確率的なフィルターのアルゴリズムは 独立試行のプロセスである 解析: タイムアウト 確率的なフィルターのアルゴリズムは 独立試行のプロセスである

つまり、時不変であり 期待実行の時間は一定である 解析: タイムアウト つまり、時不変であり 期待実行の時間は一定である

E[tactivate] = 6 mo を設定すれば ∀N, E[tactivate | tpassed=N] = 6 months 解析: タイムアウト E[tactivate] = 6 mo を設定すれば ∀N, E[tactivate | tpassed=N] = 6 months

実行するために皆を待たせるのは マイナーに良いことは無い 解析: タイムアウト 実行するために皆を待たせるのは マイナーに良いことは無い

スポークの拡張 スポーク・スタートの高さ n-block フェーズの延期 n-block パスを有効にする 早期導入者のルール Orphanに耐える起動

スポーク・スタートの高さ スポークの実行は高さの前には出来ない スポークの互換性に時間を与える

機能が有効になるのはパス後の n ブロック ロックイン後に「調整する」ための時間 n-block フェーズの延期 機能が有効になるのはパス後の n ブロック ロックイン後に「調整する」ための時間

n個のブロック通過フィルタを有効にする 分散を減らし警告を与えるため n-block パスを有効にする n個のブロック通過フィルタを有効にする 分散を減らし警告を与えるため

早期導入者のルール 実行するブロックに互換性が無いと ブロックのリワードを無効にさせる 早めに互換性に対応すること でインセンティブをあげる

自分でOrphanの作成を証明するのは難しくなる 有効なPOWヘッダーの証明で実行する 自分でOrphanの作成を証明するのは難しくなる 拮抗するOrphanの作成を減少する 1 🚀 1😼😼 2😼😼 3 🚀