SlideShare une entreprise Scribd logo
1  sur  70
SBI R3 Japan株式会社
生永 雄輔
2020年5月14日
0
blockchain.Tokyo
~Corda開発入門~
Corda開発入門
• はじめに
• Corda事始め
• 技術概要of 概要
1
Cordaの成り立ち
2
•価値移転
•公開取引
第一世代
Bitcoin
Ethereum
第二世代 第三世代
Cordaの成り立ち
3
•価値移転
•公開取引
第一世代 第二世代
Bitcoin
Ethereum
Fabric
Enterprise. Ethereum.
•サイロ化
•限定プライバシー
第三世代
Cordaの成り立ち
4
•価値移転
•公開取引
第一世代 第二世代 第三世代
Bitcoin
Ethereum
Fabric
Ent. Ether.
•サイロ化
•限定プライバシー
Corda
•フルプライバシー
•枯れた技術
Cordaの由来
5
1.“Accord” → 合意する、コンセンサス
2.”Chord” → P2Pの最短距離
3.”Chord” → ハーモニー、和音
Chord
Corda=ミドルウェア
@2019, SBI R3 JAPAN /CONFIDENTIAL
CorDapps
オープンソース
クラウド オンプレミス
エンタープライズ
業務アプリ
ミドルウェア
インフラ
レイヤー ノード内構成
6
Corda開発入門
• はじめに
• Corda事始め
• 技術概要of 概要
7
Corda事始め
• 動画を見る(Youtube動画の紹介)
• とにかく書く(Bootcamp-Cordapp)
• 試験を受ける(CordaCertificate)
8
9
①動画を見る (Youtube動画の紹介)
動画を見る
• 概念を説明する日本語字幕動画があります。
• Corda理解に向けて(日本語字幕動画の紹介)
https://medium.com/corda-
japan/corda%E7%90%86%E8%A7%A3%E3%81%AB%E3%82%80%E3%81%91%E3%81%A6-
%E6%97%A5%E6%9C%AC%E8%AA%9E%E5%AD%97%E5%B9%95%E5%8B%95%E7%94%BB
%E3%81%AE%E7%B4%B9%E4%BB%8B-f3b586512609
日本語字幕 Corda
動画を見る
•日本語字幕動画
•約10分の動画×13本
•在宅勤務の合間に
動画を見る
•日本語字幕動画
•約10分の動画×13本
•在宅勤務の合間に
• 話してる人:Roger Willis @R3
• 翻訳した人:山田 @SBI R3 Japan
13
②とにかく書く (Bootcamp-Cordapp)
Bootcamp Cordapp
• R3社が用意したサンプルソースコード
https://github.com/corda/bootcamp-cordapp
Bootcamp Corda github
Bootcamp Cordappとは
• R3社が用意したサンプルソースコード
https://github.com/corda/bootcamp-cordapp
•トークン発行の実装体験が可能
•TDDベースでテスト記載済み
•テストを通せばエコシステム完成!?
Bootcamp-Cordappによる自習
16
1.サンプルコードを読む.
✓サンプルコード :src/main/java/java_examples以下
2.テストを通す.
✓テストコード :src/test/java/bootcamp以下
✓実装するファイル:src/main/java/bootcamp以下
3.実行する
困ったら・・①以下のファイルを見る
17
•README.mdを読む
→ 概念も含めた説明
•Troubleshooting.mdを読む
→ よくある質問とその解決法
•Solutions.mdを読む
→ 実装例
困ったら・・①以下のファイルを見る
18
•README.mdを読む
→ 概念も含めた説明
•Troubleshooting.mdを読む
→ よくある質問とその解決法
•Solutions.mdを読む
→ 実装例
日本語の.mdが欲しい!
→info-srj@sbir3japan.co.jp
困ったら・・②真面目にドキュメントを読む
19
• https://docs.corda.net/
Corda Docs
困ったら・・②真面目にドキュメントを読む
20
• https://docs.corda.net/
•Corda
→オープンソース版ドキュメント
•Corda Enterprise
→商用版ドキュメント
•Corda Enterprise Network Manager
→ネットワーク構築アプリドキュメント
困ったら・・・③誰かに聞く
21
•Slack CordaLedger#Japanese
• SBI R3 Japanのエンジニアも(暇なら)見ています。
•SNS SBI R3 Japan
• twitter/facebook/e-mail
•英語
• Slackの#general で聞く (簡単な質問)
• StackOverFlow #Cordaで聞く (割と複雑な質問)
• Corda-Dev@Group.io #で聞く (設計思想に関する質問)
22
③試験を受ける(Corda Certificate)
Corda certificate とは
23
•Corda試験
•選択問題で70問、75%が合格ライン
•デジタルバッジもらえます
受験手順
24
1.https://bit.ly/2YnUoW2
2.Discount Codeに『CVIRTBC』
3. education@r3.comからくるメールに従う。
練習問題用意してます。
25
https://forms.gle/SruxZMPkwHrM2k5i8
Corda Certificate Tips
26
•英語… … …(涙)
⇒Google先生!
•難しそう…………
⇒制限時間なし!何度でも受験可能!
Corda開発入門
• はじめに
• Corda事始め
• 技術概要of 概要
2
7
技術概要 of 概要
• ステートとトランザクション
• ノータリーとフロー
• Why?
• ネットワーク
2
8
29
概要 of 概要①
ステートとトランザクション
State / Transaction (Tx)
Confidential © 2019 SBI R3 Japan, Inc. All Rights Reserved.CONFIDENTIAL
ブロック1
ハッシュ1
取引データ
1-1
取引データ
1-n
管理データ1
Input
input
output
output
・
・
・
・
・
・
・
・
・
・
・
・
・
一般的なブロックチェーン(UTXOモデル)
ブロック2
取引データ
2-1
取引データ
2-m
管理データ2
ハッシュ1
ハッシュ2
input
ブロック3
ハッシュ3
取引データ
3-1
取引データ
3-l
管理データ3
ハッシュ2
・
・
・
・
input
Confidential © 2019 SBI R3 Japan, Inc. All Rights Reserved.
【UTXO】×【1取引1ブロック】
ブロック1
ハッシュ&署名
取引1
input
input
Output
Output
ブロック2
取引2
ブロック3
取引3
input
input
ハッシュ&署名
ハッシュ&署名
Confidential © 2019 SBI R3 Japan, Inc. All Rights Reserved.
CONFIDENTIAL
取引2
ハッシュ&署名
取引1
Output
Output
取引3
input
input
ハッシュ&署名
ハッシュ&署名
ハッシュ&署名
ハッシュ&署名
input
Output input
Output input
Output
Output
Output
Output
【UTXO】×【1取引1ブロック】
借用証(例)
• 佐藤は山田に1,000円借りている
• 2027/3/1までに返済する
• 支払遅延した場合は25%の利息
Id From To Amt Expiry Penalty Paid
1 佐藤 山田 1000
円
2027-03-
31
25% 0円
佐藤が知っている事実 = State 山田が知っている事実 = State
Id From To Amt Expiry Penalty Paid
1 佐藤 山田 1000
円
2027-03-
31
25% 0円
CordaのState=共有する事実/価値
ハッシュ&署名
取引
OutputInput
通貨、株、債券、シンジケートローン、CDO、
CLO、リファレンスデータ、請求書、契約書、
L/C(信用状)、注文書、売掛金、金利スワップ、
記帳入力、銀行貸出、中央銀行発行通貨、権利
証書、トレード取引、担保、KYCデータ、CDS
(クレジット・デフォルト・スワップ)etc….
34
「State=事実/価値」なので、、、
100円
鈴木
80円
山田
20円
鈴木
280円
佐藤
80円
山田
使用
200円
山田
使用
35
UTXO = Stateは分割/合流可能
OUTPUT
STATE
INPUT
STATE
36
CordaのTransaction(Tx)
= 取引をいれる箱
取引に使う
事実/価値
取引で生まれる
事実/価値
1)現金が鈴木から山田に移転されます
2)債券は山田から鈴木に移転されます
BOND0
山田
BOND1
鈴木
CASH1
山田
CASH0
鈴木
トランザクション
37
例:「現金」と「債券」の取引(DvP決済)
A1 A2
B1
C1C0
A1 A2
B1
C1C0
38
Txはアトミック
トランザクションは複雑化
A0 A1
B0
A1 A2
B0
C0
39
A2
D4 D5
C0 C1
40
概要 of 概要②
ノータリーとフロー
Notary/ Flow
Confidential © 2019 SBI R3 Japan, Inc. All Rights Reserved.CONFIDENTIAL
TX1
ハッシュ&署名
取引1
TX2
取引2
Output input
ハッシュ&署名
Output
不正取引
Input
ハッシュ&署名
Output
二重支払い
補完機能としてのNotary
Confidential © 2019 SBI R3 Japan, Inc. All Rights Reserved.
CONFIDENTIAL
①トランザクション1のハッシュを送付
Notary
Tx1 ハッシュ
+Output Index
②使用済み登録
TX1
ハッシュ&署名
取引1
TX2
取引2
Output input
ハッシュ&署名
Output
③トランザクション2への署名
補完機能としてのNotary
Confidential © 2019 SBI R3 Japan, Inc. All Rights Reserved.CONFIDENTIAL
Notary
Tx1 Output1
①検証&署名依頼
Input
ハッシュ&署名
Output
TX1
ハッシュ&署名
取引1
TX2
取引2
Output input
ハッシュ&署名
Output
補完機能としてのNotary
ブロックは関係者だけに送付
ブロック1
ハッシュ&署名
取引1
input
input
Output
Output
ブロック2
取引2
input
ハッシュ&署名
ブロック3
取引3
input
ハッシュ&署名
Confidential © 2019 SBI R3 Japan, Inc. All Rights Reserved.
TRANSACTION
OUT0
TX_HASH:
c6167d0dc8e3b0a1…
OUT1
IN0
IN1
Sig
Alice
Sig
Bob
Sig
Notary
Alice Bob Notary
Flow
ブロック送付先のコントロール=Flow
Alice
Bob
Notary
取引内容の作成
自己検証
署名
Aliceの署名確認
取引内容確認
取引への署名
取引内容のハッシュ値受け取り
ハッシュ値への署名
Alice Bob ノータリー
Send
Send
Send
Send
取引の確定/保存
*Suspended*
*Suspended*
取引の確定/保存
FlowInitiator FlowRespond
er
46
Flowの例
47
概要 of 概要③
Why?
技術の特徴
1. プライバシー
2. インターオペラビリティ
3. スケーラビリティ
4. ガバナンス
①プライバシー
49
×取引の中身を知ることができない
〇取引があった事がわからない
BOND0
〇〇
BOND1
××
●●
〇〇
●●
××
??取引内容を匿名化??
×
×
①プライバシー
関係者しか取引の存在を知らない
ブロック1
ハッシュ&署名
取引1
input
input
Output
Output
ブロック2
取引2
input
ハッシュ&署名
ブロック3
取引3
input
ハッシュ&署名
②インターオペラビリティ
51
×イーサリアムとつながる
(→LayerXさんありがとうございます!)
〇他のCordaアプリ/ネットワークに送金できる
Cordage
③パフォーマンス
52
×1ノードでたくさん処理できる
×ダーティーリードでレスポンスを稼ぐ
〇エコシステム全体でマルチスレッド化
③パフォーマンス
①並列処理可能
②ネットワークサイズ非依存
ブロック1
&署名
取引1
input
input
Output
Output
ブロック2
取引2
input
&署名
ブロック3
取引3
input
&署名
ブロック1
&署名
取引1
input
input
Output
Output
ブロック2
取引2
input
&署名
6,300 TPS
@連続5時間
or
1.15億件
@1日
54
https://www.dtcc.com/news/2018/october/16/dtcc-unveils-groundbreaking-study-on-dlt
6,300 TPS
@連続5時間
or
1.15億件
@1日
55
※注意※
・Open Source版は遅いです。
・商用版も工夫がいります。
・シャーディングです。
④ガバナンス
56
×計算パワー持ってる人が正しい(PoW)
×トークン持ってる人が正しい(PoS)
×指定されたノードが正しい(PoA/Raft他)
〇取引内容は知らないけど正しさだけ保証
Confidential © 2019 SBI R3 Japan, Inc. All Rights Reserved.CONFIDENTIAL
Notary
Tx1 Output1
①検証&署名依頼
Input
ハッシュ&署名
Output
④ガバナンス
TX1
ハッシュ&署名
取引1
TX2
取引2
Output input
ハッシュ&署名
Output
Confidential © 2019 SBI R3 Japan, Inc. All Rights Reserved.
CONFIDENTIAL
①Tx1Hash&Indexを送付
Tx1 Hash & Index
②使用済みOutputの確認
④ガバナンス
ブロック1
ハッシュ&署名
取引1
ブロック2
取引2
Output input
ハッシュ&署名
Output
③署名の提供
Confidential © 2019 SBI R3 Japan, Inc. All Rights Reserved.
CONFIDENTIAL
①Tx1Hash&Indexを送付
Tx1 Hash & Index
②使用済みOutputの確認
④ガバナンス
ブロック1
ハッシュ&署名
取引1
ブロック2
取引2
Output input
ハッシュ&署名
Output
③署名の提供
Notaryは取引内容を知らない
まとめ
60
• はじめに
→ 第3世代ブロックチェーン
• 概要 of 概要
→プライバシー&パフォーマンス
ネットワーク構築は次セッションで
Confidential © 2019 SBI R3 Japan, Inc. All Rights Reserved.
ご視聴ありがとうございました。
続いて、伊藤さんからのCENM入門です。
エンジニア・セールス募集中
困ったら・・・④お金を払う
62
•Professional Service
• コンサルティングサービス
• SBI R3 Japan と R3のエンジニア&コンサルタントが手伝います。
•Corda Training
名称 概要 所要日数
基礎 基礎概念の理解/アプリ実装/ノード構築 3日程度
開発応用
アプリ設計/ライブラリ解説
/テスト/アップグレード
4日程度
運用応用
ネットワーク構築/運用実務・監視
/実用ノード構築(FW/HA)他
4日程度
63
概要 of 概要④
Network
ネットワーク
64
1. The Corda Network
2. Private Networks
3. Segregated Networks
11
3
3
2
2
2
3種類のネットワーク
3
The Corda Network
65
 Corda Network Foundationが運営
