(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-12-15
(54)【発明の名称】ブロックチェーンを使用してメディア再生を連続的に追跡するためのシステムおよび方法
(51)【国際特許分類】
G11B 27/02 20060101AFI20221208BHJP
G11B 27/00 20060101ALI20221208BHJP
G11B 20/10 20060101ALI20221208BHJP
【FI】
G11B27/02 A
G11B27/00 A
G11B20/10 301Z
G11B20/10 H
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021506397
(86)(22)【出願日】2020-07-24
(85)【翻訳文提出日】2021-12-13
(86)【国際出願番号】 US2020043593
(87)【国際公開番号】W WO2021262203
(87)【国際公開日】2021-12-30
(32)【優先日】2020-06-24
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】521049746
【氏名又は名称】ビートダップ ソフトウェア インク.
【氏名又は名称原語表記】BEATDAPP SOFTWARE INC.
【住所又は居所原語表記】550 Burrard Street, Suite 2900 Vancouver, British Columbia V6C 0A3 Canada
(74)【代理人】
【識別番号】100086531
【氏名又は名称】澤田 俊夫
(74)【代理人】
【識別番号】100093241
【氏名又は名称】宮田 正昭
(74)【代理人】
【識別番号】100101801
【氏名又は名称】山田 英治
(74)【代理人】
【識別番号】100095496
【氏名又は名称】佐々木 榮二
(74)【代理人】
【識別番号】110000763
【氏名又は名称】特許業務法人大同特許事務所
(72)【発明者】
【氏名】アサデポ、ポーリア
(72)【発明者】
【氏名】ベイティ、アンドリュー
(72)【発明者】
【氏名】ハイデゥク、モーガン
【テーマコード(参考)】
5D044
5D110
【Fターム(参考)】
5D044AB05
5D044AB07
5D044DE14
5D044DE17
5D044DE22
5D044DE24
5D044DE48
5D044DE50
5D044GK17
5D044HL08
5D110AA27
5D110AA29
5D110CD14
5D110DA04
5D110DA08
5D110DA11
(57)【要約】
メディアファイルの再生を継続的に追跡するためのシステムおよび方法である。まず、プラットフォームストリームからトランザクションデータが受信される。トランザクションデータは、エンドユーザーからのメディアファイルの再生要求と継続的な再生情報とに対応している。次に、トランザクションデータが検証される。次に、検証されたトランザクションデータは暗号署名を使用して署名される。次に、トランザクションデータが有効なブロックチェーントランザクションに対応するかどうかが判断される。トランザクションデータが有効なブロックチェーントランザクションに対応している場合、有効なブロックチェーントランザクションがブロックチェーンに記録される。最後に、トランザクションデータおよび暗号署名が1つ以上の検証ノードに送信される。
【選択図】
図5
【特許請求の範囲】
【請求項1】
ブロックチェーンベースのプラットフォームを介してメディアファイルまたはメディアストリームの再生を継続的に追跡するためのシステムであって、
プロセッサと、
メモリであって、上記プロセッサに方法を実行させるための命令を格納する上記メモリとを有する、上記システムにおいて。
上記方法は、
アプリケーションを介してメディアファイルまたはメディアストリームを再生するためのユーザー始動要求を受信するステップと、
上記メディアファイルまたは上記メディアストリームを再生するための上記ユーザー始動要求に対応するエントリをローカルRAMまたはローカルディスクに記録するステップと、
所定の間隔で、上記メディアファイルまたは上記メディアストリームの現在の再生位置をローカルRAMまたは上記ローカルディスクに記録するステップと、
ネットワーク接続が利用可能になる、
上記アプリケーションとのユーザーインターラクションが受信される、
上記プラットフォームストリームへの前回のネットワーク送信から所定の時間が経過した、および、
ローカルRAMまたは上記ローカルディスクに保存されているデータの予め定められた閾値が到達された、
という条件のうちの1または複数が満たされたときに、上記エントリおよび記録された再生位置を上記プラットフォームストリームに送信して、ブロックチェーンに記録するステップとを有し、
上記エントリおよび上記記録された再生位置を上記プラットフォームストリームに送信するステップは、上記エントリおよび上記記録された再生位置のオリジンを確認するためにユーザーに関連付けられた公開鍵を送信することを含むことを特徴とするシステム。
【請求項2】
上記エントリが、メディアファイルまたはメディアストリームの名称、権利所有者名、およびメ上記ディアファイルまたは上記メディアストリームに関連付けられたメタデータのうちの1つまたは複数を含む請求項1に記載のシステム。
【請求項3】
新しいメディアファイルまたは新しいメディアストリームを再生する要求がユーザーによって開始されるときはいつでも、新しいエントリがローカルRAMまたは上記ローカルディスクに記録される請求項1に記載のシステム。
【請求項4】
ユーザーインターラクションは、新しいメディアファイルまたはメディアストリームを再生するための要求、上記メディアファイルまたは上記メディアストリームの再生を一時停止するための要求、上記メディアファイルまたは上記メディアストリームの生成を停止するための要求、および上記メディアファイルまたは上記メディアストリームにおいて新しい位置へスキップするための要求のうちの1つまたは複数を含む請求項1記載のシステム。
【請求項5】
上記エントリは、上記ユーザーに関連付けられた秘密鍵によって生成されたユーザー署名で署名される請求項1に記載のシステム。
【請求項6】
上記ユーザー署名は、上記エントリとともにローカルに格納される請求項5に記載のシステム。
【請求項7】
上記エントリがローカルに永続化されるとき、または上記エントリが上記プラットフォームストリームに送信される直前のいずれかに、上記エントリが署名される請求項5に記載のシステム。
【請求項8】
ブロックチェーンベースのプラットフォームを介してメディアファイルまたはメディアストリームの再生を継続的に追跡するためのシステムであって、
プロセッサと、
メモリであって、上記プロセッサに方法を実行させるための命令を格納する上記メモリとを有する、上記システムにおいて、
上記方法は、
プラットフォームストリームからトランザクションデータを受信する受信ステップであって、上記トランザクションデータはエンドユーザーからのメディアファイルまたはメディアストリームを再生する要求に対応し、上記トランザクションデータは、所定の間隔で記録された上記メディアファイルまたは上記メディアストリームの再生位置を含む、上記受信ステップと、
上記トランザクションデータを検証する検証ステップであって、当該トランザクションデータの検証は、上記エンドユーザーに関連付けられた公開鍵を使用することを含み、上記公開鍵は、上記トランザクションデータの出所を検証するために上記トランザクションデータに追加される、上記検証ステップと、
暗号署名を使用して当該検証されたトランザクションデータに署名するステップと、
上記検証されたトランザクションデータをブロックチェーンに記録するステップと、
上記検証されたトランザクションデータおよび上記暗号署名を1つ以上の検証ノードに送信するステップとを有することを特徴とするシステム。
【請求項9】
上記トランザクションデータは、上記エンドユーザーに対応する暗号署名を含む請求項8に記載のシステム。
【請求項10】
上記検証されたトランザクションデータが有効なブロックチェーントランザクションであると決定された場合にのみ、当該検証されたトランザクションデータが上記ブロックチェーンに記録される請求項8に記載のシステム。
【請求項11】
当該トランザクションデータを検証することは、1)上記トランザクションデータのフォーマットが上記プラットフォームによって確立されたプロトコルに従っているかどうか、および2)上記トランザクションデータが、上記エンドユーザーに対応する上記公開鍵によって検証可能な上記エンドユーザーの暗号署名を含むかどうかを、検証することを含む請求項8に記載のシステム。
【請求項12】
上記検証されたトランザクションデータが上記ブロックチェーンに記録された後、当該記録されたブロックチェーントランザクションデータは、第三者がカスタムプラットフォームアプリケーションプログラミングインターフェース(API)を介して当該データにアクセスできるように、データベースに別個にストアされる請求項8に記載のシステム。
【請求項13】
上記エントリは、メディアファイルまたはメディアストリームの名称、権利所有者名、および上記メディアファイルまたは上記メディアストリームに関連付けられたメタデータのうちの1つまたは複数を含む請求項8記載のシステム。
【請求項14】
上記トランザクションデータは、記録された再生位置とともに上記エンドユーザーデバイス上でローカルに永続化されたエントリを含み、上記エントリは、上記エンドユーザーからの上記メディアファイルまたは上記メディアストリームを再生するための上記要求に対応する請求項8に記載のシステム。
【請求項15】
ブロックチェーンベースのプラットフォームを介してメディアファイルまたはメディアストリームの再生を継続的に追跡するためのシステムにおいて、
ユーザーデバイスであって、
アプリケーションを介してメディアファイルまたはメディアストリームを再生するためのユーザー始動要求を受信し、
上記メディアファイルまたは上記メディアストリームを再生するための上記ユーザー始動要求に対応するエントリをローカルRAMまたはローカルディスクに記録し、
所定の間隔で、上記メディアファイルまたは上記メディアストリームの現在の再生位置を、ローカルRAMまたは上記ローカルディスクに記録し、
ネットワーク接続が利用可能になる、
上記アプリケーションとのユーザーインターラクションが受信される、
上記プラットフォームストリームへの前回のネットワーク送信から所定の時間が経過した、および、
ローカルRAMまたは上記ローカルディスクに保存されているデータの予め定められた閾値が到達された、
という条件のうちの1または複数が満たされたときに、上記エントリおよび記録された再生位置を上記プラットフォームストリームに送信して、ブロックチェーンに記録しするように構成され、
上記エントリおよび上記記録された再生位置を上記プラットフォームストリームに送信するステップは、上記エントリおよび上記記録された再生位置のオリジンを確認するためにユーザーに関連付けられた公開鍵を送信することを含む上記ユーザーデバイスと、
プラットフォームサーバーであって、
プラットフォームストリームから、トランザクションデータであって、上記エントリおよび上記記録された再生位置を含む上記トランザクションデータを受信し、
上記トランザクションデータの検証であって、当該トランザクションデータの検証は、上記ユーザーに関連付けられた公開鍵を使用して上記トランザクションデータの発信元を検証することを含む、上記上記トランザクションデータの検証を実行し、
暗号署名を使用して上記検証されたトランザクションデータに署名し、
上記検証されたトランザクションデータをブロックチェーンに記録し、かつ、
上記検証されたトランザクションデータおよび上記暗号署名を1つ以上の検証ノードに送信するように構成された、上記プラットフォームサーバーとを有することを特徴とするシステム。
【請求項16】
上記トランザクションデータは、上記ユーザーに対応する暗号署名を含む、請求項15に記載の方法。
【請求項17】
上記検証されたトランザクションデータが有効なブロックチェーントランザクションであると決定された場合にのみ、上記検証されたトランザクションデータが上記ブロックチェーンに記録される請求項15に記載の方法。
【請求項18】
当該トランザクションデータを検証することは、1)上記トランザクションデータのフォーマットが上記プラットフォームによって確立されたプロトコルに従っているかどうか、および2)上記トランザクションデータが、上記エンドユーザーに対応する上記公開鍵によって検証可能な上記エンドユーザーの暗号署名を含むかどうかを、検証することを含む請求項15に記載の方法。
【請求項19】
上記エントリが、メディアファイルまたはメディアストリーム名、権利所有者名、およびメディアファイルまたはメディアストリームに関連付けられたメタデータのうちの1つまたは複数を含む、請求項15に記載の方法。
【請求項20】
ユーザーインターラクションは、新しいメディアファイルまたはメディアストリームを再生するための要求、上記メディアファイルまたは上記メディアストリームの再生を一時停止するための要求、上記メディアファイルまたは上記メディアストリームの生成を停止するための要求、および上記メディアファイルまたは上記メディアストリームにおいて新しい位置へスキップするための要求のうちの1つまたは複数を含む請求項15記載の方法。
【発明の詳細な説明】
【関連出願】
【0001】
この出願は、2020年6月24日に出願されたAssadipour等による「ブロックチェーンを利用してメディア再生を連続的に追跡するシステムおよび方法」という名称の米国特許出願第16/911,297号(参照番号BTPPP001)の利益を主張し、参照によりその全体をすべての目的のためにここに組み込む。
【技術分野】
【0002】
本開示は、デジタルメディア、特にストリーミングメディアの追跡に関する。
【背景技術】
【0003】
音楽産業は、ロイヤルティに基づいて推定250億ドルの収入を生み出す。インターネットの出現により、ストリーミングテクノロジーにより、リスナーは選択したほぼすべての曲を簡単に聴くことができる。アーティストは、通常、音楽レーベルと協力してメディアを配布し、ロイヤルティに基づいて収益を集めるのを支援する。これらの音楽レーベルは、ストリーミングプラットフォームや、SpotifyやAppleなどのデジタルサービスプロバイダー(DSP)など、さまざまなメディアを通じてメディアを配信される。
【0004】
曲へのアクセスはDSPによって容易にされてきたけれども、ストリーミングされたすべての曲または特定の曲の再生量を追跡することは、解決するのがますます困難な問題になっている。したがって、今日のストリーミングプラットフォームでのアクティビティの25%はライセンスがない。さらに、認可されたアクティビティであっても、年間総ロイヤルティの最大15%が未徴収のままである。DSPは、誰の主張が正当であるのか、あるいは特定の当事者を見つける方法さえも理解するのに役立つ必要なデータおよびテクノロジーが不足していると主張している。さらに、既存のすべての音楽の権利をカバーする信頼できるデータベースの欠如は、問題を追加するだけである。さらに、問題は音楽だけでなく、ビデオ、ポッドキャスト、ライブ放送など、種々の種類のストリーミングメディアにある。したがって、誰でもインターネット上で創造的な作品を登録、識別、追跡できる、信頼性の高いコンテンツ識別技術が必要である。
【発明の概要】
【0005】
以下は、本開示の特定の実施例の基本的な理解を提供するために、本開示の簡略化された概要を提示する。この概要は、本開示の広範な要旨ではなく、本開示の重要な要素を特定したり、本開示の範囲を説明したりするものではない。その唯一の目的は、後で提示されるより詳細な説明の前置きとして、ここに開示されるいくつかの概念を簡略化された形で提示することである。
【0006】
本開示の側面は、ブロックチェーンを使用してメディアファイルの再生を追跡するためのシステムおよび方法に関する。メモリは、方法を実行するための命令を含む。この方法は、最初にプラットフォームストリームからトランザクションデータを受信することから始まる。トランザクションデータは、エンドユーザーからのメディアファイルの再生要求に対応している。次に、トランザクションデータが検証される(verify)。次に、検証されたトランザクションデータは暗号署名を使用して署名される。次に、トランザクションデータが有効なブロックチェーントランザクションに対応するかどうかが判断される。トランザクションデータが有効なブロックチェーントランザクションに対応している場合、有効なブロックチェーントランザクションがブロックチェーンに記録される。最後に、トランザクションデータおよび暗号署名が1つ以上の検証(validation)ノードに送信される。
【0007】
本開示の他の側面において、システムが提供される。システムは、プロセッサおよびメモリを含む。メモリは、方法を実行するための命令を含む。この方法は、最初にプラットフォームストリームからトランザクションデータを受信することから始まる。トランザクションデータは、エンドユーザーから最初の検証ノードへのメディアファイルの再生要求に対応する。次に、トランザクションデータが検証される。次に、検証されたトランザクションデータが署名され、暗号化署名が生成される。これにより、トランザクションが有効なブロックチェーントランザクションとして検証される。次に、有効なブロックチェーントランザクションがブロックチェーンに記録される。最後に、トランザクションデータと暗号署名が1つ以上の検証ノードに送信される。
【0008】
本開示のさらに他の側面において、ブロックチェーンベースのプラットフォームを介してメディアファイルの再生を追跡するための方法が提供される。この方法は、最初にプラットフォームストリームからトランザクションデータを受信することから始まる。トランザクションデータは、エンドユーザーからのメディアファイルの再生要求に対応している。次に、トランザクションデータが検証される。次に、検証されたトランザクションデータは暗号署名を使用して署名される。次に、トランザクションデータが有効なブロックチェーントランザクションに対応するかどうかが判断される。トランザクションデータが有効なブロックチェーントランザクションに対応している場合、有効なブロックチェーントランザクションがブロックチェーンに記録される。最後に、トランザクションデータと暗号署名が1つ以上の検証ノードに送信される。
【0009】
これらの側面の追加の利点および新規な特徴は、部分的には以下の説明に記載され、部分的には、当技術分野の当業者が以下の説明を検討し、開示内容を実施して学習することにより、明らかになる。
【図面の簡単な説明】
【0010】
本開示は、本開示の具体的な実施例を説明する、以下の説明を添付の図面と併せて参照することによって最もよく理解される。以下の説明では、同様の部品が明細書および図面全体でそれぞれ同じ番号で参照される。図は必ずしも一定の縮尺で描かれているわけではなく、所定の図は、明確さと簡潔さのために誇張または一般化された形式で示されている場合がある。
【
図1】本開示の実施例に従う、開示されたシステムにおける利用可能なユーザータイプの関係、データ、および機能の例示的な図である。
【
図2】本開示の実施例に従う、歌の再生要求からフィンガープリントされたコンテンツを提供するまでの例示的な待ち時間分析を示す。
【
図3】本開示の実施例に従う、シャーディングの例示的な図を示す。
【
図4】本開示の実施例に従って、音楽産業がどのように結合されるかの一例の図である。
【
図5】本開示の実施例に従う、基本的な管理者の役割の一例の図である。
【
図6】本開示の実施例に従う、エンドユーザーの基本的なデータフローの一例の図である。
【
図7】本開示の実施例に従う、メディアファイル再生追跡ネットワークの一例の図である。
【
図8】本開示の実施に従う、メディアファイルの再生を追跡するためのシステムの一例のシステム図である。
【
図9】本開示の実施例に従う、メディアファイルの再生を追跡するための方法のフローチャートである。
【
図10】本開示の実施例に従う、コンピュータシステムの一例を示す。
【
図11】本開示の実施例に従う、連結リストデータ構造の一例を示す。
【
図12】本開示の実施例による、ブロックチェーンの概念的な例を示す。
【
図13】本開示の実施例による、プラットフォームデータセットの一部のマークル化の例を示す。
【
図14】本開示の実施例に従う、トランザクションのデータフローの他の例を示す。
【
図15】本開示の実施例に従う、例示的な非CDNプラットフォームアーキテクチャのフローチャートを示す。
【
図16】本開示の実施例に従う、例示的な非CDNプラットフォームアーキテクチャの他のフローチャートを示す。
【
図17A】本開示の実施例に従う、ローカル永続性を使用してメディアファイル再生を連続的に追跡するための方法のフローチャートを示す。
【
図17B】本開示の実施例に従う、ローカル永続性を使用してメディアファイル再生を連続的に追跡するための方法のフローチャートを示す。
【
図18A】本開示の実施例に従う、バッファ近似を使用する連続追跡のための方法のフローチャートを示す。
【
図18B】本開示の実施例に従う、バッファ近似を使用する連続追跡のための方法のフローチャートを示す。
【
図19】本開示の実施例に従う、ユーザーインターラクションを使用する連続追跡のための方法のフローチャートを示す。
【
図20】本開示の実施例に従う、コンピュータシステムの一例を示す。
【
図21】本開示の実施例に従う、リンクリストデータ構造の一例を示す。
【
図22】本開示の実施例に従う、ブロックチェーンの概念的な例を示す。
【
図23】本開示の実施例に従う、プラットフォームデータセットの一部のマークル化の例を示す。
【詳細な説明】
【0011】
ここで、本開示を実施するために発明者によって企図された最良のモードを含む、本開示のいくつかの特定の例を詳細に参照する。これらの特定の実施例の例は、添付の図面に示されている。本開示は、これらの特定の実施例と併せて説明されているが、本開示を説明された実施例に限定することを意図するものではないことが理解されよう。それどころか、それは、添付の特許請求の範囲によって定義される開示の精神および範囲内に含まれ得る代替物、修正、および均等物をカバーすることを意図している。
【0012】
例えば、本開示の技術は、メディアファイルの追跡要求、メディアファイル送信、暗号化、データストレージ、およびメディアアクセス検証(validation)の文脈で説明される。しかしながら、本開示の技術は、多種多様なネットワークトランザクション、協調的環境、データ構造、および異なるタイプのデータに適用されることに留意されたい。以下の説明では、本開示の完全な理解を提供するために、多くの特定の詳細が示されている。本開示の特定の例示的な実施例は、これらの特定の詳細の一部または全部なしで実施することができる。他の例では、本開示を不必要に曖昧にしないために、周知のプロセス操作は詳細に説明されていない。
【0013】
本開示の様々な技術およびメカニズムは、明確にするために単数形で説明されることがある。しかしながら、いくつかの実施例は、特に断りのない限り、技術の複数の反復またはメカニズムの複数のインスタンス化を含むことに留意されたい。たとえば、システムはさまざまな文脈で1つのプロセッサを使用する。しかしながら、特に断りのない限り、システムは、本開示の範囲内にとどまりながら、複数のプロセッサを使用できることが理解されよう。さらに、本開示の技術およびメカニズムは、2つのエンティティ間の関係を説明する場合がある。他のさまざまなエンティティが2つのエンティティ間に存在する可能性があるため、2つのエンティティ間の接続は、必ずしも直接の障害のない接続を意味するわけではないことに注意されたい。例えば、プロセッサはメモリに接続され得るが、様々なブリッジおよびコントローラがプロセッサとメモリとの間に存在し得ることが理解されるであろう。したがって、特に明記されていない限り、接続は必ずしも直接の障害のない接続を意味するわけではない。
【0014】
ここで使用される場合、「プラットフォーム」という用語は、本明細書で開示されるプラットフォームシステムおよび方法を指す。本開示を通して、「プラットフォーム」および「システム」という用語は交換可能に使用される。様々な実施例によれば、ブロックチェーン音楽プラットフォームが提供される。いくつかの実施例において、ブロックチェーンは、すべてのトランザクションの永続的な記録を保持する、分散化された、安全で、変更不可能なデジタル台帳またはデータベースとして定義される。いくつかの実施形例において、ブロックチェーン台帳には「スマートコントラクト」があり、これはブロックチェーントランザクションの条件とコストを規定している。いくつかの実施例において、スマートコントラクトを修正することができるけれども、以前のすべてのバージョンはブロックチェーン上にとどまる。トランザクションの完全な履歴とスマートコントラクトの変更により、ブロックチェーンテクノロジーは、クローズドコントラクトとデータベースの現在のシステムよりも本質的に透過的で安全である。
【0015】
ここで使用される場合、「シーラー」および「バリデーションノード」という用語は交換可能に使用され、トランザクションをブロックチェーンに追加する前にトランザクションを検証(validate)するために使用される任意の数の登録済みまたは信頼できるノードを指す。バリデーションノードの例としては、DSP、プラットフォーム、レーベル、ディストリビューターなどがある。
【0016】
いくつかの実施例において、ブロックチェーン音楽プラットフォームは、ユーザーが、メディアファイル、例えば、曲に関連するメタデータとともに、メディアファイルをサーバーまたはデータベースにアップロードすることを可能にする。いくつかの実施例において、曲をアップロードする要求が受信されると、曲のブロックチェーントランザクションが作成され、ブロックチェーンに保存される。いくつかの実施例において、曲の詳細、コンテンツアクセスの詳細、および利害関係者の利害関係などのデータ、ならびに他の何百もの潜在的なメタデータフィールドもブロックチェーンに保存される。いくつかの実施例において、データが不変であり、ネットワークが安全であることを保証するために、ブロックチェーン上のトランザクションは、ファイナライズされる前に検証される必要がある。いくつかの実施例において、検証(validation)は、少なくとも2つ以上のトランザクションバリデーター(シーラー)、または許可された/信頼された検証ノード(validation node)がトランザクションを検証できる後にのみ発生する。
【0017】
いくつかの実施例において、ブロックチェーン音楽プラットフォームは、ユーザーがメディアファイルに関連付けられたメタデータをサーバーまたはデータベースに送信することを可能にする。いくつかの実施例において、曲のデータをアップロードする要求が受信されると、曲のブロックチェーントランザクションが作成され、ブロックチェーンに保存される。いくつかの実施例において、曲の詳細、コンテンツアクセスの詳細、および利害関係者の利害関係などのデータ、ならびに他の何百もの潜在的なメタデータフィールドもブロックチェーンに保存される。いくつかの実施例において、データが不変であり、ネットワークが安全であることを保証するために、ブロックチェーン上のトランザクションは、ファイナライズされる前に検証される必要がある。いくつかの実施例において、検証は、少なくとも2つ以上のトランザクションバリデーター(シーラー)、または許可された/信頼されたバリデーションノードがトランザクションを検証できる後にのみ発生する。いくつかの実施例において、トランザクションが有効であると見なすのに、バリデーターによる1つの署名のみが必要である。
【0018】
いくつかの実施例において、データストレージの必要性は、多数のユーザーのメディアストリーミングを実際にサポートするために大きいので、システムはトークンを使用しない。しかしながら、他の実施例において、トークンを作成して、支払い処理に使用することができる。
【0019】
いくつかの実施例において、トランザクションは、プルーフ・オブ・オーソリティ(Proof of Authority:PoA)コンセンサスアルゴリズムを使用して検証される。他の実施例において、トランザクションは、プルーフ・オブ・ワーク(Proof of Work:PoW)アルゴリズムを使用して検証される。しかしながら、様々な実施例に従って、PoAは、以下の理由で開示されたシステムおよび方法に対してよりよく機能する。まず、PoAでは、特定の関係者のみがブロックチェーン上のトランザクションを検証できる。ブロックのシールまたはトランザクションの検証を許可され、それらが属するパーティを識別することができるノードは事前定義されているため、検証に必要な時間を短縮できる。第2に、PoAのトランザクションは、ブロックチェーンによって処理されるとすぐにファイナライズできる。これは、承認されたシーラーがトランザクションを暗号で検証できるためである。したがって、ブロックは、有効である限り、任意の順序でブロックチェーンに追加できる。したがって、PoAの別の結果は、ブロックチェーンのメカニズムだけで有効なブロックが拒否されないため、「アンクルブロック」または「孤立ブロック」が削除されることである。第3に、PoA実装のトランザクションスループットは、実行するハードウェアによってのみ制限される。したがって、開示されたシステムは、毎秒数百万のトランザクションに対応することができる。対照的に、PoW実装の場合、トランザクションスループットは、プロトコルで必要な作業証明の難しさによってほとんど制限されてしまう。最後に、ノードのIDがわかっているため、PoAはシビル・アタック(Sybil attack)の影響を受けない。
【0020】
いくつかの実施例において、PoAコンセンサスアルゴリズムは、以下の式を使用して、どのノードが次のブロックをシールすることを許可されるかを決定する。
(シーラーあたり対処される連続ブロックの数)=(floor(シーラー数/2)+1)
【0021】
他の実施例において、コンテンツの迅速な利用可能性を確実にするために、トランザクションは、最初の2つの利用可能なシーラーによって検証および封印される。いくつかの実施例において、ブロック提案は使用されない。そのような実施例においては、歌またはメディアファイルがクライアントデバイスによって要求されると、歌またはメディアファイルの短いバッファが即座に送信またはストリーミングされる。ただし、トランザクションがブロックチェーンで完了するまで、通常は1秒以内に、曲全体またはメディアファイルがクライアントデバイスにパイプされない。いくつかの実施例において、メディアファイルの再生は、所定量のコンテンツがエンドユーザーによって再生されるまで、アカウント報告されない。したがって、エンドユーザーが所定の時間コンテンツを消費しない場合、再生の初期化が行われ、一部のコンテンツがエンドユーザーにストリーミングされる可能性があるけれども、エンドユーザーは十分な長さのコンテンツを消費しないので、再生イベントはブロックチェーンに送信されない。
【0022】
種々の実施例によれば、数十億のトランザクションを1時間ごとにブロックチェーンに対して行うことができる。その結果、大量のデータがブロックチェーンに保存できる。したがって、すべてのノードがブロックチェーンの完全な履歴を持つ必要がある場合、ストレージコストを制御することは非現実的になるかもしれない。したがって、いくつかの実施例において、ブロックチェーンクライアントの様々な異なる互換性のあるバージョンが作成される。このような実施例において、「より軽い」クライアントは、通常のブロックチェーンクライアントと同じ機能を有するであろう。ただし、これらのクライアントは、トランザクションの検証などの特定のタスクを実行するための、過去のブロックチェーン履歴のすべてを含む必要はない。したがって、いくつかの実施例において、ライトクライアントは、ブロックチェーン履歴の一部をダウンロードする必要はない。いくつかの実施例において、シーラーは、トランザクションの検証を開始するために、封印された最新のブロックのヘッダーをダウンロードするだけでよい。いくつかの実施例において、シーラーは、暗号署名の検証のみを任務とし、ブロックチェーンのイベントの履歴を必要としない。「重い」クライアントの場合、ブロックチェーン上のデータは、ブロックヘッダーを参照として使用してプルーニング(枝刈り)される。いくつかの実施例において、より軽いクライアントは、マークルツリー(Merkleツリー)を使用してデータをハッシュし、ルートを格納して、必要なストレージスペースを減らすことができる。しかしながら、いくつかの実施例において、当事者は、ブロックチェーン全体のコピーを有するために完全なノードを実行するオプションを有する。いくつかの実施例において、当事者は、ブロックチェーンデータをノード上に直接保持するか、またはデータを別個のストレージソリューションにオフロードするかを選択することができる。
【0023】
種々の実施例によれば、プラットフォームに関与する種々の当事者は、種々のデジタルインフラストラクチャを必要とするであろう。たとえば、DSPと音楽レーベルは、プラットフォームのコンセンサスプロトコルを使用してネットワークを保護することに参加したい場合がある。ただし、プラットフォームのコンセンサスプロトコル仕様に準拠している限り、さまざまな関係者が独自のブロックチェーンクライアントを自由に作成できる。
【0024】
いくつかの実施例において、ノードは、単一のコンピュータによって実行できる。いくつかの実施例において、ノードは、コンピュータのアレイ全体で実行することができる。ノードを実行するためのアーキテクチャの選択には、ロードバランサーの使用、グループのスケーリング、およびi/またはサーバーレステクノロジーが含まれて良い。各ノードの主な要件は、おそらく参加者のIDに対して登録された1つまたは複数の公開鍵によって表されることにより、1つのIDを表す必要があることである。
【0025】
いくつかの実施例において、プラットフォームのサーバーは、単にネットワークに参加しているだけではなく、より多くのサービスを提供する。いくつかの実例において、サーバーは、コンテンツ配信ネットワーク(CDN)を介してリスナーに直接デジタルメディアコンテンツを提供する責任がある。このような実施形例において、プラットフォームは、コンテンツサーバーの分散セットに対してnginxを使用したエニーキャスト手法を使用する。そのような実施例において、ファイルが提供されるたびに、それは、また、トランザクションハッシュまたは他の識別情報でフィンガープリントされる。他の実施例において、プラットフォームのサーバーは、プロトコルおよび追跡サービスを提供するけれども、コンテンツを直接配信しない。
【0026】
いくつかの実施例において、DSPは、それらのクライアント側アプリケーションを変更するために必要とされるであろう。たとえば、DSPには、プラットフォーム上の曲ごとに個別のエンドポイントがある可能性がある。したがって、いくつかの実施例において、DSPは、現在ファイルを提供しているエンドポイントを、ブロックチェーンネットワークに要求を行うエンドポイントに変更する必要がある。リクエストが検証されると、CDNによって完全な曲ファイルがユーザーにパイプされる。
【0027】
いくつかの実施例において、ユーザーが特定のアクションを行ったことを暗号的に検証するために、ブロックチェーンプロトコルは、非対称暗号、例えば、楕円曲線デジタル署名アルゴリズム(ECDSA)を利用する。このような実施例において、エンドユーザーは、要求が送信されるたびに署名を作成する必要がある。したがって、DSPは、リスナーに(クライアントのデバイス上で、またはDSP自体のサーバーを使用して)暗号化キーペアを提供する必要がある。
【0028】
種々の実施例によれば、DSPによって処理される1秒あたりの大量のトランザクションのために、スケーリングのためのいくつかの方法が提供される。いくつかの実施例において、パブリックブロックチェーンの代わりにコンソーシアムブロックチェーンが実装される。コンソーシアムのブロックチェーンを構築するときは、PoAが使用される。トランザクション検証者は、ID/レピュテーションを賭けることにより、要求を迅速に承認でき、独自のハードウェアとインターネットインフラストラクチャによってのみ制約される。
【0029】
いくつかの実施例において、ネットワーク全体で発生するトランザクションを記録するために単一のブロックチェーンを使用することは実行可能ではない。いくつかの実施例において、ブロックチェーンは地理的シャードに分割することができる。たとえば、あるシャードが北米を担当し、別のシャードがロンドンを担当する場合がある。本開示に記載されている他の実施例を含むいくつかの実施例において、ブロックチェーンは、レーベルとDSPの関係によって分割することができる。たとえば、シャードはStreamCoとレーベルAの間にあり、StreamCoにはレーベルBの別のシャードがある。関係シャーディングのこのような実施例において、参加者は自分が属していない関係からのデータにアクセスできない。
【0030】
いくつかの実施例において、ブロックチェーンネットワークの各参加者は、世界中に広がる最小数のノードを実行する必要がある。したがって、プラットフォームのブートノードは、ルーティングアルゴリズムを使用してシーラーを地理的にグループ化する。いくつかの実施例において、シャードがメインチェーンからスポーンされると、それは定期的にマークル化され、ルートハッシュが取得されてメインチェーンに格納される。定期的に、またはシャードが閉じられると、その履歴がメインチェーンに追加される。いくつかの実施例において、シャードでの紛争のありそうもないケースでは、最新の暗号的に証明可能なデータが真実として使用される。いくつかの実施例において、エンドユーザーは、メインまたはDSP-レーベル関係シャードで行われた要求によって、地理的シャードから割り当てられ、または割り当てられない。いくつかの実施例において、ユーザーが特定のシャードに割り当てられると、それらは、同じDSP-レーベル関係シャード内の別のシャードで要求を行うことができない。
【0031】
いくつかの実施例において、オフチェーンスケーリングをプロトコルに組み込むことができる。たとえば、ステートチャネル、子チェーン、またはシャーディングチェーンはすべてコンセンサスプロトコルで使用できる。次の例は、オフチェーンスケーリングを組み込むための1つの方法を示す。この例では、プラットフォームのシャーディング実装はメインチェーントランザクションを使用して関係を開く。ステートチャネルの最終的な結果だけでなく、すべてのメディア再生がカウントされることに注意されたい。
【0032】
CDNの例:アリスは、DSPから音楽を再生するために彼女の音楽アプリケーションを開く。アリスは、DSPの適切な地理的シャードに割り当てられます(リソースが利用可能な場合は、既存または新規に作成されます)。アリスは、今、メインチェーンにストレスをかけることなく、任意の量のメディアコンテンツをストリーミングできる。各ストリームリクエストは、アリスが秘密鍵を使用して署名し、公開鍵を使用して任意のシーリングノードで検証できる。
【0033】
彼女の音楽アプリケーションの以下の使用例を見ると、当業者は、シャーディングがどのようにパフォーマンスを改善するかを見ることができる:アリスは、要求に暗号的に署名することによって曲を再生することを要求する。プラットフォームCDNが音楽をアリスにストリーミングする前に、リクエストは少なくとも2つのシーラーによって検証される。曲のアドレスへの呼び出しは、シャードのブロックチェーンに記録される。この方法と従来のブロックチェーンの呼び出しとの違いは、リクエストがすぐにメインチェーンにコミットされないことである。曲の実行時に任意の間隔で、シャード内のクライアントから、ユーザーが聴いている曲の次の部分を取得するように要求が自動的に行われる。データは、再生データを追跡するためにチャンクにパイプされる。アリスが署名していないトランザクションがある場合、またはアリスが再生した曲の数について異議がある場合は、暗号で証明可能な最新のデータがメインチェーンに送信される。次に、シャードは続行し、または、閉じ、メインチェーンはシャード内のすべてのアクティブユーザーを再割り当てする。アリスが任意に設定された時間(シャードに参加したときに定義された)音楽を聴いていない場合、彼女はすべてのシャードから割り当てられていない。
【0034】
いくつかの実施例において、プラットフォームのCDNの1つからストリーミングされたすべての曲がスタンプされ、コンテンツの元のストリーマーを識別できるようになる。いくつかの実施例において、フィンガープリントプロセス全体が2つの主要なコンポーネントに分割される。すなわち、スタンプ(トラックにフィンガープリントを適用する)およびスクレイピング(プラットフォームのCDNから最初に再生されたトラックを見つけ、コンテンツがどのようにリークしたかを識別する)である。いくつかの実施例において、悪意のある攻撃者が識別指紋を削除または歪曲しようとしないことを保証するために、指紋認証方法は秘密のままでなければならない。
【0035】
アリスに関する先の例はCDNアーキテクチャを含むけれども、再生要求およびそれに関連するカウントのブロックチェーン記録を伴うプロトコルは、非CDNアーキテクチャにも適用される。トランザクション要求は、コンテンツの配信がDSPによって提供され、プロトコルを実装するプラットフォーム(サードパーティのプレイカウントレコードキーパーおよび監査人)を介して直接提供されないことを除いて、先の例と同様の方法で検証および記録できる。非CDNシステムでは、バリデーター(またはシーラー)がトランザクションを確認すると、エンドユーザーの公開鍵に対してトランザクションデータを検証することで、トランザクション内のデータの暗号化の有効性を確認できる。この検証ステップが通過すると、トランザクションデータはバリデーターによって署名され、結果の署名は関連するトランザクションIDとともにプラットフォームに書き戻される。署名はトランザクションごとに集約され、長期ストレージソリューションに保存される。すべてのバリデーターは、ストリームから直接読み取ることができる。その結果、同じネットワーククラスター内のバリデーターは、トランザクションIDを介してデータをトランザクションに関連付けることにより、特定の各トランザクションに関連付けられている同じ署名のセットをキャプチャすることができる。
【0036】
いくつかの実施例において、すべてのノード/バリデーターは、ストリームのためのAPIエンドポイント(例えば、URL)を有する。いくつかの実施例において、ストリームはサーバーに似ているけれども、トランザクションが任意の時間ストリーム内にとどまることができるという違いがある。
【0037】
いくつかの実施例において、再生要求は、最初にエンドユーザーによって形成される。要求の形式は、プロトコルで定められたルールに従う必要がある。次に、リクエストを作成したエンドユーザーがリクエストに署名するため、リクエストの発信元を後で確認できる。署名されたリクエストとそれに付随するデータは、プロトコルで設定された形式でプラットフォームのストリームに送信される。たとえば、再生要求の最初の受信ノードがDSPであった場合、DSPはその後、検証および署名された要求をプラットフォームやレーベルに送信できる。プラットフォームやレーベルがリクエストを確認して署名した後、確認され署名されたリクエストがDSPに送信される。2つのバリデーターがリクエストに署名すると、トランザクションがブロックチェーンに追加される。いくつかの実施例において、単一のトランザクションがブロックチェーン内のブロックを構成することができる。他の実施例において、ブロックは多くのトランザクションを構成することができる。
【0038】
いくつかの実施例において、各バリデーターは、いつでもブロックチェーンのそれら自身のコピーにトランザクションを格納するオプションを有する。他の実施例において、バリデーターは、それらのブロックチェーンを他のバリデーターと同期させる。
【0039】
いくつかの実施例において、新しいDSP/レーベル関係が形成されるときに、子チェーンが生成される。いくつかの実施例において、各DSPは、主チェーンからの独自の分岐子チェーンを有する。ただし、親チェーンと子チェーンで生データを維持すると、計算量が多くなる可能性がある。したがって、いくつかの実施例において、生データのマークル化されたルートノードが親チェーンを上って伝播される間、生データは子チェーン上にとどまる。
【0040】
いくつかの実施例において、データがストリーム内に存在するので、プラットフォーム上のバリデーターによって暗号的に検証することができる。リクエストが検証されるたびに、トランザクションデータはバリデーターによって署名される。署名は、リクエストデータのIDを参照してストリームに書き戻される。
【0041】
各バリデーターは、他のバリデーターの署名をキャプチャし、それらをそれら自身の元帳に保持することができる。これは、元のトランザクションが将来特定のバリデーターによって検証されたことを示すために行われる。
【0042】
データフローの実装に応じて、エンドユーザーは、要求をストリームに直接書き込む代わりに、要求をバリデーターに直接渡すことができる。有効な場合、リクエストはバリデーターによって署名される。この時点で、トランザクションは、元の要求データと2つの署名を具備し、署名のうち、1つはエンドユーザーからのもので、もう1つは最初のバリデーターからのものである。その後、ストリームに書き込まれる。データがストリームに存在するようになったので、プラットフォーム上のバリデーターによって暗号で検証できる。ストリームにリクエストを書き込んだ元のバリデーターは、ストリームを通過する新しいバリデーターをキャプチャできる。リクエストが検証されるたびに、トランザクションデータはバリデーターによって署名される。署名は、リクエストデータのIDを参照してストリームに書き戻される。
【0043】
いくつかの実施例において、最初の要求は、以下の場合に有効であると見なされる。すなわち、1)データのフォーマットが、プラットフォームによって確立されたプロトコルに従っている。2)データには、暗号化署名とエンドユーザー公開鍵が付属していることである。いくつかの実施例において、エンドユーザーは、プロトコルとは異なるフォーマットを要求に使用することができる。そのような実施例において、DSPまたは第1の受信ノードは、それがストリームに送信される前に、プラットフォームプロトコルと整列するようにフォーマットを再構成することができる。
【0044】
いくつかの実施例において、ストリームの出力において、バリデーターは、署名されていない要求、および他のバリデーターによって署名された可能性があるがそれ自体は署名していない要求をk監視する。ストリームに書き込まれたリクエストを検証するために、バリデーターは、実際のリクエストデータ、リクエストを作成したエンドユーザーの公開鍵、暗号化署名の3つの主要なデータを探す。
【0045】
添付された公開鍵を使用して要求データに対して署名を検証できる場合、要求データはエンドユーザーから発信されたものであることが検証される。バリデーターによって検証されると、バリデーターは要求データに署名し、ストリームに書き戻す。ストリームに書き戻されたデータは、リクエストIDとバリデーターの署名で構成され、トランザクションが有効であることを示す。
【0046】
先に説明したように、いくつかの実施例において、要求は、ストリームに直接書き込まれる代わりに、バリデーターに渡されて良く、バリデーターは、それを別のバリデーターに直接送信するか、または配信のためにストリーム自体に送信する。これで、リクエストがストリームに入るときに、2つ以上の署名を持つことができる。1つは最初にリクエストを行ったエンドユーザーに属し、1つ以上はリクエストを検証して署名したバリデーターに属する。ストリームに到達する前にリクエストに署名したバリデーターは、ストリームを監視して、他のバリデーターによって作成されたリクエストの署名を取得できる。
【0047】
いくつかの実施例において、デジタルステガノグラフィを使用してファイルをスタンプすることによって、最小限のユーザーデータを、ユーザーに送信されているデータ内に隠すことができる。曲がストリーミングまたはダウンロードされるたびに、非表示の「透かし」をファイルに書き込むことができる。アルゴリズムは、デジタル信号処理を使用して、その形式のすべてのファイルに共通するデジタルコンテンツの一部を書き込んだり識別したりできる。たとえば、すべてのmp3ファイルには、曲の他のすべての部分よりも低いピッチのポイントが曲内にある。曲の共通点に、ユーザーの暗号化されたデジタル指紋を追加できる。
【0048】
いくつかの実施例において、スタンプ認識ソフトウェアは、デジタル信号処理を使用して、ウェブから削り取られたファイルからアップロードされた元のファイルをデコンボリューションすることによって、デジタル指紋を抽出する。デジタル指紋が見つかった場合、それを復号化して、ユーザーとプレイ時間までさかのぼることができる。いくつかの実施例において、指紋付けされたコンテンツのスクレイピングは、3つの主要なステップに分解することができる。すなわち、1)一般的な海賊版/ストリーミングサイト用のウェブクローラーを構築する。2)オーディオファイルを抽出してキャッシュする。このステップでは、ストリーミング/ダウンロードサイトごとにスクレイピングするためのカスタムソリューションが必要である。3)スタンプ認識ソフトウェアに対してキャッシュされたオーディオを実行する。
【0049】
種々の実施例によれば、開示されたシステムおよび方法は、メディアファイルのカタログ、所有権、および支払いの詳細の検証を可能にする。いくつかの実施例において、システムは、また、支払いの発生および会計処理を可能にする。いくつかの実施例において、システムは、また、正しい口座に正しい金額を預けることを可能にする。いくつかの実施例において、システムは、音楽作品および録音物の作成者(アーティスト)、レーベル、および配信プラットフォームに対して、公平で、透明で、監査可能で、ほぼリアルタイムの支払いを実現する。さらに、いくつかの実施例において、システムは、リアルタイムのコンプライアンスおよび監査メカニズムを提供する。
【0050】
図1は、本開示の実施例に従い、ここで開示されたシステムにおけるいくつかの利用可能なユーザータイプの関係、データ、および機能の例示的な図を示す。いくつかの実施例において、ユーザーの役割に基づいて、ユーザーは、開示されたプラットフォームに対して異なる責任を負う。
図1において、すべてのユーザー106は、データに署名し、所与のデータおよび公開鍵に対して署名を検証するための独自の暗号鍵ペアを作成することができる。
【0051】
いくつかの実施例において、レーベル102は、歌およびアルバムメタデータをプラットフォームにアップロードすることを担当する。いくつかの実施例において、レーベルは、DSPによって配布されるカタログ内の曲をさらに承認することができる。いくつかの実施例において、レーベル管理者は、必要なメタデータを記入し、歌ファイルをアップロードし、利害関係者の共有を割り当てることによって、プラットフォーム用の歌またはアルバムを準備する。レーベルアカウントから有効なアップロードリクエストを受信すると、エントリがブロックチェーンにブロードキャストされる。アーティストが曲にクレジットされたことに応じて、アーティストは曲を承認するオプションを利用できるようになっている。これにより、曲のリリース日にDSPで利用できるようになる。
【0052】
いくつかの実施例において、アップロードされた曲はメディアサーバー上に保持され、コンテンツにアクセスするためにブロックチェーンに暗号的に有効な要求を行ったユーザーによってのみアクセスすることができる。いくつかの実施例において、管理者は、プラットフォームウェブ製品を使用して、曲の再生に関する分析データを表示することができる。いくつかの実施例において、管理者は、要求ごとにデータを分類することができ、ユーザーがコンテンツにどのように関与しているかを追跡できるようにする。
【0053】
いくつかの実施例において、アーティスト104がレーベル102との契約オファーを取得すると、アーティスト104は、レーベル102への追加を受け入れることができる。いくつかの実施例において、アーティスト104は、レーベルに割り当てられない場合がある。そのような実施例においては、アーティスト104は、プラットフォーム上で独自のレーベルとして機能することができる。レーベル102が曲をアップロードするとき、クレジットされたアーティスト104がアップロードを承認するまで、それは未確認である。アーティスト104は、プラットフォームを介して自分の曲の再生データを表示できるけれども、同僚のデータを表示することは制限されている。
【0054】
いくつかの実施例において、各曲の利害関係者108は、ブロックチェーン上で確定される前に決定される。いくつかの実施例において、各曲の収益のパーセンテージが利害関係者108に割り当てられる。いくつかの実施例において、利害関係者108は、彼らが一部を所有する歌に関するデータを見ることができる。
【0055】
いくつかの実施例において、DSP110のおかげで、エンドユーザー106は、歌へのアクセスを与えられる。ほとんどのDSP110はサブスクリプションモデルを使用するので、ユーザー106が、設定された期間、DSPのプラットフォーム上の任意の曲を聞くことを可能にする機能がある。いくつかの実施例において、プラットフォームのテクノロジーを活用するために既存のDSPがシステムに対して行う必要がある提案された変更は軽微である。
【0056】
いくつかの実施例において、DSPのアプリケーションのユーザー112は、曲をストリーミングするときにいかなる違いも知覚してはならない。代わりに、エンドユーザーを作成したDSP110が、ユーザーのキーの管理を担当する。DSPが独自のサーバーまたはクライアントアプリケーションを使用して要求に署名するかどうかは、DSP次第である。
【0057】
いくつかの実施例において、待ち時間の問題は、ノードが十分に接近していない場合に発生し、これは、2つのノード間の距離が増加するにつれて2つのノード間の待ち時間が増加することを意味する。子チェーンの地理的シャーディングを活用することにより、信号の移動時間が短縮される。
図2は、ブロックチェーンネットワークの遅延を調査するのに役立つ。
図2は、本開示の実施例に従う、歌の再生要求からフィンガープリントされたコンテンツを提供するまでの例示的な待ち時間分析を示す。レイテンシー200はいくつかのステップに分割でき、その一部は並行して実行される。
【0058】
202において、歌が再生のために要求される。いくつかの実施例において、エンドユーザーが曲を再生するとき、要求は2つの主要な場所に送信される。すなわち、ユーザーに割り当てられたブロックチェーンシャードおよびCDNである。204において、フィンガープリントされたファイルが準備される。ステップ206および208は、要求の封印を扱う。いくつかの実施例において、要求を検証するための3つの別個の当事者のうちの最初の2つは、トランザクションが封印されていることを合図する。206において、要求は最初のノードによって検証される。208において、要求は2番目のノードによって検証される。ここで視覚化されていないのは、着信再生要求を検証する際に、他の2つのノード、206および208よりも遅い第3のノードである。この遅いノードは、最終的には暗号署名を再生イベントに添付できるけれども、この再生要求を封印する必要はない。210において、コンテンツがユーザーに提供される。いくつかの実施例において、サーバーは、デジタルメディアファイルをユーザーにパイプで送る。
図2に概説された経路の結果として。ファイル応答を成功させるための次の式を書くことができます。
t
latency=max(t
client CDN、t
client Node1、t
client Node2)+max(t
prep file +t
Node1 CDN、t
Node2 CDN)+t
serve file
【0059】
いくつかの実施例において、データのプライバシーが重要である。種々の実施例によれば、DSPおよびレーベルが、競合他社が分析データを表示できないようにするための2つの方法がある。すなわち、1)多層シャーディング、および、2)ゼロ知識証明である。
【0060】
図3は、本開示の実施例に従う、多層シャーディングの例示的な図を示す。
図3は、メインチェーン302、関係シャード304および308、ならびに地理的シャード306および310を示している。いくつかの実施例において、各レーベル-DSP関係は、それ自体のシャード304または308にグループ化される。
【0061】
いくつかの実施例において、ゼロ知識証明も、また、データのプライバシーを確保するために使用される。ゼロ知識証明により、ネットワーク参加者は、トランザクション内のデータを明らかにすることなく、トランザクションを暗号的に検証できる。いくつかの実施例において、チェーンに書き込まれるデータは、一方向の暗号化を使用する必要がある。これにより、チェーン上のすべてのデータは、データを復号化するためのキーを持っている当事者のみが読み取り可能になる。いくつかの実施例において、各関係シャードの復号鍵は、DSPとレーベルの間で共有される。
【0062】
いくつかの実施例において、プラットフォームがCDNのためのサーバーを所有することは、レーベルとDSPとの間の最小の信頼を必要とするけれども、利用可能な代替の追跡方法が存在する。たとえば、プラットフォームは、DSPのアプリケーションで実行するソフトウェア開発キット(SDK)またはライブラリを作成できる。このような例では、SDKの主な目的は、トランザクションの署名と検証に使用される適切な暗号化アルゴリズムをDSPに提供することである。いくつかの実施例において、DSPは、再生イベントデータおよびそれらに関連する署名とともに、定期的に、または、特定のトリガーによってレポートを提供する必要がある。いくつかの実施例において、プラットフォームは、システムがストリーミングプラットフォーム上にエンドユーザーアカウントを作成し、再生がプロトコルに従ってカウントされていることを保証する監査システムを配置する。いくつかの実施例において、SDKを使用することの利点は、DSPがコンテンツを保持することができて満足するという事実を含む。いくつかの実施例において、この方法の欠点は、DSPが依然としてそれらのサーバー上のコンテンツを制御し、レーベルがDSPの秘密監査を行うことによってのみ数値を検証できるという事実を含む。いくつかの実施例において、プラットフォームは、DSPのインターフェース(ウェブ、モバイルアプリ、デスクトップアプリ)のそれぞれのためのプラグインの実装を書かなければならないであろう。
【0063】
いくつかの実施例において、別の代替追跡方法は、暗号化されたコーデックを含む。そのような実施例においては、プラットフォームは、ファイルがアクセスされるたびにファイルを暗号化するためのカスタムファイルタイプを作成することができる。いくつかの実施例において、DSPは、暗号化されたファイルをそれら自身のサーバー上に保持することができる。この暗号化方式では、ファイルを復号化するために、ユーザーによる署名付きの要求を取り込むことができる。いくつかの実施例において、この方法の利点には、オフラインのインターラクションをこの方法で信頼できない形で考慮に入れることができるという事実が含まれる。いくつかの実施例において、別の利点は、復号化ステップでユーザーのデータをファイルに密かにスタンプする可能性であるということである。いくつかの実施例において、さらに別の利点には、DSPがコンテンツを保持することができて満足しているという事実が含まれる。いくつかの実施例において、この方法の欠点には、新しい標準を研究および実装するための才能が必要であるという事実が含まれる。いくつかの実施例において、別の欠点は、コンテンツが再生されているデバイスのキャッシュにアクセスすることによってファイルのコンテンツを盗むためのベクトルがまだあるという事実を含む。いくつかの実施例において、さらに別の欠点は、DSPがプラットフォームが提唱するコーデック標準を実装しなければならないという事実である。
【0064】
図4~10は、音楽業界に対するより多くの背景と、音楽のライセンス供与およびストリーミングにおいてプラットフォーム(および開示されたシステムと方法)が果たす役割とについて、説明するために図説される。
【0065】
図4は、本開示の実施例に従う、音楽産業がどのように連結されているかについての一例である
図400を示す。
図4において、作曲家402は、音楽作品の著作権を出版社404に譲渡する。次の出版社404は、演奏権団体(PRO)428に演奏ライセンスを付与します。PRO428は、ラジオ/TV424、スタジアム422、DSP418に包括的ライセンスを発行します。出版社404、出版社404は、また、シートミュージックプリンター406に複製ライセンス、外国の出版社408にサブパブリッシングライセンス、映画スタジオ410に同期ライセンス、およびレコード会社412に機械的ライセンスを与える。いくつかの実施例において、機械的ライセンスはハリーフォックスエージェンシー416を通る。レコード会社412は、また、実演者(パフォーマー)420から録音著作権の譲渡を受け、その後、DSP418とのサウンド交換414を提供する。
【0066】
図5は、本開示の実施例に従う、基本的な管理者の役割の一例の
図500を示す。最初に、管理ダッシュボード512は、曲作成要求502をサーバー504に送信する。次に、サーバー504は、ブロックチェーン508上に契約506を作成する。
【0067】
図6は、本開示の実施例に従う、エンドユーザーの基本的なデータフローの一例の
図600を示す。
図600は、クライアントアプリケーション612が楽曲再生要求602をプラットフォームCDNサーバー614、ブロックチェーン608、およびDSP認証サーバー616に送信することから始まる。次に、DSP認証サーバー616は、ユーザーが実際にアクセスを許可されるブロックチェーンネットワーク608に通信して(604)、指定されたリソースにアクセスする。次に、ブロックチェーン608は、プレイがCDN614によって初期化される準備ができていることをクライアントアプリケーション612にブロードキャストする。最後に、プラットフォームCDNサーバー614は、コンテンツをユーザー610に提供する。
【0068】
図7は、本開示の実施例に従う、メディアファイル再生追跡ネットワークの一例の
図700を示す。DSP702は、コンテンツ要求704をブロックチェーンネットワーク706に送信する。次に、ブロックチェーンネットワーク706は、要求716を検証する。要求が検証され、封印されたと見なされた後、CDN720は、コンテンツ718をDSP702またはオリジナルの再生リクエストを作成したDSPのエンドユーザーに提供する。検証されたトランザクションは、後で検査または監査するためにデータストレージソリューション710にアーカイブされる。定期的に、または、特定のイベント時に、ブロックチェーンデータのセグメントがそのマークルルートハッシュ714に抽出され、そのルートハッシュが第三者ブロックチェーンネットワーク712に書き込まれる。外部ブロックチェーンに書き込むためのメカニズムは、
図13においてさらに説明される。
【0069】
図8は、いくつかの実装例に従う、ネットワーク環境内で情報を交換するためのシステム800の例のシステム図を示している。システム800は、互いに通信している様々な異なるハードウェアおよび/またはソフトウェアコンポーネントを含む。
図8の非限定的な例において、システム800は、少なくとも1つのシステムサーバー804、少なくとも1つのクライアントデバイス808を含む。いくつかの実施例において、システム800は、少なくとも1つのデジタルサービスプロバイダ(DSP)880を含む。いくつかの実施例において、システム800はまた、音楽レーベル882、および/または少なくとも1人のアーティスト886を含む。いくつかの実施例において、音楽レーベル882は、アーティスト886からの音楽を表し、アップロードするけれども、時には、アーティスト886は、レコードレーベルを持たず、したがって、多くの場合、クライアントデバイス808は、音楽をシステムサーバー804に直接アップロードする。システム800は、システムサーバー804が、DSP880を介してクライアント808でストリーミングされている曲を追跡するのを支援することを可能にする。
【0070】
システムサーバー804は、システム800の他の構成要素と通信することができる。この通信は、ネットワークおよびインターフェースの組み合わせを介して促進されて良い。システムサーバー804は、クライアントデバイス808(直接コンテンツ配信モデルの場合)およびDSP880からのデータ要求およびデータ転送を取り扱いおよび処理することができる。同様に、システムサーバー804は、データ要求が処理された後にクライアントデバイス808に応答を返すことができる。例えば、システムサーバー804は、音楽レーベル882またはアーティスト886などの1つまたは複数のデータベースからデータを取得することができる。それは、異なるデータベースからのデータの一部またはすべてを組み合わせ、処理されたデータを1つまたは複数のクライアントデバイスまたはDSPに送信することができる。
【0071】
クライアントデバイス808およびDSP880は、1つまたは複数のデータネットワークを介してサーバーと通信することができるコンピューティングデバイスであって良い。クライアントデバイス808およびDSP880の例には、デスクトップコンピュータまたはスマートフォン、タブレット、ラップトップ、ウェアラブルデバイス、光学ヘッドマウントディスプレイ(OHMD)デバイス、スマートウォッチ、別個のサーバーなどの携帯型電子デバイスが含まれる。クライアントデバイス808およびDSP880は、アプリケーションが展開され得る少なくとも1つのブラウザを含む。
【0072】
音楽レーベル882は、リレーショナルまたは非リレーショナルデータベース管理システムに実装されたデータベースであって良い。いくつかの実施例において、このデータベースは、ネットワーク環境内の1つまたは複数のクライアント関連データベースの内容を含んで良い。
【0073】
アーティスト886は、レコード/音楽レーベルに関連付けられていない個々のアーティスト、または関連付けられているけれども、音楽レーベルによって満たされない特別な必要性を有するアーティストであって良い。いくつかの実施例において、アーティスト886との通信は、アーティストに関連する歌、アルバム、または任意の他のストリーミングメディアに関連する編集、修正、および/または追跡された変更情報を含むことができる。
【0074】
図9は、本開示の実施例に従う、CDNアーキテクチャを利用するメディアファイルの再生を追跡するための方法900のフローチャートを示す。方法900は、メディアファイルおよびメディアファイルに関連付けられたメタデータをアップロードする要求を受信する(902)ことから始まる。次に、メディアファイルおよびメディアファイルに関連付けられたメタデータが、ブロックチェーンプロトコルを介してアップロードされる(904)。906において、クライアントデバイスまたはデジタルサービスプロバイダ(DSP)プラットフォームからメディアファイルを再生する要求が受信される。908において、メディアファイルを再生する要求は、ブロックチェーンプロトコルを介して検証される。910において、メディアファイルを再生する要求を検証すると、メディアファイルは、クライアントデバイスまたはDSPプラットフォームで再生するために送信またはストリーミングされる。ただし、待ち時間を低く抑えるために、リクエストが検証される前に、メディアファイルの先頭のごく一部がエンドユーザーにストリーミングされる可能性がある。最後に、メディアファイルが所定の長さまで再生された回数がブロックチェーンプロトコルを介して追跡される(912)。
【0075】
いくつかの実施例において、ブロックチェーンプロトコルは、権限証明アルゴリズムを利用する。いくつかの実施例において、要求を検証することは、複数のシーラーからの1または複数の許可されたシーラー(バリデーションノード)による要求を暗号的に検証することを含む。いくつかの実施例において、メディアファイルを再生する要求は、指定された時間にコンテンツにアクセスするためのブロックチェーンへの要求を含む。いくつかの実施例において、ブロックチェーンへの要求は、それらがブロックチェーンにヒットするとすぐにファイナライズすることができ、それにより、任意の順序でブロックチェーンに追加することができる。いくつかの実施例において、メディアファイルの短いバッファは、メディアファイルを再生する要求を受信した後即座にストリーミングされるけれども、メディアファイルの残りは、再生要求が検証された後にのみストリーミングされる。いくつかの実施例において、ブロックチェーンクライアントの異なるバージョンは、それらがプラットフォームプロトコル規則に従うと仮定して、異なるクライアントに使用することができる。
【0076】
図10は、本開示の実施例に従う、非CDNアーキテクチャを使用してメディアファイル再生を追跡するための方法1000のフローチャートを示す。方法1000は、プラットフォームストリームからトランザクションデータを受信すること(1002)から始まる。いくつかの実施例において、ストリームは、時間の経過とともに利用可能になる一連のデータ要素である。ストリームは、トランザクション要求の取り込みポイントとして機能し、トランザクション要求を関係者に出力する。いくつかの実施例において、関連するストリームは、任意の数の登録済みまたは信頼できる検証ノート、例えば、DSP、プラットフォーム、レーベル、またはディストリビューターであって良い。いくつかの実施例において、検証ノードは、信頼されるようになるために、事前に登録プロセスを経なければならない。いくつかの実施例において、エンドユーザーデバイスは、トランザクションデータを作成して署名し、次にそのデータをプラットフォームストリームに送信する。トランザクションデータは、エンドユーザーからのメディアファイルの再生要求に対応している。いくつかの実施例において、トランザクションデータは、エンドユーザーに対応する暗号署名を含む。これは、最初のリクエストがエンドユーザーからのものであることを確認するためである。
【0077】
次に、トランザクションデータが検証される(1004)。いくつかの実施例において、トランザクションデータの検証には、以下の検証が含まれる。すなわち、1)トランザクションデータのフォーマットがプラットフォームによって確立されたプロトコルに従っているかどうか、および2)トランザクションデータが、エンドユーザーに対応する公開鍵で検証できるエンドユーザーの暗号署名を含むかどうか、である。1006において、暗号署名を使用して検証されたトランザクションデータが、署名される。いくつかの実施例において、署名者は、受信検証ノードである。つまり、トランザクションリクエストが検証されると、受信側の検証ノードが独自の暗号署名を追加する。
【0078】
1008において、トランザクションデータが有効なブロックチェーントランザクションに対応するかどうかが決定される。いくつかの実施例において、ブロックチェーントランザクションは、それが少なくとも2つの検証ノード/シーラーによって署名されている場合に有効であると見なされる。トランザクションデータが有効なブロックチェーントランザクションに対応している場合、有効なブロックチェーントランザクションがブロックチェーンに記録される。いくつかの実施例において、ステップ1006で受信検証ノードによって追加されたばかりの署名は、トランザクションを有効であるとみなすために必要な第2の署名であって良い。いくつかの実施例において、ブロックチェーンは、プラットフォームのブロックチェーンまたはプラットフォームのブロックチェーンのコピーである。いくつかの実施例において、ブロックチェーンは、プルーフオブワークアルゴリズムを利用する。
【0079】
最後に、トランザクションデータおよび暗号署名は、1つまたは複数の検証ノードに送信される(1010)。いくつかの実施例において、トランザクションデータおよび暗号署名は、ストリームに再送信される。受信ノードがプラットフォームの場合、他の検証ノードはDSP、レーベル、またはディストリビューターである可能性がある。受信ノードがDSPの場合、他の検証ノードはプラットフォーム、レーベル、またはディストリビューターである可能性がある。いくつかの実施例において、特にステップ1002で受信されたトランザクションデータが2つ未満の検証ノード署名を含む場合、トランザクションデータおよび新しい署名を他のノードに送信することは、検証プロトコルを伝播する。
【0080】
図11は、本開示の実施例に従う、メディアファイル再生を追跡するための例示的な非CDNプラットフォームアーキテクチャを示す。エンドユーザー1102は、再生要求を作成し、DSP1104に送信する。要求を検証および検証した後、DSP1104は、コンテンツをエンドユーザー1102にストリーミングする。曲の再生要求のカウントは、DSP1104によってストリームに送信され、次に、検証ノード1106のネットワークに要求を送信する。検証ノード1106のネットワークは、プラットフォーム1110を含み、プラットフォーム1110は、要求カウントを受信し、次に、要求カウントをレーベル1112に伝播し、DSP1104に戻す。要求は検証され、生のキャプチャされたデータ1114としてデータベースに別個に格納される。いくつかの実施例において、生のキャプチャされたデータは、プラットフォームのアーカイバによって、ストレージ、例えば、構造化クエリ言語(SQL)データベースに書き込まれる。いくつかの実施例において、この生のキャプチャされたデータは、別個のAPI1116を照会することによって、許可された関係者に利用可能にされる。いくつかの実施例において、プラットフォーム1110に格納されたブロックチェーン上のデータは、マークルルートと呼ばれる一見ランダムな文字列にマークル化される。次に、これらのマークルルートは、外部のプルーフオブワークブロックチェーンなどのサードパーティ/パブリック外部ブロックチェーン1118にコミットされる。これにより、外部のサードパーティブロックチェーンのハッシュパワーが増加すると、ブロックチェーンの整合性の改ざんに関連するコストが増加するため、セキュリティの追加ポイントが提供される。
【0081】
図12は、本開示の実施例に従う、トランザクション構造の例を示している。トランザクション1202は、要求データ1206、エンドユーザー署名1208、および場合によっては1つまたは複数の検証ノード署名1210、1212、または1214を含むデータ構造である。いくつかの実施例において、要求データ1206は、要求ID1204を含み、これはトランザクション自体に固有の識別子である。たとえば、サンプル要求ID 1204は、エンドユーザーの公開鍵をトランザクションの日時と連結することで生成できる。いくつかの実施例において、要求データ1206は、曲を再生するための要求に関する情報を含む。例えば、要求データ1206は、曲のタイトル、曲が再生された時間、誰が曲を要求したか、および/または曲の再生の持続時間に関する情報を含んで良い。いくつかの実施例において、エンドユーザー署名1208は、エンドユーザーを一意に識別する公開鍵と秘密鍵のペアを含む。いくつかの実施例において、対の公開鍵と秘密鍵は数学的関係を共有する。いくつかの実施例において、検証ノードの署名も同じである。
図12は、検証ノードを「パーティA」、「パーティB」、および「パーティZ」として示しているけれども、パーティは、DSP、プラットフォーム、ラベル、およびディストリビューターのいずれかを指し示すものであって良い。
【0082】
図13は、本開示の実施例に従う、トランザクションのデータフロー1300の例を示している。データフロー1300は、エンドユーザーによって作成されるトランザクションデータ(1302)から始まる。次に、データはエンドユーザーによって署名される(1304)。いくつかの実施例において、署名は、エンドユーザーを一意に識別する暗号署名である。次に、データおよびユーザー署名がストリーム1306に送信される。いくつかの実施例において、ストリームは、エンドユーザーおよび検証ノードからのアクセスポイントを備えた単一のストリームであって良い。いくつかの実施例において、ストリームは、各検証ノードに固有である。いくつかの実施例において、ストリームは、異なるノードからの異なるストリームの階層であって良い。データおよびユーザー署名がストリーム1306にヒットした後、データおよびユーザー署名は、複数の検証ノード(パートA…パーティZ)に送信される。次に、ノードはデータとエンドユーザーの署名を検証する(1310、1308)。検証後、ノードはデータ自体に署名する(1314、1316)。次に、データとノードの署名がストリームに送信される(1318、1320)。いくつかの実施例において、ノードは、オプションで、他のバリデーターによってトランザクションに添付された他の署名を収集することができる(1322、1324)。
【0083】
図14は、本開示の実施例に従う、トランザクションのデータフロー1400の他の例を示している。データフロー1400は、エンドユーザーによって作成されるトランザクションデータから始まる(1402)。次に、データはエンドユーザーによって署名される(1406)。いくつかの実施例において、署名は、エンドユーザーを一意に識別する暗号署名である。次に、データおよびユーザー署名が特定の検証ノードであるパーティAに送信される(1408)。いくつかの実施例において、パーティAはDSPである。次に、パーティAは、データとエンドユーザーの署名を読み取って検証する(1410)。データとエンドユーザーの署名を確認した後、パーティAは独自の暗号化署名を使用してデータに署名する(1412)。次に、データ、エンドユーザーの署名、およびパーティAの署名がストリームに送信される(1414)。いくつかの実施例において、ストリームは、エンドユーザーおよび検証ノードからのアクセスポイントを備えた単一のストリームであって良い。いくつかの実施例において、ストリームは、各検証ノードに固有である。いくつかの実施例において、ストリームは、異なるノードからの異なるストリームの階層であって良い。データ、ユーザー署名、およびパーティAの署名がストリーム1414にヒットした後、データ、ユーザー署名、およびパーティAの署名が複数の検証ノード(パートB…パーティZ)に送信される。次に、ノードはデータとエンドユーザーの署名を検証する(1416、1418)。検証後、ノードはデータ自体に署名する(1420、1422)。次に、データとノードの署名がストリームに送信される(1424、1426)。いくつかの実施例においては、ノードは、オプションで、他のバリデーターによってトランザクションに添付された他の署名を収集することができる(1428、1430)。
【0084】
図15は、本開示の実施例に従う、例示的な非CDNプラットフォームアーキテクチャ1500のフローチャートを示す。着信要求1501は、エンドユーザーによって作成され、エンドユーザーによって署名され、次いで、ストリーム1502に送信される。いくつかの実施例において、要求1501は、曲を再生するための要求である。次に、ストリーム1502は、バリデーターA(1504)、バリデーターB(1506)、およびバリデーターC(1508)に要求を渡し、これが、プラットフォームのプロトコルに従って検証される。各バリデーターがリクエストを確認して署名すると、ストリームに再送信される。いくつかの実施例において、2つの異なるバリデーターが要求に署名すると、それは有効であると見なされ、次いで、要求は、別個のデータベースに格納されるためにプラットフォームアーカイバ1510に送信される。
【0085】
図16は、本開示の実施例に従う、例示的な非CDNプラットフォームアーキテクチャ1600の他のフローチャートを示している。着信要求1601は、エンドユーザーによって作成され、エンドユーザーによって署名され、次いで、バリデーターA(1604)に送信される。いくつかの実施例において、要求1601は、曲を再生するための要求である。バリデーターAはリクエストを検証し、リクエストに署名した後、リクエストをストリーム1602に送信する。ストリーム1602は、バリデーターB(1606)とバリデーターC(1608)にリクエストを渡し、これはプラットフォームのプロトコルに従って検証される。各バリデーターがリクエストを確認して署名すると、ストリームに再送信される。いくつかの実施例において、2つの異なるバリデーターが要求に署名すると、それは有効であると見なされ、次いで、要求は、別個のデータベースに格納されるためにプラットフォームアーカイバ1610に送信される。
【0086】
先に説明した種々の実施例は、単一の再生カウントを正確に追跡することを指す。一部のロイヤルティ契約では、権利所有者への支払いは、特定のファイルが消費者に提供される回数に左右されるため、これは重要である。ただし、特定の状況では、単一の嗄声カウントを追跡するだけでは不十分な場合がある。たとえば、一部のロイヤルティ契約では、曲の支払いは、少なくとも閾値期間中に再生されているメディアファイルに依存する。単純な実施形態において、これは単純なバイナリ測定で解決することができる。すなわち、以下のとおりである。メディアファイルがストリーミングされた秒数は、指定されたしきい値を超えましたか?たとえば、いくつかの実施例において、コンテンツが少なくとも30秒間ストリーミングまたは聴取された後にのみ、再生がカウントされる。これは、北米で音楽ストリーミングの使用量を測定するために使用される主な方法である。
【0087】
いくつかの実施例において、メディアファイルのどのセグメントが閲覧および/または聴取されたかを知ることが重要である。そのような実施例において、広告はしばしばメディアコンテンツ内に埋め込まれる。ほとんどのオーバーザトップ(OTT)メディア、ケーブルTV、衛星TV、インターネットTV、またはビデオストリーミングプラットフォームの場合、エンドユーザーが広告またはコンテンツの再生を表示した回数に基づいて、権利所有者への支払いが発生する。各広告ビューには、広告ビューと見なされるために表示する必要のある広告の量に関する独自の閾値があって良い。したがって、具体的な実施例において、特定の再生期間の閾値が満たされることを保証するため、または再生がカウントされる前に特定のメディアセグメントが再生されることを保証するために、ストリーミングまたはメディアファイルの再生を継続的に追跡できることが重要であろう。
【0088】
種々の実施例によれば、離散的な再生をカウントするために、カウント機能は1回実行される必要がある。いくつかの実施例において、連続ストリーミングを追跡する場合、利用可能な複数のオプションがあり、それらのいくつかを組み合わせることができる。
【0089】
いくつかの実施例において、再生されたメディアファイルの一部は、ユーザーデバイスにローカルに保存される。このように、曲の再生が完了するまで、カウント機能は実行されない。この方法の利点の1つは、関数呼び出しをカウントする頻度が減ることである。ただし、この方法では、データのカウントをリアルタイムで実行することはできない。
【0090】
図17A~17Bは、本開示の実施形例に従う、ローカル永続性を使用してメディアファイル再生を連続的に追跡するための方法1700および1750のフローチャートを示す。
【0091】
1702で、アプリケーションを介してメディアファイルまたはメディアストリームを再生するためのユーザーが開始した要求が、ユーザーデバイスで受信される。いくつかの実施例において、これは、ユーザーがストリーミングアプリケーションを開き、ユーザーデバイス上でメディアファイル、例えば、メディアファイルAの再生を開始するときに発生する可能性がある。
【0092】
1704において、エントリは、メディアファイルまたはメディアストリームを再生するためのユーザーが開始した要求に対応するローカルRAMまたはローカルディスクに記録される。いくつかの実施例において、ユーザーがメディアファイルの再生を開始したときにエントリが作成される。いくつかの実施例において、エントリは、メディアファイルの名前、メディアファイルの権利所有者の名前、および/またはメディアファイルを識別するのを支援することができる任意の他のタイプのメタデータを含んで良い。さらに、いくつかの実施例において、再生を開始したユーザーは、自分の秘密鍵を使用して、再生開始の詳細に署名し、その署名をトランザクションの他の詳細とともにローカルに保存する。
【0093】
1706において、メディアファイルまたはメディアストリームの現在の再生位置は、所定の間隔でローカルラムまたはローカルディスクに記録される。たとえば、X秒ごとに、ユーザーのストリームの現在の位置がRAMまたはディスクに記録される。いくつかの実施例において、これらの間隔で、ユーザーの秘密鍵を使用して、ローカルに保存されているデータに署名する。いくつかの実施例において、ユーザーが次のメディアファイル、例えば、メディアファイルBへとスキップする場合、メディアファイルBが再生を開始したことを示す別のエントリがデバイス上に作成される。いくつかの実施例において、メディアファイルAが開始されてストリーミングされたときと同じ詳細が記録される。
【0094】
1708において、エントリおよび記録された再生位置は、ブロックチェーン上で記録するためにプラットフォームストリームに送信される。これは、現在ローカルにネットワークストレージまたはブロックチェーンに保存されているデータを永続化するために、データをプラットフォームストリームに通信する必要があるためである。いくつかの実施例において、データは、以下の条件の1つまたは複数が満たされた場合にのみプラットフォームストリームに送信される。すなわち、1)ネットワーク接続が利用可能になる、2)アプリケーションとのユーザー対話が受信される、3)所定の時間プラットフォームストリームへの前回のネットワーク送信以降に経過し、4)ローカルRAMまたはローカルディスクに保存されているデータの所定のしきい値に達した場合である。いくつかの実施例において、アプリケーションとのユーザー対話は、再生する新しいメディアファイルの選択、メディアファイルの停止、メディアファイルの一時停止、新しい位置へのシーク、早送りまたは巻き戻し、または再生を押すことを含む。
【0095】
いくつかの実施例において、データがプラットフォームストリームに送信されるとき、ユーザーの公開鍵がデータセットに追加され(1710)、それを使用して、他のエンティティによる要求の発信元を検証することができる。いくつかの実施例において、この公開鍵は、ユーザーの署名を生成するために使用される秘密鍵を検証することによって、発信元を検証する。いくつかの実施例において、これは、不正なプレイカウントを防ぐために重要である。
【0096】
いくつかの実施例において、データがローカルに永続化されるとき、各要求は秘密鍵で署名される。他の実施例において、データは、プラットフォームストリームに送信される直前にのみ署名されるため、署名の頻度が減少する。このような実施例において、データは、ユーザーの秘密鍵によって署名される前に統合することができる。署名は、プラットフォームストリームに送信される前に、リクエストに1回だけ追加される。
【0097】
図17Bは、方法1750を示しており、これは、データがプラットフォームストリームを介してプラットフォームサーバーに送信された後に何が起こるかの例を説明している。いくつかの実施例において、方法1750は、上記の方法1000と同様である。いくつかの実施例において、方法1750は、エンドユーザーデバイスおよびプラットフォームサーバーで実行される統合された方法として、方法17000と組み合わせて良い。
【0098】
1752において、プラットフォームストリームからのトランザクションデータが受信される。いくつかの実施例において、トランザクションデータは、エンドユーザーからのメディアファイルを再生するための要求に対応する。いくつかの実施例において、トランザクションデータは、方法1700でプラットフォームストリームに送信されるエントリおよび記録された再生位置と同様に、所定の間隔でのメディアファイルまたはメディアストリームの記録された再生位置を含む。
【0099】
1754において、トランザクションデータが検証される。いくつかの実施例において、トランザクションの検証は、エンドユーザーに関連付けられた公開鍵を使用すること(1756)を含み、トランザクションデータの出所を検証するためにトランザクションデータに追加される。いくつかの実施例において、トランザクションデータの検証は、方法1000のステップ1004でトランザクションデータを検証するために使用されるすべてのステップを含む。
【0100】
1758において、検証されたトランザクションデータは署名され、プラットフォームサーバーに関連付けられた暗号署名を生成する。1760において、検証されたトランザクションデータがブロックチェーンに記録される。いくつかの実施例において、トランザクションデータは、方法1000のステップ1006および1008のように、トランザクションデータが有効なブロックチェーントランザクションであると決定された場合にのみ記録される。1762において、トランザクションデータおよび暗号署名は、メソッド1000のステップ1010のように、1つまたは複数の検証ノードに送信される。
【0101】
図17A~17Bは、局所持続性を使用する連続追跡の方法を説明している。いくつかの実施例において、ファイルのどのセグメントが消費されたかを継続的に追跡する第2の方法は、サーバーからエンドユーザーにバッファリングされたものを測定することである。この方法は、メディアファイルがCDNから直接配信されるシステムで特に役立つ。このような場合、コンテンツをユーザーに送信しているサーバーは、ユーザーが実際にストリーミングしているセグメントを測定できるデバイスである。この方法の欠点は、一部のバッファリングされたコンテンツが実際にはエンドユーザーによって再生されない可能性があることである。
【0102】
図18A~18Bは、バッファ近似を使用する連続追跡の方法を説明している。方法1800はユーザーデバイスで起こり、方法1850はプラットフォームまたはコンテンツ配信サーバーで起こる。1802において、アプリケーションを介してメディアファイルまたはメディアストリームを再生するためのユーザーが開始した要求が、エンドユーザーデバイスで受信される。いくつかの実施例において、これは、ユーザーがユーザーデバイス上でストリーミングアプリケーションを開き、ファイル、例えば、メディアファイルAのストリーミングを開始したいときに発生する。1804において、メディアファイルまたはメディアストリームの参照データが生成される。1806において、ユーザーの秘密鍵は、ユーザー署名を使用して参照データに署名するために使用される。いくつかの実施例において、このユーザー署名は、メディアファイルの一意の識別子であって良い。1808でにおいて、参照データ、ユーザー署名、およびユーザーに関連付けられた公開鍵がプラットフォームストリームに送信され、ブロックチェーンに記録される。
【0103】
ここでサーバー側に切り替えると、方法1850は、バッファ近似を使用する連続追跡におけるプラットフォームまたはコンテンツ配信サーバーの役割を説明する。1852において、署名されたユーザーが開始した、メディアのストリーミング、またはアプリケーションを介したメディアファイルまたはメディアストリームの再生要求がユーザーデバイスから受信される。いくつかの実施例において、この署名されたユーザー開始要求は、ステップ1808で送信された、参照データ、ユーザー署名、およびユーザーに関連付けられた公開鍵を含む。1854において、メディアファイルまたはメディアストリームは、ユーザーデバイスへの送信を開始する。1856において、サーバーは、メディアファイルまたはメディアストリームのどのセグメントがブロックチェーン上のユーザーデバイスにバッファリングされたかを記録する。いくつかの実施例において、セグメントを記録することは、上述のように、トランザクションデータを検証し、トランザクションが有効なブロックチェーントランザクションを構成するかどうかを決定することを含む。
【0104】
ユーザーデバイスに戻ると、1810において、ユーザーは、プラットフォームストリームからメディアファイルまたはメディアストリームのセグメントを受信し、バッファリングする。いくつかの実施例において、ユーザーがより多くのセグメントを特に要求せず、また別のユーザーインターラクションイベントをサーバーに発行しない場合、ユーザーデバイスは、メディアファイルまたはメディアストリームがストリーミングを終了させるまで、メディアファイルまたはメディアストリームのセグメントを受信し、バッファリングし続ける。そのような実施例において、その間ずっと、サーバーがユーザーインターラクションイベントを受信しない場合、サーバーはセグメントをユーザーデバイスに送信し続け、ブロックチェーンにバッファリングされたコンテンツのセグメントを記録する。ここで使用される場合、「コンテンツ」および「メディアファイル」または「メディアストリーム」は交換可能に使用される。いくつかの実施例において、送信されたすべてのコンテンツが記録されている限り、送信および記録の順序は重要ではない。いくつかの実施例において、サーバーからコンテンツを送信することは、送信バッファも含む。そのような実施例において、実際に送信されたセグメントではなく、サーバー側でバッファリングされたセグメントを記録することもオプションである。
【0105】
いくつかの実施例において、ユーザーデバイスがセグメントのバッファリングを終了すると、ユーザーデバイスは、バッファリングのために送信されるコンテンツの追加のセグメントを自動的に要求する。いくつかの実施例において、ユーザーは、追加のセグメントを能動的/手動で要求しなければならない。いくつかの実施例において、ユーザーが手動または自動のいずれかでより多くのコンテンツをバッファリングすることを要求するときはいつでも、ユーザーのデバイスは、コンテンツのどの部分をストリーミングする必要があるかを指定しなければならない。したがって、1812において、プラットフォームストリームからのメディアファイルまたはメディアストリームの追加のセグメントの送信のための要求データが生成される。いくつかの実施例において、要求データは、メディアファイルまたはメディアストリームのどの部分が送信されるかを正確に指定する。いくつかの実施例において、ユーザーの秘密鍵は、追加のセグメントの要求に署名するために再び使用される。1814において、追加のセグメントの送信、および、ブロックチェーンへの記録のために、要求データ、ユーザー署名、およびユーザーの公開鍵がサーバーに伝達される。
【0106】
最後に、サーバー側に戻ると、1858において、サーバーは、追加のセグメントを再生するための追加の要求を受信する。いくつかの実施例において、追加の要求は、要求データ、ユーザー署名、およびステップ1814で送信されるユーザーの公開鍵を含む。ステップ1854および1856と同様に、サーバーは、要求された追加のセグメントを送信し(1860)、ブロックチェーン上のユーザーデバイスにバッファリングされているすべてのセグメントを記録する(1862)。
【0107】
図17A~18Bは、連続追跡のための2つの方法を説明している。いくつかの実施例において、エンドユーザーによって再生されるセグメントを継続的に追跡するさらに他の方法は、メディアファイルのどの部分がユーザーデバイス上で現在再生されているかを絶えずポーリングまたはサンプリングすることである。この方法では、ユーザーデバイスまたはプラットフォームサーバー、あるいはサードパーティのデバイスでさえ、ブロックチェーンに記録するためにストリームを定期的にサンプリングできる。ユーザーデバイスまたはサードパーティデバイスがストリームをサンプリングする場合、いずれかのデバイスが各サンプルをオンザフライで送信するか、各デバイスがサンプルをローカルに永続化して後でプラットフォームサーバーに送信することができる。プラットフォームサーバーがサンプリングを行う場合、サンプルが有効なブロックチェーントランザクションであれば、サンプルをブロックチェーンに直接記録できる。サンプリングの欠点の1つは、ストリームを継続的にポーリングまたはサンプリングする必要があることである。その結果、ポーリングの頻度が高くなると、測定精度が向上する。
【0108】
いくつかの実施例において、連続追跡のためのさらに他の方法は、すべてのユーザーインターラクションを記録することに依存している。そのような実施例において、メディア消費の状態が既知の状態である場合、メディアファイルのどの部分が表示されたかのおおよその尺度として、ユーザーのすべてのインターラクションを(リモートまたはローカルで)記録することができる。例えば、
図19は、記録されたユーザーのインターラクションを使用して連続的に追跡するための方法1900を説明している。
【0109】
1902において、アプリケーションを介して第1のメディアファイルまたはメディアストリームの第1の個別部分を再生するための署名されたユーザー開始要求が、ユーザーデバイスから受信される。例えば、いくつかの実施例において、ユーザーは、ストリーミングアプリケーションを開き、メディアファイル、例えば、メディアファイルAのストリーミングを開始したいので、ユーザーは、アプリケーションで再生を押す。いくつかの実施例において、ユーザーの秘密鍵は、「再生」の開始を署名するために使用される。
【0110】
1904において、第1のメディアファイルまたはメディアストリームの第1の個別の部分は、ユーザーデバイスへの送信を開始する。1906において、ユーザーデバイスへの最初のメディアファイルまたはメディアストリームの最初の個別部分の送信の開始イベントがブロックチェーンに記録される。
【0111】
1908において、署名されたユーザーインターラクションイベントがユーザーデバイスから受信された場合、署名されたユーザーインターラクションイベント、および署名されたユーザーインターラクションイベントの時点での第1のメディアファイルまたはメディアストリームの第1の離散的部分の現在の再生位置が、ブロックチェーンに記録される。たとえば、ファイルのストリーミングを数秒行った後、ユーザーはメディアファイルAの途中までシークする。シークイベントの直前のユーザーの位置がシークイベントとともに記録される。いくつかの実施例において、シークイベントが記録されるときに、ユーザーの秘密鍵がインターラクションに署名するために使用される。
【0112】
いくつかの実施例において、ファイル終了イベントは、ユーザーインターラクションイベントを受信する前に、第1のメディアファイルまたはメディアストリームの第1の個別部分がストリーミングを終了した場合、ブロックチェーンに記録される(1910)。つまり、ユーザーはストリーミングアプリケーションをこれ以上操作せずに、ストリームを終了させることができる。いくつかの実施例において、ユーザーが自動再生をオンにしている場合、メディアファイルAが終了した後にメディアファイルBがストリーミングを開始する。このような実施例において、「再生」イベントは、ユーザーがメディアファイルAで行ったように、ユーザーが再生を打ったかのように開始される。メディアファイルBに関連付けられた再生イベントとメディアファイルAに関連付けられた再生イベントとの主な違い(ファイルのコンテンツとメタデータが異なることを除いて)は、前のファイルのユーザーのストリーミング位置はメディアファイルBの再生イベントに含まれまるけれども、メディアファイルAには含まれないという点である。この場合、メディアファイルAに対して記録されたストリーム位置は、メディアファイルAの期間と同じになる。
【0113】
1912において、第2のメディアファイルまたはメディアストリームの第2の離散部分がユーザーデバイスに送信される場合、第2のメディアファイルまたはメディアストリームの第2の離散部分の開始イベントをブロックチェーンに記録する。つまり、ユーザーがストリーミングアプリケーションを介したコンテンツのストリーミングを停止した場合、「停止」イベントが作成される。次に、停止イベントが開始される直前のメディアファイルBでのユーザーの位置が記録され、停止イベントに追加される。いくつかの実施例において、ユーザーの秘密鍵は、インターラクションに署名するために使用される。
【0114】
いくつかの実施例において、各イベントの署名およびユーザーの公開鍵を含む、これらのインターラクションイベントに関連するデータは、デバイス上にローカルに格納され、断続的にアップロードされることができ、または、またはそれらが発生したときにプラットフォームストリームに送信されて良い。
【0115】
種々のコンピューティングデバイスが、ここで説明された方法を実装することができる。たとえば、モバイルデバイス、コンピュータシステムなどは、クライアント、音楽レーベル、またはDSPのいずれかによってネットワーク環境の側面にアクセスするために使用できる。
図20を参照すると、本開示の特定の例を実施するために使用することができるコンピュータシステムの特定の例が示される。例えば、コンピュータシステム2000を使用して、上記の様々な実施例による人工的にレンダリングされた画像を生成することができる。さらに、ここに示されるコンピュータシステム2000は、モバイルデバイス上のコンピューティングシステムを表すことができる。特定の例示的な実施例によれば、本開示の特定の実施例を実施するのに適したシステム2000は、プロセッサ2001、メモリ2003、インターフェース2011、およびバス2015(例えば、PCIバス)を含む。インターフェース2011は、別個の入力インターフェース2013および出力インターフェース2015を含んで良く、または、両方の動作をサポートする統合インターフェースであって良い。適切なソフトウェアまたはファームウェアの制御下で動作する場合、プロセッサ2001は、最適化などのタスクを担当する。プロセッサ2001の代わりに、またはプロセッサ2001に加えて、様々な特別に構成されたデバイスを使用することもできる。完全な実装は、カスタムハードウェアで行うこともできる。インターフェース2011は、通常、ネットワークを介してデータパケットまたはデータセグメントを送受信するように構成される。デバイスがサポートするインターフェースの特定の例には、イーサネットインターフェース、フレームリレーインターフェース、ケーブルインターフェース、DSLインターフェース、トークンリングインターフェースなどが含まれる。
【0116】
さらに、高速イーサネットインターフェース、ギガビットイーサネットインターフェース、ATMインターフェース、HSSIインターフェース、POSインターフェース、FDDIインターフェースなどのような様々な非常に高速なインターフェースが提供されて良い。一般に、これらのインターフェースには、適切なメディアとの通信に適したポートが含まれている場合がある。いくつかの例では、独立したプロセッサや、他のいくつかの例では、揮発性RAMも含まれて良い。独立したプロセッサは、パケット交換、メディア制御、管理などの通信集約型タスクを制御して良い。
【0117】
特定の例示的な実施例によれば、システム2000は、メモリ2003を使用して、データおよびプログラム命令を格納し、ローカルサイドキャッシュを維持する。プログラム命令は、例えば、オペレーティングシステムおよび/または1つまたは複数のアプリケーションの動作を制御することができる。1つまたは複数のメモリは、受信したメタデータとバッチ要求されたメタデータを格納するように構成されて良い。
【0118】
そのような情報およびプログラム命令は、本明細書に記載のシステム/方法を実装するために使用できるので、本開示は、本明細書に記載の様々な操作を実行するためのプログラム命令、状態情報などを含む有形の機械可読媒体に関する。機械可読メディアの例は、ハードディスク、フロッピーディスク、磁気テープ、CD-ROMディスクやDVDなどの光学メディアが含まれる。光ディスクなどの磁気光学媒体、および読み取り専用メモリデバイス(ROM)やプログラム可能な読み取り専用メモリデバイス(PROM)などのプログラム命令を格納および実行するように特別に構成されたハードウェアデバイスを含む。プログラム命令の例には、コンパイラーによって生成されるようなマシンコードと、コンピュータがインタープリターを使用して実行できる高レベルのコードを含むファイルの両方が含まれる。
【0119】
図21は、3つのデータセグメント2102、2104、および2106で表されるリンクリストデータ構造2100を示す。従来のブロックチェーンは、データの各セグメントが以前に作成されたデータのセグメントを参照するように、リンクリストと同様に構造化される。例えば、データセグメント2106は、任意のデータのセットを含む。データセグメント2106がデータセット全体の一部になるために、それは、その前にあるデータセグメントへの参照を含む。この場合、データセグメント2104はデータセグメント2106の前に来るので、データセグメント2106はデータセグメント2104への参照を含む。いくつかの実施例において、リンクされたリストへの最初のエントリ、
図21のデータセグメント2102は、他のデータセグメントへの参照を持たない。
【0120】
図22は、ブロックチェーン2200の概念的な例を示している。各ブロック(2202、2204、および2206)は、その中にデータのセットを含む。このデータは任意に設定できるけれども、伝統的にはトランザクションのリストである。
図11のリンクリストと同様の構成において、各ブロックは、その前のブロックへの参照を有する。データ構造としてのブロックチェーンの際立った特徴の1つは、各ブロックに保持されているデータが改ざんされていないことを示す暗号化された証拠が含まれていることである。
【0121】
プラットフォームのネットワーク全体の履歴データが改ざんされていないことを保証するために、データのセグメントが定期的に集約され、「マークルルート」と呼ばれる一見ランダムな文字列にマークル化される。
図23は、このマークル化プロセス2300の例を示している。
図23に示されるように、プラットフォームブロックチェーン2308上のデータ2304のセグメントは、集約され、マークルルート2306にマークル化される。次に、データセットのこれらのマークルルートは、プルーフオブワークまたはプルーフオブステークなどの任意のコンセンサスアルゴリズムによって裏付けられる可能性があるサードパーティブロックチェーン2302に書き込まれる。これは、セキュリティの補足ポイントまたは監査ポイントとして機能する。プラットフォームのブロックチェーン2308の外側にある監査ポイントを作成する背後にある動機は、サードパーティのネットワーク2302も攻撃する必要があるため、プラットフォームのブロックチェーンで実行される攻撃は実行するのに費用がかかるためである。例えば、
図23は、プラットフォームのデータセット2304の一部のマークル化の例を示す。プラットフォームのブロックチェーンの特定のセグメントからのものであると主張されるデータのセットが与えられると、データのセットをマークル化し、サードパーティのブロックチェーン2302に存在するのと同じマークルルートが生成されることを確かめて、真実性を結論付けることができる。
【0122】
構成要素およびプロセスの多くは、便宜上、単数で説明されているけれども、複数の構成要素および反復プロセスも、また、本開示の技術を実施するために使用できることが当業者によって理解されるであろう。
【0123】
本開示は、その特定の実施例を参照して特に示され、説明されてきたけれども、開示された実施例の形態および詳細の変更は、この開示の精神または範囲から逸脱することなく行われ得ることが当業者によって理解されるであろう。したがって、本開示は、その真の精神および範囲内にあるすべての変形および均等物を含むと解釈されることが意図されている。
【国際調査報告】