Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7628289B2 - Transaction delegation method and transaction delegation system - Google Patents
[go: Go Back, main page]

JP7628289B2 - Transaction delegation method and transaction delegation system - Google Patents

Transaction delegation method and transaction delegation system Download PDF

Info

Publication number
JP7628289B2
JP7628289B2 JP2021113689A JP2021113689A JP7628289B2 JP 7628289 B2 JP7628289 B2 JP 7628289B2 JP 2021113689 A JP2021113689 A JP 2021113689A JP 2021113689 A JP2021113689 A JP 2021113689A JP 7628289 B2 JP7628289 B2 JP 7628289B2
Authority
JP
Japan
Prior art keywords
delegation
transaction
user
account
fee
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.)
Active
Application number
JP2021113689A
Other languages
Japanese (ja)
Other versions
JP2021168177A (en
JP2021168177A5 (en
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.)
SIVIRA INC.
Original Assignee
SIVIRA INC.
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
Priority claimed from JP2021515232A external-priority patent/JP6915934B1/en
Application filed by SIVIRA INC. filed Critical SIVIRA INC.
Publication of JP2021168177A publication Critical patent/JP2021168177A/en
Publication of JP2021168177A5 publication Critical patent/JP2021168177A5/ja
Priority to JP2025009341A priority Critical patent/JP2025061606A/en
Application granted granted Critical
Publication of JP7628289B2 publication Critical patent/JP7628289B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Description

本出願は、2019年12月26日に出願された米国仮特許出願62/953734号の優先権の利益を主張し、参照によってその全体が組み込まれる。 This application claims the benefit of priority to U.S. Provisional Patent Application No. 62/953,734, filed December 26, 2019, which is incorporated by reference in its entirety.

本発明は、ブロックチェーンにおけるトランザクション委任方法、及びトランザクション委任システムに関する。 The present invention relates to a transaction delegation method and a transaction delegation system in a blockchain.

ブロックチェーンを利用したシステムでは、ユーザがブロックチェーンシステムを構成するノード又はスマートコントラクトへトランザクションを要求する場合、手数料トークン(以下、fee tokenともいう)による手数料を、トランザクションの対価として支払うことが必要である(特許文献1等)。 In a system using blockchain, when a user requests a transaction to a node or smart contract that constitutes the blockchain system, the user is required to pay a fee in the form of a fee token (hereinafter also referred to as a fee token) as consideration for the transaction (Patent Document 1, etc.).

ブロックチェーンシステムで要求されるトランザクションは、アセット(暗号資産等)の移動を目的としたもののみならず、スマートコントラクトが実行するデータ保存又は演算を含む。 Transactions required in a blockchain system include not only those aimed at transferring assets (such as cryptocurrencies), but also data storage or calculations performed by smart contracts.

ブロックチェーンを利用したシステムでは、上述したような手数料トークン以外にも、システムの利用に際してユーティリティトークン(以下、utility tokenともいう)の支払いを要求するスマートコントラクトが存在する。 In systems that use blockchain, in addition to the fee tokens mentioned above, there are also smart contracts that require the payment of utility tokens when using the system.

特開2020-080061号公報JP 2020-080061 A

ブロックチェーン技術をベースとしたサービスの利用には、ユーザにとっては煩雑な手数料トークン及びユーティリティトークン等の管理が必要であり、ブロックチェーンシステムの広範囲への普及は爆発的とはなりにくい。 To use services based on blockchain technology, users need to manage fee tokens and utility tokens, which can be cumbersome, making it unlikely that blockchain systems will see explosive widespread adoption.

本発明は、斯かる事情を鑑みてなされたものであり、ブロックチェーンシステムの普及を支援するトランザクション委任方法、及びトランザクション委任システムを提供することを目的とする。 The present invention was made in consideration of these circumstances, and aims to provide a transaction delegation method and transaction delegation system that will support the spread of blockchain systems.

本開示の一実施形態のトランザクション委任方法は、ユーザが使用する第1装置から、ブロックチェーンシステムにおけるアカウントデータを記憶する第2装置が、前記ブロックチェーンシステムにおける前記ユーザの所望のトランザクションの実行を委任する委任データを、前記ブロックチェーンシステム外の通信によって受信し、前記第1装置から送信された委任データに基づき、前記所望のトランザクションを、前記ブロックチェーンシステムにおける前記ユーザのアカウントから実行する実行スマートコントラクトに実行させる委任トランザクションを作成し、前記アカウントデータに基づき、前記委任トランザクションを、前記ブロックチェーンシステムへブロードキャストする。 In one embodiment of the transaction delegation method disclosed herein, a second device that stores account data in a blockchain system receives delegation data from a first device used by a user via communication outside the blockchain system, delegating the execution of a transaction desired by the user in the blockchain system, creates a delegation transaction that causes an execution smart contract to execute the desired transaction from the user's account in the blockchain system based on the delegation data transmitted from the first device, and broadcasts the delegation transaction to the blockchain system based on the account data.

本開示によれば、サービスの提供を受けるユーザは、サービスのベースとなっているブロックチェーンシステムにおけるアカウント、及び、ブロックチェーンシステムで流通するトークンの運用を意識することなくサービスを享受することができる。 According to the present disclosure, users who receive the service can enjoy the service without being aware of their accounts in the blockchain system on which the service is based, or the operation of tokens circulating in the blockchain system.

本開示のシステムの概要図である。FIG. 1 is a schematic diagram of a system of the present disclosure. 本開示のシステムにおけるトランザクションの委任処理手順の概要図である。FIG. 2 is a schematic diagram of a transaction delegation process in the system of the present disclosure. 第1装置の構成を示すブロック図である。FIG. 2 is a block diagram showing a configuration of a first device. 中継者の第2装置の構成を示すブロック図である。FIG. 2 is a block diagram showing a configuration of a second device of a relay. ブロックチェーンシステムにおけるノードの構成を示すブロック図である。A block diagram showing the configuration of a node in a blockchain system. システムにおける処理の概要図である。FIG. 2 is an overview of the processing in the system. 委任トランザクション作成処理手順の一例を示すシーケンス図である。FIG. 13 is a sequence diagram illustrating an example of a delegation transaction creation process. トランザクションの委任実行処理手順の一例を示すシーケンス図である。FIG. 13 is a sequence diagram illustrating an example of a procedure for delegating execution of a transaction. 実施例1におけるトランザクションの委任処理の一例を示すシーケンス図である。FIG. 13 is a sequence diagram illustrating an example of a transaction delegation process according to the first embodiment. 実施例3におけるトランザクションの委任処理の一例を示すシーケンス図である。FIG. 13 is a sequence diagram illustrating an example of a transaction delegation process according to the third embodiment. 実施例4におけるトランザクションの委任処理の一例を示すシーケンス図である。FIG. 13 is a sequence diagram illustrating an example of a transaction delegation process in the fourth embodiment. 実施例5におけるトランザクションの委任処理の一例を示すシーケンス図である。FIG. 23 is a sequence diagram illustrating an example of a transaction delegation process in the fifth embodiment. 実施例6におけるトランザクションの委任処理の一例を示すシーケンス図である。FIG. 23 is a sequence diagram illustrating an example of a transaction delegation process in the sixth embodiment.

本開示をその実施の形態を示す図面を参照して具体的に説明する。 This disclosure will be specifically described with reference to drawings showing embodiments thereof.

本開示において「ブロックチェーンシステム」は、相互に通信接続が可能な複数のコンピュータ及び複数のコンピュータを接続するネットワークを含み、前記複数のコンピュータの分散処理によってブロックチェーンを作成するシステムを言う。ブロックチェーンには、要求されるトランザクションの内容が取り込まれる。 In this disclosure, a "blockchain system" refers to a system that includes multiple computers that can communicate with each other and a network that connects the multiple computers, and creates a blockchain through distributed processing of the multiple computers. The content of the requested transaction is captured in the blockchain.

ブロックチェーンを利用したシステムでは、ユーザの第1装置が、ブロックチェーンシステムへトランザクションを要求する場合、そのブロックチェーン技術に応じた特定のトークン(fee token)による手数料を、対価として支払うことが必要である。 In a system using blockchain, when a user's first device requests a transaction from the blockchain system, it is necessary to pay a fee in the form of a specific token (fee token) according to the blockchain technology.

例えば、Bitcoin(登録商標)ベースのブロックチェーンシステムでユーザがアセットの移動(売買の登録)処理を要求する場合、トランザクションの入力と出力との間に差額が設けられ、その差額分のBTC単位の手数料がマイナーに対し支払われる。Ethereum(登録商標)ベースのブロックチェーンシステムでは、トランザクションの実行の際、指定されたガス費用にしたがって、トランザクションのブロックチェーンへの取り込みに要したガス量に相当するETH単位の手数料がマイナーに対して支払われる。BitcoinでもEthereumでも、手数料が少なく設定してあるトランザクションは、ブロックチェーンに取り込まれにくい。 For example, in a Bitcoin (registered trademark)-based blockchain system, when a user requests a transaction to move assets (register a buy/sell), a difference is set between the input and output of the transaction, and a fee in BTC equal to the difference is paid to the miner. In an Ethereum (registered trademark)-based blockchain system, when a transaction is executed, a fee in ETH equivalent to the amount of gas required to include the transaction in the blockchain is paid to the miner according to the specified gas cost. In both Bitcoin and Ethereum, transactions with low fees are less likely to be included in the blockchain.

EOSベースのブロックチェーンシステムでは、トランザクションの要求主体が、トランザクションに要するストレージ容量と、演算(コンピューティング)リソースとを事前に確保しておく必要がある。具体的には、トランザクションを要求するユーザが、使用する装置を介し、ブロックチェーンシステムにおけるストレージ容量をEOSトークンで購入しておき、処理を実行するブロックチェーンアカウントに対してEOSトークンをステーク(預ける)しておくことが必要である。 In an EOS-based blockchain system, the entity requesting a transaction must secure the storage capacity and computing resources required for the transaction in advance. Specifically, the user requesting the transaction must purchase storage capacity in the blockchain system with EOS tokens via the device they are using, and stake (deposit) the EOS tokens in the blockchain account that will execute the processing.

ブロックチェーンを利用したシステムを継続稼働するにあたり、このような手数料の支払いを求める仕組みは、インセンティブデザインやDOS攻撃耐性の向上の観点で重要である。ユーザは、サービスを利用するために、ブロックチェーンシステムのアカウントによって取引所を介して必要なトークン(手数料トークン又はユーティリティトークン)を購入し、送付するといったトークン管理を行なう必要がある。サービスによっては、特別なトークンを発行して配布するようなこともあるが、これらの特別なトークンがあっても、手数料トークン又はユーティリティトークンと取引することが必要な場合もある。これらの多様なトークンの管理は、専門性の高い知識を要求し、一般ユーザにはハードルが高い。ブロックチェーン技術に馴染みがないユーザがブロックチェーンを利用したサービスを利用しない状況は、ブロックチェーンのマスアダプションに対する大きな課題である。 In order to continue operating a blockchain-based system, a mechanism for requesting payment of such fees is important in terms of incentive design and improving resistance to DOS attacks. In order to use the service, users must manage tokens by purchasing and sending the necessary tokens (fee tokens or utility tokens) via an exchange using their blockchain system account. Some services issue and distribute special tokens, but even if these special tokens are available, they may still need to be traded for fee tokens or utility tokens. Managing these various tokens requires highly specialized knowledge, making it a high hurdle for general users. The situation in which users who are unfamiliar with blockchain technology do not use blockchain-based services is a major challenge to the mass adoption of blockchain.

本開示のトランザクション委任方法は、ユーザが使用する第1装置から、ブロックチェーンシステムにおけるアカウントデータを記憶する第2装置が、前記ブロックチェーンシステムにおける前記ユーザの所望のトランザクションの実行を委任する委任データを、前記ブロックチェーンシステム外の通信によって受信し、前記第1装置から送信された委任データに基づき、前記所望のトランザクションを、前記ブロックチェーンシステムにおける前記ユーザのアカウントから実行する実行スマートコントラクトに実行させる委任トランザクションを作成し、前記アカウントデータに基づき、トランザクションの実行に要する手数料トークン又はユーティリティトークンの支払いを伴う前記委任トランザクションを、前記ブロックチェーンシステムへブロードキャストする。 The transaction delegation method disclosed herein involves a first device used by a user, a second device that stores account data in a blockchain system, receiving delegation data from the first device used by the user via communication outside the blockchain system, delegating the execution of the user's desired transaction in the blockchain system, creating a delegation transaction that causes an execution smart contract to execute the desired transaction from the user's account in the blockchain system based on the delegation data transmitted from the first device, and broadcasting the delegation transaction, which involves the payment of a fee token or utility token required to execute the transaction, to the blockchain system based on the account data.

本開示のトランザクション委任方法では、実際にサービスの提供を受けるユーザが使用する装置(第1装置)が、サービスを実現するブロックチェーンシステムにおける手数料トークン又はユーティリティトークンを所有する中継者(relayer)の装置(第2装置)へ、ユーザが実行することを希望するトランザクション(user transaction、以下user txともいう)を委任すること、即ちトランザクション委任(tx delegation)が可能である。 In the transaction delegation method disclosed herein, a device (first device) used by a user who actually receives the service can delegate a transaction (user transaction, hereafter also referred to as user tx) that the user wishes to execute to a relay device (second device) that owns a fee token or utility token in the blockchain system that realizes the service, i.e., transaction delegation (tx delegation).

これにより、ユーザが実行を希望するトランザクション(user tx)に対し必要な手数料トークン又はユーティリティトークンを管理する権限(アカウント)を有さない場合であっても、トランザクションの実行結果を得ることができる。ユーザは、サービスのベースとなっているブロックチェーンにおける手数料トークン若しくはユーティリティトークンの運用を意識する必要がない。権限を有している任意のトークンを委任手数料トークン(delegation fee token)として使用するか、又は委任手数料の支払いが不要である。 This allows users to obtain transaction execution results even if they do not have the authority (account) to manage the fee token or utility token required for the transaction (user tx) they wish to execute. Users do not need to be aware of the operation of fee tokens or utility tokens in the blockchain on which the service is based. They can use any token for which they have the authority as a delegation fee token, or they are not required to pay a delegation fee.

トランザクション委任(tx delegation)は、ブロックチェーン外で実行され、形式は問われない。しかしながら、ユーザから中継者への委任には、ユーザが実行を希望するトランザクション(user tx)を、委任される中継者が実行するために十分なデータが含まれることが必要である。 Transaction delegation (tx delegation) is done outside of the blockchain and can take any form. However, delegation from a user to an intermediary must contain enough data for the intermediary to execute the transaction the user wishes to execute (user tx).

トランザクションの委任には、入れ子構造を有する特殊トランザクション(nested tx)を採用してもよい。第1装置から第2装置へ送信される特殊トランザクションは、ユーザが実行を希望するトランザクション(user tx)を内部に含む意味で入れ子構造の構成を有する。特殊トランザクションは、ユーザが実行を希望するトランザクション(user tx)を決定するために必要なデータ及び、トランザクションの実行主体となるブロックチェーンアカウント(以下、executer accountともいう)とを含む。特殊トランザクションは、複数のトランザクション(user tx)を含んでもよい。この場合、特殊トランザクションは、トランザクション(user tx)毎に、必要なデータ及びブロックチェーンアカウントのデータを含む。 A special transaction (nested tx) having a nested structure may be adopted for delegating a transaction. The special transaction sent from the first device to the second device has a nested structure in the sense that it contains a transaction (user tx) that the user wishes to execute. The special transaction includes data necessary to determine the transaction (user tx) that the user wishes to execute, and a blockchain account (hereinafter also referred to as an executer account) that will execute the transaction. The special transaction may include multiple transactions (user tx). In this case, the special transaction includes the necessary data and blockchain account data for each transaction (user tx).

ユーザの第1装置から中継者の第2装置へ送信される特殊トランザクションは、委任条件(delegation condition、以下condともいう)と、署名(signature、以下sigともいう)とを含んでもよい。 The special transaction sent from the user's first device to the intermediary's second device may include a delegation condition (also referred to as a cond) and a signature (also referred to as a sig).

中継者の第2装置は、ユーザからのトランザクション委任に基づいて、ユーザが実行を希望するトランザクション(user tx)を入れ子構造で含む特殊トランザクションの形式で、委任のトランザクション(以下、委任トランザクション(delegation tx)という)を作成する。委任トランザクションは、ユーザから実行を希望されるトランザクション(user tx)、委任条件(cond)、及び署名(sig)を含んでよい。 The second device, which is the relay, creates a delegation transaction (hereinafter, referred to as a delegation transaction (delegation tx)) in the form of a special transaction that includes a transaction (user tx) that the user wishes to execute in a nested structure based on the transaction delegation from the user. The delegation transaction may include the transaction (user tx) that the user wishes to execute, a delegation condition (cond), and a signature (sig).

中継者の第2装置は、中継ユーザが権限を有するアカウント(Relayer Account)に基づいて委任トランザクションをブロックチェーンシステムへ要求する。委任トランザクションは、ブロックチェーンシステムに所属するスマートコントラクトであるアカウント呼び出しコントラクト(Account Caller Contract)に対して実行される。中継者の第2装置は、後述するように、委任トランザクションの実行をアカウント呼び出しコントラクトのみならず、トランザクションの実行主体となるブロックチェーンアカウントの実行者アカウントコントラクト(Executor Account Contract)へ直接的に要求してもよい。このときのブロックチェーンシステムへのトランザクションの実行要求に必要な手数料トークン又はユーティリティトークンのステーク等は、中継者のアカウントから実行される。 The second device of the relayer requests a delegation transaction to the blockchain system based on the account (Relayer Account) for which the relay user has authority. The delegation transaction is executed against the Account Caller Contract, which is a smart contract belonging to the blockchain system. As described below, the second device of the relayer may request the execution of the delegation transaction not only from the Account Caller Contract, but also directly from the Executor Account Contract of the blockchain account that is the executor of the transaction. Fee tokens or utility tokens, etc. required to request the execution of the transaction to the blockchain system at this time are executed from the relayer's account.

アカウント呼び出しコントラクトは、委任トランザクション(delegation tx)に基づき、ユーザのアカウントとして動作する実行者アカウントコントラクトに対してトランザクション(user tx)の実行をリクエストする。実行者アカウントコントラクトは、リクエストされたトランザクション(user tx)を実行すると共に、委任手数料トークンのユーザから中継者への支払いを実行する。 The Account Invoke contract requests the Executor Account contract, acting as the user's account, to execute a transaction (user tx) based on the delegation transaction (delegation tx). The Executor Account contract executes the requested transaction (user tx) and also performs the payment of the delegation fee token from the user to the intermediary.

これにより、サービスの提供を受けるユーザは、サービスのベースとなっているブロックチェーンシステムにおける多様なトークンの運用を意識することなくサービスを享受することができる。 This allows users of the service to enjoy the service without being aware of the operation of various tokens in the blockchain system on which the service is based.

図1は、本開示のシステム100の概要図である。システムは、ブロックチェーンシステム300外のユーザ(user)の第1装置1と、第1装置1からアクセスが可能な、中継者が管理する第2装置2とを含む。システム100は、ブロックチェーンシステム300内に、アカウント呼び出しコントラクト(Account Caller Contract)301、及び、実行者アカウントコントラクト(Executor Account Contract)302のインスタンスを含む。本開示において「ブロックチェーンシステム」は、相互に通信接続が可能な複数のコンピュータ及び複数のコンピュータを接続するネットワークを含み、前記複数のコンピュータの分散処理によってブロックチェーンを作成するシステムを言う。 Figure 1 is a schematic diagram of a system 100 of the present disclosure. The system includes a first device 1 of a user outside the blockchain system 300, and a second device 2 managed by an intermediary that can be accessed from the first device 1. The system 100 includes an instance of an Account Caller Contract 301 and an Executor Account Contract 302 within the blockchain system 300. In this disclosure, a "blockchain system" refers to a system that includes multiple computers that can be connected to each other and a network that connects the multiple computers, and creates a blockchain through distributed processing of the multiple computers.

本開示のシステム100では、ユーザの第1装置1は、ブロックチェーンシステム300に対応する秘密鍵を記憶しているが、ブロックチェーンシステム300の手数料トークン又はユーティリティトークンが対応付けられたアカウントを記憶していなくてよい。ただし、第1装置1は、ブロックチェーンをベースとしたサービスの提供を受けるため、ブロックチェーンシステム300における処理の結果を取得することができる。例えば第1装置1は、ブロックチェーンシステム300から、処理結果をWebベースで取得できる。また第1装置1は、第2装置2との間でデータの送受信が可能である。 In the system 100 of the present disclosure, the user's first device 1 stores a private key corresponding to the blockchain system 300, but does not need to store an account associated with a fee token or utility token of the blockchain system 300. However, the first device 1 can obtain the results of processing in the blockchain system 300 in order to receive blockchain-based services. For example, the first device 1 can obtain the processing results from the blockchain system 300 on a web basis. The first device 1 can also send and receive data to and from the second device 2.

第2装置2は、ブロックチェーンシステム300における手数料トークン及びユーティリティトークンの移動が可能なアカウント(relayer account)を持つ中継者によって管理される。第2装置2は、ユーザの第1装置1との間でデータの送受信が可能であり、中継者のアカウント(relayer account)に基づきブロックチェーンシステム300にてトランザクションを実行できる。つまり第2装置2は、手数料トークン又はユーティリティトークンの支払い(ステーク)が可能である。 The second device 2 is managed by a relayer who has an account in the blockchain system 300 through which fee tokens and utility tokens can be transferred. The second device 2 can send and receive data with the user's first device 1, and can execute transactions in the blockchain system 300 based on the relayer's account. In other words, the second device 2 can pay (stake) fee tokens or utility tokens.

本開示のシステム100におけるブロックチェーンシステム300は、アカウントに対してスマートコントラクトをデプロイ(実行可能な状態とする)できる種類のブロックチェーン技術を用いる。以下の例では、ブロックチェーンシステム300はEthereumのブロックチェーン技術を用いるとして説明するが、これに限られない。ブロックチェーンシステム300はEOSベースであってもよい。 The blockchain system 300 in the system 100 of the present disclosure uses a type of blockchain technology that allows smart contracts to be deployed (made executable) to accounts. In the following example, the blockchain system 300 is described as using Ethereum blockchain technology, but is not limited to this. The blockchain system 300 may also be based on EOS.

ブロックチェーンシステム300には、アカウント呼び出しコントラクト301、実行者アカウントコントラクト302のインスタンスが生成される。後述するように(実施例4,6)、これらは同一のインスタンスであってもよい。ブロックチェーンシステム300は、複数のアプリケーションに対応する多様な複数のコントラクト303のインスタンスを含む。またブロックチェーンシステムは、委任手数料トークンを管理する委任手数料トークン管理コントラクト304が各々生成されている。 In the blockchain system 300, instances of an account call contract 301 and an executor account contract 302 are generated. As described below (Examples 4 and 6), these may be the same instance. The blockchain system 300 includes a variety of multiple contract 303 instances corresponding to multiple applications. In addition, the blockchain system generates a delegation fee token management contract 304 that manages delegation fee tokens.

ブロックチェーンシステム300に存在する多様なアプリケーションに対応するスマートコントラクト303の内、ユーザが希望する処理を実行する対象コントラクト(Target Contract)303に対し、その処理をリクエストするためには、手数料トークン又はユーティリティトークンを支払うための管理権限を有するアカウントによるトランザクション実行処理が必要である。しかしながら、ブロックチェーンシステム300における手数料トークン又はユーティリティトークンを含む多様なトークンの取引には、ユーザにブロックチェーン技術に対する知識等が必要である。 Of the smart contracts 303 corresponding to various applications present in the blockchain system 300, to request a process from a target contract 303 that executes the process desired by the user, a transaction execution process by an account with administrative authority to pay a fee token or utility token is required. However, to trade various tokens including fee tokens or utility tokens in the blockchain system 300, the user needs knowledge of blockchain technology, etc.

本開示のシステム100では、実際にサービスの提供を受けるユーザの装置(第1装置)1は、サービスを実現するブロックチェーンシステム300の手数料トークン又はユーティリティトークンを所有し移転できる中継者の装置(第2装置)2へ、ユーザが実行を希望するトランザクション(user tx)を委任する。委任により、ユーザがトークンを管理できなくとも、ブロックチェーンシステム300におけるトランザクションの実行結果の享受が可能となる。 In the system 100 of the present disclosure, the user device (first device) 1 that actually receives the service delegates the transaction (user tx) that the user wishes to execute to the relay device (second device) 2 that owns and can transfer fee tokens or utility tokens of the blockchain system 300 that realizes the service. By delegating, the user can enjoy the results of executing a transaction in the blockchain system 300 even if he or she cannot manage the tokens.

図2は、本開示のシステム100におけるトランザクションの委任処理手順の概要図である。 Figure 2 is an overview of the transaction delegation processing procedure in the system 100 of the present disclosure.

(1)サービスにおける処理を希望するユーザ(第1装置1)は、ブロックチェーンで実行したいトランザクション(user tx)の実行主体となるブロックチェーンアカウント(実行者アカウント:executer account)を特定するデータを決定、又は作成する。 (1) A user (first device 1) who wishes to process a transaction in the service determines or creates data that identifies the blockchain account (executor account) that will be the executor of the transaction (user tx) that the user wishes to execute on the blockchain.

(1)の段階でユーザ(第1装置1)は、ブロックチェーンシステム300で実行者アカウントコントラクトによって実行されるトランザクション(user tx)を構成するためのデータを決定、又は作成する。 At step (1), the user (first device 1) determines or creates data for constituting a transaction (user tx) to be executed by the executor account contract in the blockchain system 300.

サービスが例えばゲームである場合、ユーザは、ブロックチェーンシステム300の分散アプリケーションによって実現されるゲームでのアイテムの生成又は譲渡のトランザクションの実行を希望することが考えられる(勿論、サービスはゲームに限られない)。この場合、ユーザが実行を希望するトランザクション(user tx)を実行するためのブロックチェーンアカウント(executer account)は例えば、ユーザのブロックチェーンシステムにおけるアカウントである。また、希望のトランザクション(user tx)が、アイテムの生成又は譲渡である場合、トランザクション(user tx)を構成するためのデータは、アイテムを特定するデータ、譲渡先を特定するデータ等を含むとよい。 If the service is, for example, a game, the user may wish to execute a transaction to generate or transfer an item in the game, which is realized by a distributed application of the blockchain system 300 (of course, the service is not limited to games). In this case, the blockchain account (executer account) for executing the transaction (user tx) that the user wishes to execute is, for example, the user's account in the blockchain system. Furthermore, if the desired transaction (user tx) is the generation or transfer of an item, the data for constituting the transaction (user tx) may include data identifying the item, data identifying the transferee, etc.

(1)の段階でユーザ(第1装置1)は、ユーザのブロックチェーンアカウント(executer account)と、実行を希望するトランザクション(user tx)とをユーザ自身が指定したことを、検証できる方法(例えば電子署名)によってこの検証に必要なデータ(sig)を取得する。 At step (1), the user (first device 1) obtains the data (sig) necessary for this verification using a method (e.g., a digital signature) that can verify that the user has specified the user's blockchain account (executor account) and the transaction (user tx) that he or she wishes to execute.

(2)ユーザの第1装置1は、ユーザのブロックチェーンアカウント(executer account)と、実行を希望するトランザクション(user tx)と、検証に必要なデータとを、ブロックチェーンシステム300外で中継者の第2装置2へ送信する。これにより、中継者にブロックチェーンアカウント(executer account)と、希望するトランザクション(user tx)とが伝わる。 (2) The user's first device 1 transmits the user's blockchain account (executor account), the transaction to be executed (user tx), and data required for verification to the intermediary's second device 2 outside the blockchain system 300. This conveys the blockchain account (executor account) and the desired transaction (user tx) to the intermediary.

(3)中継者の第2装置2は、ユーザの第1装置1から受信したデータに基づいて、ユーザに対応するブロックチェーンアカウント(executer account)と、希望するトランザクション(user tx)とを埋め込んだ委任トランザクション(delegation tx)を作成する。中継者の第2装置2は、中継者のアカウント、又は、中継者が使用できる他のアカウント(任意のアカウント)の権限によって、委任トランザクションをブロックチェーンシステム300へブロードキャストする。 (3) The second device 2 of the relay creates a delegation transaction (delegation tx) that embeds the blockchain account (executor account) corresponding to the user and the desired transaction (user tx) based on the data received from the first device 1 of the user. The second device 2 of the relay broadcasts the delegation transaction to the blockchain system 300 with the authority of the relay's account or another account (any account) that the relay can use.

(4)ブロードキャストの伝達によって、ブロックチェーンシステム300内のユーザに対応するブロックチェーンアカウント(executer account)によるユーザが実行を希望するトランザクション(user tx)の実行が実現される。このトランザクション(user tx)の実行に必要な手数料トークン又はユーティリティトークンは、中継者が委任トランザクションをブロードキャストする際に指定したアカウント(中継者のアカウント、又は他のアカウント)から支払われる。 (4) By transmitting the broadcast, the transaction (user tx) that the user wishes to execute is executed by the blockchain account (executor account) corresponding to the user in the blockchain system 300. The fee tokens or utility tokens required to execute this transaction (user tx) are paid from the account (the relay's account or another account) specified by the relay when broadcasting the delegation transaction.

このようにして、実際にサービスの提供を受けるユーザが使用する装置(第1装置)1が、ブロックチェーンシステム300における手数料トークン又はユーティリティトークンを所有する中継者の装置(第2装置)2へ、ユーザが実行を希望するトランザクション(user tx)を委任する。委任により、ユーザが手数料トークン又はユーティリティトークンを管理する権限を有していなくとも、ブロックチェーンシステム300におけるトランザクションの実行が可能となる。 In this way, the device (first device) 1 used by the user who actually receives the service delegates the transaction (user tx) that the user wishes to execute to the relay device (second device) 2 that owns the fee token or utility token in the blockchain system 300. By delegating, it becomes possible to execute a transaction in the blockchain system 300 even if the user does not have the authority to manage the fee token or utility token.

これにより、サービスの提供を受けるユーザは、サービスのベースとなっているブロックチェーンシステム300の手数料トークン又はユーティリティトークンの運用を意識することなく、トランザクションを実行させることができる。 This allows users receiving the service to execute transactions without being aware of the operation of the fee tokens or utility tokens of the blockchain system 300 on which the service is based.

このような処理を実現するためのシステムの具体的な構成について説明する。 The specific configuration of the system to achieve this processing will be explained below.

図3は、第1装置1の構成を示すブロック図である。第1装置1は、例えばスマートフォン、又はタブレット端末である。第1装置1は、処理部10、記憶部11、通信部12、表示部13、及び操作部14を備える。 Figure 3 is a block diagram showing the configuration of the first device 1. The first device 1 is, for example, a smartphone or a tablet terminal. The first device 1 includes a processing unit 10, a memory unit 11, a communication unit 12, a display unit 13, and an operation unit 14.

処理部10は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)等のプロセッサと、メモリ等を用いる。なお処理部10は、プロセッサ、メモリ、更には記憶部11及び通信部12を集積した1つのハードウェア(SoC:System On a Chip)として構成されていてもよい。 The processing unit 10 uses a processor such as a CPU (Central Processing Unit) or a GPU (Graphics Processing Unit), and a memory, etc. The processing unit 10 may be configured as a single piece of hardware (SoC: System On a Chip) that integrates the processor, memory, and further the storage unit 11 and communication unit 12.

記憶部11はフラッシュメモリを用い、第1プログラム1Pを始めとする処理部10が参照するプログラム、データが記憶される。第1プログラム1Pは、コンピュータを、本開示のシステム100の第1装置1として機能させるためのプログラムである。記憶部11には、図3に示すように、ブロックチェーンシステム300におけるユーザの秘密鍵を記憶していてもよい。秘密鍵は、処理部10のメモリ又は記憶部11に書き換え不可に記憶されているとよい(ウォレットのチップ化)。 The storage unit 11 uses a flash memory and stores programs and data referenced by the processing unit 10, including the first program 1P. The first program 1P is a program for causing a computer to function as the first device 1 of the system 100 of the present disclosure. As shown in FIG. 3, the storage unit 11 may store a private key of a user in the blockchain system 300. The private key may be stored in the memory of the processing unit 10 or in the storage unit 11 in a non-rewritable manner (a wallet on a chip).

記憶部11に記憶されている第1プログラム1Pは、コンピュータから読み取り可能な記憶媒体8に記憶されていた第1プログラム8Pを処理部10が読み出して記憶部11に記憶したものであってもよい。 The first program 1P stored in the memory unit 11 may be a first program 8P stored in a computer-readable storage medium 8 that is read by the processing unit 10 and stored in the memory unit 11.

通信部12は、第2装置2及び他の通信装置との通信接続を実現する通信モジュールである。通信部12は、ネットワークカード、無線通信デバイス又はキャリア通信用モジュールを用いる。 The communication unit 12 is a communication module that realizes a communication connection with the second device 2 and other communication devices. The communication unit 12 uses a network card, a wireless communication device, or a carrier communication module.

表示部13は液晶パネル又は有機ELディスプレイ等のディスプレイ装置を用いる。操作部14は、ユーザの操作を受け付けるインタフェースであり、物理ボタン、ディスプレイ内蔵のタッチパネルデバイス、スピーカ及びマイクロフォン等を用いる。操作部14は、物理ボタン又はタッチパネルにて表示部13で表示している画面上で操作を受け付けてもよいし、マイクロフォンにて入力音声から操作内容を認識し、スピーカで出力する音声との対話形式で操作を受け付けてもよい。 The display unit 13 uses a display device such as a liquid crystal panel or an organic EL display. The operation unit 14 is an interface that accepts user operations, and uses physical buttons, a touch panel device built into the display, a speaker, a microphone, etc. The operation unit 14 may accept operations on a screen displayed on the display unit 13 using physical buttons or a touch panel, or may recognize the operation content from input voice using a microphone and accept the operation in an interactive format with the voice output from a speaker.

図4は、中継者の第2装置2の構成を示すブロック図である。第2装置2も第1装置1同様、スマートフォン又はタブレット端末等の通信端末機器である。第2装置2は、第2コンピュータであってもよいし、デスクトップ型又はラップトップ型パーソナルコンピュータであってもよい。第2装置2は、処理部20、記憶部21、及び通信部22を備える。 Figure 4 is a block diagram showing the configuration of the second device 2 of the relay. Like the first device 1, the second device 2 is a communication terminal device such as a smartphone or a tablet terminal. The second device 2 may be a second computer, or a desktop or laptop personal computer. The second device 2 includes a processing unit 20, a memory unit 21, and a communication unit 22.

処理部20は、CPU、GPU等のプロセッサと、メモリ等を用いる。処理部20は、記憶部21に記憶されている第2プログラム2Pに基づき、第1装置1から送信されたデータを取得し、委任トランザクションの作成、トランザクションの実行を実現する。記憶部21は、ハードディスク又はフラッシュメモリを用い、第2プログラム2Pを始めとする処理部20が参照するプログラム、データを記憶する。 The processing unit 20 uses a processor such as a CPU or a GPU, and a memory, etc. Based on the second program 2P stored in the memory unit 21, the processing unit 20 acquires data sent from the first device 1, creates a delegation transaction, and executes the transaction. The memory unit 21 uses a hard disk or flash memory, and stores programs and data referenced by the processing unit 20, including the second program 2P.

記憶部21に記憶されている第2プログラム2Pは、コンピュータから読み取り可能な記憶媒体9に記憶されていた第2プログラム9Pを処理部10が読み出して記憶部11に記憶したものであってもよい。 The second program 2P stored in the memory unit 21 may be a second program 9P stored in a computer-readable storage medium 9 that is read by the processing unit 10 and stored in the memory unit 11.

通信部22は、第1装置1又はブロックチェーンシステム300との通信接続を実現する通信モジュールである。通信部22は、ネットワークカード、無線通信デバイス又はキャリア通信用モジュールを用いる。 The communication unit 22 is a communication module that realizes a communication connection with the first device 1 or the blockchain system 300. The communication unit 22 uses a network card, a wireless communication device, or a carrier communication module.

図5は、ブロックチェーンシステム300におけるノード30の構成を示すブロック図である。ノード30は、サーバコンピュータであってもよいし、デスクトップ型又はラップトップ型パーソナルコンピュータであってもよいし、スマートフォン等の通信端末機器であってもよい。ノード30は、処理部31、記憶部32及び通信部33を備える。またノード30は、少なくとも処理部31及び通信部33を備える装置であれば、処理部31の一部によってノードの一部又は全部を構成することができる。 Figure 5 is a block diagram showing the configuration of a node 30 in a blockchain system 300. The node 30 may be a server computer, a desktop or laptop personal computer, or a communication terminal device such as a smartphone. The node 30 includes a processing unit 31, a memory unit 32, and a communication unit 33. Furthermore, as long as the node 30 is a device that includes at least the processing unit 31 and the communication unit 33, a part of the processing unit 31 can constitute part or all of the node.

処理部31は、CPU、GPU等のプロセッサと、メモリ等を用いる。処理部31は、プロセッサ、メモリ、更には記憶部32及び通信部33を集積した1つのハードウェアとして構成されていてもよい。処理部31のメモリには、ノード3夫々独自に所有する秘密鍵が記憶されているとよい。そして処理部31は、記憶部32に記憶されているノードプログラムに基づいた各処理を実行し、汎用コンピュータをブロックチェーンシステム300におけるノードとして機能させる。 The processing unit 31 uses a processor such as a CPU or GPU, and a memory, etc. The processing unit 31 may be configured as a single piece of hardware that integrates a processor, a memory, and further a storage unit 32 and a communication unit 33. The memory of the processing unit 31 may store a private key that is unique to each node 3. The processing unit 31 then executes each process based on the node program stored in the storage unit 32, and causes the general-purpose computer to function as a node in the blockchain system 300.

記憶部32は、ハードディスク又はフラッシュメモリを用い、ノードプログラムを始めとする処理部31が参照するプログラム、データを記憶する。記憶部32は、ブロックチェーンを記憶する。ノードプログラムには、後述するスマートコントラクト(トランザクション実行に対する所定の演算処理を実行する処理部31)として機能させるためのプログラムが含まれる。上述の秘密鍵は記憶部32に記憶されてもよい。記憶部32は、秘密鍵に基づく公開鍵及びアドレスを記憶してもよい。 The storage unit 32 uses a hard disk or flash memory and stores programs and data referenced by the processing unit 31, including the node program. The storage unit 32 stores the blockchain. The node program includes a program for functioning as a smart contract (the processing unit 31 that executes predetermined calculation processing for transaction execution), which will be described later. The private key described above may be stored in the storage unit 32. The storage unit 32 may store a public key and an address based on the private key.

通信部33は、ノード30の相互通信を実現する通信モジュールである。通信部33は、ネットワークカード、光通信用デバイス、又は無線通信デバイス等を用いる。 The communication unit 33 is a communication module that realizes mutual communication between the nodes 30. The communication unit 33 uses a network card, an optical communication device, a wireless communication device, or the like.

図6は、システム100における処理の概要図である。ユーザの第1装置1は、トランザクションの委任を目的として、ユーザが実行を希望するトランザクション(user tx)を作成するために必要なデータ及び、トランザクションの実行主体となるブロックチェーンアカウント(executer account)とを含む中継者宛てのデータを作成する(図2中の(1)に対応)。図6に示す例では、このユーザのトランザクション(user tx)と、ユーザに対応するブロックチェーンアカウント(executer account)とを含み、且つ、トランザクション条件(cond)及び検証方法(sig)とが作成され、中継者の第2装置2へ送信される(図2中の(2)に対応)。 Figure 6 is an overview of the processing in the system 100. The user's first device 1 creates data addressed to the intermediary, including data required to create the transaction (user tx) that the user wishes to execute, and the blockchain account (executor account) that will execute the transaction, for the purpose of delegating the transaction (corresponding to (1) in Figure 2). In the example shown in Figure 6, data including the user's transaction (user tx) and the blockchain account (executor account) corresponding to the user, as well as transaction conditions (cond) and verification method (sig), are created and sent to the intermediary's second device 2 (corresponding to (2) in Figure 2).

中継者の第2装置2は、第1装置1から送信されたデータの内容を元に、委任トランザクション(delegation tx)を作成する(図2中の(3)に対応)。委任トランザクションは、ユーザが実行を希望するトランザクション(user tx)、委任条件(cond)、及び署名(sig)を入れ子構造で含む特殊トランザクション(nested tx)である。 The second device 2, which acts as a relay, creates a delegation transaction (delegation tx) based on the contents of the data sent from the first device 1 (corresponding to (3) in Figure 2). The delegation transaction is a special transaction (nested tx) that includes a transaction that the user wishes to execute (user tx), a delegation condition (cond), and a signature (sig) in a nested structure.

第2装置2は、ブロックチェーンシステム300に対し、トランザクションを実行できる手数料トークン又はユーティリティトークンを所有している。第2装置2は、中継者が権限を有するアカウント(relayer account)に基づいて委任トランザクションを実行する(図2中の(3)に対応)。委任トランザクションは、ブロックチェーン内のアカウント呼び出しコントラクト301に対して実行される。 The second device 2 possesses a fee token or utility token that can execute a transaction in the blockchain system 300. The second device 2 executes a delegation transaction based on an account for which the relayer has authority (corresponding to (3) in FIG. 2). The delegation transaction is executed against an account call contract 301 in the blockchain.

アカウント呼び出しコントラクト301は、委任トランザクション(delegation tx)に基づき、ユーザのアカウントとして動作する実行者アカウントコントラクト302に対してトランザクション(user tx)の実行をリクエストする。実行者アカウントコントラクト302は、リクエストされたトランザクション(user tx)を対象コントラクト303で実行する。実行者アカウントコントラクト302は、リクエストされたトランザクション(user tx)を実行すると共に、委任手数料トークン管理コントラクト304に対し、委任手数料の中継者への支払(移転)を含むトランザクションを実行する。委任手数料は、手数料トークン又はユーティリティトークンと異なる。 The account call contract 301 requests the execution of a transaction (user tx) to the executor account contract 302 acting as a user's account based on a delegation transaction (delegation tx). The executor account contract 302 executes the requested transaction (user tx) in the target contract 303. The executor account contract 302 executes the requested transaction (user tx) and also executes a transaction including the payment (transfer) of the delegation fee to the intermediary to the delegation fee token management contract 304. The delegation fee is different from the fee token or utility token.

図7は、委任トランザクション作成処理手順の一例を示すシーケンス図である。図7のシーケンス図が示す処理手順は、図2又は図6における(2)までの処理手順の詳細に対応する。 Figure 7 is a sequence diagram showing an example of a delegation transaction creation process. The process shown in the sequence diagram of Figure 7 corresponds to the details of the process up to (2) in Figure 2 or Figure 6.

第1装置1の処理部10は、記憶部11に記憶されている第1プログラム1Pに基づき、ユーザが実行を希望するトランザクション(user tx)の内容、委任条件(cond)の初期値を作成する(ステップS101)。トランザクション(user tx)の内容は、トランザクションの対象コントラクト303のアドレス、対象コントラクト303における対象関数(target function)の識別子、及び対象関数の引数データを含む。トランザクションの委任条件は、ユーザの秘密鍵に対応するアドレス、実行者アカウントコントラクト302のアドレスを決定するために必要なデータを含む。委任条件は更に、委任手数料トークン管理コントラクト304のアドレス、委任手数料(トークン)の支払先のアドレス、及び手数料の決定に必要なデータを含む。 The processing unit 10 of the first device 1 creates the contents of the transaction (user tx) that the user wishes to execute and the initial value of the delegation condition (cond) based on the first program 1P stored in the storage unit 11 (step S101). The contents of the transaction (user tx) include the address of the target contract 303 of the transaction, the identifier of the target function in the target contract 303, and the argument data of the target function. The delegation condition of the transaction includes the address corresponding to the user's private key and data necessary to determine the address of the executor account contract 302. The delegation condition further includes the address of the delegation fee token management contract 304, the address of the payment destination of the delegation fee (token), and data necessary to determine the fee.

処理部10は、作成したトランザクション(user tx)の内容及び委任条件(cond)の初期値を表示部13に表示する(ステップS102)。ステップS102で表示されるトランザクションの内容は、アドレス、識別子及び引数データを、それらをテキストで出力したものであってもよいし、コントラクトの名称、識別するアイコン等によって出力したものであってもよい。表示される委任条件も、テキストで出力したものであってもよいし、アイコンで出力したものであってもよい。 The processing unit 10 displays the content of the created transaction (user tx) and the initial value of the delegation condition (cond) on the display unit 13 (step S102). The content of the transaction displayed in step S102 may be the address, identifier, and argument data output in text form, or may be output using the name of the contract, an identifying icon, etc. The displayed delegation conditions may also be output in text form, or may be output using an icon.

処理部10は、ユーザによるトランザクション(user tx)の内容及び委任条件(cond)の編集を受け付ける(ステップS103)。変更がない場合にはステップS103の処理はスキップされる。 The processing unit 10 accepts editing of the contents of the transaction (user tx) and the delegation conditions (cond) by the user (step S103). If there are no changes, the processing of step S103 is skipped.

処理部10は、実行が希望されるトランザクション(user tx)の内容及び委任条件(cond)の確定を受け付ける(ステップS104)。 The processing unit 10 accepts confirmation of the content of the transaction (user tx) to be executed and the delegation conditions (cond) (step S104).

処理部10は、確定されたトランザクション(user tx)の内容及び委任条件(cond)のデータに対し、ユーザの秘密鍵に基づく電子署名を生成する(ステップS105)。秘密鍵は、第1装置1の記憶部11に安全に記憶されていてもよいし、ユーザからの入力を受け付けたものであってもよい。 The processing unit 10 generates an electronic signature based on the user's private key for the content of the confirmed transaction (user tx) and the data of the delegation condition (cond) (step S105). The private key may be securely stored in the storage unit 11 of the first device 1, or may be input by the user.

処理部10は、確定されたトランザクション(user tx)の内容、委任条件(cond)及びステップS105で取得した電子署名を中継者の第2装置2へ送信する(ステップS106)。トランザクション(user tx)の内容は、トランザクションの対象コントラクト303のアドレス、対象関数(target function)の識別子、及び対象関数の引数データを含む。 The processing unit 10 transmits the content of the confirmed transaction (user tx), the delegation condition (cond), and the electronic signature acquired in step S105 to the second device 2 of the intermediary (step S106). The content of the transaction (user tx) includes the address of the target contract 303 of the transaction, the identifier of the target function, and the argument data of the target function.

第2装置2の処理部20は、トランザクション(user tx)の内容、委任条件(cond)を電子署名付きで受信する(ステップS201)。ステップS201において処理部20は、送信された内容に基づいて、引き受けることができる委任であるか否かを判断し、引き受けられない委任である場合には、ユーザの第1装置へ返答するようにしてもよい。 The processing unit 20 of the second device 2 receives the contents of the transaction (user tx) and the delegation conditions (cond) with an electronic signature (step S201). In step S201, the processing unit 20 determines whether the delegation can be accepted based on the transmitted contents, and if the delegation cannot be accepted, may respond to the user's first device.

処理部20は、受信したトランザクション(user tx)の内容、委任条件(cond)及び電子署名を埋め込んだ委任トランザクション(delegation tx)を作成する(ステップS202)。ステップS202で作成される委任トランザクション(delegation tx)は、入れ子構造を有する特殊トランザクション(nested tx)である。 The processing unit 20 creates a delegation transaction (delegation tx) that embeds the content of the received transaction (user tx), the delegation condition (cond), and the electronic signature (step S202). The delegation transaction (delegation tx) created in step S202 is a special transaction (nested tx) that has a nested structure.

処理部20は、ステップS202で作成した委任トランザクションに対し、第2装置2を管理する中継者に対応付けられているブロックチェーンシステム300におけるブロックチェーンアカウント(relayer account)の秘密鍵で電子署名を生成する(ステップS203)。 The processing unit 20 generates an electronic signature for the delegation transaction created in step S202 using the private key of a blockchain account (relayer account) in the blockchain system 300 that is associated with the relay that manages the second device 2 (step S203).

処理部20は、ステップS202で作成した委任トランザクション(delegation tx)に、ステップS203で生成した電子署名を埋め込み(ステップS204)、委任トランザクション(delegation tx)の作成処理が完了する。 The processing unit 20 embeds the electronic signature generated in step S203 in the delegation transaction (delegation tx) created in step S202 (step S204), and the process of creating the delegation transaction (delegation tx) is completed.

ステップS202で作成される委任トランザクションは、委任トランザクションの対象であるアカウント呼び出しコントラクトのアドレス及び呼び出し関数(call function)の識別子を含む。委任トランザクションには、呼び出し関数の引数として実行したいユーザのトランザクション(user tx)の内容を含む。このトランザクションの内容は、対象コントラクトのアドレスと、そのコントラクトにおける対象の関数(target function)の識別子と、関数(target function)に入力するデータとである。委任条件は、ユーザの秘密鍵に対応するアドレスと、実行アカウントコントラクトのアドレスの決定に必要なデータとを含む。実行アカウントコントラクトのアドレスの決定に必要なデータは、アドレスそのもの、又は、仮想アカウントコントラクト(virtual account contract)を利用する場合の任意の値若しくは文字列(いわゆるsalt)である。委任条件は更に、委任手数料に関する条件を含む。委任手数料は、手数料トークン又はユーティリティトークンと異なる。委任手数料に関する条件は、委任手数料として支払うトークンを管理する委任手数料トークン管理コントラクト304のアドレスを含む。委任手数料に関する条件は、委任手数料の支払先、即ち中継者が受け取るためのアドレスと、委任手数料の決定に必要なデータを含む。委任手数料の決定に必要なデータは例えば、委任手数料として支払うトークン(delegation fee token)と手数料トークンとのレート、ユーティリティトークンとのレートである。 The delegation transaction created in step S202 includes the address of the account call contract that is the target of the delegation transaction and the identifier of the call function. The delegation transaction includes the contents of the user's transaction (user tx) to be executed as an argument of the call function. The contents of this transaction are the address of the target contract, the identifier of the target function in the contract, and the data to be input to the function. The delegation conditions include an address corresponding to the user's private key and data required to determine the address of the execution account contract. The data required to determine the address of the execution account contract is the address itself, or an arbitrary value or string (so-called salt) when using a virtual account contract. The delegation conditions further include conditions regarding the delegation fee. The delegation fee is different from the fee token or utility token. The conditions regarding the delegation fee include the address of the delegation fee token management contract 304 that manages the token to be paid as the delegation fee. The conditions regarding the delegation fee include the payee of the delegation fee, i.e., the address for the relay to receive it, and data necessary for determining the delegation fee. The data necessary for determining the delegation fee is, for example, the rate between the token to be paid as the delegation fee (delegation fee token) and the fee token, and the rate between the token and the utility token.

委任トランザクション(delegation tx)に含まれるべき委任手数料に関する条件が指定されない場合、又は、無指定に相当する条件が設定されていると判断される場合であっても、ユーザが実行を希望するトランザクション(user tx)の実行に必要な手数料トークン、又はユーティリティトークンは、中継者のアカウントに基づいて支払われる。ユーザは、委任手数料を支払わない場合がある。また、委任手数料として支払うトークン(delegation fee token)として指定できるのは、ユーザが実行したいと希望するトランザクションの対象コントラクト303と同一のブロックチェーンシステム300に存在するトークン、即ち流通可能なトークンである。 Even if the conditions regarding the delegation fee to be included in the delegation transaction (delegation tx) are not specified, or if it is determined that the conditions equivalent to no specification are set, the fee token or utility token required to execute the transaction (user tx) that the user wishes to execute is paid based on the account of the intermediary. The user may not pay the delegation fee. In addition, the token that can be specified as the token to be paid as the delegation fee (delegation fee token) is a token that exists in the same blockchain system 300 as the target contract 303 of the transaction that the user wishes to execute, i.e., a token that can be circulated.

図8は、トランザクションの委任実行処理手順の一例を示すシーケンス図である。図8のシーケンス図が示す処理手順は、図2又は図6における(3)から(4)までの処理手順を含む。 Figure 8 is a sequence diagram showing an example of a transaction delegation execution processing procedure. The processing procedure shown in the sequence diagram of Figure 8 includes the processing procedures (3) to (4) in Figure 2 or Figure 6.

中継者の第2装置2は、作成した委任トランザクション(delegation tx)をブロードキャストする(ステップS205)。 The second device 2, which is the relay, broadcasts the created delegation transaction (delegation tx) (step S205).

ステップS205による委任トランザクションがブロードキャストされると、ブロックチェーンシステム300のノード30によって、委任トランザクションはブロックチェーンに取り込まれる。ブロックチェーンに取り込まれた委任トランザクションを基に、委任トランザクションに含まれているアドレスのアカウント呼び出しコントラクト301の呼び出し関数が実行され、以下の処理が進行する。以下の処理は、署名の正当性の検証(S302)で失敗しない限り、アトミックに、分割できないものとして実行される。 When the delegation transaction in step S205 is broadcast, the delegation transaction is incorporated into the blockchain by node 30 of the blockchain system 300. Based on the delegation transaction incorporated into the blockchain, the call function of the account call contract 301 of the address included in the delegation transaction is executed, and the following processing proceeds. The following processing is executed atomically and indivisibly unless the verification of the validity of the signature (S302) fails.

アカウント呼び出しコントラクト301のインスタンス(以下、単にアカウント呼び出しコントラクトという)は、呼び出し関数の実行により、委任トランザクションに含まれる実行者アカウントコントラクト302のアドレスの決定に必要なデータに基づいてアドレスを決定する(ステップS301)。 The instance of the account call contract 301 (hereinafter simply referred to as the account call contract) executes the call function to determine the address based on the data required to determine the address of the executor account contract 302 included in the delegation transaction (step S301).

アカウント呼び出しコントラクト301は、委任トランザクションに含まれる、ユーザが実行を希望するトランザクション(user tx)の内容及び委任条件に対する電子署名の正当性を検証する(ステップS302)。 The account call contract 301 verifies the content of the transaction (user tx) that the user wishes to execute, which is included in the delegation transaction, and the validity of the electronic signature for the delegation conditions (step S302).

ステップS302の検証にて、署名が正当であると成功した場合、アカウント呼び出しコントラクト301は、次の処理を実行する。ステップS302の検証にて、署名が正当でないと判断された場合、アカウント呼び出しコントラクト301はそのまま処理を終了する。 If the verification in step S302 is successful in determining that the signature is valid, the account call contract 301 executes the next process. If the verification in step S302 determines that the signature is not valid, the account call contract 301 ends the process.

アカウント呼び出しコントラクト301は、ステップS301で決定したアドレスの実行者アカウントコントラクト302に対して、ユーザが実行を希望するトランザクションに基づき、対象コントラクト303における対象関数(target function)の実行を指示する(ステップS303)。ステップS303においてアカウント呼び出しコントラクトは、ユーザが実行を希望するトランザクションの対象コントラクト303のアドレス、対象関数(target function)の識別子及び対象関数に入力するデータを、実行者アカウントコントラクトへ渡す。 The account call contract 301 instructs the executor account contract 302 of the address determined in step S301 to execute a target function in the target contract 303 based on the transaction the user wishes to execute (step S303). In step S303, the account call contract passes to the executor account contract the address of the target contract 303 of the transaction the user wishes to execute, the identifier of the target function, and the data to be input to the target function.

実行者アカウントコントラクト302は、渡されたアドレス及び識別子に基づき、対象コントラクト303の対象関数に、渡されたデータを引数として入力してこれを実行する(ステップS401)。 Based on the passed address and identifier, the executor account contract 302 inputs the passed data as arguments to the target function of the target contract 303 and executes it (step S401).

これにより、ユーザが実行を希望するトランザクションの対象コントラクト303で、対象関数の実行によって規定された処理が実行される(ステップS501)。規定された処理の実行により、ユーザが実行を希望するトランザクション(アセットの移動、データ保存、又はコンピューティング)の結果が得られる。 As a result, the processing specified by the execution of the target function is executed in the target contract 303 of the transaction that the user wishes to execute (step S501). Execution of the specified processing results in the result of the transaction that the user wishes to execute (moving assets, storing data, or computing).

アカウント呼び出しコントラクト301は、委任トランザクションに含まれていた委任条件中の、委任手数料の決定に必要なデータに基づいて、ユーザが支払うべき委任手数料(delegation fee token)の量を決定する(ステップS304)。 The account call contract 301 determines the amount of the delegation fee (delegation fee token) to be paid by the user based on the data necessary for determining the delegation fee in the delegation conditions included in the delegation transaction (step S304).

アカウント呼び出しコントラクト301は、決定した量の委任手数料の支払いを、実行者アカウントコントラクト302へ指示する(ステップS305)。ステップS305においてアカウント呼び出しコントラクト301は、指示と共に、委任手数料トークン管理コントラクト304のアドレス及び委任手数料の支払先のアドレスを指定する。 The account call contract 301 instructs the executor account contract 302 to pay the determined amount of delegation fee (step S305). In step S305, the account call contract 301 specifies, together with the instruction, the address of the delegation fee token management contract 304 and the address to which the delegation fee is to be paid.

実行者アカウントコントラクト302は、指定された委任手数料トークン管理コントラクト304に対し、指定された支払先のアドレスへの委任手数料の支払いを指示する(ステップS402)。 The executor account contract 302 instructs the specified delegation fee token management contract 304 to pay the delegation fee to the specified payee address (step S402).

ステップS402の指示により、委任手数料トークン管理コントラクト304は、指定された支払先のアドレスに対する委任手数料の支払い処理を実行する(ステップS601)。委任手数料の量は、ゼロの場合がある。これにより、委任トランザクションの実行処理を終了する。 In response to the instruction in step S402, the delegation fee token management contract 304 executes the payment process of the delegation fee to the specified payment destination address (step S601). The amount of the delegation fee may be zero. This ends the execution process of the delegation transaction.

図7及び図8のシーケンス図に示した処理により、ユーザがブロックチェーンシステム300における手数料トークン又はユーティリティトークンを移動する権限を有したアカウントを所有していなくても、ブロックチェーンシステム300における対象コントラクト303での処理の実行結果を享受できる。 The processing shown in the sequence diagrams of Figures 7 and 8 allows a user to enjoy the results of the execution of processing in the target contract 303 in the blockchain system 300, even if the user does not possess an account with the authority to move fee tokens or utility tokens in the blockchain system 300.

図8のシーケンス図に示した処理は、あるコントラクト302の関数を呼び出すとその関数の呼び出しによって他の関数が呼び出されていく、というアトミックな繋がりのある処理であり、署名の検証以外は、各コントラクト301,302,303,304での判断はなく、一連の処理として実行される。これは、委任トランザクション(delegation tx)は、ユーザが希望するトランザクション(user tx)を入れ子構造に含む特殊トランザクション(nested tx)の態様で実現される。 The process shown in the sequence diagram in Figure 8 is an atomic process in which calling a function of a contract 302 calls other functions, and other than signature verification, there is no decision made by each contract 301, 302, 303, 304, and it is executed as a series of processes. This is because the delegation transaction (delegation tx) is realized in the form of a special transaction (nested tx) that includes a transaction desired by the user (user tx) in a nested structure.

上述の説明では、アカウント呼び出しコントラクト301と、実行者アカウントコントラクト302とは別のインスタンスであるとして説明した。しかしながら、これらのコントラクト301,302は同一のコントラクトであってもよい。また、委任手数料のユーザからの徴収方法は、委任手数料トークンで徴収する方法と、委任手数料を徴収しないという方法の2つがある。以下、これらのバリエーションに基づき、複数の実施例を説明する。 In the above explanation, the account call contract 301 and the executor account contract 302 are described as separate instances. However, these contracts 301 and 302 may be the same contract. In addition, there are two methods for collecting delegation fees from users: collecting them using delegation fee tokens, and not collecting delegation fees. Below, several examples based on these variations will be explained.

アカウント呼び出しコントラクト301と、実行者アカウントコントラクト302とが別のインスタンスとして存在する場合、実行者アカウントコントラクト302は仮想アカウントコントラクト(virtual account contract)であるか否かのバリエーションが考えられる。仮想アカウントコントラクトは、実際にユーザが実行を希望するトランザクション(user tx)の処理、呼び出し関数が実行されるまでは実体がない特殊なコントラクトである。 When the account call contract 301 and the executor account contract 302 exist as separate instances, the executor account contract 302 may or may not be a virtual account contract. A virtual account contract is a special contract that does not have any substance until the processing of the transaction (user tx) that the user actually wishes to execute and the call function are executed.

仮想アカウントコントラクトを利用するメリットは、第1に、仮想アカウントコントラクトは、実体が存在しない場合であってもトークンを保有することができる。つまり、実体化(activation)前にはユーザに対して手数料が発生しない。ブロックチェーンシステム300における一般的なコントラクトは、トークンを保有するコントラクトは先に存在している必要があるため、そのデプロイの手数料が必要になる。また、実体化に関するコストも小さい。仮想アカウントコントラクトのインスタンスは、非常に軽量、即ち、プログラムのデータ量が少ないので、デプロイの手数料が小さい。トランザクションの委任(tx delegation)の一連の処理の中でデプロイを実行することにより、デプロイの手数料を中継者が肩代わりすることが可能である。 The advantage of using a virtual account contract is that, first, a virtual account contract can hold a token even if the entity does not exist. In other words, no fee is charged to the user before activation. In a typical contract in the blockchain system 300, a contract that holds a token must exist beforehand, so a deployment fee is required. In addition, the cost of activation is small. An instance of a virtual account contract is very lightweight, that is, the amount of program data is small, so the deployment fee is small. By executing deployment within a series of processes of transaction delegation (tx delegation), it is possible for the intermediary to shoulder the deployment fee.

仮想アカウントコントラクトを利用するメリットは、第2に、資産の保全性が高いことである。実体化前の仮想アカウントコントラクトは、実体化されていないわけであるから、攻撃を受ける可能性が極めて低い。仮想アカウントコントラクトの保有者の公開鍵をブロックチェーンに保存する必要があったとしても、ハッシュ化することで隠蔽が可能であるから、保有者に対する攻撃は実質不可能である。この性質は、仮想アカウントコントラクト単体で利用される場合であっても同様である。 The second benefit of using a virtual account contract is the high level of asset integrity. Since a virtual account contract before materialization is not materialized, the possibility of it being attacked is extremely low. Even if it were necessary to store the public key of the virtual account contract holder on the blockchain, it would be possible to conceal it by hashing, making attacks against the holder virtually impossible. This property is the same even when a virtual account contract is used alone.

アカウント呼び出しコントラクト301と実行者アカウントコントラクト302とが同一であるか否かと、別とする場合に仮想アカウントコントラクトを利用するか否かとの3通りが存在する。委任手数料についても、徴収する方法と徴収せずに中継者が肩代わりする方法との2通りが存在する。したがって、トランザクション委任の実行について6つ(3×2)の実施例を挙げて、以下に説明する。ブロックチェーンシステム300、ユーザの第1装置1及び中継者の第2装置2のハードウェア構成、及び基本処理は同一であるから、上述した構成と共通の符号を付して詳細な処理手順の説明を実行する。 There are three ways: whether the account call contract 301 and the executor account contract 302 are the same or not, and if they are separate, whether a virtual account contract is used or not. There are also two ways for the delegation fee: one is to collect it, and the other is to have the intermediary shoulder the cost without collecting it. Therefore, six (3 x 2) examples of the execution of transaction delegation are given below and explained. Since the hardware configurations and basic processing of the blockchain system 300, the user's first device 1, and the intermediary's second device 2 are the same, the same symbols as those in the above configuration are used to explain the detailed processing procedure.

[実施例1]
実施例1では、アカウント呼び出しコントラクト301と実行者アカウントコントラクト302とが別のインスタンスであって、実行者アカウントコントラクトは仮想アカウントコントラクトであり、且つ、委任手数料(delegation fee token)を任意のトークンで徴収する。ここで任意のトークンとは、ユーザがブロックチェーンシステム300のブロックチェーンアカウントで所有するトークンであり、手数料トークン又はユーティリティトークンではない。
[Example 1]
In the first embodiment, the account call contract 301 and the executor account contract 302 are separate instances, the executor account contract is a virtual account contract, and the delegation fee is collected by an arbitrary token, which is a token owned by a user in a blockchain account of the blockchain system 300, and is not a fee token or a utility token.

実施例1では、ユーザの第1装置1及び中継者の第2装置2との間では、図7のシーケンス図で示した委任トランザクションの作成処理を実行し、以下に示すトランザクションの委任処理が実行される。図9は、実施例1におけるトランザクションの委任処理の一例を示すシーケンス図である。図9のシーケンス図に示す処理手順の内、図8のシーケンス図に示した処理手順については、同一のステップ番号を付した詳細な説明を省略する。 In Example 1, the delegation transaction creation process shown in the sequence diagram of FIG. 7 is executed between the user's first device 1 and the relay's second device 2, and the transaction delegation process shown below is executed. FIG. 9 is a sequence diagram showing an example of the transaction delegation process in Example 1. Of the process steps shown in the sequence diagram of FIG. 9, the process steps shown in the sequence diagram of FIG. 8 are given the same step numbers and detailed descriptions are omitted.

アカウント呼び出しコントラクト301は、取り込まれた委任トランザクションを基に、ユーザが実行を希望するトランザクションの電子署名の正当性を検証し(S302)、検証に成功すると、ステップS302で決定したアドレスの実行者アカウントコントラクト302をデプロイする(ステップS312)。 The account call contract 301 verifies the validity of the electronic signature of the transaction that the user wishes to execute based on the imported delegation transaction (S302), and if the verification is successful, it deploys the executor account contract 302 of the address determined in step S302 (step S312).

アカウント呼び出しコントラクト301は、デプロイした実行者アカウントコントラクト302に対して、対象コントラクト303における対象関数(target function)の実行を指示する(S303)。ステップS304以降の処理は、図8のシーケンス図を参照した処理と同様である。 The account call contract 301 instructs the deployed executor account contract 302 to execute the target function in the target contract 303 (S303). The processing from step S304 onwards is the same as the processing with reference to the sequence diagram in Figure 8.

なお、図9のシーケンス図に示した処理は、実行者アカウントコントラクト302を呼び出す初回のみ実行され、2回目以降は、図8のシーケンス図に示した処理が実行される。 Note that the process shown in the sequence diagram in Figure 9 is executed only the first time the executor account contract 302 is called, and from the second time onwards, the process shown in the sequence diagram in Figure 8 is executed.

上述したように、仮想アカウントコントラクトを使用するので、最初に呼び出して(activation)実行者アカウントコントラクト302をデプロイするまではデプロイの手数料の支払いが不要である。 As described above, because a virtual account contract is used, no deployment fee needs to be paid until the first activation and deployment of the performer account contract 302.

[実施例2]
実施例2では、アカウント呼び出しコントラクト301と実行者アカウントコントラクト302とが別のインスタンスであって、実行者アカウントコントラクト302は仮想アカウントコントラクでなく、且つ、委任手数料を任意のトークンで徴収する。
[Example 2]
In the second embodiment, the account call contract 301 and the executor account contract 302 are different instances, the executor account contract 302 is not a virtual account contract, and the delegation fee is collected in an arbitrary token.

実施例2における各コントラクトによる処理内容は、図7及び8のシーケンス図に示した処理手順と同様であるから図示を省略する。 The processing contents of each contract in Example 2 are the same as the processing procedures shown in the sequence diagrams of Figures 7 and 8, so they are not illustrated.

実施例2では、ステップS402の実行者アカウントコントラクト302による委任手数料トークン管理コントラクト304への委任手数料の支払いにより、ゼロでない委任手数料の中継者への支払い処理が実行される。 In Example 2, the payment of the delegation fee to the delegation fee token management contract 304 by the executor account contract 302 in step S402 executes the payment process of the non-zero delegation fee to the intermediary.

[実施例3]
実施例3では、アカウント呼び出しコントラクト301と実行者アカウントコントラクト302とが同一のインスタンスであって、それは仮想アカウントコントラクトではなく、且つ、委任手数料を任意のトークンで徴収する。
[Example 3]
In the third embodiment, the account call contract 301 and the executor account contract 302 are the same instance, which is not a virtual account contract, and the delegation fee is collected in an arbitrary token.

実施例3では、アカウント呼び出しコントラクト301と実行者アカウントコントラクト302とが同一のインスタンスである。ユーザの第1装置1及び中継者の第2装置2の間では、図7のシーケンス図で示した委任トランザクションの作成処理を実行するが、その際、委任条件中の実行者アカウントコントラクト302のアドレスの決定に必要なデータは不要である。 In the third embodiment, the account call contract 301 and the executor account contract 302 are the same instance. The delegation transaction creation process shown in the sequence diagram of FIG. 7 is executed between the user's first device 1 and the relay's second device 2, but at that time, the data required to determine the address of the executor account contract 302 in the delegation conditions is not required.

図10は、実施例3におけるトランザクションの委任処理の一例を示すシーケンス図である。図10のシーケンス図で示す処理手順の内、図8のシーケンス図に示した処理手順と共通する処理については同一のステップ番号を付して詳細な説明を省略する。 Figure 10 is a sequence diagram showing an example of transaction delegation processing in Example 3. Among the processing steps shown in the sequence diagram of Figure 10, the processing steps common to the processing steps shown in the sequence diagram of Figure 8 are assigned the same step numbers and detailed descriptions are omitted.

実施例3では、アカウント呼び出しコントラクト301と実行者アカウントコントラクト302とが同一である。したがって、ブロードキャストされた委任トランザクション(delegation tx)に対し、実行者アカウントコントラクト302のアドレスを決定するステップS301の処理は省略される。 In the third embodiment, the account call contract 301 and the executor account contract 302 are the same. Therefore, step S301 of determining the address of the executor account contract 302 for the broadcasted delegation transaction (delegation tx) is omitted.

実施例3では、委任トランザクションに含まれているアドレスに基づき、実行者アカウントコントラクト302(アカウント呼び出しコントラクト301)は、呼び出し関数に実行により、ユーザが実行を希望するトランザクション(user tx)の内容及び委任条件に対する電子署名の正当性の検証を実行する(S302)。 In the third embodiment, based on the address included in the delegation transaction, the executor account contract 302 (account call contract 301) executes a call function to verify the contents of the transaction (user tx) that the user wishes to execute and the validity of the electronic signature for the delegation conditions (S302).

ステップS302の検証にて、署名が正当であると成功した場合、実行者アカウントコントラクト302は、以下の処理を実行する。実行者アカウントコントラクト302は、ユーザが実行を希望するトランザクションに含まれる対象コントラクト303のアドレス及び対象関数(target function)の識別子に基づき、対象コントラクト303の対象関数に、入力データを引数として入力してこれを実行する(ステップS333)。 If the verification in step S302 is successful in determining that the signature is valid, the executor account contract 302 executes the following process. Based on the address of the target contract 303 and the identifier of the target function included in the transaction that the user wishes to execute, the executor account contract 302 inputs the input data as an argument to the target function of the target contract 303 and executes it (step S333).

これにより、ユーザが実行を希望するトランザクションの対象コントラクト303では、対象関数の実行によって規定された処理が実行される(S501)。規定された処理の実行により、ユーザが実行を希望するトランザクション(アセットの移動、データ保存、又はコンピューティング)の結果が得られる。 As a result, in the target contract 303 of the transaction that the user wishes to execute, the processing specified by the execution of the target function is executed (S501). The execution of the specified processing results in the result of the transaction that the user wishes to execute (moving assets, storing data, or computing).

実行者アカウントコントラクト302は、ユーザが支払うべき委任手数料トークンの量を決定する(S304)。実行者アカウントコントラクト302は、ステップS304で決定した量の支払先のアドレスへの委任手数料の支払いを、委任トランザクションに含まれるアドレスに基づいて委任手数料トークン管理コントラクト304へ指示する(ステップS335)。実行者アカウントコントラクト302は、委任トランザクションの実行処理を終了する。 The executor account contract 302 determines the amount of delegation fee tokens to be paid by the user (S304). The executor account contract 302 instructs the delegation fee token management contract 304 to pay the delegation fee to the payment destination address in the amount determined in step S304, based on the address included in the delegation transaction (step S335). The executor account contract 302 ends the execution process of the delegation transaction.

ステップS335の指示により、委任手数料トークン管理コントラクト304は、指定された支払先(中継者)のアドレスに対する委任手数料の支払い処理を実行する。 In response to the instruction in step S335, the delegation fee token management contract 304 executes the payment process for the delegation fee to the specified payee (relay) address.

[実施例4]
実施例4では、アカウント呼び出しコントラクト301と実行者アカウントコントラクト302とが別のインスタンスであって、実行者アカウントコントラクト302は仮想アカウントコントラクトであり、且つ、委任手数料は徴収しない。この場合、ユーザはブロックチェーンシステム300におけるアカウントさえ所有していなくてもよい。
[Example 4]
In the fourth embodiment, the account call contract 301 and the executor account contract 302 are separate instances, the executor account contract 302 is a virtual account contract, and does not collect delegation fees. In this case, the user does not even need to own an account in the blockchain system 300.

実施例4では、ユーザの第1装置1及び中継者の第2装置2との間では、図7のシーケンス図で示した委任トランザクションの作成処理を実行するが、委任手数料を徴収しない。したがって、作成される委任トランザクション(delegation tx)では、委任条件に、委任手数料管理コントラクト(delegation fee token contract)のアドレス、委任手数料の支払先のアドレス、及び、委任手数料の決定に必要なデータは不要である。 In Example 4, the delegation transaction creation process shown in the sequence diagram of FIG. 7 is executed between the user's first device 1 and the relay's second device 2, but no delegation fee is collected. Therefore, the delegation transaction (delegation tx) that is created does not require the address of the delegation fee management contract (delegation fee token contract), the address of the delegation fee payee, and the data required to determine the delegation fee, as delegation conditions.

図11は、実施例4におけるトランザクションの委任処理の一例を示すシーケンス図である。図11のシーケンス図で示す処理手順の内、図8のシーケンス図に示した処理手順と共通する手順については同一のステップ番号を付して詳細な説明を省略する。 Figure 11 is a sequence diagram showing an example of transaction delegation processing in Example 4. Among the processing steps shown in the sequence diagram of Figure 11, the steps common to the processing steps shown in the sequence diagram of Figure 8 are assigned the same step numbers and detailed descriptions are omitted.

アカウント呼び出しコントラクト301は、取り込まれた委任トランザクションを基に、ユーザが実行を希望するトランザクションの電子署名の正当性を検証し(S302)、検証に成功すると、ステップS302で決定したアドレスの実行者アカウントコントラクト302をデプロイする(ステップS342)。 The account call contract 301 verifies the validity of the electronic signature of the transaction that the user wishes to execute based on the imported delegation transaction (S302), and if the verification is successful, it deploys the executor account contract 302 of the address determined in step S302 (step S342).

アカウント呼び出しコントラクト301は、デプロイした実行者アカウントコントラクト302に対して、対象コントラクト303における対象関数(target function)の実行を指示する(S303)。 The account call contract 301 instructs the deployed executor account contract 302 to execute the target function in the target contract 303 (S303).

実行者アカウントコントラクト302は、渡されたアドレス及び識別子に基づき、対象のコントラクトの対象関数に、渡されたデータを引数として入力してこれを実行し(S401)、処理が終了する。図8のシーケンス図に示した処理手順におけるステップS304以降の処理は実行されない。 The executor account contract 302 inputs the passed data as an argument to the target function of the target contract based on the passed address and identifier, executes it (S401), and the process ends. The process from step S304 onwards in the process procedure shown in the sequence diagram of Figure 8 is not executed.

ステップS401の処理により、ユーザが実行を希望するトランザクションの対象コントラクト303では、対象関数の実行によって規定された処理が実行される(S501)。規定された処理の実行により、ユーザが実行を希望するトランザクション(アセットの移動、データ保存、又はコンピューティング)の結果が得られる。 By the processing of step S401, the target contract 303 of the transaction that the user wishes to execute executes the processing specified by executing the target function (S501). By executing the specified processing, the result of the transaction that the user wishes to execute (moving assets, storing data, or computing) is obtained.

[実施例5]
実施例5では、アカウント呼び出しコントラクト301と実行者アカウントコントラクト302とが別のインスタンスであって、実行者アカウントコントラクト302は仮想アカウントコントラクトでなく、且つ、委任手数料は徴収しない。
[Example 5]
In the fifth embodiment, the account call contract 301 and the executor account contract 302 are different instances, the executor account contract 302 is not a virtual account contract, and does not collect delegation fees.

実施例5では、ユーザの第1装置1及び中継者の第2装置2との間では、図7のシーケンス図で示した委任トランザクションの作成処理を実行するが、委任手数料を徴収しない。したがって、作成される委任トランザクション(delegation tx)では、委任条件に、委任手数料トークン管理コントラクト304のアドレス、委任手数料の支払先のアドレス、及び、委任手数料の決定に必要なデータは不要である。 In Example 5, the delegation transaction creation process shown in the sequence diagram of FIG. 7 is executed between the user's first device 1 and the relay's second device 2, but no delegation fee is collected. Therefore, the delegation transaction (delegation tx) that is created does not require the address of the delegation fee token management contract 304, the address of the delegation fee payment destination, and the data required to determine the delegation fee, as delegation conditions.

図12は、実施例5におけるトランザクションの委任処理の一例を示すシーケンス図である。図12のシーケンス図で示す処理手順の内、図8のシーケンス図に示した処理手順と共通する手順については同一のステップ番号を付して詳細な説明を省略する。 Figure 12 is a sequence diagram showing an example of transaction delegation processing in Example 5. Among the processing steps shown in the sequence diagram of Figure 12, the steps common to the processing steps shown in the sequence diagram of Figure 8 are assigned the same step numbers and detailed descriptions are omitted.

アカウント呼び出しコントラクト301は、取り込まれた委任トランザクションを基に、実行者アカウントコントラクト302のアドレスを決定する(S301)。アカウント呼び出しコントラクト301は、トランザクション(user tx)の電子署名の正当性を検証する(S302)。 The account call contract 301 determines the address of the executor account contract 302 based on the imported delegation transaction (S301). The account call contract 301 verifies the validity of the electronic signature of the transaction (user tx) (S302).

アカウント呼び出しコントラクト301は、ステップS301で決定したアドレスの実行者アカウントコントラクト302に対して、対象コントラクト303における対象関数(target function)の実行を指示する(S303)。 The account call contract 301 instructs the executor account contract 302 of the address determined in step S301 to execute the target function in the target contract 303 (S303).

指示を受けた実行者アカウントコントラクト302は、渡されたアドレス及び識別子に基づき、対象コントラクト303の対象関数に、渡されたデータを引数として入力してこれを実行し(S401)、処理が終了する。図8のシーケンス図に示した処理手順におけるステップS304以降の処理は実行されない。 The executor account contract 302 that receives the instruction inputs the passed data as an argument to the target function of the target contract 303 based on the passed address and identifier, executes it (S401), and the process ends. The process from step S304 onwards in the process procedure shown in the sequence diagram of Figure 8 is not executed.

[実施例6]
実施例6では、アカウント呼び出しコントラクト301と実行者アカウントコントラクト302とが同一のインスタンスであって、それは仮想アカウントコントラクトではなく、且つ、委任手数料は徴収しない。
[Example 6]
In the sixth embodiment, the account call contract 301 and the executor account contract 302 are the same instance, which is not a virtual account contract, and does not collect delegation fees.

実施例6では、ユーザの第1装置1及び中継者の第2装置2との間では、図7のシーケンス図で示した委任トランザクションの作成処理を実行するが、アカウント呼び出しコントラクト301と実行者アカウントコントラクト302とが同一コントラクトであり、委任手数料を徴収しない。したがって、作成される委任トランザクション(delegation tx)では、委任条件に、実行者アカウントコントラクト302のアドレスの決定に必要なデータは含まれない。委任条件に、委任手数料トークン管理コントラクト304のアドレス、委任手数料の支払先(中継者)のアドレス、及び、委任手数料の決定に必要なデータも不要である。実施例6では、委任条件は、ユーザの秘密鍵に対応するアドレスを含めば足りる。 In Example 6, the delegation transaction creation process shown in the sequence diagram of FIG. 7 is executed between the user's first device 1 and the intermediary's second device 2, but the account call contract 301 and the executor account contract 302 are the same contract, and no delegation fee is collected. Therefore, in the delegation transaction (delegation tx) created, the delegation conditions do not include data required to determine the address of the executor account contract 302. The delegation conditions do not require the address of the delegation fee token management contract 304, the address of the payee (intermediary) of the delegation fee, or data required to determine the delegation fee. In Example 6, it is sufficient for the delegation conditions to include the address corresponding to the user's private key.

図13は、実施例6におけるトランザクションの委任処理の一例を示すシーケンス図である。図13のシーケンス図で示す処理手順の内、図8のシーケンス図に示した処理手順と共通する処理については同一のステップ番号を付して詳細な説明を省略する。 Figure 13 is a sequence diagram showing an example of transaction delegation processing in Example 6. Among the processing steps shown in the sequence diagram of Figure 13, the processing steps common to the processing steps shown in the sequence diagram of Figure 8 are assigned the same step numbers and detailed descriptions are omitted.

実施例6では、アカウント呼び出しコントラクト301と実行者アカウントコントラクト302とが同一である。したがって、ブロードキャストされた委任トランザクション(delegation tx)に対し、実行者アカウントコントラクト302のアドレスを決定するステップS301の処理は省略される。 In Example 6, the account call contract 301 and the executor account contract 302 are the same. Therefore, step S301 of determining the address of the executor account contract 302 for the broadcasted delegation transaction (delegation tx) is omitted.

実施例6では、委任トランザクションに含まれているアドレスに基づき、実行者アカウントコントラクト302(アカウント呼び出しコントラクト301)が、呼び出し関数に実行により、ユーザが実行を希望するトランザクション(user tx)の内容及び委任条件に対する電子署名の正当性の検証を実行する(S302)。 In Example 6, based on the address included in the delegation transaction, the executor account contract 302 (account call contract 301) executes a call function to verify the contents of the transaction (user tx) that the user wishes to execute and the validity of the electronic signature for the delegation conditions (S302).

ステップS302の検証にて、署名が正当であると成功した場合、アカウント呼び出しコントラクト301でもある実行者アカウントコントラクト302は、以下の処理を実行する。実行者アカウントコントラクト302は、ユーザが実行を希望するトランザクションに含まれる対象コントラクト303のアドレス及び対象関数(target function)の識別子に基づき、対象コントラクト303の対象関数に、入力データを引数として入力してこれを実行する(ステップS363)。委任処理は終了する。図8のシーケンス図に示した処理手順におけるステップS304以降の処理は実行されない。 If the verification in step S302 is successful in determining that the signature is valid, the executor account contract 302, which is also the account call contract 301, executes the following process. Based on the address of the target contract 303 and the identifier of the target function included in the transaction that the user wishes to execute, the executor account contract 302 inputs the input data as an argument to the target function of the target contract 303 and executes it (step S363). The delegation process ends. The processes from step S304 onwards in the processing procedure shown in the sequence diagram of Figure 8 are not executed.

上述したアカウント呼び出しコントラクト301及び実行者アカウントコントラクト302が、ブロックチェーンシステム300のあらゆるブロックチェーンアカウントからのトランザクション実行指示を許容する構成は非現実的である。したがって、実行者アカウントコントラクト302は、アカウント呼び出しコントラクト301からの指示のみを受け付けるように設定し、アカウント呼び出しコントラクト301は、自身の呼び出し関数の実行指示権限を有するアカウント(中継者)をホワイトリスト型で記憶しておくとよい。実施例3及び実施例6のように、アカウント呼び出しコントラクト301と実行者アカウントコントラクト302とが同一のインスタンスである場合、アカウント呼び出しコントラクト301(実行者アカウントコントラクト302)は、実行指示権限を有するアカウント(中継者)をホワイトリスト型で記憶しておき、権限を有していないアカウントからの委任トランザクションを拒否できるようにするとよい。 It is unrealistic for the account call contract 301 and the executor account contract 302 described above to be configured to accept transaction execution instructions from any blockchain account in the blockchain system 300. Therefore, the executor account contract 302 should be configured to accept instructions only from the account call contract 301, and the account call contract 301 should store accounts (relays) that have the authority to issue execution instructions for its own call function in a whitelist format. As in Examples 3 and 6, when the account call contract 301 and the executor account contract 302 are the same instance, the account call contract 301 (executor account contract 302) should store accounts (relays) that have the authority to issue execution instructions in a whitelist format so that it can reject delegated transactions from accounts that do not have the authority.

図8-図13のシーケンス図で示したトランザクションの委任処理では、委任内容の正当性の検証を、ユーザが実行を希望するトランザクション(user tx)の内容及び委任条件に対する電子署名によって検証する例を挙げた。しかしながら、電子署名に限られない。事前にユーザが実行を希望するトランザクションが何らかの認証を通過するように設定し、ステップS301の検証処理を省略してもよい。また、ステップS301の検証処理に代替して、ブロックチェーンシステム300内に他の検証用コントラクトをデプロイさせておき、この検証用コントラクトで検証させてから処理が進むようにしてもよい。更にステップS301の検証処理に代替して、図7の委任トランザクションの作成処理手順において、中継者の第2装置2が、第1装置1から受信した電子署名を、ブロックチェーンシステム300の外で検証してもよい。 In the transaction delegation process shown in the sequence diagrams of Figures 8 to 13, an example was given in which the validity of the delegation content is verified by an electronic signature for the content of the transaction (user tx) that the user wishes to execute and the delegation conditions. However, this is not limited to an electronic signature. The transaction that the user wishes to execute may be set in advance to pass some kind of authentication, and the verification process of step S301 may be omitted. Alternatively, instead of the verification process of step S301, another verification contract may be deployed in the blockchain system 300, and the process may proceed after verification with this verification contract. Furthermore, instead of the verification process of step S301, in the delegation transaction creation process procedure of Figure 7, the second device 2 of the intermediary may verify the electronic signature received from the first device 1 outside the blockchain system 300.

委任手数料の徴収方法についても、他のバリエーションが許容される。図8及び図9のシーケンス図では、実行者アカウントコントラクト302が委任手数料トークン管理コントラクト304に対し、支払い処理を実行した。しかしながら、ユーザから許諾を受けた他のコントラクト、例えばアカウント呼び出しコントラクト301が委任トランザクションの委任処理の中で引き出し処理を実行するような形式で行なってもよい。また、委任処理の中では委任手数料は徴収されず、一定期間分の委任トランザクションの実行(tx delegation)に対してまとめて前払い・後払いするような形式で実現されてもよい。ユーザをログインさせ、中央集権的にユーザのウォレット(秘密鍵)を管理するサービスでは、委任手数料を徴収するに際して、法定通貨での前払い・後払いに対応することも可能となる。後払いで徴収を行なう場合には、支払が実行されないリスクを考慮して、ユーザが保有する資産を担保とするようにしてもよい。ここでいう資産は、ブロックチェーンシステム300で流通可能な資産(トークン)であってもよい。ブロックチェーンシステム300外に存在する様々な資産(現金、証券、不動産等)であってもよい。ブロックチェーンシステム300で流通可能な資産である場合、後払い、担保に関する契約自体をスマートコントラクト化することで、仲介者、契約放棄のリスクなしで執行が可能となり、大きなメリットになる。 Other variations are also permitted for the method of collecting the delegation fee. In the sequence diagrams of FIG. 8 and FIG. 9, the executor account contract 302 executes the payment process to the delegation fee token management contract 304. However, it may be performed in a form in which another contract authorized by the user, for example, the account call contract 301, executes the withdrawal process in the delegation process of the delegation transaction. In addition, the delegation fee may not be collected in the delegation process, but may be realized in a form in which it is paid in advance or after the execution of the delegation transaction for a certain period of time (tx delegation). In a service that allows a user to log in and manages the user's wallet (private key) in a centralized manner, it is also possible to handle advance and after-payment in legal tender when collecting the delegation fee. When collecting the delegation fee by after-payment, the assets held by the user may be used as collateral, taking into account the risk that the payment will not be executed. The assets referred to here may be assets (tokens) that can be circulated in the blockchain system 300. They may also be various assets (cash, securities, real estate, etc.) that exist outside the blockchain system 300. If the asset is circulatable in the blockchain system 300, the contract regarding deferred payment and collateral can be made into a smart contract, which has a major advantage in that it can be executed without the risk of an intermediary or contract abandonment.

上述したシステム100により、ユーザは、ユーティリティトークン又は手数料トークンを保有していなくてもブロックチェーンシステム300でのトランザクションの実行が可能になる。これにより、ユーザの負担は大きく軽減される。中継者は、任意のトークン(委任手数料トークン)で委任手数料を徴収することが可能である。本開示では、委任手数料トークン管理コントラクト304は、トランザクションの委任対応のための改変を行なわなくても上述の処理を実行できるため、既にブロックチェーンシステム300に存在する多数のトークンを利用することが可能である。委任手数料トークンは、例えばEthereumではERC20、ERC721、又はERC1155等の標準規格に準拠した既存のトークンでの徴収が可能である。ERC1155の場合、複数種類のトークンでの徴収も可能である。つまり、トランザクションの委任手数料をユーザから徴収するための手続きを柔軟に調整することによって、ユーザの負担を緩和することが可能である。勿論、完全に肩代わりすることも可能であり、完全に肩代わりする場合、負担は相当軽減される。 The above-described system 100 allows users to execute transactions in the blockchain system 300 even if they do not hold a utility token or a fee token. This significantly reduces the burden on users. The intermediary can collect the delegation fee with any token (delegation fee token). In the present disclosure, the delegation fee token management contract 304 can execute the above-described process without modification to accommodate transaction delegation, so it is possible to use a large number of tokens that already exist in the blockchain system 300. For example, in Ethereum, the delegation fee token can be collected with an existing token that complies with standards such as ERC20, ERC721, or ERC1155. In the case of ERC1155, collection is also possible with multiple types of tokens. In other words, it is possible to ease the burden on users by flexibly adjusting the procedure for collecting transaction delegation fees from users. Of course, it is also possible to completely take over the delegation fee, and in that case, the burden is significantly reduced.

ユーザから中継者(委任される者)へ安全に委任を実施するために電子署名を用いて委任内容の正当性の検証を行なう場合であっても、ユーザは始めに1度だけその実行を希望するトランザクション(user tx)に対して電子署名を生成する処理をしておけばよい。これにより、そのトランザクション(user tx)の委任に関し、後の処理の中で再度承認処理を求められることはなく、通常のトランザクションの実行と変わらない。したがって、本開示のトランザクションの委任によってユーザの作業負担が増加することはない。 Even when verifying the validity of the delegation content using a digital signature to safely delegate from the user to the intermediary (the person being delegated), the user only needs to perform the process of generating a digital signature for the transaction (user tx) that they wish to execute once at the beginning. As a result, approval processing is not required again in the later processing regarding the delegation of that transaction (user tx), and it is no different from executing a normal transaction. Therefore, the transaction delegation disclosed herein does not increase the user's workload.

本開示のシステム100により、中継者は、ユーザの秘密情報(ユーザの第1装置1が記憶している秘密鍵等)を知らないまま、ユーザのブロックチェーンアカウント(実行者アカウントコントラクト)から指定されたトランザクション(user tx)を実行することが可能である。ユーザは、実行者アカウントコントラクト302の権限を中継者に使用させつつも、自身の秘密情報を保護することが可能である。ユーザは他者(中継者)にユーザの権限を使用させたい場合、他者にユーザの秘密情報(ユーザの第1装置1が記憶する秘密鍵等)を知らせる必要があるが、秘密情報を秘匿したまま、他者への委任が可能になる。 The system 100 disclosed herein allows the intermediary to execute a specified transaction (user tx) from the user's blockchain account (executor account contract) without knowing the user's private information (such as the private key stored in the user's first device 1). The user can protect his or her own private information while allowing the intermediary to use the authority of the executor account contract 302. If the user wants a third party (the intermediary) to use the user's authority, the user needs to inform the third party of the user's private information (such as the private key stored in the user's first device 1), but it is possible to delegate the private information to the third party while keeping it secret.

中継者が、ユーザが実行を希望するトランザクション(user tx)の内容を改変できないようにすることが可能である。例えばユーザが、ユーザが実行を希望するトランザクションの内容に対して電子署名を付加し、スマートコントラクトでその検証を行なってもよい。ユーザが希望するトランザクション(user tx)の実行と委任手数料の徴収をアトミックに実行することも可能である。委任される中継者の不正によってユーザが不利益を被る可能性を低減させることもできる。詐欺防止に大きく貢献できる。委任された委任トランザクション(delegation tx)が実行されないという事態が発生した場合、他の中継者を経由して対応することも可能である。ユーザが実行を希望するトランザクション(user tx)と委任手数料の徴収とをアトミックに実行するためには、ユーザはブロックチェーンシステム300にて何等かの委任手数料として使用できるトークン(delegation fee token)を保有する必要がある。委任手数料として使用できるトークンに、ステーブルコインを適用することによって、委任手数料として使用できるトークンの価格低下リスクからユーザを保護することも可能である。特に法定通貨担保型のステーブルコインは、投機性のない価格の安定したトークンであるから、ブロックチェーンシステム300で流通する多様なトークンに馴染みのないユーザであっても扱いやすい保有リスクの小さい資産であり、利用価値が高い。 It is possible to prevent the intermediary from modifying the contents of the transaction (user tx) that the user wishes to execute. For example, the user may add an electronic signature to the contents of the transaction that the user wishes to execute and verify it with a smart contract. It is also possible to execute the transaction (user tx) that the user wishes to execute and collect the delegation fee atomically. It is also possible to reduce the possibility that the user will be disadvantaged due to the fraud of the delegated intermediary. This can greatly contribute to preventing fraud. If a situation occurs in which the delegated delegation transaction (delegation tx) is not executed, it is also possible to deal with it via another intermediary. In order to atomically execute the transaction (user tx) that the user wishes to execute and collect the delegation fee, the user needs to hold some kind of token (delegation fee token) that can be used as a delegation fee in the blockchain system 300. It is also possible to protect the user from the risk of a price drop in the token that can be used as the delegation fee by applying a stable coin to the token that can be used as the delegation fee. In particular, since fiat-backed stablecoins are tokens with stable prices and no speculative nature, they are assets with low holding risk that are easy to handle even for users who are not familiar with the various tokens circulating in the blockchain system 300, and are highly useful.

委任される中継者は、例えば中央省庁から正式な手続きを経て認可を受けている企業であってもよい。この企業が顧客の暗号資産(秘密鍵)の管理に責任を負い、ユーザが希望するトランザクション(user tx)を実行することも可能である。なお、その企業管理下にあるユーザの顧客アカウントに対して予め手数料トークン又はユーティリティトークンを分配しておき、これをもとにユーザが希望するトランザクションを実行しても実現は可能である。しかしながら手数料トークン又はユーティリティトークンのユーザへの分配を実行するトランザクション処理にも当然手数料トークンが必要であり、トランザクションの承認にも一定時間を要する。この分配を全顧客に対して継続的に行なうことは金銭的及び時間的なコストが高い。本開示のシステムにより、委任トランザクション(delegation tx)を実行するアカウント(中継者、例えば金融企業)に手数料トークン又はユーティリティトークンを集約させておけば、分配処理は不要であるから、金銭的及び時間的コストを削減できる。中継者となる企業にとってもメリットが大きい。 The delegated intermediary may be, for example, a company that has been approved by a central government agency through a formal procedure. This company is responsible for managing the customer's cryptocurrency (private key) and can also execute the transaction (user tx) desired by the user. It is also possible to distribute fee tokens or utility tokens in advance to the customer account of the user under the management of the company, and execute the transaction desired by the user based on this. However, a fee token is naturally required for the transaction processing that executes the distribution of the fee token or utility token to the user, and it takes a certain amount of time to approve the transaction. It is expensive financially and time-wise to continuously perform this distribution to all customers. If the system disclosed herein is used to aggregate fee tokens or utility tokens in an account (intermediary, for example, a financial company) that executes the delegation transaction (delegation tx), distribution processing is not necessary, and therefore financial and time costs can be reduced. There are also great benefits for the intermediary company.

委任される中継者は、上述したような認可を受けた企業に限らない。中小企業、個人であっても中継者になり得る。本開示のシステムを適用することにより、中継者は、ユーザの負担を安全に肩代わりすることが可能になる。これまでは顧客(ユーザ)の資産管理に携わることができなかったために、顧客に作業負担及び手数料負担をさせるしかなかった負担を、中継者が担うことによって、顧客の負担を軽減することができる。完全に手数料を肩代わりすることができない場合、顧客からはブロックチェーンシステム300において顧客が扱える暗号資産、又は、ブロックチェーンシステム300外の委任手数料を徴収することによって柔軟に負担を分配することも可能である。委任手数料の支払いに、ブロックチェーンシステム300内のアプリによって実現されユーザが享受するサービスでの何らかのインセンティブを設定してもよい。これにより、顧客(ユーザ)同士で委任手数料を支払い合ってトランザクション委任を実行するといったスキームを構築することも可能である。 The delegated intermediary is not limited to a licensed company as described above. Even small and medium-sized enterprises and individuals can become intermediaries. By applying the system disclosed herein, the intermediary can safely shoulder the burden of the user. Until now, the intermediary was unable to be involved in the asset management of the customer (user), and therefore had to make the customer bear the burden of work and fees, but by bearing this burden, the burden of the customer can be reduced. If the intermediary is unable to completely shoulder the fees, it is also possible to flexibly distribute the burden by collecting from the customer crypto assets that the customer can handle in the blockchain system 300, or a delegation fee outside the blockchain system 300. Some kind of incentive may be set for the payment of the delegation fee in a service that is realized by an app in the blockchain system 300 and enjoyed by the user. This makes it possible to build a scheme in which customers (users) pay each other delegation fees to execute transaction delegation.

本開示のシステム100(手法)の適用対象は例えば、Dapps(分散アプリケーション)運営者、又はウォレットアプリ開発者になる。例えば、ゲームDappsは、ブロックチェーンシステム300に馴染みのない一般層のユーザを、そのゲームのユーザとして取り込める見込みがあるはずであるにも関わらず、手数料トークンの支払のための手続き及び管理が煩雑である。本開示のシステム100を適用することにより、手数料トークンの管理ができないユーザであっても、そのゲームのユーザになる敷居を低くすることができる。また、ゲームのみならず、運営者がマーケティングキャンペーンの一環として発行した特定のトークンを無償でユーザに分配した場合、これらの特定のトークンを、ユーザがブロックチェーンシステム300で取引しようとした場合、手数料トークンが必要になる取引所がある。このような場合、本開示のシステム100の適用により、ユーザ及び運営者にとってサービス利用が促進され得る。 The system 100 (method) of the present disclosure is applicable to, for example, Dapps (distributed application) operators or wallet app developers. For example, game Dapps are expected to attract general users who are not familiar with the blockchain system 300 as users of the game, but the procedures and management for paying fee tokens are complicated. By applying the system 100 of the present disclosure, even users who cannot manage fee tokens can lower the barrier to becoming a user of the game. In addition, in the case of games, if an operator distributes specific tokens issued as part of a marketing campaign to users free of charge, there are exchanges where fee tokens are required when users try to trade these specific tokens on the blockchain system 300. In such cases, the application of the system 100 of the present disclosure can promote service use for users and operators.

本開示のシステム100(手法)は、Dapps運営者、ウォレットアプリの開発者のみならずブロックチェーンシステム300の関連サービスを提供するクラウドベンダー又はSI(System Integration)ベンダー等のB2B課金に適用されてもよい。ブロックチェーンシステム300の普及フェーズでは、Dappsのユーザ同様に、各ベンダーの顧客もほとんどはブロックチェーンシステム300に馴染みがなく、多数のトークンを使い分けるまでには至らないことがほとんどである。ブロックチェーンシステム300を活用して構築されたサービスの運用のために、手数料トークン又はユーティリティトークンの支払をベンダーが肩代わりするスキームの必要性は高まることが予想される。このようなエンタープライズ領域におけるユースケースでも、法定通貨担保型のステーブルコインを利用することが非常に有効となる。 The system 100 (method) of the present disclosure may be applied to B2B billing not only for Dapps operators and wallet app developers, but also for cloud vendors or SI (System Integration) vendors that provide services related to the blockchain system 300. In the widespread use phase of the blockchain system 300, like Dapps users, most of the customers of each vendor are not familiar with the blockchain system 300 and are unlikely to use a large number of tokens. It is expected that there will be an increasing need for a scheme in which the vendor shoulders the payment of fee tokens or utility tokens in order to operate services built using the blockchain system 300. Even in such use cases in the enterprise area, the use of fiat-backed stable coins will be very effective.

本開示のシステム100(手法)を利用したトランザクション委任(tx delegation)を、「手数料トークン又はユーティリティトークンと、ユーザから徴収し得る委任手数料トークンとの間の取引」として解釈すれば、その取引市場が生まれる。取引のマッチングなどまで加味すると普及には課題が残るものの、オープンなトランザクションプールを形成するだけで取引市場の要件を満たす。取引市場が機能し、中継者となることがビジネスとして成立することも可能になる。 If transaction delegation (tx delegation) using the system 100 (method) disclosed herein is interpreted as "a transaction between a fee token or utility token and a delegation fee token that can be collected from users," a trading market will be created. Although there are still challenges to widespread adoption when transaction matching is taken into account, the requirements of a trading market will be met simply by forming an open transaction pool. With a functioning trading market, it will also be possible to operate as a business by becoming an intermediary.

上述のように開示された実施の形態は全ての点で例示であって、制限的なものではない。本発明の範囲は、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれる。 The embodiments disclosed above are illustrative in all respects and are not restrictive. The scope of the present invention is defined by the claims, and includes all modifications within the meaning and scope of the claims.

1 第1装置
10 処理部
11 記憶部
13 表示部
14 操作部
1P 第1プログラム
2 第2装置
20 処理部
21 記憶部
2P 第2プログラム
300 ブロックチェーンシステム
30 ノード
301 アカウント呼び出しコントラクト
302 実行者アカウントコントラクト
303 対象コントラクト
304 委任手数料管理コントラクト
REFERENCE SIGNS LIST 1 First device 10 Processing unit 11 Memory unit 13 Display unit 14 Operation unit 1P First program 2 Second device 20 Processing unit 21 Memory unit 2P Second program 300 Blockchain system 30 Node 301 Account call contract 302 Executor account contract 303 Target contract 304 Delegation fee management contract

Claims (14)

ユーザが使用する第1装置から、ブロックチェーンシステムにおけるアカウントデータを記憶する第2装置が、前記ブロックチェーンシステムにおける前記ユーザの所望のトランザクションの実行を委任する委任データを、前記ブロックチェーンシステム外の通信によって受信し、
前記第1装置から送信された委任データに基づき、前記所望のトランザクションを、前記ブロックチェーンシステムにおける前記ユーザのアカウントから実行する実行スマートコントラクトに実行させる委任トランザクションを作成し、
前記アカウントデータに基づき、前記委任トランザクションを、前記ブロックチェーンシステムへブロードキャストし、
一定期間の間、前記第2装置が前記ブロックチェーンシステムにブロードキャストした委任トランザクションに基づき実行されたトランザクションに要した手数料トークン又はユーティリティトークンの支払を、前記第2装置に記憶されたアカウントデータに基づき実行し、
前記第2装置は、前記支払に対応する前記ユーザの資産の徴収を、後払い又は先払いでまとめて実行する
トランザクション委任方法。
A second device that stores account data in a blockchain system receives delegation data delegating execution of a transaction desired by the user in the blockchain system from a first device used by the user through communication outside the blockchain system;
Based on the delegation data transmitted from the first device, create a delegation transaction to cause an execution smart contract to execute the desired transaction from the user's account in the blockchain system;
broadcasting the delegation transaction to the blockchain system based on the account data ;
For a certain period of time, payment of fee tokens or utility tokens required for transactions executed based on the delegation transactions broadcast by the second device to the blockchain system is performed based on the account data stored in the second device;
The second device collects the assets of the user corresponding to the payment in a lump sum manner, either in a post-payment or pre-payment manner.
Transaction delegation method.
前記ユーザの第1装置は、ブロックチェーンシステムにおけるトランザクションの要求に要する手数料トークン又はユーティリティトークンが対応付けられていないアカウントデータを有する
請求項1に記載のトランザクション委任方法。
The method of claim 1 , wherein the first device of the user has account data that does not have associated therewith a fee token or utility token required for requesting a transaction in the blockchain system.
前記委任データは、前記所望のトランザクションの対象となる対象コントラクトの前記ブロックチェーンシステムにおけるアドレスと、該対象コントラクトにおける対象関数の識別データと、前記対象関数へ渡す引数データとを含む
請求項1に記載のトランザクション委任方法。
2. The transaction delegation method of claim 1, wherein the delegation data includes an address in the blockchain system of a target contract that is the subject of the desired transaction, identification data of a target function in the target contract, and argument data to be passed to the target function.
前記委任トランザクションは、前記対象コントラクトのアドレス、前記識別データ、及び前記引数データを含むユーザ所望のトランザクションを、入れ子構造に含み、
前記ユーザ所望のトランザクションの実行者となる前記実行スマートコントラクトのアドレス、又は該アドレスを決定するためのデータを含む
請求項に記載のトランザクション委任方法。
The delegation transaction includes a user-desired transaction including the address of the target contract, the identification data, and the argument data in a nested structure;
The method of claim 3 , further comprising: an address of the executing smart contract that will be the executor of the user-requested transaction, or data for determining the address.
前記委任トランザクションは、該委任トランザクションがブロックチェーンとして記憶された場合に特定の呼び出しスマートコントラクトを呼び出す関数を含み、
前記呼び出しスマートコントラクトは、前記委任トランザクションに基づいて前記実行スマートコントラクトへ前記所望のトランザクションの実行を指示する
請求項1から請求項のいずれか1項に記載のトランザクション委任方法。
the delegation transaction includes a function that invokes a particular invocation smart contract when the delegation transaction is stored as a blockchain;
5. The method of claim 1, wherein the calling smart contract instructs the executing smart contract to execute the desired transaction based on the delegation transaction.
前記委任トランザクションは、前記第2装置への委任手数料の条件を含み、
前記呼び出しスマートコントラクトは、前記委任トランザクションに基づいて委任手数料を決定し、
前記ユーザのアカウントから中継者への支払いを実行する委任手数料スマートコントラクトへ、決定した委任手数料を支払うためのトランザクションを要求する
請求項に記載のトランザクション委任方法。
the delegation transaction includes terms of a delegation fee to the second device;
The calling smart contract determines a delegation fee based on the delegation transaction;
6. The method of claim 5 , further comprising: requesting a transaction to pay the determined delegation fee to a delegation fee smart contract that effectuates the payment from the user's account to an intermediary.
前記委任手数料は、手数料トークン又はユーティリティトークンと異なる
請求項に記載のトランザクション委任方法。
The method of claim 6 , wherein the delegation fee is different from a fee token or a utility token.
前記呼び出しスマートコントラクトは、予め記憶してあるアカウントリストのアカウントデータを有する第2装置からの委任トランザクションのみに基づく呼び出しを許可する
請求項5から請求項のいずれか1項に記載のトランザクション委任方法。
8. The method of claim 5, wherein the invocation smart contract allows invocation based on a delegation transaction only from a second device having account data from a pre-stored account list.
前記委任トランザクションは、該委任トランザクションがブロックチェーンとして記憶された場合に前記実行スマートコントラクトを呼び出す関数を含み、
前記実行スマートコントラクトは、呼び出された場合に前記関数の呼び出しと共に入力される前記所望のトランザクションを実行する
請求項1から請求項のいずれか1項に記載のトランザクション委任方法。
the delegation transaction includes a function that invokes the execute smart contract when the delegation transaction is stored as a blockchain;
5. The method of claim 1 , wherein the execute smart contract, when invoked, executes the desired transaction input with the invocation of the function.
前記委任トランザクションは、前記第2装置への委任手数料の条件を含み、
前記実行スマートコントラクトは、前記委任トランザクションに基づいて委任手数料を決定し、
前記ユーザのアカウントから中継者への支払いを実行する委任手数料スマートコントラクトへ、決定した委任手数料を支払うためのトランザクションを要求する
請求項に記載のトランザクション委任方法。
the delegation transaction includes terms of a delegation fee to the second device;
The execution smart contract determines a delegation fee based on the delegation transaction;
10. The method of claim 9 , further comprising: requesting a transaction to pay the determined delegation fee to a delegation fee smart contract that effectuates the payment from the user's account to an intermediary.
前記委任手数料は、手数料トークン又はユーティリティトークンと異なる
請求項10に記載のトランザクション委任方法。
The method of claim 10 , wherein the delegation fee is different from a fee token or a utility token.
前記実行スマートコントラクトは、予め記憶してあるアカウントリストのアカウントデータを有する第2装置からの委任トランザクションのみに基づく呼び出しを許可する
請求項10又は11に記載のトランザクション委任方法。
12. The method of claim 10 or 11 , wherein the executing smart contract allows invocation based on the delegated transaction only from a second device having account data of a pre-stored account list.
ユーザに使用される第1装置と、
ブロックチェーンシステムにおけるアカウントデータを有する第2装置と
を含み、
前記第1装置は、前記ブロックチェーンシステムにおける前記ユーザの所望のトランザクションの実行を委任する委任データを、前記ブロックチェーンシステム外の通信によって送信し、
前記第2装置は、前記第1装置から送信された委任データに基づき、前記所望のトランザクションを、前記ブロックチェーンシステムにおける前記ユーザのアカウントから実行する実行スマートコントラクトに実行させる委任トランザクションを作成し、
前記第1装置が、前記アカウントデータに基づき、前記委任トランザクションを、前記ブロックチェーンシステムへブロードキャストし、
一定期間の間、前記第2装置が前記ブロックチェーンシステムにブロードキャストした委任トランザクションに基づき実行されたトランザクションに要した手数料トークン又はユーティリティトークンの支払を、前記第2装置に記憶されたアカウントデータに基づき実行し、
前記第2装置は、前記支払に対応する前記ユーザの資産の徴収を、後払い又は先払いでまとめて実行する
トランザクション委任システム。
a first device used by a user;
a second device having account data in the blockchain system;
The first device transmits delegation data delegating the execution of the user's desired transaction in the blockchain system via communication outside the blockchain system;
The second device creates a delegation transaction based on the delegation data sent from the first device, the delegation transaction causing an execution smart contract to execute the desired transaction from the user's account in the blockchain system;
The first device broadcasts the delegation transaction to the blockchain system based on the account data ;
For a certain period of time, payment of fee tokens or utility tokens required for transactions executed based on the delegation transactions broadcast by the second device to the blockchain system is performed based on the account data stored in the second device;
The second device collects the assets of the user corresponding to the payment in a lump sum manner, either in a post-payment or pre-payment manner.
Transaction delegation system.
ブロックチェーンシステムにおけるアカウントデータを記憶したコンピュータに、
ユーザの所望のトランザクションの内容を含む委任データを受信する処理、
受信した委任データに基づき、前記所望のトランザクションを、前記ブロックチェーンシステムにおける前記ユーザのアカウントから実行する実行スマートコントラクトに実行させる委任トランザクションを作成する処理、
前記アカウントデータに基づき、前記委任トランザクションを、前記ブロックチェーンシステムへブロードキャストする処理
一定期間の間、前記ブロックチェーンシステムにブロードキャストされた委任トランザクションに基づき実行されたトランザクションに要した手数料トークン又はユーティリティトークンの支払を、前記アカウントデータに基づき実行する処理、及び、
前記支払に対応する前記ユーザの資産の徴収を、後払い又は先払いでまとめて実行する処理
を実行させるコンピュータプログラム。
A computer that stores account data in the blockchain system
receiving delegation data including content of a user's desired transaction;
creating a delegation transaction for executing the desired transaction in an executing smart contract from the user's account in the blockchain system based on the received delegation data;
broadcasting the delegation transaction to the blockchain system based on the account data ;
A process of performing payment of fee tokens or utility tokens required for transactions performed based on the delegation transactions broadcasted to the blockchain system for a certain period of time based on the account data; and
A process of collecting the user's assets corresponding to the payment in a lump sum, either in a deferred payment or in advance payment.
A computer program that executes the following:
JP2021113689A 2019-12-26 2021-07-08 Transaction delegation method and transaction delegation system Active JP7628289B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2025009341A JP2025061606A (en) 2019-12-26 2025-01-22 Transaction delegation method and transaction delegation system

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962953734P 2019-12-26 2019-12-26
US62/953734 2019-12-26
JP2021515232A JP6915934B1 (en) 2019-12-26 2020-12-24 Transaction delegation methods, transaction delegation systems, and computer programs

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2021515232A Division JP6915934B1 (en) 2019-12-26 2020-12-24 Transaction delegation methods, transaction delegation systems, and computer programs

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2025009341A Division JP2025061606A (en) 2019-12-26 2025-01-22 Transaction delegation method and transaction delegation system

Publications (3)

Publication Number Publication Date
JP2021168177A JP2021168177A (en) 2021-10-21
JP2021168177A5 JP2021168177A5 (en) 2024-01-05
JP7628289B2 true JP7628289B2 (en) 2025-02-10

Family

ID=77172787

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021113689A Active JP7628289B2 (en) 2019-12-26 2021-07-08 Transaction delegation method and transaction delegation system

Country Status (1)

Country Link
JP (1) JP7628289B2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009048627A (en) 2007-07-27 2009-03-05 Ntt Docomo Inc Method and apparatus for performing delegated transactions
JP2017207979A (en) 2016-05-19 2017-11-24 株式会社野村総合研究所 Alteration detection system and alteration detection method
JP2021520011A (en) 2018-03-30 2021-08-12 エクスポジション パーク ホールディングス エスイーゼットシー Exchange of digital assets

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009048627A (en) 2007-07-27 2009-03-05 Ntt Docomo Inc Method and apparatus for performing delegated transactions
JP2017207979A (en) 2016-05-19 2017-11-24 株式会社野村総合研究所 Alteration detection system and alteration detection method
JP2021520011A (en) 2018-03-30 2021-08-12 エクスポジション パーク ホールディングス エスイーゼットシー Exchange of digital assets

Also Published As

Publication number Publication date
JP2021168177A (en) 2021-10-21

Similar Documents

Publication Publication Date Title
JP6909532B1 (en) Transaction delegation method and transaction delegation system
US11893637B2 (en) Systems and methods for cryptographic trading
EP3776441B1 (en) Digital asset exchange
JP7450339B2 (en) Systems, methods, and computer programs for resource fairness for blockchain
US20200258152A1 (en) Systems and methods for storage of cryptocurrencies and transactions thereof
US20070179883A1 (en) System and method and computer readable code for visualizing and managing digital cash
JP2023509573A (en) Cryptocurrency acceptance system
CN105983236A (en) Computer system and method for providing trading platform with improved user account management
JP6434086B1 (en) Real estate brokerage system having real estate brokerage setting function, real estate brokerage method, and real estate brokerage program
JP2001160109A (en) Information processing apparatus, information processing method, and recording medium
JP7005015B2 (en) Transaction brokerage system, transaction brokerage method and transaction brokerage program
TWI675336B (en) System of smart ticket, method for issuing ticket and computer-readable storage device
JP7628289B2 (en) Transaction delegation method and transaction delegation system
Masseport et al. Proof of usage: User-centric consensus for data provision and exchange
KR20130083050A (en) Banking payment agency system using a virtual account and controlling method therefor
JP7550402B2 (en) Escrow processing method, system, and program using virtual currency
JPWO2020040070A1 (en) Transaction processing methods, systems and programs
WO2024192092A1 (en) Web3 transfer protocol
CN114140251B (en) Electronic ticket pledge method and system based on proxy re-encryption
WO2024116484A1 (en) Token processing server, token processing method, and program
HK40110129A (en) Digital asset exchange
HK40047115B (en) Digital asset exchange
HK40047115A (en) Digital asset exchange

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231222

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231222

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240918

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240924

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20241125

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: 20241224

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250122

R150 Certificate of patent or registration of utility model

Ref document number: 7628289

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150