(長所)
• インターオペラビリティ
• 低コスト
(短所)
• 可視性
• 運営が海外第三者機関(法的要件)
Private Network
66
 それぞれ独立したNetwork
(長所)
• コントロールの確保
• 法的要件の実現
(短所)
• ネットワーク運営コスト
• 他ネットワークとの結合
Identity
Manager
IM
Network
map
Trust
Root
Notary
Segregated Network
67
 Internetでいうサブネットワーク
(長所)
• インターオペラビリティ
• 参加者秘匿
(短所)
• 技術/ビジネス構築の難易度
68
Networkのコンポーネント
名称 機能
Node
ノード
参加者サーバー
台帳保管
スマートコントラクト実行/認証
Notary
ノータリー
価値移転の実現
Trust Root
トラストルート
参加者およびデータに対する認証の源
Identity Manager
アイデンティティ・
マネージャー
ネットワーク参加者の管理
Network Map
ネットワークマップ
Corda用のDNS/電話帳
I
M
69
Networkのコンポーネント
名称 機能
Node
ノード
参加者サーバー
台帳保管
スマートコントラクト実行/認証
Notary
ノータリー
価値移転の実現
Trust Root
トラストルート
参加者およびデータに対する認証の源
Identity Manager
アイデンティティ・
マネージャー
ネットワーク参加者の管理
Network Map
ネットワークマップ
Corda用のDNS/電話帳
I
M
Corda Enterprise Network Manager (CENM)

