Soumettre la recherche
Mettre en ligne
[Intermediate 04] ブロックチェーンの動作原理
•
1 j'aime
•
698 vues
Yuto Takei
Suivre
早稲田大学 高度データ関連人材育成コンソーシアム D-DATa ブロックチェーン エンジニアリング 実践編 第4回 2018/3/18
Lire moins
Lire la suite
Formation
Signaler
Partager
Signaler
Partager
1 sur 12
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
あたらしい伺かを動かしてみたはなし
あたらしい伺かを動かしてみたはなし
kiki utagawa
[Intermediate 01] イントロダクション / Bitcoin を動作させる
[Intermediate 01] イントロダクション / Bitcoin を動作させる
Yuto Takei
Windows10でword2vecを使ってみた
Windows10でword2vecを使ってみた
yumi_chappy
[Intermediate 03] MinChain - 教育用ブロックチェーンの紹介
[Intermediate 03] MinChain - 教育用ブロックチェーンの紹介
Yuto Takei
[Basic 6] DNS / ソケット通信 / その他
[Basic 6] DNS / ソケット通信 / その他
Yuto Takei
Grunt.jsを使った Expressの開発環境構築
Grunt.jsを使った Expressの開発環境構築
kamiyam .
[Lt]windows ブートマネージャーのスクリーンショットをとる方法
[Lt]windows ブートマネージャーのスクリーンショットをとる方法
Masaya Sawada
Vitochaを用いた Jail+VIMAGE Webインターフェイス
Vitochaを用いた Jail+VIMAGE Webインターフェイス
shutingrz
Recommandé
あたらしい伺かを動かしてみたはなし
あたらしい伺かを動かしてみたはなし
kiki utagawa
[Intermediate 01] イントロダクション / Bitcoin を動作させる
[Intermediate 01] イントロダクション / Bitcoin を動作させる
Yuto Takei
Windows10でword2vecを使ってみた
Windows10でword2vecを使ってみた
yumi_chappy
[Intermediate 03] MinChain - 教育用ブロックチェーンの紹介
[Intermediate 03] MinChain - 教育用ブロックチェーンの紹介
Yuto Takei
[Basic 6] DNS / ソケット通信 / その他
[Basic 6] DNS / ソケット通信 / その他
Yuto Takei
Grunt.jsを使った Expressの開発環境構築
Grunt.jsを使った Expressの開発環境構築
kamiyam .
[Lt]windows ブートマネージャーのスクリーンショットをとる方法
[Lt]windows ブートマネージャーのスクリーンショットをとる方法
Masaya Sawada
Vitochaを用いた Jail+VIMAGE Webインターフェイス
Vitochaを用いた Jail+VIMAGE Webインターフェイス
shutingrz
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略
信之 岩永
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
Yuta Matsumura
20170311 Developing & Deploying .NET Core on Linux
20170311 Developing & Deploying .NET Core on Linux
Takayoshi Tanaka
.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在
TomomitsuKusaba
20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux
Takayoshi Tanaka
Kubernetes1.9でWindowsコンテナーをクラスタ化
Kubernetes1.9でWindowsコンテナーをクラスタ化
Takashi Kanai
.NET Coreとツール類の今
.NET Coreとツール類の今
Yuki Igarashi
班ゼミ_Jan_1_21_Multi_Pointers_Network
班ゼミ_Jan_1_21_Multi_Pointers_Network
ZhuoBinggang
C# でブロックチェーン実装
C# でブロックチェーン実装
Yuto Takei
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
GoAzure
.NET Core時代のCI/CD
.NET Core時代のCI/CD
Yuta Matsumura
CLI と BCL
CLI と BCL
shozon
Hokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.js
Tadahiro Ishisaka
Daisukei vsug ef
Daisukei vsug ef
vsug_jim
マッチングアプリの作り方
マッチングアプリの作り方
IBM Analytics Japan
OSSコンソーシアム 開発基盤部会 2018年度 活動方針・部会紹介
OSSコンソーシアム 開発基盤部会 2018年度 活動方針・部会紹介
Daisuke Nishino
Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6
信之 岩永
.NET CoreとVS Codeで作る人狼知能
.NET CoreとVS Codeで作る人狼知能
takots
Node.jsでブラウザメッセンジャー
Node.jsでブラウザメッセンジャー
Yahoo!デベロッパーネットワーク
dotnetconfJP2017_netcore2
dotnetconfJP2017_netcore2
Yusuke Fujiwara
51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション
Yuto Takei
これから始めるAzure Kubernetes Service入門
これから始めるAzure Kubernetes Service入門
Yuto Takei
Contenu connexe
Similaire à [Intermediate 04] ブロックチェーンの動作原理
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略
信之 岩永
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
Yuta Matsumura
20170311 Developing & Deploying .NET Core on Linux
20170311 Developing & Deploying .NET Core on Linux
Takayoshi Tanaka
.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在
TomomitsuKusaba
20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux
Takayoshi Tanaka
Kubernetes1.9でWindowsコンテナーをクラスタ化
Kubernetes1.9でWindowsコンテナーをクラスタ化
Takashi Kanai
.NET Coreとツール類の今
.NET Coreとツール類の今
Yuki Igarashi
班ゼミ_Jan_1_21_Multi_Pointers_Network
班ゼミ_Jan_1_21_Multi_Pointers_Network
ZhuoBinggang
C# でブロックチェーン実装
C# でブロックチェーン実装
Yuto Takei
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
GoAzure
.NET Core時代のCI/CD
.NET Core時代のCI/CD
Yuta Matsumura
CLI と BCL
CLI と BCL
shozon
Hokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.js
Tadahiro Ishisaka
Daisukei vsug ef
Daisukei vsug ef
vsug_jim
マッチングアプリの作り方
マッチングアプリの作り方
IBM Analytics Japan
OSSコンソーシアム 開発基盤部会 2018年度 活動方針・部会紹介
OSSコンソーシアム 開発基盤部会 2018年度 活動方針・部会紹介
Daisuke Nishino
Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6
信之 岩永
.NET CoreとVS Codeで作る人狼知能
.NET CoreとVS Codeで作る人狼知能
takots
Node.jsでブラウザメッセンジャー
Node.jsでブラウザメッセンジャー
Yahoo!デベロッパーネットワーク
dotnetconfJP2017_netcore2
dotnetconfJP2017_netcore2
Yusuke Fujiwara
Similaire à [Intermediate 04] ブロックチェーンの動作原理
(20)
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
20170311 Developing & Deploying .NET Core on Linux
20170311 Developing & Deploying .NET Core on Linux
.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在
20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux
Kubernetes1.9でWindowsコンテナーをクラスタ化
Kubernetes1.9でWindowsコンテナーをクラスタ化
.NET Coreとツール類の今
.NET Coreとツール類の今
班ゼミ_Jan_1_21_Multi_Pointers_Network
班ゼミ_Jan_1_21_Multi_Pointers_Network
C# でブロックチェーン実装
C# でブロックチェーン実装
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
.NET Core時代のCI/CD
.NET Core時代のCI/CD
CLI と BCL
CLI と BCL
Hokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.js
Daisukei vsug ef
Daisukei vsug ef
マッチングアプリの作り方
マッチングアプリの作り方
OSSコンソーシアム 開発基盤部会 2018年度 活動方針・部会紹介
OSSコンソーシアム 開発基盤部会 2018年度 活動方針・部会紹介
Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6
.NET CoreとVS Codeで作る人狼知能
.NET CoreとVS Codeで作る人狼知能
Node.jsでブラウザメッセンジャー
Node.jsでブラウザメッセンジャー
dotnetconfJP2017_netcore2
dotnetconfJP2017_netcore2
Plus de Yuto Takei
51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション
Yuto Takei
これから始めるAzure Kubernetes Service入門
これから始めるAzure Kubernetes Service入門
Yuto Takei
ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦
ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦
Yuto Takei
開発チームにおける多様性のススメ
開発チームにおける多様性のススメ
Yuto Takei
ブロックチェーン神話に迫る - 本当に使える? 使えない?
ブロックチェーン神話に迫る - 本当に使える? 使えない?
Yuto Takei
ブロックチェーン技術者が夢見る未来
ブロックチェーン技術者が夢見る未来
Yuto Takei
ブロックチェーン技術の課題と社会応用
ブロックチェーン技術の課題と社会応用
Yuto Takei
Windows コンテナを AKS に追加する
Windows コンテナを AKS に追加する
Yuto Takei
ブロックチェーンの不動産登記への応用に関する検討
ブロックチェーンの不動産登記への応用に関する検討
Yuto Takei
51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション
Yuto Takei
[Intermediate 02] シェルの使い方 / Git, GitHub について
[Intermediate 02] シェルの使い方 / Git, GitHub について
Yuto Takei
[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介
[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介
Yuto Takei
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
Yuto Takei
[Basic 13] 型推論 / 最適化とコード出力
[Basic 13] 型推論 / 最適化とコード出力
Yuto Takei
[Basic 12] 関数型言語 / 型理論
[Basic 12] 関数型言語 / 型理論
Yuto Takei
[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング
[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング
Yuto Takei
[Basic 10] 形式言語 / 字句解析
[Basic 10] 形式言語 / 字句解析
Yuto Takei
[Basic 9] 並列処理 / 排他制御
[Basic 9] 並列処理 / 排他制御
Yuto Takei
[Basic 8] プロセスとスレッド / 入出力 / シェル
[Basic 8] プロセスとスレッド / 入出力 / シェル
Yuto Takei
[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理
[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理
Yuto Takei
Plus de Yuto Takei
(20)
51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション
これから始めるAzure Kubernetes Service入門
これから始めるAzure Kubernetes Service入門
ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦
ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦
開発チームにおける多様性のススメ
開発チームにおける多様性のススメ
ブロックチェーン神話に迫る - 本当に使える? 使えない?
ブロックチェーン神話に迫る - 本当に使える? 使えない?
ブロックチェーン技術者が夢見る未来
ブロックチェーン技術者が夢見る未来
ブロックチェーン技術の課題と社会応用
ブロックチェーン技術の課題と社会応用
Windows コンテナを AKS に追加する
Windows コンテナを AKS に追加する
ブロックチェーンの不動産登記への応用に関する検討
ブロックチェーンの不動産登記への応用に関する検討
51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション
[Intermediate 02] シェルの使い方 / Git, GitHub について
[Intermediate 02] シェルの使い方 / Git, GitHub について
[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介
[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
[Basic 13] 型推論 / 最適化とコード出力
[Basic 13] 型推論 / 最適化とコード出力
[Basic 12] 関数型言語 / 型理論
[Basic 12] 関数型言語 / 型理論
[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング
[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング
[Basic 10] 形式言語 / 字句解析
[Basic 10] 形式言語 / 字句解析
[Basic 9] 並列処理 / 排他制御
[Basic 9] 並列処理 / 排他制御
[Basic 8] プロセスとスレッド / 入出力 / シェル
[Basic 8] プロセスとスレッド / 入出力 / シェル
[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理
[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理
Dernier
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
Takayuki Itoh
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
Tokyo Institute of Technology
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
yuitoakatsukijp
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ssusere0a682
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
koheioishi1
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
YukiTerazawa
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ssusere0a682
Dernier
(7)
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
[Intermediate 04] ブロックチェーンの動作原理
1.
前回からの質問 ● Windows 環境の
Visual Studio 2017 でプロジェクトが開けません ○ インストールすべきコンポーネントの案内が甘かったです。次のコンポーネントが必要です .NET desktop development .NET Core 2.0 development tools 詳細は次ページ参照 ● dotnet MinChain.dll run config.json したが、何も動作しません ○ おそらく config.json の中身を書き換えていません 1
2.
2
3.
第4回 ブロックチェーンの動作原理 3
4.
MinChain プロジェクトの構造 拡張メソッド群 ツール機能群 便利機能群 本体コード 4
5.
ブロック トランザクションをまとめる単位。ダイジェスト対象領域には以下を含む ● 前ブロック ID
: すべての基本 ● 難易度 : 生成スピードの調整、ブロック同士の重み付け ● Nonce : ブロックの ID を調整するための領域 ● 日時 : 難易度の調整のため ● Tx Root Hash : トランザクションの差し替え等の改竄防止、 トランザクション多寡によらずダイジェスト対象領域のサイズを一 定にするため 通信時にはトランザクション本体も加える Block 101 Models.cs Line 10 – 65 トランザクション トランザクション トランザクション 5
6.
トランザクション ● 送金元エントリ (In) ○
TxID / out Index : どのトランザクションでお金をもらったか ○ 電子署名 / 公開鍵 : 送金の承認根拠 (Bitcoin では Pay-to-pubkey-hash 方式の scriptSig に相 当) ● 送金先エントリ (Out) ○ 送金先アドレス : 誰宛に送るのか (Bitcoin では scriptPubKey) ○ 送金量 : いくら送るのか 公開鍵ハッシュが0x11223344... の人に Tx 0x01234567 で受け取った 100 BTC 送ります by 0xABCDABCD 取引を記述する単位 すべてがダイジェスト領域 電子署名の対象は、署名領域を除く Models.cs Line 68 – 140 6
7.
UTXO (Unspent Transaction
Output) 支払いの原資として消費がまだなされていない トランザクションの Out のことを UTXO という 新しいブロックは UTXO からしか使ってはいけない Block Transaction Transaction Transaction Transaction Block Transaction Transaction Transaction Transaction Block Transaction Transaction Transaction Transaction Transaction Transaction Transaction Transaction Transaction Transaction Transaction Runner/Executor.cs Line 31 – 42, 53 – 187 7
8.
ハッシュ関数 メッセージのダイジェスト (要約) を生成する処理 1.
要約のため 例) 支払先として、受取人の公開鍵を書く代わりに支払先のアドレスを記載 2. 改竄不可能にするため 例) 過去のブロックのダイジェストを生成。次のブロックから参照する 3. ハッシュテーブルのキーとして 例) Tx ID を使ってトランザクションを識別 “hoge” ecb666d7787... SHA256 Util/Hash.cs Line 9 – 19 8
9.
公開鍵ハッシュが0x11223344... の人に Tx 0x01234567
で受け取った 100 BTC 送ります by 0xABCDABCD 電子署名 (公開鍵暗号方式) 秘密鍵と公開鍵という異なる 2 つの鍵を使って暗号化や電子署名する方法 1. 受取人の公開鍵のハッシュ値がアドレスとして使われる 2. 送金者の秘密鍵でトランザクションに電子署名する “hoge” 電子署名 秘密鍵 公開鍵 OK ! Util/EccService.cs Line 10 – 46 楕円曲線暗号 (ECC) シュが0xABCDABCD... の人に 3456 で受け取った 200 BTC 送ります by 0xDCBADCBA 公開 Tx 0 9
10.
ネットワーク内で複数のエンティティ (コンピュータ) 同士が、 ルールに従う限り安定的に合意できるようにする仕組み Bitcoin
では Proof of Work (PoW) という方法が使われている コンセンサス アルゴリズム ブロックを作るのを著しく難しくしておけば、 ネットワーク内で十分安定的に浸透する それでも万が一、同時にブロックができたら、 どちらを主とするか比較ルールを決めておく Util/Hash.cs Line 21 10
11.
マイニングとコインベース ブロック生成処理にはコストがかかる マイニング Block ID がブロック難易度で定められた数以下になるよう に、Nonce
の値をインクリメントしながらハッシュする コインベース ブロックに含められる最初のトランザクションは、マイニング にかかる報酬として一定額を任意アドレスに送金できる Block 101 コインベース トランザクション トランザクション トランザクション Runner/Mining.cs 11
12.
ブロック ID を
16 進の数値としてみれば、 先頭に 0 が並ぶ数ほど小さい数。確率的に、 ハッシュがどこまで小さい数になるべきか 定める。ブロック生成速度 (ネットワーク 全体のマイニング パワー) に応じて調整する ブロック難易度 Runner/Executor.cs Line 86 0.51 0.49 0.48 0.49 0.45 0.41 1.97 1.86 補足: Bitcoin では難易度の調整は 2016 ブロックごとに行われる < 000001234abcdef... 0000001234abcde... 24 倍 難しい Hash 12
Télécharger maintenant