JP2020510906A - スマートコントラクトのホワイトリスト - Google Patents

スマートコントラクトのホワイトリスト Download PDF

Info

Publication number
JP2020510906A
JP2020510906A JP2019542591A JP2019542591A JP2020510906A JP 2020510906 A JP2020510906 A JP 2020510906A JP 2019542591 A JP2019542591 A JP 2019542591A JP 2019542591 A JP2019542591 A JP 2019542591A JP 2020510906 A JP2020510906 A JP 2020510906A
Authority
JP
Japan
Prior art keywords
smart contract
account
request
whitelist
execute
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019542591A
Other languages
English (en)
Other versions
JP6858264B2 (ja
Inventor
ニン・シャ
グイル・シェ
フシ・デン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of JP2020510906A publication Critical patent/JP2020510906A/ja
Application granted granted Critical
Publication of JP6858264B2 publication Critical patent/JP6858264B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Power Engineering (AREA)
  • Computing Systems (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本明細書の実施形態は、ブロックチェーンネットワークによって維持されるブロックチェーンに記憶されたスマートコントラクトを実行するための要求を、ブロックチェーンネットワークのノードによって識別するステップであって、要求が、スマートコントラクトの実行を要求している要求アカウントを識別する、ステップと、スマートコントラクトに関連付けられたブロックチェーンからホワイトリストを、ノードによって取り出すステップであって、ホワイトリストがスマートコントラクトを実行する権限を与えられた1つまたは複数のアカウントを識別する、ステップと、要求アカウントがホワイトリストに含まれることに基づいて、要求アカウントがスマートコントラクトを実行する権限を与えられていると、ノードによって決定するステップと、要求アカウントがスマートコントラクトを実行する権限を与えられていると決定することに応答して、スマートコントラクトをノードによって実行するステップとを含む。

Description

本発明は、スマートコントラクトのホワイトリストに関する。
コンセンサスネットワークとも呼ばれる分散台帳システム(DLS)、および/またはブロックチェーンネットワークは、参加エンティティが安全に、そして不変にデータを記憶することを可能にする。DLSは、特定のユースケースを参照することなく、一般にブロックチェーンネットワークと呼ばれる。ブロックチェーンネットワークのタイプの例には、パブリック・ブロックチェーン・ネットワーク、プライベート・ブロックチェーン・ネットワーク、およびコンソーシアム・ブロックチェーン・ネットワークが含まれる。コンソーシアム・ブロックチェーン・ネットワークは、コンセンサスプロセスを制御するエンティティの選択されたグループに対して提供され、アクセス制御層を含む。
スマートコントラクトは、ブロックチェーンネットワークによって記憶され実行される実行可能なソフトウェア命令のセットである。一般に、スマートコントラクトは暗号化されずに記憶されており、従ってブロックチェーンネットワークのすべての参加者に閲覧可能である。ブロックチェーンネットワークの参加者は、自身のスマートコントラクトを書き出し発行することができ、また、一般に、ブロックチェーンネットワークに既に展開されているスマートコントラクトを呼び出すことができる。スマートコントラクトにおいて使用できる命令のセットは、一般にチューリング完全なものであるため、スマートコントラクトは異なるビジネスシナリオをサポートする複雑なロジックに対応することができる。
スマートコントラクトの複雑性は、セキュリティリスクを引き起こすことがある。スマートコントラクトのセキュリティリスクは、影響を与える可能性のあるアカウントの集合から生じることが多い。攻撃者は、展開されたスマートコントラクトの脆弱性を悪用して、スマートコントラクトによって制御される資金を攻撃者のアカウントにリダイレクトするためのトランザクションを構築することができる。スマートコントラクトに関連付けられたこれらのセキュリティリスクに対処するための解決策は、有利であろう。
本明細書の実施形態は、スマートコントラクトのためのアカウントホワイトリストを実施するためのコンピュータ実装方法を含む。より詳細には、本明細書の実施形態は、スマートコントラクトの作成者が、どのアカウントがスマートコントラクトを呼び出すことができるかを指定するホワイトリストを定義することを可能にする技術に向けられている。
いくつかの実施形態では、アクションは、ブロックチェーンネットワークによって維持されるブロックチェーンに記憶されたスマートコントラクトを実行するための要求を、ブロックチェーンネットワークのノードによって識別するステップであって、要求が、スマートコントラクトの実行を要求している要求アカウントを識別する、ステップと、スマートコントラクトに関連付けられたブロックチェーンからホワイトリストを、ノードによって取り出すステップであって、ホワイトリストがスマートコントラクトを実行する権限を与えられた1つまたは複数のアカウントを識別する、ステップと、要求アカウントがホワイトリストに含まれることに基づいて、要求アカウントがスマートコントラクトを実行する権限を与えられていると、ノードによって決定するステップと、要求アカウントがスマートコントラクトを実行する権限を与えられていると決定することに応答して、スマートコントラクトをノードによって実行するステップとを含む。他の実施形態は、コンピュータ記憶デバイス上に符号化された、方法のアクションを実行するように構成された、対応するシステム、装置、およびコンピュータプログラムを含む。
これらの実施形態および他の実施形態はそれぞれ、オプションとして、以下の特徴の1つまたは複数を含んでもよい。
ある場合には、要求が第1の要求であり、要求アカウントが第1のアカウントであり、方法は、第1の要求と異なるスマートコントラクトを実行するための第2の要求を、ノードによって識別するステップであって、第2の要求が第1のアカウントと異なる第2のアカウントを識別する、ステップと、第2のアカウントがホワイトリストに含まれていないことに基づいて、第2のアカウントがスマートコントラクトを実行する権限を与えられていないと、ノードによって決定するステップと、要求アカウントがスマートコントラクトを実行する権限を与えられていないと決定することに応答して、スマートコントラクトを実行するための第2の要求を、ノードによって拒否するステップとを含む。
いくつかの実施形態では、ホワイトリストは、スマートコントラクトに関連付けられた実行可能な命令のセット内に含まれる。
場合によっては、ホワイトリストは、スマートコントラクトに関連付けられた実行可能な命令のセットとは別個のものである。
いくつかの実施形態では、ホワイトリストは、スマートコントラクトにアクセスする権限を与えられた1つまたは複数のアカウントの識別情報を含む。
場合によっては、ホワイトリストは、スマートコントラクトにアクセスする権限を与えられた1つまたは複数のアカウントを記憶するスマートコントラクトの外部の場所への参照を含む。
場合によっては、ホワイトリストは、1つまたは複数のアカウントに関連付けられたエンティティを識別し、要求アカウントがスマートコントラクトを実行する権限を与えられていると決定することが、要求アカウントがエンティティに関連付けられているかどうかを判定することを含む。
本明細書はまた、1つまたは複数のプロセッサに結合されるとともに、命令を記憶する1つまたは複数の非一時的コンピュータ可読記憶媒体を提供し、命令は、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、本明細書に提供される方法の実施形態に従う動作を実行させる。
本明細書は、本明細書に提供される方法を実施するためのシステムをさらに提供する。システムは、1つまたは複数のプロセッサと、命令を記憶した、1つまたは複数のプロセッサに結合されたコンピュータ可読記憶媒体とを含み、命令は、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに本明細書に提供される方法の実施形態に従う動作を実行させる。
本明細書に従う方法が、本明細書に記載の態様および特徴の任意の組み合わせを含み得ることが理解される。すなわち、本明細書に従う方法は、本明細書に具体的に記載される態様および特徴の組み合わせに限定されるものではないが、提供される態様および特徴の任意の組み合わせを含む。
本明細書の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載される。本明細書の他の特徴および利点は、明細書および図面ならびに特許請求の範囲から明らかになるであろう。
本明細書の実施形態を実行するために使用できる環境の一例を示す図である。 本明細書の実施形態による、概念的アーキテクチャの一例を示す図である。 本明細書の実施形態による、スマートコントラクトのホワイトリストを有効にするための環境の一例を示す図である。 本明細書の実施形態に従って実行され得る信号の流れの一例を示す図である。 本明細書の実施形態に従って実行され得るプロセスの一例を示す図である。 本明細書の実施形態による、装置のモジュールの一例を示す図である。
様々な図面における同様の参照記号は、同様の要素を示す。
本明細書の実施形態は、スマートコントラクトのためのアカウントホワイトリストを実施するためのコンピュータ実装方法を含む。より詳細には、本明細書の実施形態は、スマートコントラクトの作成者が、どのアカウントがスマートコントラクトを呼び出すことができるかを指定するホワイトリストを定義することを可能にする技術に向けられている。
本明細書の実施形態のためのさらなるコンテキストを提供するため、上に紹介したように、コンセンサスネットワーク(例えば、ピアツーピアノードで構成される)とも呼ばれ得る分散台帳システム(DLS)およびブロックチェーンネットワークは、参加エンティティが安全にかつ不変にトランザクションを実行し、データを記憶することを可能にする。ブロックチェーンという用語は、本明細書では、特定のユースケースを参照することなく、一般にDLSを指すために使用される。
ブロックチェーンは、トランザクションが不変であり、後に検証できるようにトランザクションを記憶するデータ構造である。ブロックチェーンは、1つまたは複数のブロックを含む。チェーン内の各ブロックは、前のブロックの暗号ハッシュを含めることによって、チェーン内の直前のブロックにリンクされる。各ブロックはまた、タイムスタンプ、自身の暗号ハッシュ、および1つまたは複数のトランザクションを含む。ブロックチェーンネットワークのノードによってすでに検証されたトランザクションは、ハッシュ化され、マークル(Merkle)ツリーにエンコードされる。マークルツリーは、ツリーのリーフノードでのデータがハッシュ化され、ツリーの各ブランチのすべてのハッシュがブランチのルートで連結されるデータ構造である。このプロセスは、ツリー全体のルートに至るまでツリーを継続し、ツリー内のすべてのデータを表すハッシュを記憶する。ツリーに記憶されているトランザクションであるとされるハッシュは、ツリーの構造と一致しているかどうかを判定することによって、すぐに検証することができる。
ブロックチェーンは、トランザクションを記憶するためのデータ構造であるが、ブロックチェーンネットワークは、1つまたは複数のブロックチェーンを管理、更新、および維持するコンピューティングノードのネットワークである。上に紹介したように、ブロックチェーンネットワークは、パブリック・ブロックチェーン・ネットワーク、プライベート・ブロックチェーン・ネットワーク、またはコンソーシアム・ブロックチェーン・ネットワークとして提供され得る。
一般に、コンソーシアム・ブロックチェーン・ネットワークは、参加エンティティ間でプライベートである。コンソーシアム・ブロックチェーン・ネットワークでは、コンセンサスプロセスは、権限を与えられたノードのセットによって制御され、1つまたは複数のノードは、それぞれのエンティティ(例えば、金融機関、保険会社)によって運用される。例えば、10のエンティティ(例えば、金融機関、保険会社)からなるコンソーシアムは、コンソーシアム・ブロックチェーン・ネットワークを運用することができ、その各々は、コンソーシアム・ブロックチェーン・ネットワークにおいて少なくとも1つのノードを運用する。従って、コンソーシアム・ブロックチェーンネットワークは、参加エンティティに関するプライベートネットワークと見なすことができる。いくつかの例では、各エンティティ(ノード)は、ブロックを有効にしてブロックチェーンに追加するために各ブロックに署名しなければならない。いくつかの例では、少なくともエンティティ(ノード)のサブセット(例えば、少なくとも7つのエンティティ)は、ブロックを有効にしてブロックチェーンに追加するために、すべてのブロックに署名しなければならない。
本明細書の実施形態は、任意の適切なタイプのブロックチェーンネットワークにおいて実現可能であると考えられる。
本明細書の実施形態は、上述の文脈を考慮して、本明細書においてさらに詳細に説明される。より詳細には、上に紹介したように、本明細書の実施形態は、スマートコントラクトの作成者が、どのアカウントがスマートコントラクトを呼び出すことができるかを指定するホワイトリストを定義することを可能にする技術に向けられている。
一般に、スマートコントラクトは、ブロックチェーンに記憶され、ブロックチェーンネットワークのノードによって実行される1つまたは複数のコンピュータ命令のセットである。スマートコントラクト用のコードは、一般にブロックチェーンネットワークのノードによって実行可能な形式に変換され(例えばバイトコード)、バイトコード自体またはスマートコントラクトバイトコードを取り出すように構成されたバイトコードのいずれかがブロックチェーンに記憶される。次いで、スマートコントラクトコードにおいて定義された関数は、ブロックチェーンネットワークの参加者によって呼び出され、呼び出された関数の命令をノードに実行させる。
本明細書は、スマートコントラクトの作成者が、スマートコントラクトを呼び出すことが許可されているブロックチェーンネットワークのアカウントのリスト(ホワイトリスト)を指定できる技術を説明する。ブロックチェーンネットワークの参加者がブロックチェーンネットワークによって管理されたブロックチェーン内に展開されたスマートコントラクトを呼び出すと、参加者は呼び出しの一部としてアカウントを提供する。ブロックチェーンネットワークは、参加者のアカウントについてスマートコントラクトに関連付けられたホワイトリストをチェックする。参加者のアカウントがホワイトリストにある場合、ブロックチェーンネットワークはスマートコントラクトの呼び出しを実行する。参加者のアカウントがホワイトリストにない場合、ブロックチェーンネットワークはスマートコントラクトの呼び出しを実行しない。ブロックチェーンネットワークはまた、参加者のスマートコントラクトへのアクセスの失敗した試みの記録を記憶してよい。
図1は、本明細書の実施形態を実行するために使用され得る環境100の一例を示す。いくつかの例では、環境100は、ブロックチェーンネットワーク102にエンティティが参加することを可能にする。環境100は、コンピューティングデバイス106、108、およびネットワーク110を含む。いくつかの例では、ネットワーク110は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、またはそれらの組み合わせを含み、ウェブサイト、ユーザデバイス(例えば、コンピューティングデバイス)、およびバックエンドシステムを接続する。いくつかの例では、ネットワーク110は、有線および/または無線通信リンクを介してアクセスされ得る。いくつかの例では、ネットワーク110は、ブロックチェーンネットワーク102との通信を可能にし、ブロックチェーンネットワーク102内での通信を可能にする。一般に、ネットワーク110は、1つまたは複数の通信ネットワークを表す。場合によっては、コンピューティングデバイス106、108は、クラウドコンピューティングシステム(図示せず)のノードであってもよく、あるいは、各コンピューティングデバイス106、108は、ネットワークによって相互接続され、分散処理システムとして機能する複数のコンピュータを含む別個のクラウドコンピューティングシステムであってもよい。
図示された例では、コンピューティングシステム106、108は、それぞれブロックチェーンネットワーク102のノードとして参加することを可能にする任意の適切なコンピューティングシステムを含むことができる。コンピューティングデバイスの例には、限定ではなく、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピューティングデバイス、およびスマートフォンが含まれる。いくつかの例では、コンピューティングシステム106、108は、ブロックチェーンネットワーク102と相互作用するための1つまたは複数のコンピュータ実装サービスをホストする。例えば、コンピューティングシステム106は、第1のエンティティ(例えば、参加者A)が、1つまたは複数の他のエンティティ(例えば、他の参加者)とのトランザクションを管理するために使用するトランザクション管理システムなどの第1のエンティティのコンピュータ実装サービスをホストすることができる。コンピューティングシステム108は、第2のエンティティ(例えば、参加者B)が、1つまたは複数の他のエンティティ(例えば、他の参加者)とのトランザクションを管理するために使用するトランザクション管理システムなどの第2のエンティティのコンピュータ実装サービスをホストすることができる。図1の例では、ブロックチェーンネットワーク102は、ノードのピアツーピアネットワークとして表され、コンピューティングシステム106、108は、ブロックチェーンネットワーク102に参加する第1のエンティティおよび第2のエンティティのノードをそれぞれ提供する。
図2は、本明細書の実施形態による、概念的アーキテクチャ200の一例を示す。概念的アーキテクチャ200の例は、参加者A、参加者B、および参加者Cにそれぞれ対応する参加者システム202、204、206を含む。各参加者(例えば、ユーザ、企業)は、複数のノード214を含むピアツーピアネットワークとして提供されるブロックチェーンネットワーク212に参加し、複数のノードの少なくともいくつかはブロックチェーン216に情報を不変に記録する。単一のブロックチェーン216がブロックチェーンネットワーク212内に概略的に示されているが、本明細書でさらに詳細に説明するように、ブロックチェーン216の複数のコピーが提供され、ブロックチェーンネットワーク212にわたって維持される。
図示された例では、各参加者システム202、204、206は、各参加者A、参加者B、および参加者Cによって、またはそれらに代わって提供され、ブロックチェーンネットワーク内の各ノード214として機能する。本明細書で使用されるように、ノードは一般に、ブロックチェーンネットワーク212に接続され、各参加者がブロックチェーンネットワークに参加することを可能にする個々のシステム(例えば、コンピュータ、サーバ)を指す。図2の例では、参加者は各ノード214に対応する。しかしながら、参加者はブロックチェーンネットワーク212内の複数のノード214を運用することができ、および/または複数の参加者はノード214を共有することができると考えられる。いくつかの例では、参加者システム202、204、206は、プロトコル(例えば、ハイパーテキスト転送プロトコルセキュア(HTTPS))、および/またはリモートプロシージャコール(RPC)を使用して、ブロックチェーンネットワーク212と通信するか、またはブロックチェーンネットワーク212を介して通信する。
ノード214は、ブロックチェーンネットワーク212内で様々な程度に参加をすることができる。例えば、いくつかのノード214は、コンセンサスプロセスに参加することができ(例えば、ブロックチェーン216にブロックを追加するマイナーノード(miner node)として)、一方、他のノード214はコンセンサスプロセスに参加しない。別の例として、いくつかのノード214はブロックチェーン216の完全なコピーを記憶し、一方、他のノード214はブロックチェーン216の部分のコピーのみを記憶する。例えば、データアクセス権は、各参加者が各システム内に記憶するブロックチェーンデータを制限することができる。図2の例では、参加者システム202、204、206は、ブロックチェーン216の完全なコピー216'、216'、216'''をそれぞれ記憶する。
ブロックチェーン(例えば、図2のブロックチェーン216)は、各ブロックがデータを記憶する、ブロックのチェーンで構成される。データの例には、2人以上の参加者間のトランザクションを表すトランザクションデータが含まれる。本明細書では、トランザクションを非限定的な例として使用するが、任意の適切なデータ(例えば、文書、画像、ビデオ、オーディオ)をブロックチェーンに記憶することができると考えられる。トランザクションの例には、限定ではなく、価値のあるもの(例えば、資産、製品、サービス)の交換が含まれ得る。トランザクションデータは、ブロックチェーン内に不変に記憶される。つまり、トランザクションデータは変更できない。
ブロックに記憶する前に、トランザクションデータはハッシュ化される。ハッシュ化は、トランザクションデータ(ストリングデータとして提供される)を固定長ハッシュ値(ストリングデータとしても提供される)に変換するプロセスである。ハッシュ値を解除してトランザクションデータを取得することはできない。ハッシュ化は、トランザクションデータにわずかな変化があっても、完全に異なるハッシュ値をもたらすことを保証する。さらに、上述のように、ハッシュ値は固定長である。つまり、トランザクションデータのサイズにかかわらず、ハッシュ値の長さは固定である。ハッシュ化は、ハッシュ関数を通してトランザクションデータを処理してハッシュ値を生成することを含む。ハッシュ関数の例には、限定ではなく、256ビットのハッシュ値を出力するセキュアハッシュアルゴリズム(SHA)-256が含まれる。
複数のトランザクションのトランザクションデータはハッシュ化され、ブロックに記憶される。例えば、2つのトランザクションのハッシュ値が提供され、それ自身が別のハッシュを提供するためにハッシュ化される。このプロセスは、ブロックに記憶されるべきすべてのトランザクションに対して単一のハッシュ値が提供されるまで、繰り返される。このハッシュ値はマークルルートハッシュと呼ばれ、ブロックのヘッダに記憶される。トランザクションのいずれかが変更されると、ハッシュ値が変更され、最終的にマークルルートハッシュが変更される。
ブロックは、コンセンサスプロトコルを介してブロックチェーンに追加される。ブロックチェーンネットワーク内の複数のノードがコンセンサスプロトコルに参加し、ブロックチェーンにブロックを追加するために競合する。このようなノードはマイナー(またはマインダーノード(minder node))と呼ばれる。上に紹介したPOWは、非限定的な例として使用される。
マイナーノードは、トランザクションをブロックチェーンに追加するためにコンセンサスプロセスを実行する。コンセンサスプロセスには複数のマイナーノードが参加するが、ブロックチェーンにブロックを書き込むことができるのは1つのマイナーノードだけである。つまり、コンセンサスプロセスにおいてマイナーノードが競合し、ブロックチェーンにブロックを追加する。より詳細には、マイナーノードは、トランザクションプールから保留中のトランザクションを定期的に収集する(例えば、もしあれば、ブロックに含めることができるトランザクションの数についてあらかじめ定義された制限まで)。トランザクションプールは、ブロックチェーンネットワークの参加者からのトランザクションメッセージを含む。マイナーノードはブロックを構築し、トランザクションをブロックに追加する。ブロックにトランザクションを追加する前に、マイナーノードは、トランザクションのいずれかがブロックチェーンのブロックにすでに含まれているかどうかをチェックする。トランザクションがすでに別のブロックに含まれている場合、トランザクションは廃棄される。
マイナーノードはブロックヘッダを生成し、ブロック内のすべてのトランザクションをハッシュ化し、そのブロック内のすべてのトランザクションに単一のハッシュ値(マークルルートハッシュ)が提供されるまで、ペア内のハッシュ値を組み合わせて、さらなるハッシュ値を生成する。このハッシュはブロックヘッダに追加される。マイナーはまた、ブロックチェーン内の最新のブロック(つまり、ブロックチェーンに追加された最後のブロック)のハッシュ値を決定する。マイナーノードはまた、ノンス値を追加し、ブロックヘッダにタイムスタンプを追加する。マイニングプロセスでは、マイナーノードは必要なパラメータを満たすハッシュ値を見つけようとする。マイナーノードは、必要なパラメータを満たすハッシュ値を見つけるまで、ナンス値を変更し続ける。
ブロックチェーンネットワークのすべてのマイナーは、必要なパラメータを満たすハッシュ値を見つけようとし、このようにして互いに競合する。最終的には、マイナーノードの1つが必要なパラメータを満たすハッシュ値を見つけ、これをブロックチェーンネットワークの他のすべてのマイナーノードに知らせる。他のマイナーノードはハッシュ値を検証し、正しいと判定された場合、ブロック内の各トランザクションを検証し、ブロックを受け入れ、ブロックチェーンのコピーにブロックを追加する。このようにして、ブロックチェーンのグローバル状態は、ブロックチェーンネットワーク内の全てのマイナーノードにわたって一貫している。上述のプロセスはPOWのコンセンサスプロトコルである。
非限定的な例が、図2を参照して提供される。この例では、参加者Aは参加者Bに送金を望む。参加者Aはトランザクションメッセージ(例えば、From、To、Valueフィールドを含む)を生成し、トランザクションメッセージをブロックチェーンネットワークに送信し、ブロックチェーンネットワークはトランザクションメッセージをトランザクションプールに追加する。ブロックチェーンネットワーク内の各マイナーノードはブロックを作成し、トランザクションプールからすべてのトランザクションを受け取り(例えば、もしあれば、ブロックに追加可能なトランザクションの数についてあらかじめ定義された制限まで)、トランザクションをブロックに追加する。このようにして、参加者Aによって発行されたトランザクションは、マイナーノードのブロックに追加される。
いくつかのブロックチェーンネットワークでは、トランザクションのプライバシーを維持するために暗号が実装される。例えば、ブロックチェーンネットワーク内の他のノードがトランザクションの詳細を判別できないように、2つのノードがトランザクションをプライベートに保ちたい場合、ノードはトランザクションデータを暗号化することができる。暗号化方法の例は、限定ではなく、対称暗号化および非対称暗号化を含む。対称暗号化とは、暗号化(平文から暗号文を生成する)と復号(暗号文から平文を生成する)の両方に単一の鍵を使用する暗号化プロセスを指す。対称暗号化では、同じ鍵が複数のノードに利用可能であるため、各ノードは、暗号/復号トランザクションデータを利用できる。
非対称暗号は、各々が秘密鍵と公開鍵を含む鍵ペアを使用し、秘密鍵はそれぞれのノードにのみ知られ、公開鍵はブロックチェーンネットワーク内の任意のノードまたはすべての他のノードに知られている。ノードは、別のノードの公開鍵を使用してデータを暗号化することができ、暗号化されたデータは、他のノードの秘密鍵を使用して復号化することができる。例えば、再度図2を参照すると、参加者Aは、参加者Bの公開鍵を用いてデータを暗号化し、暗号化データを参加者Bに送信することができる。参加者Bは、その秘密鍵を用いて暗号化データ(暗号文)を復号化し、元のデータ(平文)を抽出することができる。ノードの公開鍵で暗号化されたメッセージは、ノードの秘密鍵を使用してのみ復号化できる。
非対称暗号化は、トランザクションの参加者がトランザクションの他の参加者とそのトランザクションの有効性とを確認することを可能にするデジタル署名を提供するために使用される。例えば、ノードはメッセージにデジタル署名することができ、別のノードは、参加者Aのデジタル署名に基づいてノードによってメッセージが送信されたことを確認することができる。また、デジタル署名は、メッセージが転送中に改ざんされないことを保証するために使用することができる。例えば、再度図2を参照すると、参加者Aは参加者Bにメッセージを送信する。参加者Aはメッセージのハッシュを生成し、次いで、その秘密鍵を使用してハッシュを暗号化し、暗号化されたハッシュとしてデジタル署名を提供する。参加者Aは、デジタル署名をメッセージに付加し、デジタル署名付きメッセージを参加者Bに送信する。参加者Bは、参加者Aの公開鍵を使用してデジタル署名を復号し、ハッシュを抽出する。参加者Bはメッセージをハッシュ化し、ハッシュを比較する。ハッシュが同じ場合、参加者Bは、メッセージが実際に参加者Aからのものであり、改ざんされていなかったことを確認することができる。
図3は、本明細書の実施形態による、スマートコントラクトのホワイトリストを有効にするための環境300の一例を示す。図示のように、スマートコントラクト302は、図2のブロックチェーンネットワーク212のブロックチェーン216に記憶される。スマートコントラクト302は、命令304およびホワイトリスト306を含む。ホワイトリスト306は、1つまたは複数のアカウント308を含む。
上述のように、スマートコントラクト302はブロックチェーン216に記憶される。ブロックチェーンネットワーク212の参加者は、スマートコントラクト302を呼び出すことができ、これによりブロックチェーンネットワーク212のノード214に命令304を実行させることができる。いくつかの実施形態では、ブロックチェーンネットワークのノード214は、スマートコントラクトの呼出者によって指定されたアカウントが、ホワイトリスト306によって指定された1つまたは複数のアカウント308に含まれているかどうかをチェックする。アカウントがホワイトリスト306にある場合、ノード214は命令304を実行する。アカウントがホワイトリスト306にない場合、ノード214は命令304を実行しない。
いくつかの実施形態では、命令304は、ブロックチェーンネットワーク212のノード214によってサポートされる高レベルプログラミング言語、例えば、Solidit、Serpent、LLL、Viper、Mutan、C、C++、Python、Java(登録商標)、Javascript、または他のプログラミング言語などで書かれたソフトウェアコードであってよい。命令304はまた、スマートコントラクト302に関連付けられたソフトウェアコードから生成されたコンパイルされたバイトコードでもよい。
いくつかの実施態様では、ホワイトリスト306およびアカウント308は、スマートコントラクト302と共にブロックチェーン216に記憶される。場合によっては、ホワイトリスト306およびアカウント308は、スマートコントラクト302の命令304内に含まれる。例えば、ホワイトリスト306は、プリプロセッサ命令または特別にフォーマットされたコメントなどの命令304内の指示に含まれてもよい。また、ホワイトリスト306は、関数デコレータなど、スマートコントラクトを作るために使用されるプログラミング言語に特有の構成概念を使用して含まれてもよい。また、ホワイトリスト306は、命令304内の実行可能な命令において指定されてもよい。いくつかの実施形態では、ホワイトリスト306は、ノード214が命令304を実行する前に検査される。場合によっては、例えば、ホワイトリスト306が実行可能な命令に含まれる場合など、ノード214は、ホワイトリスト306を評価する前に命令304の実行を開始することができる。例えば、スマートコントラクト302は、呼出者のアカウントをパラメータとし、呼出者がホワイトリスト306に基づいてスマートコントラクトを呼び出す権限を与えられていることを検証する命令304を用いて定義されたプライベート関数を含んでもよい。このような関数は、スマートコントラクト302が実行されると自動的に呼び出され、スマートコントラクト302は、呼出者のアカウントがコントラクトを実行する権限を与えられていない場合には、単に終了することができる。場合によっては、スマートコントラクト302を実行しているノード214は、ホワイトリスト306をチェックするためにプライベート関数を呼び出し、プライベート関数への呼び出しが、発呼者のアカウントがスマートコントラクト302を実行する権限を与えられていることを示す場合にのみ、スマートコントラクト302のメイン関数を実行することができる。
図4は、本明細書の実施形態に従って実行され得る信号フロー400の一例を示す。示されるように、ブロックチェーンネットワークの参加者402は、ブロックチェーンノード404と通信している。ブロックチェーンノード404は、ブロックチェーンネットワークによって管理されるブロックチェーンに記憶されたスマートコントラクト302から情報を読み取る。
406において、参加者402は、スマートコントラクト302への呼び出しを生成する。呼び出しは、参加者402に関連付けられたアカウントの識別情報を含む。いくつかの実施態様では、参加者402は、宛先アカウントとしてスマートコントラクト302を有するブロックチェーンネットワークにトランザクションをサブミットすることによって、スマートコントラクト302を呼び出す。このような場合、ブロックチェーンノード404は、このトランザクションをスマートコントラクト302への呼び出しとして認識し、信号フロー400の残りの部分を実行する。
408において、ブロックチェーンノード404は、スマートコントラクト302のコントラクトのホワイトリスト(例えば、306)を取り出す。例えば、ブロックチェーンノード404は、スマートコントラクト302が記憶されているブロックチェーン内の場所からホワイトリストを取り出すことができる。
410において、ブロックチェーンノード404は、参加者404によって提供されたアカウントがスマートコントラクト302について取り出されたホワイトリストに含まれているかどうかを判定する。このプロセスは、図3に関して上述される。ブロックチェーンノード404はアカウントがホワイトリストに含まれていると決定する場合、信号フロー400は412に進み、ブロックチェーンノード404はスマートコントラクト302を実行する。ブロックチェーンノード404はアカウントがホワイトリストに含まれていないと決定する場合、信号フロー400は414に進み、ブロックチェーンノード404はスマートコントラクト302を実行せず、代わりにスマートコントラクトの呼び出しを拒否する。場合によっては、ブロックチェーンノード404は、スマートコントラクトの呼び出しが拒否されたことを参加者に通知する。ブロックチェーンノード404はまた、ブロックチェーン内または別の記憶場所に、スマートコントラクト302を実行するための失敗した試みを記録することができる。
図5は、本明細書の実施形態に従って実行され得るプロセス500の一例を示す。いくつかの実施形態では、プロセス400は、1つまたは複数のコンピューティングデバイスを使用して実行される1つまたは複数のコンピュータ実行可能プログラムを使用して実行されてよい。
502において、ブロックチェーンネットワークのノードによって、ブロックチェーンネットワークによって維持されたブロックチェーンに記憶されたスマートコントラクトを実行するための要求が識別され、この要求はスマートコントラクトの実行を要求している要求アカウントを識別する。
504において、ノードは、スマートコントラクトに関連付けられたブロックチェーンからホワイトリストを取り出し、ホワイトリストは、スマートコントラクトを実行する権限を与えられた1つまたは複数のアカウントを識別する。場合によっては、ホワイトリストは、スマートコントラクトに関連付けられた実行可能な命令のセット内に含まれる。いくつかの実施形態では、ホワイトリストは、スマートコントラクトに関連付けられた実行可能な命令のセットとは別個のものである。ホワイトリストは、スマートコントラクトにアクセスする権限を与えられた1つまたは複数のアカウントの識別を含むことができる。場合によっては、ホワイトリストは、スマートコントラクトにアクセスする権限を与えられた1つまたは複数のアカウントを記憶するスマートコントラクトの外部の場所への参照を含む。
506において、ノードは、取り出されたホワイトリストに含まれる要求アカウントに基づいて、要求アカウントがスマートコントラクトを実行する権限を与えられていると決定する。場合によっては、ホワイトリストは、1つまたは複数のアカウントに関連付けられたエンティティを識別し、要求アカウントがスマートコントラクトを実行する権限を与えられていると決定することが、要求アカウントがエンティティに関連付けられているかどうかを判定することを含む。
508において、要求アカウントがスマートコントラクトを実行する権限を与えられているとの決定に応答して、ノードはスマートコントラクトを実行する。
場合によっては、要求は第1の要求であり、要求アカウントは第1のアカウントであり、プロセス500は、第1の要求と異なるスマートコントラクトを実行するための第2の要求を識別するステップであって、第2の要求が第1のアカウントと異なる第2のアカウントを識別する、ステップと、第2のアカウントが取り出されたホワイトリストに含まれていないことに基づいて、第2のアカウントがスマートコントラクトを実行する権限を与えられていないと決定するステップと、要求アカウントがスマートコントラクトを実行する権限を与えられていないと決定することに応答して、スマートコントラクトを実行するための第2の要求を拒否するステップとを含む。
図6は、本明細書の実施形態による、装置600のモジュールの一例を示す。装置600は、コンソーシアム・ブロックチェーン・ネットワークなど、ブロックチェーンネットワーク内のスマートコントラクトへのアクセスを制御するように構成されたブロックチェーンノードであってよい。装置600は、上記の実施形態に対応することができ、装置600は、ブロックチェーンネットワークによって維持されるブロックチェーンに記憶されたスマートコントラクトを実行するための要求を識別するための識別器または識別ユニット602と、要求が、スマートコントラクトの実行を要求している要求アカウントを識別し、スマートコントラクトに関連付けられたブロックチェーンからホワイトリストを取り出すための取り出し器または取り出しユニット604と、ホワイトリストがスマートコントラクトを実行する権限を与えられた1つまたは複数のアカウントを識別し、要求アカウントがホワイトリストに含まれることに基づいて、要求アカウントがスマートコントラクトを実行する権限を与えられていると決定するための決定器または決定ユニット606と、要求アカウントがスマートコントラクトを実行する権限を与えられていると決定することに応答して、スマートコントラクトを実行するための実行器または実行ユニット608とを備える。
前述の実施形態に示されたシステム、装置、モジュール、またはユニットは、コンピュータチップまたはエンティティを使用することによって実装でき、または特定の機能を有する製品を使用することによって実装できる。典型的な実装デバイスは、コンピュータであり、コンピュータはパーソナルコンピュータ、ラップトップコンピュータ、携帯電話、カメラ電話、スマートフォン、個人情報端末、メディアプレーヤ、ナビゲーションデバイス、電子メール送受信デバイス、ゲームコンソール、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスの任意の組合せであることができる。
装置内の各ユニットの機能および役割の実装プロセスについて、前述の方法で対応するステップの実装プロセスを参照することができる。簡略化のため、ここでは詳細を省略する。
装置の実施形態は、基本的には方法の実施形態に対応するため、関連する部分について、方法の実施形態における関連する記述を参照することができる。前述の装置の実施形態は、単なる例である。別個の部品として記載されるユニットは、物理的に分離されていてもなくてもよく、ユニットとして表示される部品は、物理的ユニットであってもなくてもよく、1つの位置に配置されていてもよく、または多数のネットワークユニット上に分散されていてもよい。モジュールの一部または全部は、本明細書の解決策の目的を達成するために実際の要求に基づいて選択することができる。当業者は、創造的な努力なしに本出願の実施形態を理解しかつ実施することができる。
再度図6を参照すると、これは、ブロックチェーンネットワークにおけるスマートコントラクトへのアクセスを制御するように構成されたブロックチェーンノードの内部機能モジュールおよび構造を例示するものとして解釈することができる。ブロックチェーンノードは、ブロックチェーンネットワークにおけるスマートコントラクトへのアクセスを制御するように構成された装置の一例であり得る。
本明細書に記載される主題の実施形態、アクション、および動作は、デジタル電子回路、実体的に具現化されたコンピュータソフトウェアまたはファームウェア、本明細書に開示される構造およびそれらの構造的等価物を含むコンピュータハードウェア、またはそれらのうちの1つまたは複数の組み合わせで実装することができる。本明細書に記載される主題の実施形態は、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために、コンピュータプログラムキャリア上に符号化された1つまたは複数のコンピュータプログラム、例えば、コンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。キャリアは、有形の非一時的コンピュータ記憶媒体であってもよい。代替的に、または追加として、キャリアは、人工的に生成された伝搬信号、例えば、データ処理装置による実行のための適切な受信装置への送信のための情報を符号化するために生成される機械生成の電気的、光学的、または電磁的信号であってもよい。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムまたはシリアルアクセスメモリデバイス、またはそれらの1つまたは複数の組み合わせであってもよく、またはそれらの一部であってもよい。コンピュータ記憶媒体は伝搬信号ではない。
用語「データ処理装置」は、例えば、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサまたはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。データ処理装置は、専用論理回路、例えば、FPGA(field programmable gate array)、ASIC(application specific integrate circuit)、またはGPU(graphics processing unit)を含むことができる。装置はまた、ハードウェアに加えて、コンピュータプログラムの実行環境、例えば、プロセッサファームウェアを構成するコード、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つまたは複数の組み合わせを作成するコードを含むことができる。
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリケーション、モジュール、ソフトウェアモジュール、エンジン、スクリプト、またはコードと呼ばれあるいは記述され得るコンピュータプログラムは、コンパイル型またはインタプリタ型言語、または宣言型もしくは手続型言語を含む、任意の形式のプログラミング言語で書くことができ、スタンドアロンプログラムとして、またはコンピューティング環境で実行するのに適したモジュール、コンポーネント、エンジン、サブルーチン、または他のユニットとして、任意の形式で展開することができ、この環境は、1つまたは複数の場所においてデータ通信ネットワークによって相互接続された1つまたは複数のコンピュータを含むことができる。
コンピュータプログラムは、ファイルシステム内のファイルに対応してもよいが、必ずしも対応する必要はない。コンピュータプログラムは、他のプログラムまたはデータを保持するファイルの一部、例えばマークアップ言語文書に記憶された1つまたは複数のスクリプト、問題のプログラム専用の1つのファイル、または複数の調整されたファイル、例えば、1つまたは複数のモジュール、サブプログラム、またはコードの一部を記憶するファイルに記憶することができる。
本明細書に記載されるプロセスおよび論理フローは、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のコンピュータによって実行され、入力データについて動作するとともに出力を生成することによって動作を実行することができる。プロセスおよび論理フローはまた、専用論理回路、例えばFPGA、ASIC、またはGPUによって、または専用論理回路と1つまたは複数のプログラムされたコンピュータとの組み合わせによって実行され得る。
コンピュータプログラムの実行に適したコンピュータは、汎用または専用のマイクロプロセッサ、またはその両方、または任意の他の種類の中央処理ユニットに基づくことができる。一般に、中央処理ユニットは、読取り専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの要素は、命令を実行するための中央処理ユニットと、命令およびデータを記憶するための1つまたは複数のメモリデバイスとを含むことができる。中央処理ユニットおよびメモリは、専用論理回路によって補足されるか、または専用論理回路に組み込まれ得る。
一般に、コンピュータは、少なくとも1つの非一時的コンピュータ可読記憶媒体(コンピュータ可読メモリとも呼ばれる)に結合される。コンピュータに結合された記憶媒体は、コンピュータの内部構成要素(例えば、一体型ハードドライブ)または外部構成要素(例えば、ユニバーサルシリアルバス(USB)ハードドライブまたはネットワークを介してアクセスされる記憶システム)であり得る。記憶媒体の例は、例えば、磁気ディスク、磁気光学ディスク、または光ディスク、ソリッドステートドライブ、クラウド記憶システムなどのネットワーク記憶リソース、または他のタイプの記憶媒体を含むことができる。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、例えば、ほんの数例を挙げると、携帯電話、個人情報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス、例えば、ユニバーサルシリアルバス(USB)フラッシュドライブに埋め込むことができる。
ユーザとの対話を提供するために、本明細書に記載される主題の実施形態は、ユーザに情報を表示するための表示デバイス、例えば、LCD(液晶ディスプレイ)モニタ、およびユーザがコンピュータに入力を提供することができる入力デバイス、例えば、キーボードおよびポインティングデバイス、例えばマウス、トラックボールまたはタッチパッドを備えたコンピュータ上に実装するか、または該コンピュータと通信するように構成することができる。他の種類のデバイスを使用して、ユーザとの対話を提供することができ、例えば、ユーザに提供されるフィードバックは、視覚フィードバック、聴覚フィードバック、または触覚フィードバックのような任意の形態の感覚フィードバックであり得;ユーザからの入力は、音響、言語、または触覚入力を含む任意の形態で受け取ることができる。加えて、コンピュータは、ユーザが使用するデバイスと文書を送受信することによって、例えば、ウェブブラウザから受信した要求に応じてユーザのデバイス上のウェブブラウザにウェブページを送信することによって、または、ユーザデバイス、例えば、スマートフォンまたは電子タブレット上で動作するアプリケーションと対話することによって、ユーザと対話することができる。また、コンピュータは、メッセージングアプリケーションを実行しているスマートフォンなどのパーソナルデバイスにテキストメッセージまたは他の形式のメッセージを送信し、戻りとしてユーザから応答メッセージを受信することによって、ユーザと対話することができる。
本明細書では、システム、装置、およびコンピュータプログラム構成要素に関連して「のように構成された」という用語を使用する。1つまたは複数のコンピュータのシステムが特定の動作またはアクションを実行するように構成されている場合、システムがソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせにインストールされていることを意味し、それにより、動作中、システムは操作またはアクションを実行する。1つまたは複数のコンピュータプログラムが特定の動作またはアクションを実行するように構成されている場合、1つまたは複数のプログラムが、データ処理装置によって実行されると、装置に動作またはアクションを実行させる命令を含むことを意味する。専用論理回路が、特定の動作またはアクションを実行するように構成される場合、回路が動作またはアクションを実行する電子論理を有することを意味する。
本明細書は、多くの具体的な実施形態の詳細を含んでいるが、これらは、特許請求の範囲自体によって定義される、請求されているものの範囲についての限定として解釈されるべきではなく、むしろ、特定の実施形態に特有であり得る特徴の説明として解釈されるべきである。別々の実施形態の文脈において本明細書に説明される特定の特徴はまた、単一の実施形態において組み合わせて実現することができる。逆に、単一の実施形態の文脈において説明される様々な特徴はまた、複数の実施形態において別々に、または任意の適切なサブコンビネーションにおいて実現することができる。さらに、特徴は、特定の組み合わせで機能するように上述され、最初はそのように請求されてもよいが、場合によっては、請求された組み合わせからの1または複数の特徴を組み合わせから切り出すことができ、特許請求の範囲は、サブコンビネーションまたはサブコンビネーションの変形を対象とすることができる。
同様に、動作が図面に示され、特定の順序で特許請求の範囲に記載されているが、このことは、そのような動作が、示された特定の順序で、またはシーケンシャルな順序で実行されること、あるいは、望ましい結果を達成するために、全ての図示された動作が実行されることを要求するものと理解されるべきではない。特定の状況では、マルチタスクおよび並列処理が有利であり得る。さらに、上述の実施形態における様々なシステムモジュールおよび構成要素の分離は、全ての実施形態においてそのような分離を必要とするものと理解されるべきではなく、説明されたプログラム構成要素およびシステムは、一般に、単一のソフトウェア製品に一緒に統合され得るか、または複数のソフトウェア製品にパッケージ化され得ることを理解されたい。
主題の特定の実施形態が記載されている。他の実施形態は、以下の特許請求の範囲内にある。例えば、特許請求の範囲に記載されたアクションは、異なる順序で実行することができ、なお望ましい結果を達成することができる。一例として、添付の図に示されているプロセスは、所望の結果を達成するために、必ずしも示されている特定の順序、またはシーケンシャルな順序を必要としない。場合によっては、マルチタスクおよび並列処理が有利であり得る。
102 ブロックチェーンネットワーク
106 コンピューティングデバイス
108 コンピューティングシステム
110 ネットワーク
202、204、206 参加者システム
212 ブロックチェーンネットワーク
214 ノード
216 ブロックチェーン
302 スマートコントラクト
304 命令
306 ホワイトリスト
308 アカウント

Claims (20)

  1. ブロックチェーンネットワーク内のスマートコントラクトへのアクセスを制御するためのコンピュータ実装方法であって、前記方法は、
    前記ブロックチェーンネットワークによって維持されるブロックチェーンに記憶されたスマートコントラクトを実行するための要求を、前記ブロックチェーンネットワークのノードによって識別するステップであって、前記要求が、前記スマートコントラクトの実行を要求している要求アカウントを識別する、ステップと、
    前記スマートコントラクトに関連付けられた前記ブロックチェーンからホワイトリストを、前記ノードによって取り出すステップであって、前記ホワイトリストが前記スマートコントラクトを実行する権限を与えられた1つまたは複数のアカウントを識別する、ステップと、
    前記要求アカウントが前記ホワイトリストに含まれることに基づいて、前記要求アカウントが前記スマートコントラクトを実行する権限を与えられていると、前記ノードによって決定するステップと、
    前記要求アカウントが前記スマートコントラクトを実行する権限を与えられていると決定することに応答して、前記スマートコントラクトを前記ノードによって実行するステップと
    を含む、方法。
  2. 前記要求が第1の要求であり、前記要求アカウントが第1のアカウントであり、前記方法は、
    前記第1の要求と異なる前記スマートコントラクトを実行するための第2の要求を、前記ノードによって識別するステップであって、前記第2の要求が前記第1のアカウントと異なる第2のアカウントを識別する、ステップと、
    前記第2のアカウントが前記ホワイトリストに含まれていないことに基づいて、前記第2のアカウントが前記スマートコントラクトを実行する権限を与えられていないと、前記ノードによって決定するステップと、
    前記要求アカウントが前記スマートコントラクトを実行する権限を与えられていないと決定することに応答して、前記スマートコントラクトを実行するための前記第2の要求を、前記ノードによって拒否するステップと
    を含む、請求項1に記載の方法。
  3. 前記ホワイトリストが前記スマートコントラクトに関連付けられた実行可能な命令のセット内に含まれる、請求項1に記載の方法。
  4. 前記ホワイトリストが前記スマートコントラクトに関連付けられた実行可能な命令のセットとは別個のものである、請求項1に記載の方法。
  5. 前記ホワイトリストが前記スマートコントラクトにアクセスする権限を与えられた前記1つまたは複数のアカウントの識別情報を含む、請求項1に記載の方法。
  6. 前記ホワイトリストが前記スマートコントラクトにアクセスする権限を与えられた前記1つまたは複数のアカウントを記憶する前記スマートコントラクトの外部の場所への参照を含む、請求項1に記載の方法。
  7. 前記ホワイトリストが1つまたは複数のアカウントに関連付けられたエンティティを識別し、前記要求アカウントが前記スマートコントラクトを実行する権限を与えられていると決定することが、前記要求アカウントが前記エンティティに関連付けられているかどうかを判定することを含む、請求項1に記載の方法。
  8. 1つまたは複数のコンピュータに結合されるとともに、前記1つまたは複数のコンピュータによって実行可能な命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記命令は、
    ブロックチェーンネットワークによって維持されるブロックチェーンに記憶されたスマートコントラクトを実行するための要求を、前記ブロックチェーンネットワークのノードによって識別することであって、前記要求が、前記スマートコントラクトの実行を要求している要求アカウントを識別する、ことと、
    前記スマートコントラクトに関連付けられた前記ブロックチェーンからホワイトリストを、前記ノードによって取り出すことであって、前記ホワイトリストが前記スマートコントラクトを実行する権限を与えられた1つまたは複数のアカウントを識別する、ことと、
    前記要求アカウントが前記ホワイトリストに含まれることに基づいて、前記要求アカウントが前記スマートコントラクトを実行する権限を与えられていると、前記ノードによって決定することと、
    前記要求アカウントが前記スマートコントラクトを実行する権限を与えられていると決定することに応答して、前記スマートコントラクトを前記ノードによって実行することと
    を含む、非一時的コンピュータ可読記憶媒体。
  9. 前記要求が第1の要求であり、前記要求アカウントが第1のアカウントであり、前記記憶媒体は、
    前記第1の要求と異なる前記スマートコントラクトを実行するための第2の要求を、前記ノードによって識別することであって、前記第2の要求が前記第1のアカウントと異なる第2のアカウントを識別する、ことと、
    前記第2のアカウントが前記ホワイトリストに含まれていないことに基づいて、前記第2のアカウントが前記スマートコントラクトを実行する権限を与えられていないと、前記ノードによって決定することと、
    前記要求アカウントが前記スマートコントラクトを実行する権限を与えられていないと決定することに応答して、前記スマートコントラクトを実行するための前記第2の要求を、前記ノードによって拒否することと
    を含む、前記1つまたは複数のコンピュータによって実行可能なさらなる命令を記憶する、請求項8に記載の非一時的コンピュータ可読記憶媒体。
  10. 前記ホワイトリストが前記スマートコントラクトに関連付けられた実行可能な命令のセット内に含まれる、請求項8に記載の非一時的コンピュータ可読記憶媒体。
  11. 前記ホワイトリストが前記スマートコントラクトに関連付けられた実行可能な命令のセットとは別個のものである、請求項8に記載の非一時的コンピュータ可読記憶媒体。
  12. 前記ホワイトリストが前記スマートコントラクトにアクセスする権限を与えられた前記1つまたは複数のアカウントの識別情報を含む、請求項8に記載の非一時的コンピュータ可読記憶媒体。
  13. 前記ホワイトリストが前記スマートコントラクトにアクセスする権限を与えられた前記1つまたは複数のアカウントを記憶する前記スマートコントラクトの外部の場所への参照を含む、請求項8に記載の非一時的コンピュータ可読記憶媒体。
  14. 前記ホワイトリストが1つまたは複数のアカウントに関連付けられたエンティティを識別し、前記要求アカウントが前記スマートコントラクトを実行する権限を与えられていると決定することが、前記要求アカウントが前記エンティティに関連付けられているかどうかを判定することを含む、請求項8に記載の非一時的コンピュータ可読記憶媒体。
  15. 1つまたは複数のコンピュータと、
    前記1つまたは複数のコンピュータに結合されるとともに、前記1つまたは複数のコンピュータによって実行可能な命令を記憶した1つまたは複数のコンピュータ可読メモリとを具備するシステムであって、前記命令は、
    ブロックチェーンネットワークによって維持されるブロックチェーンに記憶されたスマートコントラクトを実行するための要求を、前記ブロックチェーンネットワークのノードによって識別することであって、前記要求が、前記スマートコントラクトの実行を要求している要求アカウントを識別する、ことと、
    前記スマートコントラクトに関連付けられた前記ブロックチェーンからホワイトリストを、前記ノードによって取り出すことであって、前記ホワイトリストが前記スマートコントラクトを実行する権限を与えられた1つまたは複数のアカウントを識別する、ことと、
    前記要求アカウントが前記ホワイトリストに含まれることに基づいて、前記要求アカウントが前記スマートコントラクトを実行する権限を与えられていると、前記ノードによって決定することと、
    前記要求アカウントが前記スマートコントラクトを実行する権限を与えられていると決定することに応答して、前記スマートコントラクトを前記ノードによって実行することと
    を含む、システム。
  16. 前記要求が第1の要求であり、前記要求アカウントが第1のアカウントであり、前記メモリは、
    前記第1の要求と異なる前記スマートコントラクトを実行するための第2の要求を、前記ノードによって識別することであって、前記第2の要求が前記第1のアカウントと異なる第2のアカウントを識別する、ことと、
    前記第2のアカウントが前記ホワイトリストに含まれていないことに基づいて、前記第2のアカウントが前記スマートコントラクトを実行する権限を与えられていないと、前記ノードによって決定することと、
    前記要求アカウントが前記スマートコントラクトを実行する権限を与えられていないと決定することに応答して、前記スマートコントラクトを実行するための前記第2の要求を、前記ノードによって拒否することと
    を含む、前記1つまたは複数のコンピュータによって実行可能なさらなる命令を記憶する、請求項15に記載のシステム。
  17. 前記ホワイトリストが前記スマートコントラクトに関連付けられた実行可能な命令のセット内に含まれる、請求項15に記載のシステム。
  18. 前記ホワイトリストが前記スマートコントラクトに関連付けられた実行可能な命令のセットとは別個のものである、請求項15に記載のシステム。
  19. 前記ホワイトリストが前記スマートコントラクトにアクセスする権限を与えられた前記1つまたは複数のアカウントの識別情報を含む、請求項15に記載のシステム。
  20. 前記ホワイトリストが前記スマートコントラクトにアクセスする権限を与えられた前記1つまたは複数のアカウントを記憶する前記スマートコントラクトの外部の場所への参照を含む、請求項15に記載のシステム。
JP2019542591A 2018-12-28 2018-12-28 スマートコントラクトのホワイトリスト Active JP6858264B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/124852 WO2019072304A2 (en) 2018-12-28 2018-12-28 WHITE LISTS OF INTELLIGENT CONTRACTS

Publications (2)

Publication Number Publication Date
JP2020510906A true JP2020510906A (ja) 2020-04-09
JP6858264B2 JP6858264B2 (ja) 2021-04-14

Family

ID=66100024

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019542591A Active JP6858264B2 (ja) 2018-12-28 2018-12-28 スマートコントラクトのホワイトリスト

Country Status (14)

Country Link
US (3) US10832239B2 (ja)
EP (1) EP3577853B1 (ja)
JP (1) JP6858264B2 (ja)
KR (1) KR102222612B1 (ja)
CN (1) CN110366729A (ja)
AU (1) AU2018347204B2 (ja)
BR (1) BR112019016188A2 (ja)
CA (1) CA3052735C (ja)
MX (1) MX2019009285A (ja)
PH (1) PH12019501831A1 (ja)
RU (1) RU2744827C2 (ja)
SG (1) SG11201907155UA (ja)
WO (1) WO2019072304A2 (ja)
ZA (1) ZA201905193B (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6858264B2 (ja) 2018-12-28 2021-04-14 アドバンスド ニュー テクノロジーズ カンパニー リミテッド スマートコントラクトのホワイトリスト
EP3635941A4 (en) * 2019-04-30 2020-04-29 Alibaba Group Holding Limited METHOD AND DEVICES FOR MANAGING ACCESS TO ACCOUNTS IN A BLOCKCHAIN SYSTEM
CN111164935B (zh) * 2019-05-31 2023-08-22 创新先进技术有限公司 在基于区块链的私有交易中提供隐私和安全保护的系统和方法
US10783082B2 (en) 2019-08-30 2020-09-22 Alibaba Group Holding Limited Deploying a smart contract
CN110688428B (zh) * 2019-09-24 2021-01-26 北京海益同展信息科技有限公司 用于发布智能合约的方法和装置
CN111222109A (zh) * 2019-11-21 2020-06-02 腾讯科技(深圳)有限公司 一种区块链账户的操作方法、节点设备及存储介质
CN113282887A (zh) * 2020-02-19 2021-08-20 北京沃东天骏信息技术有限公司 用户信息授权的方法和装置
CN111310233B (zh) * 2020-03-24 2024-06-25 腾讯科技(深圳)有限公司 应用界面显示方法、装置、设备以及存储介质
CN111339208B (zh) * 2020-05-15 2020-08-25 支付宝(杭州)信息技术有限公司 调用智能合约的方法及装置
CN112804341A (zh) * 2020-09-05 2021-05-14 蔡春梅 基于云计算和区块链服务的数据处理方法及数据处理系统
US20230367764A1 (en) * 2020-09-11 2023-11-16 Telefonaktiebolaget Lm Ericsson (Publ) Partial execution of transactions in private distributed ledger networks
US11836714B2 (en) * 2021-07-07 2023-12-05 Ava Labs, Inc. Secure and trustworthy bridge for transferring assets across networks with different data architecture
KR102571542B1 (ko) * 2021-10-27 2023-08-29 한국전력공사 외부자의 참여가 가능한 폐쇄망 블록체인 시스템 및 폐쇄망 블록체인 시스템에서 외부 참여인의 업무 처리 방법
US11954215B1 (en) * 2022-11-21 2024-04-09 Real Title Block, Llc System and method for security suite concatenating validation elements for blockchain binding operations
CN116132112B (zh) * 2022-12-22 2024-05-03 广州大学 一种基于联盟链智能合约的关键字可加密搜索方法
CN116132144A (zh) * 2023-01-05 2023-05-16 合肥联正电子科技有限公司 一种基于智能合约技术的物联网传输方法和系统
CN116226938B (zh) * 2023-05-10 2023-08-08 飞天诚信科技股份有限公司 一种通过智能合约管理事务的实现方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107248074A (zh) * 2017-03-29 2017-10-13 阿里巴巴集团控股有限公司 一种基于区块链的业务处理方法及设备
WO2018006056A1 (en) * 2016-07-01 2018-01-04 Wells Fargo Bank, N.A. International trade finance blockchain system
WO2018126059A1 (en) * 2016-12-30 2018-07-05 Slock.it, Inc. Block-chain enabled service provider system
US20190114706A1 (en) * 2017-10-17 2019-04-18 SALT Lending Holdings, Inc. Blockchain oracle for managing loans collateralized by digital assets

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7490237B1 (en) * 2003-06-27 2009-02-10 Microsoft Corporation Systems and methods for caching in authentication systems
US8103868B2 (en) * 2005-04-20 2012-01-24 M-Qube, Inc. Sender identification system and method
US8249965B2 (en) * 2006-03-30 2012-08-21 Obopay, Inc. Member-supported mobile payment system
US20100223184A1 (en) * 2006-10-11 2010-09-02 Visa International Service Association Sponsored Accounts For Computer-Implemented Payment System
US8578175B2 (en) * 2011-02-23 2013-11-05 International Business Machines Corporation Secure object having protected region, integrity tree, and unprotected region
US8271650B2 (en) * 2009-08-25 2012-09-18 Vizibility Inc. Systems and method of identifying and managing abusive requests
US11138605B2 (en) * 2013-07-02 2021-10-05 Visa International Service Association Online authentication in access transactions
US20150332223A1 (en) * 2014-05-19 2015-11-19 Square, Inc. Transaction information collection for mobile payment experience
US10635722B2 (en) * 2015-04-20 2020-04-28 Ogy Docs, Inc. Method of distributed management of electronic documents of title (EDT) and system thereof
US9992028B2 (en) * 2015-11-26 2018-06-05 International Business Machines Corporation System, method, and computer program product for privacy-preserving transaction validation mechanisms for smart contracts that are included in a ledger
US9985964B2 (en) * 2016-03-28 2018-05-29 Black Gold Coin, Inc. Systems and methods for providing block chain-based multifactor personal identity verification
US20170344988A1 (en) * 2016-05-24 2017-11-30 Ubs Ag System and method for facilitating blockchain-based validation
US10425399B2 (en) * 2016-07-12 2019-09-24 International Business Machines Corporation Template-based distributed certificate issuance in a multi-tenant environment
US10700853B2 (en) * 2016-07-12 2020-06-30 International Business Machines Corporation Token identity and attribute management
WO2018047085A1 (en) 2016-09-08 2018-03-15 Thomson Reuters Global Resources Unlimited Company Systems and methods for providing identity assurance for decentralized applications
US11966886B2 (en) * 2017-06-22 2024-04-23 Jpmorgan Chase Bank, N.A. System and method for implementing an interbank information network
CN107748074B (zh) 2017-09-07 2019-06-28 华南农业大学 一种电动修剪机自动试验台
WO2019059598A1 (en) * 2017-09-20 2019-03-28 Samsung Electronics Co., Ltd. METHOD AND APPARATUS FOR MANAGING SERVICE REQUEST IN BLOCK CHAIN NETWORK
KR20190041784A (ko) * 2017-10-13 2019-04-23 주식회사 포스링크 멀티클라우드 환경에서 블록체인 기반의 분산동기화 접근 제어 시스템 및 그 방법
KR101878869B1 (ko) * 2017-11-17 2018-08-16 주식회사 미탭스플러스 블록체인 기반의 사용자 식별 관리를 위한 분산 원장 장치 및 분산 원장 방법
CN108696502B (zh) * 2018-03-27 2020-10-20 深圳市网心科技有限公司 区块链节点权限控制方法、区块链系统及存储介质
CN108769173B (zh) * 2018-05-21 2021-11-09 阿里体育有限公司 运行智能合约的区块链实现方法及设备
JP6858264B2 (ja) 2018-12-28 2021-04-14 アドバンスド ニュー テクノロジーズ カンパニー リミテッド スマートコントラクトのホワイトリスト

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018006056A1 (en) * 2016-07-01 2018-01-04 Wells Fargo Bank, N.A. International trade finance blockchain system
WO2018126059A1 (en) * 2016-12-30 2018-07-05 Slock.it, Inc. Block-chain enabled service provider system
CN107248074A (zh) * 2017-03-29 2017-10-13 阿里巴巴集团控股有限公司 一种基于区块链的业务处理方法及设备
WO2018183099A1 (en) * 2017-03-29 2018-10-04 Alibaba Group Holding Limited Blockchain-based transaction processing method and apparatus
US20190114706A1 (en) * 2017-10-17 2019-04-18 SALT Lending Holdings, Inc. Blockchain oracle for managing loans collateralized by digital assets

Also Published As

Publication number Publication date
ZA201905193B (en) 2020-05-27
CN110366729A (zh) 2019-10-22
EP3577853A4 (en) 2020-04-08
EP3577853B1 (en) 2022-02-23
US20210295314A1 (en) 2021-09-23
US11354656B2 (en) 2022-06-07
EP3577853A2 (en) 2019-12-11
RU2744827C2 (ru) 2021-03-16
MX2019009285A (es) 2019-10-30
US11068887B2 (en) 2021-07-20
SG11201907155UA (en) 2019-09-27
KR20200083939A (ko) 2020-07-09
US20210056543A1 (en) 2021-02-25
CA3052735C (en) 2021-06-22
CA3052735A1 (en) 2019-04-18
AU2018347204B2 (en) 2020-10-22
PH12019501831A1 (en) 2020-03-16
AU2018347204A1 (en) 2020-07-16
BR112019016188A2 (pt) 2020-04-14
WO2019072304A2 (en) 2019-04-18
KR102222612B1 (ko) 2021-03-08
WO2019072304A3 (en) 2019-10-31
RU2019124837A (ru) 2021-02-08
US10832239B2 (en) 2020-11-10
JP6858264B2 (ja) 2021-04-14
US20190279201A1 (en) 2019-09-12
RU2019124837A3 (ja) 2021-02-08

Similar Documents

Publication Publication Date Title
US11354656B2 (en) Smart contract whitelists
US11381573B2 (en) Parallel execution of transactions in a blockchain network based on smart contract whitelists
KR102234128B1 (ko) 블록체인 네트워크에서의 트랜잭션의 병렬 실행
JP6892513B2 (ja) 信頼できる実行環境に基づいたオフチェーンスマートコントラクトサービス
EP3777030B1 (en) Asynchronous processing of blockchain blocks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190820

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200923

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201030

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201105

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210308

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210323

R150 Certificate of patent or registration of utility model

Ref document number: 6858264

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250