Contenu connexe

Tendances

Tendances (20)

VRSionUp!7-Spokeを使ったイベント設営TIPS
VRSionUp!7-Spokeを使ったイベント設営TIPSVRSionUp!7-Spokeを使ったイベント設営TIPS
VRSionUp!7-Spokeを使ったイベント設営TIPS
 
ラズパイでフリーLPWAの衝撃
ラズパイでフリーLPWAの衝撃ラズパイでフリーLPWAの衝撃
ラズパイでフリーLPWAの衝撃
 
これからの KYC と Identity on Blockchain の動向
これからの KYC と Identity on Blockchain の動向これからの KYC と Identity on Blockchain の動向
これからの KYC と Identity on Blockchain の動向
 
5分でわかるブロックチェーンの基本的な仕組み
5分でわかるブロックチェーンの基本的な仕組み5分でわかるブロックチェーンの基本的な仕組み
5分でわかるブロックチェーンの基本的な仕組み
 
『ゲームAI技術入門』講義用素材
『ゲームAI技術入門』講義用素材『ゲームAI技術入門』講義用素材
『ゲームAI技術入門』講義用素材
 
【Photon勉強会】1時間でわかるプラグイン開発とその実際(2017/3/23講演)
【Photon勉強会】1時間でわかるプラグイン開発とその実際(2017/3/23講演)【Photon勉強会】1時間でわかるプラグイン開発とその実際(2017/3/23講演)
【Photon勉強会】1時間でわかるプラグイン開発とその実際(2017/3/23講演)
 
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
 
