...

Bitcoin プロトコルを用いた Pure-P2P コンテンツ流通

by user

on
Category: Documents
6

views

Report

Comments

Transcript

Bitcoin プロトコルを用いた Pure-P2P コンテンツ流通
平成 27 年度
学士学位論文
Bitcoin プロトコルを用いた Pure-P2P
コンテンツ流通及び課金システムの検討
The Study on the Pure-P2P content distribution and
billing system using Bitcoin protocol
1160348
林 憲佑
指導教員
清水 明宏
2016 年 2 月 26 日
高知工科大学 情報システム工学科
要 旨
Bitcoin プロトコルを用いた Pure-P2P
コンテンツ流通及び課金システムの検討
林 憲佑
P2P 型コンテンツ流通システムはスケーラビリティが高く,耐障害性の高いシステム構
築が可能であるため注目されている.従来のシステムでは,コンテンツをカプセル化しユー
ザ間で流通させる.しかし,二次配布を行う利点が存在しないため負荷分散が行われにく
く,流通経路の追跡も困難であった.既存方式として,Bitcoin の全取引履歴であるブロッ
クチェーンが公開される性質を用いて流通経路の明確化を行い,カプセルの二次配布者に利
益を与える著作権管理システムが提案されている.しかし,既存方式では配信者が何らかの
方法で入金を受けた後,コンテンツ利用権を購入者に与えるという手順をとっている.よっ
て,配信者が信用できることが前提のシステムであり,悪意のあるユーザが参加する恐れの
ある P2P においては現実的ではない.
そこで本論文では,Bitcoin プロトコルを用いた Pure-P2P コンテンツ流通及び課金シス
テムを提案する.提案システムでは,Bitcoin における取引単位であるトランザクションを
6 種類定義し,コインの情報だけではなくコンテンツに関する情報をブロックチェーンに記
録可能にする.これにより,販売したいコンテンツの登録や,コインとコンテンツ復号用鍵
の同時取引を可能にする.不正への対策として,購入者がコインを事前に取引用に確保する
ことを必須の動作とすることで,購入者がコインを渡さずにコンテンツ復号用鍵を入手する
ことを不可能にする.また,コンテンツ配信者が,不正なコンテンツ復号用鍵を購入者へ渡
す可能性があるため,第三者による鍵の正当性検証を可能にし,不正が認められた場合に返
金処理を行うことで,不正を無意味なものにする.これにより,安全なコンテンツ流通シス
–i–
テムが実現できることを示す.
キーワード
ピアツーピア, ビットコイン, コンテンツ流通, 課金システム, デジタル著作権
管理
– ii –
Abstract
The Study on the Pure-P2P content distribution and billing
system using Bitcoin protocol
Kensuke HAYASHI
A P2P content distribution system has received a lot of attention in recent years,
because of its high scalability and high fault tolerance. Conventional system encapsulates a content, and distributes a capsule among users. Conventional system has a
problem that users do not have a method to know a distribution route, and load sharing
isn’t performed because there are no merits by which the user uploads a file. Against
this problem, a method of digital rights management based on Bitcoin protocol has
considered. In this method, using the mechanism that Blockchain which is all transaction history is shown, can give a benefits to a user. In this method, vendor gives right
of use to a buyer after getting money from a buyer. Therefore, when a vendor is not
a reliable person, this system can’t be usable. For this reason, it is risky to use this
system because a malicious user exists in P2P.
In this paper, I propose a new content distribution and billing system using Bitcoin
protocol. In this system to define a format for the 6 types of transactions. Then, users
can record not only coin but also information of content in Blockchain. Accordingly, it
becomes possible to a registration of sale contents, and trade in a coin and a decryption
key of contents at the same time. As a countermeasures against dishonest acts, I make
a structure that a buyer must reserve some coin beforehand. From this point, when
a buyer does not pay a coin to a vendor, buyer can’t get a decryption key. Also, a
– iii –
vendor may hand an illegal decryption key to a buyer. Then, enable to the correctness
verification of the decryption key by the third party and enable to refund when it is
illegal. I show that a safe contents distribution system can be realized by this method.
key words
P2P, Bitcoin, Content Distribution, Billing System, Digital Rights Man-
agement
– iv –
目次
第1章
序論
1
1.1
背景と目的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.2
本論文の構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
P2P 型コンテンツ流通及び著作権保護方式
3
2.1
DRM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
2.2
P2P 型 DRM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.3
Bitcoin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
第2章
2.4
第3章
2.3.1
トランザクション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.3.2
ブロックチェーン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.3.3
Proof of Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.3.4
Bitcoin における取引手順 . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.3.5
コインの融合と分離 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
北原らによる Bitcoin プロトコルを用いた DRM . . . . . . . . . . . . . . . .
9
2.4.1
再販売が可能な方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
2.4.2
再販売を考慮しない方式 . . . . . . . . . . . . . . . . . . . . . . . . . .
10
2.4.3
北原らの方式の問題点 . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
Bitcoin プロトコルを用いたコンテンツ流通及び課金方式
12
3.1
提案システムの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
3.2
前提条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
3.3
定義と記法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
3.4
トランザクションの定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
3.4.1
トランザクションの構成要素 . . . . . . . . . . . . . . . . . . . . . . .
–v–
16
目次
3.4.2
Register トランザクション . . . . . . . . . . . . . . . . . . . . . . . .
19
3.4.3
Transfer トランザクション . . . . . . . . . . . . . . . . . . . . . . . .
19
3.4.4
Reserve トランザクション . . . . . . . . . . . . . . . . . . . . . . . . .
20
3.4.5
Payment トランザクション . . . . . . . . . . . . . . . . . . . . . . . .
20
3.4.6
Change トランザクション . . . . . . . . . . . . . . . . . . . . . . . . .
21
3.4.7
Refund トランザクション . . . . . . . . . . . . . . . . . . . . . . . . .
21
3.4.8
複数の入出力を持つトランザクション . . . . . . . . . . . . . . . . . .
22
3.5
コンテンツの登録 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
3.6
コンテンツカプセルの流通 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
3.7
コンテンツ利用権の売買 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
3.8
コインの払い戻し . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
評価及び考察
31
4.1
トランザクションの改ざんへの対策 . . . . . . . . . . . . . . . . . . . . . . .
31
4.2
コンテンツの登録における不正と対策 . . . . . . . . . . . . . . . . . . . . . .
31
4.3
コンテンツカプセルの流通における不正と対策 . . . . . . . . . . . . . . . . .
32
4.4
コンテンツ利用権の売買における不正と対策 . . . . . . . . . . . . . . . . . .
33
4.5
コインの払い戻しにおける不正と対策 . . . . . . . . . . . . . . . . . . . . . .
34
結論
36
第4章
第5章
謝辞
37
参考文献
38
– vi –
図目次
2.1
クライアントサーバ型 DRM におけるコンテンツ利用手順 . . . . . . . . . . .
4
2.2
コンテンツのカプセル化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.3
Bitcoin のトランザクション . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.4
ブロックチェーンの構造 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.5
Bitcoin における取引 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.6
コインの融合と分離 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
3.1
コンテンツカプセルの流通手順 . . . . . . . . . . . . . . . . . . . . . . . . . .
25
3.2
コンテンツ利用権の売買手順 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
3.3
コンテンツ配信者による返金手順 . . . . . . . . . . . . . . . . . . . . . . . . .
28
3.4
第三者による返金手順 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
– vii –
表目次
3.1
コンテンツ登録と流通に関するトランザクションの構造 . . . . . . . . . . . .
15
3.2
取引に関するトランザクションの構造 . . . . . . . . . . . . . . . . . . . . . .
16
3.3
返金要求トランザクションの構造 . . . . . . . . . . . . . . . . . . . . . . . . .
17
3.4
複数の入出力を持つトランザクション . . . . . . . . . . . . . . . . . . . . . .
23
3.5
お釣りの返却を含む Transfer トランザクション . . . . . . . . . . . . . . . . .
23
3.6
部分的な Transfer トランザクション . . . . . . . . . . . . . . . . . . . . . . .
25
3.7
部分的な Payment トランザクション . . . . . . . . . . . . . . . . . . . . . . .
27
3.8
部分的な Refund1 トランザクション . . . . . . . . . . . . . . . . . . . . . . .
28
– viii –
第1章
序論
1.1
背景と目的
インターネットの普及,パソコンやスマートフォン・タブレット等の情報端末の流通によ
り,誰もがインターネットを通じた情報発信が可能となっている.これにより,一般のクリ
エータによって作られた動画・音楽・イラスト・ソフトウェア等のデジタルコンテンツの売
買が盛んに行われている.実際に,日本の通信系コンテンツ市場規模は年々増加しており,
それに伴い様々なデジタルコンテンツ配信サービスが提供されている [1][2].
一般的なコンテンツ配信サービスはクライアント・サーバ型で実現されているが,サービ
ス提供者のサーバにアクセスが集中するため,大規模なサーバと転送量の大きい通信路が必
要である.その一方で P2P 型コンテンツ配信システムは,暗号技術を用いてコンテンツを
カプセル化し,カプセル化したコンテンツをユーザ間で流通させることで負荷分散が可能で
あるため,低コストでコンテンツ配信システムを実現できる.そこで,様々な P2P コンテ
ンツ配信システムが検討されているが,従来型の方式では,流通経路が不明確であり,負荷
分散が十分に行われない等の問題も抱えている [3].
これに対し,北原らによって Bitcoin プロトコルを用いたコンテンツ流通及び著作権管理
手法が提案されている [4].この方式では,コインを保持しているか否かでコンテンツ利用
の可否を判断する.Bitcoin システムにおいてはコインの取引履歴は全ユーザに公開される.
よって,配信者は現在コンテンツを利用可能なユーザを知ることができる.また,コンテン
ツ購入者による二次配布の利点を生み出すことが可能となり,P2P の利点である負荷分散
を効率的に行うことが可能となっている.
–1–
1.2 本論文の構成
北原らの方式では課金はシステムの範囲外とされており,配信者が購入者からの入金を確
認後,コンテンツの利用権を購入者に与える,というアルゴリズムとなっている.しかし,
P2P ネットワークにおいては配信者が悪意のあるユーザである可能性もあるため,配信者
が代金を入手した後コンテンツ利用権を購入者に与えない可能性も考えられる.
そこで本論文では,購入者と配信者が互いに信用できない環境であっても,安全にコンテ
ンツの売買が可能な P2P コンテンツ流通および課金システムを提案する.Bitcoin プロト
コルを拡張し,コインとともにコンテンツの情報をブロックチェーンに記録することで,コ
ンテンツリストの管理やコインとコンテンツ利用権の同時受け渡しを可能にする.不正への
対策として,購入者がコインを事前に取引用に確保することを必須の動作とすることで,購
入者がコインを渡さずにコンテンツ復号用鍵を入手することを不可能にする.また,コンテ
ンツ配信者が,不正なコンテンツ復号用鍵を購入者へ渡す可能性があるため,第三者による
鍵の正当性検証を可能にし,不正が認められた場合に返金処理を行うことで,不正を無意味
なものにする.これにより,取引相手が信用出来ない場合でも,安全に取引ができるコンテ
ンツ流通システムを実現する.
1.2
本論文の構成
本論文は,全 5 章で構成される.本章では,研究の背景と目的を述べた.第 2 章では,既存
方式である北原らによる Bitcoin プロトコルを用いた DRM(Digital Rights Management)
の問題点を明らかにする.その過程において,既存方式および本論文の関連技術を紹介す
る.第 3 章では,第 2 章で述べた問題点を解決した,Bitcoin プロトコルを用いた安全なコ
ンテンツ流通及び課金システムを提案する.第 4 章では,提案システムにおいて,ユーザが
行う可能性のある不正の例を挙げ,その不正に対して対策がなされていることを示す.第 5
章では,本研究の結論と,今後の課題を示す.
–2–
第2章
P2P 型コンテンツ流通及び著作権
保護方式
本章では,既存方式である北原らによる Bitcoin プロトコルを用いた DRM システムの問
題点を明らかにする.北原らの方式はコンテンツの不正利用防止に着目し,DRM システム
として提案されているが,コンテンツ流通の機能も保持しているため,本論文における既存
方式として紹介する.また,北原らの方式を紹介する過程として DRM と Bitcion プロトコ
ルについて述べる.
2.1
DRM
DRM(Digital Rights Management) とは,デジタルコンテンツの不正利用を防ぐことを
目的とした技術の総称である [5].デジタルコンテンツは,複製が容易であり劣化しないと
いう特徴を持つため,悪意のあるユーザによって,不正な複製,不正な流通が行われる恐れ
がある.そのため,著作権を守り,デジタルコンテンツの利用を制御する DRM 技術は長年
重要視されている.一般的な DRM では,コンテンツは暗号化された状態でユーザの下へ渡
る.クライアントサーバ型 DRM における,暗号化されたコンテンツの利用手順を図 2.1 お
よび以下に示す.
1. ユーザは,暗号化されたコンテンツを入手する.
2. ユーザは,DRM 管理サーバと通信を行い,正規のユーザであることを認証する.
3. DRM 管理サーバは,認証が正しく行われた場合,コンテンツの暗号化を解除するため
–3–
2.2 P2P 型 DRM
の鍵をユーザに送信する.
4. ユーザは,専用ソフトウェアを用いて,ダウンロードした鍵でコンテンツを復号しなが
ら再生する.
5. 専用ソフトウェアは,コンテンツの利用終了後,鍵を破棄または秘匿化する.
このように鍵の利用は専用ソフトウェアによって制限されているため,ユーザは復号され
たコンテンツそのものを入手することができず,コンテンツの不正利用を行うことはでき
ない.
図 2.1
2.2
クライアントサーバ型 DRM におけるコンテンツ利用手順
P2P 型 DRM
P2P 型 DRM においても基本的にはクライアントサーバ型 DRM と同じ仕組みでコンテ
ンツの保護が可能である.P2P 型 DRM の特徴としては,コンテンツがカプセル化され,
ユーザ間で自由に流通されることが挙げられる.よって,サーバへの負担がなく,利用者の
増加に対応しやすいという特徴を持つ.一般的なコンテンツカプセルの構造は図 2.2 のよう
になっており,コンテンツを暗号化したデータと,コンテンツの利用条件,カプセルコント
ロールプログラムを単一のファイルに格納することでカプセル化する [6].
–4–
2.3 Bitcoin
図 2.2
コンテンツのカプセル化
P2P 型 DRM の中でも全てのノードが並列な Pure-P2P 型の DRM システムでは,コン
テンツ配信者がサーバの役割も持ち,購入者のコンテンツ利用権管理や金銭の取引の管理を
行う.Pure-P2P 型 DRM システムでは,任意のユーザがコンテンツ提供者になることがで
きる.そのため,信頼できる大きなシステムが 1 つ存在すれば一般のクリエータから企業ま
で様々なユーザが低コストでコンテンツ配信及び DRM を実現できる.
従来の Pure-P2P 型 DRM の問題点として,システム全体を見渡すことのできる管理者
が存在しないため,システムの利用状況の把握が難しいという点が挙げられる.また,コン
テンツの二次配布を行うことの利点が存在しないため,現実的には負荷分散を行いにくいと
いう点も挙げられる.
2.3
Bitcoin
Bitcoin は,P2P によって実現される仮想通貨の 1 種である [7][8].Bitcoin における重要
な要素として,トランザクションとブロックチェーン,マイニングが挙げられる.
–5–
2.3 Bitcoin
2.3.1
トランザクション
Bitcoin におけるトランザクションとは,コインの取引を表すものである.トランザク
ションには,受信者の公開鍵と送信者の電子署名が含まれる.受信者の公開鍵により次のコ
インの持ち主が明確になり,送信者が電子署名を行うことにより送金の証明を行う.トラン
ザクションの概念図を図 2.3 に示す.
図 2.3 Bitcoin のトランザクション
2.3.2
ブロックチェーン
ブロックチェーンとは,Bitcoin における全ての取引を記録したものである.ブロック
チェーンはブロックを連接したデータであり,個々のブロックには,多数のトランザクショ
ンと前のブロックのハッシュ値,Nonce が含まれる.Bitcion システムでは,最長のブロッ
クチェーンに含まれるトランザクションのみを正しい取引とする.ブロックチェーンの構造
を図 2.4 に示す.
2.3.3
Proof of Work
Proof of Work とは,Bitcoin におけるブロックチェーンの維持管理の仕組みである.
Bitcoin におけるブロック生成のルールとして,そのブロックのハッシュ値が一定の値より
–6–
2.3 Bitcoin
図 2.4
ブロックチェーンの構造
小さいものでなければならない.よって,ブロックの生成のためには,総当り的に Nonce を
試し,ブロックのハッシュ値が小さくなる Nonce を見つける必要がある.このように,演算
を用いて取引の承認を行う仕組みが Proof of Work である.
また,ハッシュ値が小さくなる Nonce を見つけ出し,新たなブロックの生成を行ったユー
ザには報酬としてシステムからコインが与えられる.そのため,多くのユーザが報酬を得る
ために演算を行い,競争が生まれる.これにより,ブロックチェーンへのトランザクション
の記録作業が長期的に行われ,特定の主体に依存しない分散的な取引の管理が可能になる.
Proof of Work の仕組みを用いてブロックを生成し,報酬のコインを得ることをマイニン
グと呼び,マイニングを行うユーザのことをマイナーと呼ぶ.
2.3.4
Bitcoin における取引手順
Bitcoin による取引の手順を以下に示す.また,取引のイメージを図 2.5 に示す.
1. 送信者は,自身がコインを受け取ったトランザクションのハッシュ値とコインを送る相
手の公開鍵のハッシュ値に対して自身の秘密鍵で電子署名を施すことでトランザクショ
ンを作成する.
2. 送信者は,作成したトランザクションを P2P ネットワークにブロードキャストする.
3. P2P ネットワークのユーザはトランザクションを集めブロック化しそのブロックをブ
ロックチェーンの最後に連結する.
4. 送信者と受信者はブロックチェーンに含まれるトランザクションから,正しく取引が行
–7–
2.3 Bitcoin
われたことを確認できる.
図 2.5 Bitcoin における取引
2.3.5
コインの融合と分離
Bitcoin においては,コインをトランザクション単位で管理する.よって,取引の際には,
自身がコインを受け取った 1 つ以上のトランザクションを入力として,1 つ以上の出力を持
つトランザクションを生成する.ユーザ B からユーザ A へ 6 ビットコイン渡す例を図 2.6
に示す.図では,入力として,B がコインを受け取ったトランザクションへの参照 (トラン
ザクション ID) を 6 ビットコインを超えるだけ含む.また,出力として,A へ 6 ビットコイ
ン渡すというものと,B へ 1 ビットコイン渡すという 2 つの出力を指定する.B が B 自身
へ 1 ビットコイン出力しているが,再度自身が利用可能なコインを生成することで,お釣り
としての返却を意味する.コインの入力と出力との差額は,取引手数料であり,このトラン
ザクションをブロックチェーンに記録したユーザの報酬となる.
–8–
2.4 北原らによる Bitcoin プロトコルを用いた DRM
図 2.6
2.4
コインの融合と分離
北原らによる Bitcoin プロトコルを用いた DRM
従来の P2P 型 DRM では,コンテンツを購入したユーザのみが利用可能であり拡張性は
無いものとなっている.そこで,既存研究として北原らによって Bitcoin プロトコルを用い
た DRM が提案されている [4].北原らの方式では,利用権をコインとして受け渡し,コイ
ンを保持しているか否かでコンテンツの利用可否の判断を行う.そのため,コンテンツの購
入者によるコンテンツの売却が可能になり,デジタルコンテンツの利用形態に拡張性が生ま
れる.また,コインの取引履歴は全ユーザに明らかになっているため,どういった経路でコ
ンテンツが受け渡されたのかのデータを収集可能となる.P2P において,ユーザがコンテ
ンツを配布する上で利点となることが基本的に存在しないため,アップロードを嫌うユーザ
が多い現状がある.よって,コンテンツ配布の経路が明らかになることで,多く配布を行っ
たユーザに利益を与えることが可能になり,より実用性が高まることが予想されている.
北原らの方式は利用状況によって 2 種類提案されている.中古のようにコンテンツを購入
したユーザが自身の持つコンテンツを他のユーザに再販売が可能なシステムと,再販売を想
定しないシステムである.
–9–
2.4 北原らによる Bitcoin プロトコルを用いた DRM
2.4.1
再販売が可能な方式
コンテンツを購入したユーザが別のユーザへとコンテンツを再販売可能なシステムでは,
コンテンツの再販売後,元のコンテンツの保持者はコンテンツの利用が不可能になる.よっ
て,コインを保持している間のみコンテンツの利用が可能であり,コインを別のユーザに受
け渡すことで,コンテンツの利用権を譲渡できる.
コンテンツを利用する際には Bitcoin プロトコルにおける全体のネットワークから最新の
コインを保持しているかを確認し,最新のコインであることが確認された場合のみコンテン
ツの利用が可能になる.
コンテンツ利用権の入手法はコンテンツ配信者からの一次購入か,すでにコンテンツを
持っているユーザから購入する二次購入のいずれかである.一次購入では,コンテンツ配信
者と取引を行い,購入者が配信者に代金を支払った後,配信者がコンテンツカプセルとコイ
ンを購入者に送信する.二次購入では,一次購入者と取り引きを行い,一次購入者に二次購
入者が代金を支払った後,一次購入者がコンテンツカプセルとコインを二次購入者に送信
する.
2.4.2
再販売を考慮しない方式
再販売を考えない場合の DRM システムでは,ユーザが正規に得たコインをコピーして配
布することができるとする.ただし,コインは現金と引き換えに受け渡し,得た現金はコン
テンツ配信者に送ることとする.これらの手順が正しく行われているかどうかは任意のユー
ザから容易に検証できる.
コンテンツを利用する際には Bitcoin プロトコルにおける全体のネットワークに 1 度でも
コインを受け取った履歴が存在するかを確認し,存在する場合のみコンテンツが利用可能に
なる.コインのコピーを別のユーザに受け渡した場合にも,ネットワークの履歴から過去に
コインを保持したことがあると明らかになるため,引き続きコンテンツを利用可能である.
コンテンツ利用権の入手方法としては,コンテンツ配信者からの一次購入か,すでにコン
– 10 –
2.4 北原らによる Bitcoin プロトコルを用いた DRM
テンツを持っているユーザからコンテンツとコインをコピーしてもらう二次購入のいずれ
かである.一次購入ではコンテンツ配信者と取引を行い,購入者が配信者に代金を支払った
後,配信者がコンテンツカプセルとコインを購入者に送信する.二次購入では,二次購入者
が一次購入者へ代金を支払った後,一次購入者がコンテンツカプセルとコインのコピーを二
次購入者へ送信する.その後,一次購入者はコインに記された履歴に従い,受け取った代金
をコンテンツ配信者に届ける.この際,配布に貢献したユーザが一部代金を受け取ることが
できるシステムも構築可能である.
2.4.3
北原らの方式の問題点
北原らの方式では,Bitcoin の取引履歴が公開される性質を利用することで,コンテンツ
の利用状況把握を行っている.また,二次配布を行ったユーザへ利益を与えることが可能と
なり,負荷分散を行いやすくする工夫がなされている.しかし,現金での支払いの確認後に
コンテンツ利用権を受け渡すという手順や,二次配布時にユーザによって代金をコンテンツ
配信者に届けるという手順が組み込まれており,悪意のあるユーザが参加する恐れのある
P2P では,これらの手順が正常に行われない可能性がある.よって,実際の運用を考えた際
に現実的ではないといえる.
– 11 –
第3章
Bitcoin プロトコルを用いたコンテ
ンツ流通及び課金方式
前章では,北原らの方式の問題点として,ユーザが手順通りの操作を行うことが前提であ
り,悪意の持ったユーザが参加する恐れのある P2P では実用的ではないことについて述べ
た.本章では,この問題点を解決するため,Bitcion プロトコルを用いたコンテンツ流通シ
ステムを提案する.提案システムは,課金の仕組みを内包しており,システム内で課金を行
うことができる.また,悪意のあるユーザが取引に関わる場合であっても,損害を最小限に
留めるシステムとなっている.
3.1
提案システムの概要
提案システムは,コンテンツ流通・課金・DRM の 3 つの要素を持つシステムであり,P2P
における安全なコンテンツ配信を実現する.Bitcoin プロトコルのブロックチェーンが全
ユーザに公開される性質を用いて,コンテンツリストの管理や取引履歴の記録,コンテンツ
利用の可否の判断を行う.
提案システムによるコンテンツ流通には大きく 3 つの段階が存在する.まず,コンテンツ
配信者がコンテンツの情報をブロックチェーンに記録する.次に,購入者がブロックチェー
ンを閲覧し,欲しいコンテンツを持っている任意のユーザからコンテンツカプセルを入手す
る.最後に,コンテンツ配信者と通信を行い料金の支払とコンテンツ復号用鍵の入手を行
う.この各段階においてそれぞれトランザクションを生成し,ブロックチェーンに記録する.
– 12 –
3.2 前提条件
これにより,流通経路と利用者を明確にすることができる.
また,コンテンツ配信者が購入者へ不正なコンテンツ復号用鍵を渡す可能性があるため,
購入後の返金処理を可能にする.これにより,コンテンツ配信者の不正を無意味なものに
する.
3.2
前提条件
提案システムにおいて,従来型コンテンツ流通システムと同様にコンテンツカプセルを利
用し,ユーザ間でのコンテンツカプセルの流通を可能とする.また,コンテンツの利用条件
として,コンテンツ復号用鍵を保持していることに加えて,利用料金の支払いに使用される
Payment トランザクションがブロックチェーンに記録されていることとする.
また,コンテンツを利用する際には専用ソフトウェアを使用するものとする.専用ソフト
ウェアは次の機能を持つ.このようなソフトウェアは,従来型コンテンツ流通システムで使
用される専用ソフトウェアと,Bitcoin ウォレットとを組み合わせることで容易に実現可能
であると考える.
• コイン及びコンテンツの取引
• コンテンツの復号・利用
• コンテンツ利用可否の判定
• 第三者が入手したコンテンツ復号用鍵の正当性検証
コンテンツ復号用鍵の正当性検証とは,コンテンツカプセルがコンテンツ復号用鍵で復号
可能であるか否かの判定である.任意のユーザが検証者となることができるものとする.た
だし,検証者がそのコンテンツの利用条件を満たしてない場合には,判定処理は可能である
がコンテンツの利用はできないものとする.
– 13 –
3.3 定義と記法
3.3
定義と記法
本論文で用いる定義と記法は以下の通りである.
• Tx は,トランザクションを表す.
• TxID は,トランザクションを識別する ID を表す.
• ThisTx は,そのトランザクション自身を表す.
• ContentID は,コンテンツを識別する ID を表す.
• Coin は,金額を表す.
• PKx は,ユーザ X の公開鍵を表す.
• SKx は,ユーザ X の秘密鍵を表す.
• EncPKx (Data) は,ユーザ X の公開鍵によってデータを暗号化することを表す.
• EncSKx (Data) は,ユーザ X の秘密鍵によってデータを暗号化することを表す.
• Hash(Data) は,データのハッシュ値を取ることを表す.
• ∣∣ は,データの連接を表す.つまり,”aaa” ∣∣ ”bb” = ”aaabb”である.
• Signx (Data) は,ユーザ X がデータへ電子署名を施すことを表す.つまり,Signx (Data)
= Data ∣∣ EncSKx (Hash(Data)) である.
• ContentCapsule は,コンテンツをカプセル化したものを表す.
• ContentKey は,コンテンツを復号するための鍵を表す.
• Title は,コンテンツのタイトルを表す.
• null は,値が存在しないことを表す.
また,本システムを解説する上で 4 種類のユーザを定義する.コンテンツの配信者を A,
購入者を B,コンテンツを既に購入しており二次配布可能なユーザを C,配信者の不正の検
証者を D とする.
– 14 –
3.4 トランザクションの定義
3.4
トランザクションの定義
従来の Bitcoin プロトコルは扱うデータがコインのみであり,コインを一方的に送信でき
れば良いため,トランザクションは 1 つのみであり,シンプルな構造となっている.
しかし,提案システムでは,コインの情報に加えてコンテンツの情報も記録する必要があ
る.また,コインとコンテンツ復号用鍵との相互通信が必要になる.そこで,用途の異なる
6 種類のトランザクションを定義する.コンテンツ情報の登録とコンテンツ流通に使用する
トランザクションを表 3.1 に,コンテンツの売買に使用するトランザクションを表 3.2 に,
コンテンツ配信者による不正の際にコインの払い戻しを要求するためのトランザクションを
表 3.3 に示す.
これらのトランザクションにおいて,従来型 Bitcoin システム同様,前の出力ハッシュで
指定される入力金額と出力金額の差額を,そのトランザクションをブロックチェーンに記録
したマイナーに対する手数料とする.ただし例外的に,Refund2 トランザクションでは,入
力金額と出力金額との差額を検証者とマイナーの数で割った金額を手数料とする.
表 3.1 コンテンツ登録と流通に関するトランザクションの構造
```
```
種類
```
`
```
項目
Register
出
前の出力ハッシュ
送信者の署名
受信者の署名
送信者の公開鍵
出力タイプ
コンテンツ ID
金額 (Coin)
null
SignA (Hash(ThisTx))
null
PKA
Register
ContentID
Coin
力
受信者の公開鍵ハッシュ
付加情報
Hash(PKA )
Hash(ContentCapsule)∣∣
Title
入
力
– 15 –
Transfer
TxIDOut
SignB (Hash(ThisTx))
SignA,C (Hash(ThisTx))
PKB
Transfer
ContentID
SignA,C (SignB (TxIDOut ∣∣
Coin))
Hash(PKA,C )
SignA (TxIDReg ∣∣SignB (
ContentID))
or
SignC (TxIDT ra ∣∣SignB (
ContentID))
3.4 トランザクションの定義
表 3.2
XXX
種類
XXX
X
X
項目
XX
X
入
力
出
力
取引に関するトランザクションの構造
Reserve
受信者の署名
TxIDOut
SignB (Hash(
ThisTx))
null
送信者の公開鍵
出力タイプ
コンテンツ ID
金額 (Coin)
PKB
Reserve
ContentID
Coin
受信者の公開鍵ハッ
Hash(PKB )
シュ
付加情報
TxIDT ra
前の出力ハッシュ
送信者の署名
3.4.1
Payment
Change
TxIDRes
SignB (Hash(
ThisTx))
SignA (Hash(
ThisTx))
PKB
Payment
null
SignA (SignB (
TxIDRes ∣∣Coin))
Hash(PKA )
TxIDOut
SignX (Hash(
ThisTx))
null
SignA (EncPKB (
ContentKey))
null
PKX
Change
null
Coin
Hash(PKY )
トランザクションの構成要素
トランザクションの構成要素について説明する.
● 前の出力ハッシュ
前の出力ハッシュとは,そのトランザクションのコインの入力となるトランザクショ
ンの ID を記述する部分である.よって,コインの送信者が過去に受信して,未使用の
トランザクションの ID をここに記述することができる.これにより,取引に使用する
コインを明示する.
前の出力ハッシュの値として,TxIDOut と示している Transfer,Reserve,Change
の 3 つのトランザクションに関しては,Transfer,Payment,Refund,Change のうち
いずれか 1 つのトランザクション ID が入るものとする.
Payment トランザクションでは,前の出力ハッシュとして必ず Reserve トランザク
ションの ID を,Refund トランザクションでは,前の出力ハッシュとして必ず Payment
トランザクションの ID を指定するものとする.
– 16 –
3.4 トランザクションの定義
表 3.3
```
```
種類
```
`
```
項目
返金要求トランザクションの構造
Refund1
前の出力ハッシュ
送信者の署名
TxIDP ay
SignA (Hash(ThisTx))
出
受信者の署名
送信者の公開鍵
出力タイプ
コンテンツ ID
金額 (Coin)
力
受信者の公開鍵ハッシュ
SignB (Hash(ThisTx))
PKA
Refund
null
SignA (SignB (
TxIDP ay ∣∣Coin))
Hash(PKB )
付加情報
null
入
力
Refund2
TxIDP ay
SignD0 (Hash(ContentKey)
∣∣ SignB (TxIDP ay ∣∣Coin))
⋯
SignDn (Hash(ContentKey)
∣∣ SignB (TxIDP ay ∣∣Coin))
SignB (Hash(ThisTx))
PKA
Refund
null
SignB (TxIDP ay ∣∣Coin)
Hash(PKB ), Hash(PKD0 ),
⋯, Hash(PKDn )
SignB (ContentKey)
● 送信者の署名
送信者の署名とは,コインの送信者による電子署名である.電子署名を施すことで改
ざん検知を可能にする.
この項目は,基本的にトランザクション生成の最後にトランザクション全体に対する
ハッシュ値に対して電子署名を行うことで生成される.ただし,Payment トランザク
ションに関しては,部分的な Payment トランザクション (表 3.7) に対する電子署名と
して作成される.また,Refund2 トランザクションに関しては,検証者によるコンテン
ツ復号用鍵と金額に対する電子署名が含まれる.
● 受信者の署名
受信者の署名とは,コインの受信者による電子署名である.電子署名を施すことで改
ざん検知を可能にする
この項目は,二者以上によって作成されるトランザクションには存在し,単一のユー
ザによって作成されるトランザクションでは null となっている.Transfer トランザク
ションでは部分的な Transfer トランザクション (表 3.6) のハッシュ値に対する電子署名
– 17 –
3.4 トランザクションの定義
が,Refund1 トランザクションでは,部分的な Refund1 トランザクション (表 3.8) の
ハッシュ値に対する電子署名が含まれる.また,Payment トランザクションと Refund2
トランザクションでは,そのトランザクション全体のハッシュ値に対する電子署名が含
まれる.
● 送信者の公開鍵
送信者の公開鍵は,コインの送信者の公開鍵である.前の出力ハッシュに示される,
入力となるトランザクション中の電子署名を検証するために使用する.
● 出力タイプ
コインの出力タイプを指定する.出力タイプは Register,Transfer,Reserve,Pay-
ment,Change,Refund のいずれかである.
● コンテンツ ID
コンテンツ ID は取引の対象となるコンテンツの ID である.これにより,どのコン
テンツに対する取引であるのかを明示する.
● 金額
金額は,取引を行う金額を表す.数値で表現される.
● 受信者の公開鍵ハッシュ
受信者の公開鍵ハッシュは,コインの受信者の公開鍵のハッシュ値である.これによ
り,次のコインの持ち主を明確にする.
● 付加情報
付加情報は,取引に関わる様々な情報を含む項目である.双方向通信や不正検出を実
現するために,コンテンツ復号用鍵や他のトランザクションの ID などを含む.
– 18 –
3.4 トランザクションの定義
3.4.2
Register トランザクション
Register トランザクションは,コンテンツ配信者が販売したいコンテンツの情報をブロッ
クチェーンに記録するためのトランザクションである.コンテンツ ID とタイトルが含まれ
るため,コンテンツの識別が可能となっている.金額は,他のトランザクションでは受信者
へ渡す金額を意味するが,Register トランザクションでは例外的に販売するコンテンツの金
額を表す.電子署名が行われることによって,データの改ざん防止と,コンテンツ配信者の
明示を行う.
3.4.3
Transfer トランザクション
Transfer トランザクションは,コンテンツカプセルを入手するためのトランザクション
である.このトランザクションはコンテンツ配信者またはコンテンツをすでに購入してい
るユーザ (二次配布者) と,新たにコンテンツを購入するユーザとの二者によって作られる.
コンテンツカプセルを配信したユーザには手数料として購入者からコインが送られる.その
ため,コインの情報にはカプセルを送信するユーザと購入者の電子署名が必要であるため,
両者の同意の上で手数料の金額の決定が行われる.
Transfer トランザクションの付加情報に含まれるデータは,コンテンツカプセルを入手す
る対象がコンテンツ配信者か,二次配布者かで異なる.コンテンツ配信者からコンテンツカ
プセルを入手する場合には,コンテンツを登録した際の Register トランザクションの ID を
含むものとする.また,二次配布者から入手する場合には,二次配布者がコンテンツカプセ
ルを入手した際の Transfer トランザクションの ID を含むものとする.これにより,コンテ
ンツカプセルを送信するユーザが,コンテンツカプセルを持っていることを第三者から検証
可能にする.
– 19 –
3.4 トランザクションの定義
3.4.4
Reserve トランザクション
Reserve トランザクションは,コンテンツの購入用にコインを確保するトランザクション
である.Bitcoin プロトコルにおいては,コインの二重使用が行われた場合,後から行われ
た取引が無効なものとされる.コインのみを扱う Bitcoin であればこの仕様でも問題ない
が,コンテンツ復号用鍵を含む提案システムで後から行われた取引が無効なものとなった場
合,購入者はコンテンツ復号用鍵を入手できるが,配信者はコインを入手できないという場
面が生じる.この現象を防ぐ目的で導入したのが Reserve トランザクションである.
Reserve トランザクションには,コンテンツ ID とそのコンテンツを購入するのに十分な
コインの情報が含まれる.そのため,購入者がコンテンツを購入するだけのコインを持って
いることが保証されるとともに,コンテンツとコインが紐付けられるため,コインの二重使
用を行うことが不可能になる.
3.4.5
Payment トランザクション
Payment トランザクションは,コンテンツ料金とコンテンツ復号用鍵の相互のやり取り
を行うためのトランザクションである.このトランサクションは,購入者と配信者の二者に
よって作成される.
Payment トランザクションの入力となるトランザクションは必ず Reserve トランザクショ
ンであるものとする.このトランザクションには,購入者の署名と,配信者の署名が含まれ
るため,両者の合意がなければトランザクションを生成することができない.同様に,金額
に対しても両者の署名による合意がなされる.また,Payment トランザクションにはコン
テンツ復号用鍵が含まれ,このトランザクションが P2P ネットワークに送信された段階で,
購入者はコンテンツ復号用鍵を入手することができる.また,このトランザクションがブ
ロックチェーンに記録された段階で,配信者はコインを得ることができる.つまり,この 1
つのトランザクションによって,コンテンツ復号用鍵とコインとをほぼ同時に受け渡すこと
ができる.
– 20 –
3.4 トランザクションの定義
3.4.6
Change トランザクション
Change トランザクションは,従来型 Bitcoin プロトコルと同様にコインそのものを送信
するためのトランザクションである.また,他のユーザにコインを送る以外にも,Bitcoin
プロトコルでは,複数の入力と出力を持ち,入力コインの総額と相手に送るコインとの差額
をお釣りとして自分のもとに返す必要がある.その際にも,Change トランザクションを使
用する.
3.4.7
Refund トランザクション
Refund トランザクションは,コンテンツ配信者の不正の際にコインの払い戻しを要求す
るトランザクションである.コンテンツ配信者が不正な鍵を購入者に渡す不正に対処するた
めに,このトランザクションを定義する.コンテンツ配信者が返金に応じた場合に使用する
Refund1 と,コンテンツ配信者が返金に応じない場合に複数の第三者の承認によって返金を
可能にする Refund2 の 2 種類のトランザクションが存在する.どちらのトランザクション
も Payment トランザクションを入力とする.
Refund1 は,コンテンツ配信者に返金依頼を行い,トランザクションを生成する.トラン
ザクション全体と金額に対して,購入者と配信者の両者の署名が必要となるため,配信者に
よる了承の上で返金が行われていることが明確になる.
Refund2 トランザクションは,ランダムに選ばれたユーザによる鍵のハッシュ値と金額へ
の署名が含まれる.この署名によって,購入者の返金要求が正当なものであると承認する.
第三者による署名が一定数集まった場合,客観的に見て不正な取引であるとして,返金要求
を可能とする.署名を行った第三者は返金額のうち一定の金額を手数料として入手すること
ができる.
– 21 –
3.5 コンテンツの登録
3.4.8
複数の入出力を持つトランザクション
Transfer,Reserve の 2 つのトランザクションは,1 つ以上の入力と,1 つまたは 2 つの
出力を持つことができる.2 つの出力を持つ場合には,必ず Transfer,Reserve の各トラン
ザクション自身の出力と,Change トランザクションの出力とのペアとなる.Change トラ
ンザクションは,1 つ以上の入出力を持つことができる.Register,Payment,Refund の 3
つのトランザクションに関しては,必ず単一の入出力であり,表 3.1 から表 3.3 以外の形式
は認めない.
複数の入出力を持つトランザクションを生成する場合には,各トランザクションの入力と
出力を並べて記述すれば良い.10 コイン受け取った Payment トランザクションと,20 コイ
ン受け取った Change トランザクションを入力として,25 コインの Reserve と 5 コインの
Change を出力するトランザクションの例を表 3.4 に示す.また,Change トランザクション
の出力を含み,お釣りの返却を行うことができる Transfer トランザクションを表 3.5 に示
す.このトランザクションでは,Change トランザクションフォーマットの入力が存在しな
いが,例外的にこれを認める.Transfer トランザクションの入力のフォーマットは Change
トランザクションの入力フォーマットと同じ内容が含まれるため,この構造でも検証の際に
問題にはならない.
複数の入力を持つトランザクションにおいて,送信者の署名を作成する場合には,他の送
信者の書名の値は null であるとしてトランザクション全体のハッシュ値に署名を行う.ま
た,複数の出力を持つトランザクションを次に入力として使用する際には,前の出力ハッ
シュの項目に出力番号を合わせて指定するものとする.
3.5
コンテンツの登録
コンテンツの登録は,Register トランザクションを用いてコンテンツ配信者によって行わ
れる.まず,コンテンツ配信者は,販売したいコンテンツに対して暗号化を施し,コンテン
ツカプセルを生成する.作成したコンテンツカプセルのハッシュ値とタイトル,コンテンツ
– 22 –
3.5 コンテンツの登録
表 3.4
入
力
1
入
力
2
出
力
1
出
力
2
1
出
力
1
出
力
2
TxIDP ay ⟪10Coin⟫
SignB (Hash(ThisTx))
null
PKB
TxIDCha ⟪20Coin⟫
SignB (Hash(ThisTx))
null
PKB
Reserve
ContentID
25Coin
Hash(PKB )
TxIDT ra
Change
null
5Coin
Hash(PKB )
null
前の出力ハッシュ
送信者の署名
受信者の署名
送信者の公開鍵
前の出力ハッシュ
送信者の署名
受信者の署名
送信者の公開鍵
出力タイプ
コンテンツ ID
金額 (Coin)
受信者の公開鍵ハッシュ
付加情報
出力タイプ
コンテンツ ID
金額 (Coin)
受信者の公開鍵ハッシュ
付加情報
表 3.5
入
力
複数の入出力を持つトランザクション
お釣りの返却を含む Transfer トランザクション
TxIDP ay ⟪3Coin⟫
SignB (Hash(ThisTx))
SignA,C (Hash(ThisTx))
PKB
Transfer
ContentID
SignA,C (SignB (TxIDOut ∣∣1Coin))
Hash(PKA,C )
SignA (TxIDReg ∣∣SignB (ContentID))
SignC (TxIDT ra ∣∣SignB (ContentID))
Change
null
2Coin
Hash(PKB )
null
前の出力ハッシュ
送信者の署名
受信者の署名
送信者の公開鍵
出力タイプ
コンテンツ ID
金額 (Coin)
受信者の公開鍵ハッシュ
付加情報
出力タイプ
コンテンツ ID
金額 (Coin)
受信者の公開鍵ハッシュ
付加情報
or
ID を用いて,Register トランザクションを作成し,これを P2P ネットワークにブロード
キャストする.このトランザクションがブロックチェーンに記録される事によって,コンテ
ンツの情報が一般に公開され,ユーザがこのコンテンツを購入可能な状態となる.
– 23 –
3.6 コンテンツカプセルの流通
3.6
コンテンツカプセルの流通
コンテンツカプセルの流通経路として,コンテンツ配信者からの流通(一次流通)と,コ
ンテンツを既に購入しているユーザ (二次配布者) からの流通(二次流通)の 2 通りのパ
ターンが存在する.どちらの流通方式でも Transfer トランザクションを生成し,P2P ネッ
トワークに送信する.コンテンツカプセルの流通手順を以下,及び図 3.1 に示す.
1. 購入者は,配信者または二次配布者に対して欲しいコンテンツの ID と手数料の金額を
送信する.
2. 配信者または二次配布者は,受信した情報を元に,部分的な Transfer トランザクショ
ンを生成する.部分的なトランザクションの構造を表 3.6 に示す.このトランザクショ
ンの付加情報の項目において,一次流通の場合は,コンテンツ登録時の Register トラ
ンザクションの ID(TxIDReg ) が,二次流通の場合は,二次配布者がコンテンツを入手
した時の Transfer トランザクションの ID(TxIDT ra ) がそれぞれ含まれる.
3. 配信者または二次配布者は,手順 2 で作成した部分的なトランザクションの,受信者の
署名と付加情報の項目,コンテンツカプセルの 3 つを購入者に送信する.
4. 購入者は,受信したコンテンツカプセルのハッシュ値と,Register トランザクションに
記録されているハッシュ値が一致することを確認する.
5. 購入者は,Transfer トランザクションを生成し,P2P ネットワークに送信する.
3.7
コンテンツ利用権の売買
コンテンツ利用権の売買では,Reserve トランザクションと Payment トランザクション
を使用する.まず,コインをコンテンツ利用権の取引用に確保するために購入者が Reserve
トランザクションを生成し,P2P ネットワークに送信する.これにより,コインが特定コン
テンツの利用権購入のためだけに使用可能な状態となり,購入者がどのコンテンツの利用権
を必要としているのかが明確になる.次に,購入者とコンテンツ配信者の二者間で Payment
– 24 –
3.7 コンテンツ利用権の売買
図 3.1 コンテンツカプセルの流通手順
表 3.6 部分的な Transfer トランザクション
hhh
hhhh
種類
hhhh
hhhh
項目
h
入
力
出
力
Transfer*
TxIDOut
null
SignA,C (Hash(ThisTx))
PKB
Transfer
ContentID
SignA,C (SignB ( TxIDOut ∣∣Coin))
Hash(PKA,C )
SignA (TxIDReg ∣∣ SignB ( ContentID)) or
SignC (TxIDT ra ∣∣ SignB ( ContentID))
前の出力ハッシュ
送信者の署名
受信者の署名
送信者の公開鍵
出力タイプ
コンテンツ ID
金額 (Coin)
受信者の公開鍵ハッシュ
付加情報
トランザクションを生成する.Payment トランザクションは,コインとコンテンツ復号用
鍵の 2 つのデータが含まれるため,このトランザクションがブロックチェーンに記録された
段階で,購入者はコンテンツを利用可能となり,コンテンツ配信者はコインを入手する.
コンテンツ利用権の売買の手順を以下,及び図 3.2 に示す.
1. 購入者が,Reserve トランザクションを生成し,P2P ネットワークに送信する.このト
– 25 –
3.8 コインの払い戻し
ランザクションがブロックチェーンに記録されるのを待つ.
2. 購入者が,部分的な Payment トランザクションを生成する.部分的なトランザクショ
ンの構造を表 3.7 に示す.これには,Reserve トランザクションの情報と取引金額が含
まれている.さらにトランザクションのハッシュ値に対して電子署名が施されており,
改ざん検知が可能となっている.
3. 購入者が,Reserve トランザクションの ID と,手順 2 で作成した送信者の署名と金額
の 3 つを,コンテンツ配信者に送信する.
4. 配信者は,受信した Reserve トランザクションの ID を元にブロックチェーンに Reserve
トランザクションが記録されていることを確認する.
5. 配信者は,Payment トランザクションを作成し P2P ネットワークに送信する.
図 3.2
3.8
コンテンツ利用権の売買手順
コインの払い戻し
コンテンツ配信者の不正として,不正なコンテンツ復号用鍵を購入者に送信する可能性が
考えられる.そのため,コンテンツ利用権の販売後に一定期間コインの払い戻しを可能に
する.
– 26 –
3.8 コインの払い戻し
表 3.7 部分的な Payment トランザクション
hhhh
hhhh
種類
hhhh
hhhh
項目
入
力
出
力
Payment*
TxIDRes
SignB (Hash(ThisTx))
null
PKB
Payment
null
SignB (TxIDRes ∣∣Coin)
Hash(PKA )
null
前の出力ハッシュ
送信者の署名
受信者の署名
送信者の公開鍵
出力タイプ
コンテンツ ID
金額 (Coin)
受信者の公開鍵ハッシュ
付加情報
コインの払い戻しが可能な期間については,ブロックチェーンにおいて該当の Payment
トランザクションが含まれるブロックを始めとして,いくつ後ろにブロックが続くかで判断
する.トランザクションがブロックチェーンに含まれた時点で,1 回承認が行われている.
ブロックチェーンに次のブロックが追加されると,2 回目の承認となる.この承認が一定の
回数になるまでに Refund トランザクションをブロックチェーンに記録することで,コイ
ンの返金を可能なものとする.よって,一定の承認回数を満たすまで Payment トランザク
ションによって受け取ったコインの別の取引への利用は不可能とする.
Refund トランザクションには 2 種類存在し,コンテンツ配信者が返金に応じた場合に使
用する Refund1 と,コンテンツ配信者が返金に応じない場合に複数の第三者の承認によっ
て返金を行う場合に使用する Refund2 がある.Refund2 トランザクションの生成に関わっ
た検証者には,手数料として,入力となる Payment トランザクションの金額と,Refund2
トランザクションでの返金額との差額を,検証者とマイナーの人数で割った金額が与えら
れる.
まず,コンテンツ配信者が返金に応じた場合の Refund1 を用いた返金の手順を以下,及
び図 3.3 に示す.
1. 購入者が,コンテンツカプセルに対してコンテンツ復号用鍵で復号を試み,復号できな
いことを確認する.
– 27 –
3.8 コインの払い戻し
2. 購入者が,部分的な Refund1 トランザクションを生成する.部分的な Refund1 トラン
ザクションの構造を表 3.8 に示す.
3. 購入者が,Payment トランザクションの ID と,手順 2 で作成した返金の要求金額と受
信者の署名を,コンテンツ配信者に送信する.
4. 配信者は,受信したデータを元に Refund1 トランザクションを生成し,P2P ネット
ワークに送信する.
5. 購入者は,ブロックチェーンから返金が行われていることを確認する.
図 3.3
表 3.8
コンテンツ配信者による返金手順
部分的な Refund1 トランザクション
hhhh
hhhh
種類
hhhh
hhhh
項目
入
力
出
力
Refund1*
TxIDP ay
null
SignB (Hash(ThisTx))
PKA
Refund
null
SignB (TxIDP ay ∣∣Coin)
Hash(PKB )
null
前の出力ハッシュ
送信者の署名
受信者の署名
送信者の公開鍵
出力タイプ
コンテンツ ID
金額 (Coin)
受信者の公開鍵ハッシュ
付加情報
次に,コンテンツ配信者が返金に応じない場合に,複数の第三者による承認によって返金
– 28 –
3.8 コインの払い戻し
を行う場合の,Refund2 を用いた手順を以下,及び図 3.4 に示す.
1. 購入者が,コンテンツカプセルに対してコンテンツ復号用鍵で復号を試み,復号できな
いことを確認する.
2. 購入者が,Payment トランザクションの ID と,返金の要求額,購入者が受信したコン
テンツ復号用鍵を複数の検証者に送信し,検証を依頼する.このとき,検証者の選択方
法として,既に同じコンテンツのカプセルを保持しているユーザを優先としてランダム
に選択される.
3. 検証者は,購入者から受け取ったコンテンツ復号用鍵に購入者の公開鍵で暗号化を施し
たデータと,Payment トランザクションに記録されている暗号化されたコンテンツ復
号用鍵を比較し,一致することを確認する.これにより,購入者から受け取ったコンテ
ンツ復号用鍵が正当な取引によって流通されたものであることが明確になる.
4. 検証者は,購入者から受信したコンテンツ復号用鍵でコンテンツカプセルの復号を試
み,復号できないことを確認する.
5. 検証者は,購入者から送られてきた,返金の要求額とコンテンツ復号用鍵のハッシュ値
との連接に対して電子署名を施したものを購入者に送信する.これにより,コンテンツ
復号用鍵が不正なものであることを承認する.
6. 購入者は,一定数以上の承認が得られたら,Refund2 トランザクションを生成し,P2P
ネットワークに送信する.このトランザクションがブロックチェーンに記録された時点
で返金が完了する.
– 29 –
3.8 コインの払い戻し
図 3.4
第三者による返金手順
– 30 –
第4章
評価及び考察
提案システムにおける安全性評価を行う.コンテンツの登録・コンテンツカプセルの流
通・コンテンツ利用権の売買・コインの払い戻しの各取引において,それぞれの取引に関わ
るユーザが実行しうる不正の例を上げ,その不正に対してどのような対策が行われているの
かを示す.
4.1
トランザクションの改ざんへの対策
システム全般に関わる不正としてトランザクションに対する改ざんが挙げられる.しか
し,トランザクションには必ずそのトランザクションのハッシュ値に対する電子署名が含ま
れているため,改ざんが行われた際には検知が可能である.改ざんが検知された場合には
P2P ネットワーク上に存在する正しいトランザクションを再度入手すれば良い.よって,ト
ランザクションの改ざんによる不正は不可能である.
4.2
コンテンツの登録における不正と対策
コンテンツの登録に関わるユーザはコンテンツ配信者のみである.コンテンツ配信者が行
う可能性のある不正として,著作権侵害コンテンツや,タイトルと実体が一致しないコンテ
ンツなどが登録される可能性がある.
提案システムは流通経路における不正対策を目的としたものであるため,このようなコン
テンツそのものの不正に関しては対処できない.しかし,不正コンテンツへの対策は,P2P
システムにおける重要な課題であり,長年研究がなされている [9][10].よって,このような
– 31 –
4.3 コンテンツカプセルの流通における不正と対策
方式を提案システムに導入することによって,対策が可能であると考える.
4.3
コンテンツカプセルの流通における不正と対策
コンテンツカプセルの流通に関わるユーザは,購入者とコンテンツ配信者,二次配布者の
三者である.各ユーザが行う可能性のある不正を以下に示す.
• 購入者が,Transfer トランザクションを P2P ネットワークに送信しない
• コンテンツ配信者または二次配布者が,不正なコンテンツカプセルを送信する
購入者が Transfer トランザクションを P2P ネットワークに送信しない可能性に関して
は,Reserve トランザクションに Transfer トランザクションの ID を含む必要が有るため,
コンテンツの購入者は必ず Transfer トランザクションを送信しなければならない仕様とす
ることで対処している.しかしながら,コンテンツカプセルを入手し,コンテンツカプセル
を欲する他のユーザに対して送信することで手数料を得ようとするユーザが存在した場合,
そのユーザはコンテンツ利用権を入手する必要が無いため,Transfer トランザクションは送
信されない.同様に,コンテンツカプセルを入手したものの購入をやめるという判断を行う
ユーザがいた場合にも,Transfer トランザクションは送信されない.よって,送信者が,コ
ンテンツの購入を目的としたユーザに対してコンテンツカプセルを送信した場合には手数料
を得られるが,コンテンツの購入を行わないユーザに対して送信した場合には手数料を得ら
れないというシステムとなっている.しかし,送信にかかるコストは端末の演算力と回線コ
ストのみであるため,負担としては許容範囲内であると考える.
コンテンツ配信者または,二次配布者が不正なコンテンツカプセルを送信する可能性に関
しては,購入者が受信したコンテンツカプセルのハッシュ値と,Register トランザクション
に記録されているコンテンツカプセルのハッシュ値を比較することによって検証することが
できる.不正なコンテンツカプセルを受信した場合には,他の正しいコンテンツカプセルを
保持しているユーザから再度入手すれば良い.
– 32 –
4.4 コンテンツ利用権の売買における不正と対策
4.4
コンテンツ利用権の売買における不正と対策
コンテンツ利用権の売買に関わるユーザは,コンテンツの購入者と配信者の二者である.
各ユーザが行う可能性のある不正を以下に示す.
• 購入者が,コインを支払わずにコンテンツ復号用鍵を入手する.
• 配信者が,正しいコンテンツ復号用鍵を渡さずにコインを入手する.
購入者がコインを支払わずにコンテンツ復号用鍵を入手する不正を成功させるためには,
コインの多重使用が可能であれば良い.つまり,同じコインを用いて複数のコンテンツ購入
のためのトランザクションを生成し,それらのトランザクションをほぼ同時に P2P ネット
ワークに送信させることができれば,それらのトランザクションのうち正しいトランザク
ションとして認められるのは 1 つのみであるため,いずれか 1 つのコンテンツの購入代金
のみで複数のコンテンツ復号用鍵を入手することが可能となる.この不正に対応するために
定義したのが Reserve トランザクションである.Reserve トランザクションには,コンテン
ツ ID とコインが含まれており,これによりコインと特定のコンテンツとが紐付けられる.
よって,同じコインを複数のコンテンツの購入のために使用することはできない.また,コ
ンテンツの購入に使用する Payment トランザクションの入力として必ず Reserve トランザ
クションを使用しなければならないという仕様にしているため,Reserve トランザクション
による,コインとコンテンツとの紐付けを回避する事はできない.よって,購入者は不正を
行うことができない.
配信者が,正しいコンテンツ復号用鍵を渡さずにコインを入手する不正への対策として,
Refund トランザクションを用いたコインの払い戻しを可能とした.コンテンツ利用権の売
買の段階では,コンテンツ復号用鍵の正当性検証を行うことができない.そのため,事後的
に第三者も含めたコンテンツ復号用鍵の正当性検証を可能とすることで,客観的に不正が認
められる場合にコインの払い戻しを要求可能にした.これにより,不正なコンテンツ復号用
鍵を購入者に渡す不正が無意味なものとなる.
– 33 –
4.5 コインの払い戻しにおける不正と対策
4.5
コインの払い戻しにおける不正と対策
コインの払い戻しに関わるユーザは,コンテンツの購入者と配信者,コンテンツ復号用鍵
の正当性検証を行う検証者の三者である.各ユーザが行う可能性のある不正を以下に示す.
• 購入者が,コンテンツ復号用鍵が正しいにも関わらず,Refund2 トランザクションを用
いて返金を試みる.
• 配信者が,Refund1 トランザクションを P2P ネットワークに送信せず,返金可能期間
が過ぎるまで待つ.
• 検証者が,自身の得られる手数料を増やそうとする.
購入者がコンテンツ復号用鍵が正しいにも関わらず,Refund2 トランザクションを用い
て返金を試みる可能性が考えられる.この不正を行う際の Refund2 トランザクションの生
成法として,購入者が検証者と結託する場合と,購入者が複数のアカウントを用意し,検証
者であるかのように振る舞う場合とが考えられる.しかし,いずれの場合でも Refund2 ト
ランザクションの構造から,不正の検出が可能となっている.Refund2 トランザクションに
はコンテンツ復号用鍵を含めなければならない.よって,不正を行う購入者が正しいコンテ
ンツ復号用鍵をトランザクションに含めた場合には,このトランザクションが P2P ネット
ワークに送信された後,この鍵でコンテンツカプセルが復号できることを専用ソフトウェア
を用いて検証できる.よって,第三者によって,正しい取引であるにもかかわらず返金を要
求していることが分かるため不正な Refund2 トランザクションは破棄されブロックチェー
ンに記録されない.同様に,虚偽のコンテンツ復号用鍵を Refund2 トランザクションに含
めた場合には,Refund2 トランザクションに記録されているコンテンツ復号用鍵に購入者の
公開鍵で暗号化を施したデータと,Payment トランザクションに記録されている暗号化さ
れたコンテンツ復号用鍵とが一致しないため,虚偽のコンテンツ復号用鍵を Refund2 トラ
ンザクションに含んでいることが検証できる.よって,購入者が不正を行うことはできない.
配信者が,返金を了承したかのように振るまい Refund1 トランザクションを P2P ネット
ワークに送信せず,返金可能期間が過ぎるまで待つ不正に関しては,ある一定時間を過ぎて
– 34 –
4.5 コインの払い戻しにおける不正と対策
も配信者による P2P ネットワークへの Refund トランザクションの送信がなければ,購入
者が Refund2 トランザクションを生成し,P2P ネットワークに送信するという手順を取れ
ば良い.仮に配信者による Refund1 トランザクションと,購入者による Refund2 トランザ
クションが同時に P2P ネットワークに送信された場合でも,正しいものとして承認される
トランザクションはどちらか一方のみであるため,問題ではない.
検証者が自身の得られる手数料を増やそうとする不正に関しては,検証者へ送信される金
額の情報には購入者による電子署名がなされており,改ざん検知が可能となっている.よっ
て,検証者が不正を行うことはできない.
– 35 –
第5章
結論
P2P 環境でのコンテンツ流通方式として北原らによる Bitcion プロトコルを用いた方式
が提案されている.しかし,北原らの方式では,課金はシステムの範囲外とされており,何
らかの方法によって代金の支払いを行った後,コンテンツ配信者が購入者にコンテンツ利用
権を与えるという形態をとっている.よって,コンテンツ配信者が信頼できることが前提の
システムとなっており,悪意のあるユーザが参加可能な P2P においては現実的ではない.
そこで,本論文では,課金システムを内包し,自身以外の全てのユーザが信用出来ない環境
であっても安全にコンテンツの売買が可能なシステムを提案した.提案システムでは,コイ
ンとコンテンツ復号用鍵とを 1 つのトランザクションに記録することで,コインとコンテン
ツ利用権の同時受け渡しを可能にした.また,不正なコンテンツ復号用鍵が渡された場合に
第三者の検証による返金を可能とすることで配信者の不正にも対応し,安全なシステムを実
現した.
今後の課題として,取引に関わるトランザクションの送信回数の削減と実装実験が挙げら
れる.提案システムでは,コンテンツの売買のために Transfer,Reserve,Payment と 3 つ
のトランザクションが必要であり,それぞれブロックチェーンへの承認待ちの時間がかかる
ためコンテンツが利用可能になるまでに時間が掛かる.よって,より高速な売買を行うため
に,安全性を維持したまま手順を削減する手法を検討する必要があると考えられる.
– 36 –
謝辞
本研究の遂行と論文作成にあたり,ご指導,ご助言を頂きました高知工科大学情報学群 清
水明宏教授に心より感謝申し上げます.また,本研究の副査を担当していただきました高知
工科大学情報学群 横山和俊教授,植田和憲講師に深く御礼申し上げます.
また,本論文の作成にあたりご助言を頂きました清水研究室 藤原蓮氏に心より感謝致し
ます.最後に,有益な議論を交わしていただいた高知工科大学 清水研究室の関係者各位に
深く感謝致します.
– 37 –
参考文献
[1] 電通総研, “I 部 情報メディア産業の動向 : 10 コンテンツ・サービス,” 情報メディア白
書 2015, ダイヤモンド社, pp.170-174, 2015.
[2] 総務省, “第 2 部 情報通信の現況・政策の動向 : 第 8 節 コンテンツ市場の動向,” 平
成 26 年度版 情報通信白書, http://www.soumu.go.jp/johotsusintokei/whitepaper/
h26.html, 2015-02-23 参照.
[3] Tetsuya Iwata, Takehito Abe, Kiyoshi Ueda, Hiroshi Sunaga, “A DRM system
suitable for P2P content delivery and the study on its implementation,” Communications, 2003. APCC 2003. The 9th Asia-Pacific Conference on. Vol. 2, IEEE,
2003.
[4] Motoki Kitahara, Junpei Kawamoto, and Kouichi Sakurai, “A Method of Digital
Rights Management based on Bitcoin Protocol,” ICUIMC ’14 Proceedings of the
8th International Conference on Ubiquitous Information Management and Communication, Article No.84, ACM, 2014.
[5] 山村 千草, “〔第一回〕著作権保護 (講座:映像情報メディア関連のセキュリティ),” 映像
情報メディア学会誌 : 映像情報メディア 69(1), pp.64-71, 映像情報メディア学会, 2015.
[6] 櫻井紀彦, “カプセル化コンテンツの動向と展望,” 情報処理学会研究報告電子化知的財
産・社会基盤 (EIP), 57 号, pp.1-6, 情報処理学会, 2001.
[7] Satoshi Nakamoto, “Bitcoin: A Peer-to-Peer Electronic Cash System,” https:
//bitcoin.org/bitcoin.pdf, 2015-02-03 参照.
[8] Andreas M.Antonopoulos, “Mastering Bitcoin,” O’Reilly Media, 2014.
[9] 伊吹和也, 川原崎雅敏, “フィルタ共有による P2P ネットワーク上の有害コンテンツ拡
散抑制,” 情報処理学会研究報告インターネットと運用技術(IOT), 72 号, pp.7-12, 情
報処理学会, 2007.
– 38 –
参考文献
[10] 田中彰, 嶋村昌義, 益井賢次, 飯田勝吉, “有害コンテンツ抑制を目的としたピアとコン
テンツ双方にレピュテーションを用いる P2P コンテンツ流通手法の提案,” 電子情報通
信学会技術研究報告 NS ネットワークシステム 108(457), pp.141-146, 電子情報通信学
会, 2009.
– 39 –
Fly UP