エンタープライズにおけるブロックチェーン活用 実用フェーズへの課題と期待
エンタープライズにおけるブロックチェーン活用 実用フェーズへの課題と期待エンタープライズにおけるブロックチェーン活用 実用フェーズへの課題と期待
エンタープライズにおけるブロックチェーン活用 実用フェーズへの課題と期待
 
自己主権型IDと分散型ID
自己主権型IDと分散型ID自己主権型IDと分散型ID
自己主権型IDと分散型ID
 
Hyperledger Fabric活用事例:貿易プラットフォームTradeWaltz
Hyperledger Fabric活用事例:貿易プラットフォームTradeWaltzHyperledger Fabric活用事例:貿易プラットフォームTradeWaltz
Hyperledger Fabric活用事例:貿易プラットフォームTradeWaltz
 
プロジェクトの基本
プロジェクトの基本プロジェクトの基本
プロジェクトの基本
 
ブロックチェーンの仕組みと動向(入門編)
ブロックチェーンの仕組みと動向(入門編)ブロックチェーンの仕組みと動向(入門編)
ブロックチェーンの仕組みと動向(入門編)
 
Hyperledger Aries 101
Hyperledger Aries 101Hyperledger Aries 101
Hyperledger Aries 101
 
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
 
信頼性とアジリティを同時に上げろ!モノタロウのカナリアリリース導入.pdf
信頼性とアジリティを同時に上げろ!モノタロウのカナリアリリース導入.pdf信頼性とアジリティを同時に上げろ!モノタロウのカナリアリリース導入.pdf
信頼性とアジリティを同時に上げろ!モノタロウのカナリアリリース導入.pdf
 
Ethereumのシャーディング概論
Ethereumのシャーディング概論Ethereumのシャーディング概論
Ethereumのシャーディング概論
 
Web3 School
Web3 SchoolWeb3 School
Web3 School
 
世界経済フォーラム第四次産業革命センターによるブロックチェーンの相互運用フレームワークのご紹介
世界経済フォーラム第四次産業革命センターによるブロックチェーンの相互運用フレームワークのご紹介世界経済フォーラム第四次産業革命センターによるブロックチェーンの相互運用フレームワークのご紹介
世界経済フォーラム第四次産業革命センターによるブロックチェーンの相互運用フレームワークのご紹介
 
The practice of nft+defi ( nft+defiの小さな実践)
The practice of nft+defi ( nft+defiの小さな実践)The practice of nft+defi ( nft+defiの小さな実践)
The practice of nft+defi ( nft+defiの小さな実践)
 
ブロックチェーンを学ぶ 公開版
ブロックチェーンを学ぶ 公開版ブロックチェーンを学ぶ 公開版
ブロックチェーンを学ぶ 公開版
 

Similaire à 20200514 blockchain.tokyo v5

Similaire à 20200514 blockchain.tokyo v5 (9)

l12l2-NFT-Bridge.pdf
l12l2-NFT-Bridge.pdfl12l2-NFT-Bridge.pdf
l12l2-NFT-Bridge.pdf
 
Bitcoinを技術的に理解する
Bitcoinを技術的に理解するBitcoinを技術的に理解する
Bitcoinを技術的に理解する
 
JNSA Bitcoin 勉強会 佐藤 20140602
JNSA Bitcoin 勉強会 佐藤 20140602JNSA Bitcoin 勉強会 佐藤 20140602
JNSA Bitcoin 勉強会 佐藤 20140602
 
仮想通貨とBlockchainの課題と展望
仮想通貨とBlockchainの課題と展望仮想通貨とBlockchainの課題と展望
仮想通貨とBlockchainの課題と展望
 
Bitcoinの技術
Bitcoinの技術Bitcoinの技術
Bitcoinの技術
 
【ビットコインとか勉強会#1】トランザクションを読み解く
【ビットコインとか勉強会#1】トランザクションを読み解く【ビットコインとか勉強会#1】トランザクションを読み解く
【ビットコインとか勉強会#1】トランザクションを読み解く
 
Summary of Crypto currency2018 02-17
Summary of Crypto currency2018 02-17Summary of Crypto currency2018 02-17
Summary of Crypto currency2018 02-17
 
エンタープライズブロックチェーン構築の基礎
エンタープライズブロックチェーン構築の基礎エンタープライズブロックチェーン構築の基礎
エンタープライズブロックチェーン構築の基礎
 
Post-quantum zk-SNARKs on Hyperledger Fabric​
Post-quantum zk-SNARKs on Hyperledger Fabric​Post-quantum zk-SNARKs on Hyperledger Fabric​
Post-quantum zk-SNARKs on Hyperledger Fabric​
 

20200514 blockchain.tokyo v5

Notes de l'éditeur

  1. 本日はお休みの中CordaBootcampにご参加いただきありがとうございます。 本日、講師を務めさせていただく趙と申します。 よろしくお願いいたします。 今回はフリーランスでお仕事をされているかたからIT企業、金融機関の方と様々なバックグラウンドを お持ちの方にお集まりいただきました。 最後にささやかながら懇親会も準備させていただいておりますので、ネットワーキングも含めてこの機会を ご利用いただればと思います。 では早速ですが、まず本日このメンバーで1日過ごさせていただくということでアイスブレークを行いたいと思います。 (アイスブレークは検討中)
  2. 続いてコルダノードのイメージについてご説明します。 インフラ、ミドルウェア、業務アプリケーケーションの3つのレイヤーに分けた場合を考えるとコルダはミドルウェアの位置づけとなります。 ですので、SBI R3 Japan はこのミドルウェアの提供をおこなう会社ということになります。 すなわち、本日ご参加いただいている企業の方たちに、このコルダのミドルウェア上に多くのアプリケーションを構築していただきたいと 考えているわけです。 また、インフラについてはマイクロソフトAZUREやアマゾンが提供するAWSなどのクラウドサービスに加え オンプレミスのサーバー上での運用も可能となっています。
  3. 合格するとデジタルバッジがもらえる 名刺につけたり、LinkedInに表示するといった使い方がある SBI R3 Japanの社員も受験して合格した人は名刺にバッジがついている Cordaについて学ぶ上でマイルストーンにしていただきたい 受験までたどり着くのに少しかかるのと、全部英語なので、受験の方法を少し解説したい 言語は英語ですが、Google翻訳を使ってしまえるので、そこまで気にならない
  4. ステートは共有された事実を表しています。 ステートはデータのみで構成されていて、 複数のプロパティ、つまり属性、特性をもった オブジェクトだと考えて下さい。 ここに借入書、つまり金銭の貸借が存在するという共有の事実があります。 AliceはBobから10ポンド借りいれた、 つまりAliceはBobに将来10ポンドを支払う義務があるという事実が存在する ということになります。 ============================================== 英文 Alice Owes Bob £10 Payable by 01/03/17 Late settlement incurs 25% penalty
  5. Cordaでは、ステートはデジタル通貨だけでなく あらゆるものを表現することが出来ます。 ステートは基本的には、プロパティの集合であるためです。 ここに示してあるのはステートで表現できるものの一例です。 典型的なものとしては、金融商品や金利スワップがあります。 契約などの複数者間の合意を表現するために使用します。 もちろん、どのようなものでも表現でき、KYCデータなどにも使われます。 ============================================= ステートは静的な型であることが重要です。 これは一度ある特定の型のステートが作られると、 それは他の型に変えることが出来ないということです。 メモ: ステートの型を変えることは出来ない、というかステート自体消せないし 変えたいなら前のステートを消費して新しい型を持つステートを作ればよいのでは? CDO(Collateralized Debt Obligation)は、日本語では「債務担保証券」 CLOとは、Collateralized Loan Obligationの略で、ローン担保証券のことです。 英文 States can contain anything In Corda, states don't just represent digital cash The state model can be used to represent literally anything States are statically typed – an IOU state is always an IOU state Stocks, Bonds, Syndicated Loans, CDOs, CLOs, Reference Data, Invoices, Letter of Credit, Purchase Orders, Account Receivables, Interest Rate Swaps, Accounting Entries, Contract For Difference, Commercial Bank Credit, Central Bank Money, Title Deeds, Trade Representations, Collateral, KYC Data, Credit Default Swaps, Bids/Offers, Personal Information, Legal Contracts
  6. トランザクションはまた、ファンジブルな資産を表現するステートを分割または統合することが出来ます CordaではBitcoinのように、ファンジブル(代賛可能)なステートを分割したり マージしたりすることが出来ます。 ここの例でキャッシュである円をインプットとし、複数のアウトプットステートに 分割する例を示しています。 ==================================================== メモ 下のCaptionとダイアグラムは明らかに違うので注意。 図を白板に書いて、説明する。 英文 Transactions can split and merge states Transactions can also split and merge states representing fungible assets. Caption Bitcoinのように、ファンジブル(代賛可能)なステートを分割したり マージしたりすることが出来ます。 GBPは明らかにファンジブルであり、キャッシュです。 インプットのキャッシュのステートは、複数のアウトプットステートに 分割することが出来ます。 ここで、左のこのトランザクションは特徴的で、 おそらくレジャー上の1つのピアが、8ポンドの費用を支払うために10ポンドを使用し、 残った2ポンドを自分自身にお釣りとして返します。 そしてもちろん、複数のインプットを1つのアウトプットにマージすることが 出来ます。 Cordaは、ステートが時間の経過とともに分離したりマージしたりするような有向非循環グラフを 生成していて、 また前のスライドで見たように、 入力のステートは常に以前のアウトプットの参照であると考えることが出来ます。
  7. トランザクションとは、台帳を更新するアトミック(分割不可能)な変更のことです トランザクションは複数のインプットステートを参照し、 複数のアウトプットステートを生成します 新たに生成されたアウトプットステートは、インプットステートを過去のものつまりHISTORICとしてマークし、置き換えます。 トランザクションが必要な理由は、 例えば2者間におけるキャッシュと債券の交換取引等のDVP取引を実現するためです。 ========================================== (DVPは、Delivery VS Paymentの略です。) 変更点: 言い回し 0または1つ以上~の方が良い? 英語 Transactions We introduce transactions as atomic units of change to update the ledger Transactions reference zero or more input states and create zero or more output states The newly created output states replace the input states which are marked as historic Caption 何故トランザクションが必要なのでしょうか? 主な理由は、世界は複雑であり、 複数のステートのトランザクションを一度に発生させる必要があるためです。 良い例としては、 2者間におけるキャッシュと資産や債券のアトミックな 交換取引等のDVPトランザクションがあるでしょう。 この交換は同時に発生させる必要があります。 何故なら、一方の当事者がキャッシュと債券を持つまたはもう 一方の当事者がキャッシュと債券を持つといった状況は問題があるためです。 私たちは交換がアトミックに、同時に起こることを期待します。 私たちは交換が起きるか起きないかのいずれか一方を期待するので、 それを強制する仕組みとしてトランザクションを導入します。 トランザクションはRDBのそれと極めて類似しています。 ただし、 RDBでは途中で失敗した場合にロールバックするのに対し、 Cordaではシンプルにコミットされるか否かとなります。 そしてスライドの後の方でそれが何を意味するのかご説明致します。 しかし今は、トランザクションが何で構成されているか見てみましょう。 申し上げたように、トランザクションはレジャーを更新するための 変更の最小単位です。 これはコンテナまたは、 ゼロまたはそれ以上のインプットステートのリファレンスとゼロ またはそれ以上のアウトプットステートを生成する構造体、 として考えることが出来ます。 レジャーが全く更新されないような、 インプットとアウトプットが共にゼロの トランザクションは必要ないでしょう。 一般的には、インプットがゼロでアウトプットが1、 もしくはインプットが1でアウトプットがゼロのトランザクションとなるでしょう。 そして、アウトプットのステートが作られるとき、 トランザクションで何が起きるかですが、 トランザクションはインプットステートの参照を消費し、 参照しているインプットステートを過去のものとして マークします。 しかし実際にはサポートされる、 または必要とされるトランザクションのタイプとして3つのものが存在します。 発行、更新、そして終了です。 発行では、レジャー上でステートを発行します。 更新では、ステートの中のプロパティを変更します。 つまり古いバージョンを消費し、新しいバージョンを生成します。 そして終了では、古いバージョンを消費しますが、 新しいバージョンは生成しません。何故ならそのステートは必要とされないか、 または満期が到来したかは期限切れの金融商品であるためです。 では発行についてお話しましょう。 発行ではレジャー上で新しいステートを生成します。 もちろんレジャー上で新しいステートを生成するため、 新しいステートに関してインプットステートの 参照は含みませんが、 1つ以上のアウトプットステートを生成します。 典型的な例は、 スワップまたはレジャー上でのキャッシュの発行のような 二者間取引のような合意です。 したがって、このSはキャッシュまたは二者間取引を表すことが出来ます。 そして、線で囲まれたこのグレーのボックスは、 入力がなく出力があることを表しています。 この右側のボックスには、レジャー上に作成された ステートまたはレジャー上に存在するステートを 表すためのマーカーが付いています。 これでステートを更新することが出来ます。 更新はステートのプロパティを変更するために使用されます。 またここでの典型的な例はスライドのような現金の移動です。 Cordaではどのようにキャッシュを移動させるのでしょうか? ここで私たちが行うのは、現在あるキャッシュの日付を 取得し所有者を変更することです。 現在の所有者の公開鍵を提案された所有者の公開鍵に変更し、 キャッシュのステートオブジェクトを更新します。 つまり更新は、1つ以上のインプットステートの参照を取り、 1つ以上のアウトプットステートを生成します。 ここでそれがどのように機能するか見ることが出来ます。 ここで、このステートはステートの参照を持っていません。 このステートは、前のトランザクションのアウトプットステートを 参照しています。 それではここでステートの参照について少しお話しして行きましょう。 ステートの参照は、 トランザクションのハッシュであるトランザクションIDとインデックスで 構成されています。 つまりトランザクションIDは、参照されているステートを作成した トランザクションのハッシュを参照します。 インデックスはアウトプットのリスト内のステートの位置を 参照しています。 つまりアウトプットリストはゼロでインデックス付けされています。 すなわち、この前のトランザクションでは、 ここで前のトランザクションのハッシュを持つことになり、 1つのステートしかないためインデックスはゼロとなります。 したがって、トランザクションID、インデックスは、レジャー上にある 任意のステートを参照することが出来る座標であると考えることが出来ます。 捉え方として、あなたが参照しているステートを含むトランザクションが どの当事者にあるのかを知る必要があります。 では実際どう機能するのでしょうか? >ここで2つの更新を持つトランザクションがあります。 1つはステートAを、1つはステートBを更新します。 そして、前のトランザクションで作成された前のステートBを 参照するステートBへのちょっとした更新があります。 B1のステートの参照は前のトランザクションからのハッシュであり、 それはアウトプットリストの2番目のポイントで発生するため 番号は1です。 Cordaにおいてステートの参照は非常に重要です。 何故なら、トランザクションを発生する際に、 ステートそのものを入れるのではなく、 前のステートへの参照に入れるためです。 そして、実際の前のステートを見つけるために参照を使用します。 つまり他の当事者に対して、 「このトランザクションハッシュとインデックスナンバーの ステートを教えてくれますか?」と言う必要があります。 検証コンセンサスの中でこれについてもう少しお話して行きましょう。 最後に終了があります。 終了はステートのチェーンを終わらせることにより、 レジャーからステートをとり除きます。 これはとてもシンプルで、 前のトランザクションで作られたステートを消費しますが、 新しいステートは生成しません。 金融商品、合意または契約がレジャー上でもはや必要とされなくなると、 これにより、実質的にレジャーのステートを終了させます。 しかし重要であると申し上げたように、 過去のバージョンのステートにはまだアクセス出来ます。 これは合意、契約、あるいは金融商品のライフサイクルを監査する証跡として役立ちます。 発行、更新そして終了について個別に触れましたが、
  8. トランザクションは複数の型のステートを含むことが出来ます この例ですと一つのトランザクションにキャッシュとボンド2種類のステートが含まれています。 ===========================================- (変更点) (2018/5/31) 「BOND」ステートを「CASH」ステートにあわせ、0→1に変更 メモ: ? (タイトルを読む) トランザクションは複雑な処理もサポートすることができます。 ここでは1つのトランザクションでも、 キャッシュと債券のDvPを表すことができて、 かつ、クーポンの支払いも表すことができることを説明しています。 英文 Transactions can be arbitrarily complex Transactions can contain states of many types. Or this transaction could represent a delivery versus payment of some cash for a bond Cash is paid from the buyer to the seller The bond is moved from the seller to the buyer This transaction could represent a coupon payment on a bond: Cash is paid from the bond issuer to the bond owner. The bond shared fact is updated to reflect the coupon payment Caption 同様に、トランザクションには多くのステートの型が含まれることに注意が 必要です。 このトランザクションはキャッシュと債券を含んでいます。 しかしこれは何を表しているのでしょうか? 追加情報がない場合、一見して、 Cordaのトランザクションが何をしようとしているかを確かめることは、実際にはかなり難しいです。 これは、実際に債券のクーポンの支払いであり、 債券のステートが更新され、 例えばこの特定の四半期のクーポンが支払われたことをマークすることが出来、 また所有者が債券の発行者から債券の保有者に変更されるようにキャッシュの ステートが更新されます。 債券の保有者にはクーポンが支払われたことは明らかですが、 これはまた債券に対してキャッシュが交換された DVPトランザクションを表している可能性があります。 つまりこれは、キャッシュと債券が交換されるアトミックなDVPトランザクション である可能性があります。 したがって、あなたはトランザクションの中で何が起きているのか 説明するためのデータをもう少し必要としています。 次のスライドで説明すると思いますが。 私たちが何を使うことが出来るのかについて議論 していく中でコマンドに触れます。 メモ What is 'Delivery Versus Payment - DVP' A securities industry settlement procedure in which the buyer's payment for securities is due at the time of delivery. Delivery versus payment (DVP) is a settlement system that stipulates that cash payment must be made prior to or simultaneously with the delivery of the security. Delivery versus payment is from the buyer's perspective; from the seller's perspective, this system is called receive versus payment (RVP). DVP/RVP requirements arose as a result of institutions being prohibited from paying money for securities before the securities were held in negotiable form. Read more: Delivery Versus Payment (DVP) http://www.investopedia.com/terms/d/dvp.asp#ixzz4vk5lnlrb Follow us: Investopedia on Facebook
  9. 次にアトミックという考えかたを確認したいと思います。 トランザクションは分割不可能な更新の集合です。そのため、全て適用されるか全て適用されないかの二択になります。 一つのトランザクションにはいっている検証がすべて問題なければ更新は成功ですが、1つでも検証に問題があれば、すべての 更新は破棄されます。 変更点: irreducible、が減らせないは何かおかしい 分割不可能だけでよいのでは (スライドを読む) これは先ほども説明したように、トランザクションは台帳を更新する アトミックな変更のことです。 これはDvPを実装する上で必要不可欠な機能になります。 英文 Transactions are atomic A Transaction in Corda is an indivisible and irreducible set of changes such that either all occur, or nothing occurs. Caption このスライドの最初の方で述べたように、トランザクションはアトミックです。 つまりトランザクションは不可分であり、 かつそれ以上減らすことの出来ない変更の集合です。 それが意味するのは、トランザクションに含まれる様々なステートの変化に ついて、全て発生させる、 または全て成功する、そうではないならばトランザクションは発生したと みなされません。 ここで、もしCに対するステートの変化が正しく、 Aに対するものが正しくないか(何らかの理由で)無効であって、 Bが有効である場合、トランザクション全体として無効であると みなします。 しかし、もし全てが正しい場合にはトランザクションは有効であり、 この時点で全てのステートは消費済みまたは過去のものとしてマークされます。
  10. トランザクションは発行、更新、終了の組み合わせになります。 トランザクションモデルは非常にフレキシブルで、 必要に応じてこれらを同じトランザクションの中で組み合わせることが出来ます。 このトランザクションを見てみると、 ステートA0はステートA1に更新され、 その下で示されているトランザクションではB0がレジャー上に生成されます。 次のトランザクションは、これら二つを消費して C0とA2を発生させ、B0は終了します。 そして次にC0は、 スライドにはないチェーンの中の ずっと前のトランザクションで発生したD4と 共に消費され、 D5とC1が発生します。 また、別のトランザクションではA2は消費され終了します。 ======================================================== Cordaレジャーはハッシュにより 以前のトランザクションを参照するような 複数のトランザクションを構成します。 英語 Transactions can be arbitrarily complex Transactions may combine issuances, updates and exits. Caption もちろんトランザクションモデルは非常にフレキシブルで、 必要に応じてこれらを同じトランザクションの中で組み合わせることが出来ます。 必ずそうしなければならない、というわけではありませんが、それは可能です。 つまりトランザクションは、ユースケースを実現するために必要に応じて複雑にすることが出来ます。 このトランザクションを見てみると、 ステートA0はステートA1に更新され、 B0がレジャー上に生成されます。 これらの2つは、C0とA2を発生させる、 より複雑なトランザクションで消費され、B0は終了しオフレジャーになります。 そして次に、C0とは別にトランザクションの中で使用されるA2があります。 D4は、スライドにはないチェーンの中のずっと前のトランザクションを表しています。 Cordaレジャーはハッシュにより以前のトランザクションを参照するような 複数のトランザクションを構成するものと考えることが出来ます。 レジャーの現在のステートが全てアウトプットステートである場合、 それはトランザクションで発生され、 まだ過去のものとしてマークされていないか、後続のトランザクションで 使用されていないかです。
  11. ノータリーノードとはコルダにおいて二重支払いを防止するために一般のユーザのノードとは別に設置されるノードである。ノータリーノードでは、過去に一度使用されたインプットデータのハッシュ値を一覧で保存しており、取引の当事者は都度インプットデータをノータリーに問い合わせることによって過去に使用されていないかを確認できるわけだ。 ノードはフローと呼ばれる、構造化されたメッセージの列を使って通信します。 フロー中のそれぞれのノードは自身のフローロジックを実行します。 フローのステップは双方向です。 複数のノードが1つのフローに関わることができます… …そして、フローの完了は通知され、その結果、台帳が更新されます。 -------------------------------------------------------------- ここにある図はイメージで、実際にはアリスからボブにメッセージが渡された後、 ノータリーには行かず、一度、アリスに帰ってきて、そこからノータリーに メッセジは渡されます。 原文 What is a flow? Nodes communicate using structured sequences of messages called flows Flow steps are bilateral But any number of nodes can be involved in a single flow… …and be informed of the flow’s completion and resulting ledger updates
  12. エンタープライズグレードの要件としてのプライバシーを満たすために、コルダは知る必要のある当事者間でのみ事実の共有を行います。 すなわち、取引当事者など、取引内容を知る必要がある主体間でのみ、ピアツーピアで事実の共有が行われます。 ビットコインなどのパブリックチェーンのようにブロードキャストを行うことはありません。 つまり取引当事者間でのみデータの共有が行われます。 ========================================================================== 各ピアの視点で考えると、データは他の各ネットワークピアとの共通部分の和集合になります
  13. エンタープライズグレードの要件としてのプライバシーを満たすために、コルダは知る必要のある当事者間でのみ事実の共有を行います。 すなわち、取引当事者など、取引内容を知る必要がある主体間でのみ、ピアツーピアで事実の共有が行われます。 ビットコインなどのパブリックチェーンのようにブロードキャストを行うことはありません。 つまり取引当事者間でのみデータの共有が行われます。 ========================================================================== 各ピアの視点で考えると、データは他の各ネットワークピアとの共通部分の和集合になります
  14. エンタープライズグレードの要件としてのプライバシーを満たすために、コルダは知る必要のある当事者間でのみ事実の共有を行います。 すなわち、取引当事者など、取引内容を知る必要がある主体間でのみ、ピアツーピアで事実の共有が行われます。 ビットコインなどのパブリックチェーンのようにブロードキャストを行うことはありません。 つまり取引当事者間でのみデータの共有が行われます。 ========================================================================== 各ピアの視点で考えると、データは他の各ネットワークピアとの共通部分の和集合になります
  15. エンタープライズグレードの要件としてのプライバシーを満たすために、コルダは知る必要のある当事者間でのみ事実の共有を行います。 すなわち、取引当事者など、取引内容を知る必要がある主体間でのみ、ピアツーピアで事実の共有が行われます。 ビットコインなどのパブリックチェーンのようにブロードキャストを行うことはありません。 つまり取引当事者間でのみデータの共有が行われます。 ========================================================================== 各ピアの視点で考えると、データは他の各ネットワークピアとの共通部分の和集合になります
  16. Private (長所) 参加者秘匿 あらゆるコントロール可能 (短所) インターオペラビリティ無し 運営のコスト労力が大きい 自前のルートCAのセキュリティ
  17. フロー は、共有された事実に合意するために、複雑な複数ステップや複数ピアのやり取りを指示、調整するプログラムということ になります。 ここでコルダのキーコンセプトの説明はいったん終了となります。 英文 Flows are light-weight processes used to coordinate the complex multi-step, multi-peer interactions required for peers to reach consensus about shared facts Revise this definition when I can think of a better one
  18. フロー は、共有された事実に合意するために、複雑な複数ステップや複数ピアのやり取りを指示、調整するプログラムということ になります。 ここでコルダのキーコンセプトの説明はいったん終了となります。 英文 Flows are light-weight processes used to coordinate the complex multi-step, multi-peer interactions required for peers to reach consensus about shared facts Revise this definition when I can think of a better one