JP7628289B2 - Transaction delegation method and transaction delegation system - Google Patents
Transaction delegation method and transaction delegation system Download PDFInfo
- 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
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 (
ブロックチェーンシステムで要求されるトランザクションは、アセット(暗号資産等)の移動を目的としたもののみならず、スマートコントラクトが実行するデータ保存又は演算を含む。 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.
ブロックチェーン技術をベースとしたサービスの利用には、ユーザにとっては煩雑な手数料トークン及びユーティリティトークン等の管理が必要であり、ブロックチェーンシステムの広範囲への普及は爆発的とはなりにくい。 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.
本開示をその実施の形態を示す図面を参照して具体的に説明する。 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
本開示のシステム100では、ユーザの第1装置1は、ブロックチェーンシステム300に対応する秘密鍵を記憶しているが、ブロックチェーンシステム300の手数料トークン又はユーティリティトークンが対応付けられたアカウントを記憶していなくてよい。ただし、第1装置1は、ブロックチェーンをベースとしたサービスの提供を受けるため、ブロックチェーンシステム300における処理の結果を取得することができる。例えば第1装置1は、ブロックチェーンシステム300から、処理結果をWebベースで取得できる。また第1装置1は、第2装置2との間でデータの送受信が可能である。
In the
第2装置2は、ブロックチェーンシステム300における手数料トークン及びユーティリティトークンの移動が可能なアカウント(relayer account)を持つ中継者によって管理される。第2装置2は、ユーザの第1装置1との間でデータの送受信が可能であり、中継者のアカウント(relayer account)に基づきブロックチェーンシステム300にてトランザクションを実行できる。つまり第2装置2は、手数料トークン又はユーティリティトークンの支払い(ステーク)が可能である。
The
本開示のシステム100におけるブロックチェーンシステム300は、アカウントに対してスマートコントラクトをデプロイ(実行可能な状態とする)できる種類のブロックチェーン技術を用いる。以下の例では、ブロックチェーンシステム300はEthereumのブロックチェーン技術を用いるとして説明するが、これに限られない。ブロックチェーンシステム300はEOSベースであってもよい。
The
ブロックチェーンシステム300には、アカウント呼び出しコントラクト301、実行者アカウントコントラクト302のインスタンスが生成される。後述するように(実施例4,6)、これらは同一のインスタンスであってもよい。ブロックチェーンシステム300は、複数のアプリケーションに対応する多様な複数のコントラクト303のインスタンスを含む。またブロックチェーンシステムは、委任手数料トークンを管理する委任手数料トークン管理コントラクト304が各々生成されている。
In the
ブロックチェーンシステム300に存在する多様なアプリケーションに対応するスマートコントラクト303の内、ユーザが希望する処理を実行する対象コントラクト(Target Contract)303に対し、その処理をリクエストするためには、手数料トークン又はユーティリティトークンを支払うための管理権限を有するアカウントによるトランザクション実行処理が必要である。しかしながら、ブロックチェーンシステム300における手数料トークン又はユーティリティトークンを含む多様なトークンの取引には、ユーザにブロックチェーン技術に対する知識等が必要である。
Of the
本開示のシステム100では、実際にサービスの提供を受けるユーザの装置(第1装置)1は、サービスを実現するブロックチェーンシステム300の手数料トークン又はユーティリティトークンを所有し移転できる中継者の装置(第2装置)2へ、ユーザが実行を希望するトランザクション(user tx)を委任する。委任により、ユーザがトークンを管理できなくとも、ブロックチェーンシステム300におけるトランザクションの実行結果の享受が可能となる。
In the
図2は、本開示のシステム100におけるトランザクションの委任処理手順の概要図である。
Figure 2 is an overview of the transaction delegation processing procedure in the
(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
サービスが例えばゲームである場合、ユーザは、ブロックチェーンシステム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
(3)中継者の第2装置2は、ユーザの第1装置1から受信したデータに基づいて、ユーザに対応するブロックチェーンアカウント(executer account)と、希望するトランザクション(user tx)とを埋め込んだ委任トランザクション(delegation tx)を作成する。中継者の第2装置2は、中継者のアカウント、又は、中継者が使用できる他のアカウント(任意のアカウント)の権限によって、委任トランザクションをブロックチェーンシステム300へブロードキャストする。
(3) The
(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
このようにして、実際にサービスの提供を受けるユーザが使用する装置(第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
これにより、サービスの提供を受けるユーザは、サービスのベースとなっているブロックチェーンシステム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
このような処理を実現するためのシステムの具体的な構成について説明する。 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
処理部10は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)等のプロセッサと、メモリ等を用いる。なお処理部10は、プロセッサ、メモリ、更には記憶部11及び通信部12を集積した1つのハードウェア(SoC:System On a Chip)として構成されていてもよい。
The
記憶部11はフラッシュメモリを用い、第1プログラム1Pを始めとする処理部10が参照するプログラム、データが記憶される。第1プログラム1Pは、コンピュータを、本開示のシステム100の第1装置1として機能させるためのプログラムである。記憶部11には、図3に示すように、ブロックチェーンシステム300におけるユーザの秘密鍵を記憶していてもよい。秘密鍵は、処理部10のメモリ又は記憶部11に書き換え不可に記憶されているとよい(ウォレットのチップ化)。
The
記憶部11に記憶されている第1プログラム1Pは、コンピュータから読み取り可能な記憶媒体8に記憶されていた第1プログラム8Pを処理部10が読み出して記憶部11に記憶したものであってもよい。
The
通信部12は、第2装置2及び他の通信装置との通信接続を実現する通信モジュールである。通信部12は、ネットワークカード、無線通信デバイス又はキャリア通信用モジュールを用いる。
The
表示部13は液晶パネル又は有機ELディスプレイ等のディスプレイ装置を用いる。操作部14は、ユーザの操作を受け付けるインタフェースであり、物理ボタン、ディスプレイ内蔵のタッチパネルデバイス、スピーカ及びマイクロフォン等を用いる。操作部14は、物理ボタン又はタッチパネルにて表示部13で表示している画面上で操作を受け付けてもよいし、マイクロフォンにて入力音声から操作内容を認識し、スピーカで出力する音声との対話形式で操作を受け付けてもよい。
The
図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
処理部20は、CPU、GPU等のプロセッサと、メモリ等を用いる。処理部20は、記憶部21に記憶されている第2プログラム2Pに基づき、第1装置1から送信されたデータを取得し、委任トランザクションの作成、トランザクションの実行を実現する。記憶部21は、ハードディスク又はフラッシュメモリを用い、第2プログラム2Pを始めとする処理部20が参照するプログラム、データを記憶する。
The
記憶部21に記憶されている第2プログラム2Pは、コンピュータから読み取り可能な記憶媒体9に記憶されていた第2プログラム9Pを処理部10が読み出して記憶部11に記憶したものであってもよい。
The
通信部22は、第1装置1又はブロックチェーンシステム300との通信接続を実現する通信モジュールである。通信部22は、ネットワークカード、無線通信デバイス又はキャリア通信用モジュールを用いる。
The
図5は、ブロックチェーンシステム300におけるノード30の構成を示すブロック図である。ノード30は、サーバコンピュータであってもよいし、デスクトップ型又はラップトップ型パーソナルコンピュータであってもよいし、スマートフォン等の通信端末機器であってもよい。ノード30は、処理部31、記憶部32及び通信部33を備える。またノード30は、少なくとも処理部31及び通信部33を備える装置であれば、処理部31の一部によってノードの一部又は全部を構成することができる。
Figure 5 is a block diagram showing the configuration of a
処理部31は、CPU、GPU等のプロセッサと、メモリ等を用いる。処理部31は、プロセッサ、メモリ、更には記憶部32及び通信部33を集積した1つのハードウェアとして構成されていてもよい。処理部31のメモリには、ノード3夫々独自に所有する秘密鍵が記憶されているとよい。そして処理部31は、記憶部32に記憶されているノードプログラムに基づいた各処理を実行し、汎用コンピュータをブロックチェーンシステム300におけるノードとして機能させる。
The
記憶部32は、ハードディスク又はフラッシュメモリを用い、ノードプログラムを始めとする処理部31が参照するプログラム、データを記憶する。記憶部32は、ブロックチェーンを記憶する。ノードプログラムには、後述するスマートコントラクト(トランザクション実行に対する所定の演算処理を実行する処理部31)として機能させるためのプログラムが含まれる。上述の秘密鍵は記憶部32に記憶されてもよい。記憶部32は、秘密鍵に基づく公開鍵及びアドレスを記憶してもよい。
The
通信部33は、ノード30の相互通信を実現する通信モジュールである。通信部33は、ネットワークカード、光通信用デバイス、又は無線通信デバイス等を用いる。
The
図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
中継者の第2装置2は、第1装置1から送信されたデータの内容を元に、委任トランザクション(delegation tx)を作成する(図2中の(3)に対応)。委任トランザクションは、ユーザが実行を希望するトランザクション(user tx)、委任条件(cond)、及び署名(sig)を入れ子構造で含む特殊トランザクション(nested tx)である。
The
第2装置2は、ブロックチェーンシステム300に対し、トランザクションを実行できる手数料トークン又はユーティリティトークンを所有している。第2装置2は、中継者が権限を有するアカウント(relayer account)に基づいて委任トランザクションを実行する(図2中の(3)に対応)。委任トランザクションは、ブロックチェーン内のアカウント呼び出しコントラクト301に対して実行される。
The
アカウント呼び出しコントラクト301は、委任トランザクション(delegation tx)に基づき、ユーザのアカウントとして動作する実行者アカウントコントラクト302に対してトランザクション(user tx)の実行をリクエストする。実行者アカウントコントラクト302は、リクエストされたトランザクション(user tx)を対象コントラクト303で実行する。実行者アカウントコントラクト302は、リクエストされたトランザクション(user tx)を実行すると共に、委任手数料トークン管理コントラクト304に対し、委任手数料の中継者への支払(移転)を含むトランザクションを実行する。委任手数料は、手数料トークン又はユーティリティトークンと異なる。
The
図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
処理部10は、作成したトランザクション(user tx)の内容及び委任条件(cond)の初期値を表示部13に表示する(ステップS102)。ステップS102で表示されるトランザクションの内容は、アドレス、識別子及び引数データを、それらをテキストで出力したものであってもよいし、コントラクトの名称、識別するアイコン等によって出力したものであってもよい。表示される委任条件も、テキストで出力したものであってもよいし、アイコンで出力したものであってもよい。
The
処理部10は、ユーザによるトランザクション(user tx)の内容及び委任条件(cond)の編集を受け付ける(ステップS103)。変更がない場合にはステップS103の処理はスキップされる。
The
処理部10は、実行が希望されるトランザクション(user tx)の内容及び委任条件(cond)の確定を受け付ける(ステップS104)。
The
処理部10は、確定されたトランザクション(user tx)の内容及び委任条件(cond)のデータに対し、ユーザの秘密鍵に基づく電子署名を生成する(ステップS105)。秘密鍵は、第1装置1の記憶部11に安全に記憶されていてもよいし、ユーザからの入力を受け付けたものであってもよい。
The
処理部10は、確定されたトランザクション(user tx)の内容、委任条件(cond)及びステップS105で取得した電子署名を中継者の第2装置2へ送信する(ステップS106)。トランザクション(user tx)の内容は、トランザクションの対象コントラクト303のアドレス、対象関数(target function)の識別子、及び対象関数の引数データを含む。
The
第2装置2の処理部20は、トランザクション(user tx)の内容、委任条件(cond)を電子署名付きで受信する(ステップS201)。ステップS201において処理部20は、送信された内容に基づいて、引き受けることができる委任であるか否かを判断し、引き受けられない委任である場合には、ユーザの第1装置へ返答するようにしてもよい。
The
処理部20は、受信したトランザクション(user tx)の内容、委任条件(cond)及び電子署名を埋め込んだ委任トランザクション(delegation tx)を作成する(ステップS202)。ステップS202で作成される委任トランザクション(delegation tx)は、入れ子構造を有する特殊トランザクション(nested tx)である。
The
処理部20は、ステップS202で作成した委任トランザクションに対し、第2装置2を管理する中継者に対応付けられているブロックチェーンシステム300におけるブロックチェーンアカウント(relayer account)の秘密鍵で電子署名を生成する(ステップS203)。
The
処理部20は、ステップS202で作成した委任トランザクション(delegation tx)に、ステップS203で生成した電子署名を埋め込み(ステップS204)、委任トランザクション(delegation tx)の作成処理が完了する。
The
ステップ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
委任トランザクション(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
図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
ステップS205による委任トランザクションがブロードキャストされると、ブロックチェーンシステム300のノード30によって、委任トランザクションはブロックチェーンに取り込まれる。ブロックチェーンに取り込まれた委任トランザクションを基に、委任トランザクションに含まれているアドレスのアカウント呼び出しコントラクト301の呼び出し関数が実行され、以下の処理が進行する。以下の処理は、署名の正当性の検証(S302)で失敗しない限り、アトミックに、分割できないものとして実行される。
When the delegation transaction in step S205 is broadcast, the delegation transaction is incorporated into the blockchain by
アカウント呼び出しコントラクト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
アカウント呼び出しコントラクト301は、委任トランザクションに含まれる、ユーザが実行を希望するトランザクション(user tx)の内容及び委任条件に対する電子署名の正当性を検証する(ステップS302)。
The
ステップS302の検証にて、署名が正当であると成功した場合、アカウント呼び出しコントラクト301は、次の処理を実行する。ステップS302の検証にて、署名が正当でないと判断された場合、アカウント呼び出しコントラクト301はそのまま処理を終了する。
If the verification in step S302 is successful in determining that the signature is valid, the
アカウント呼び出しコントラクト301は、ステップS301で決定したアドレスの実行者アカウントコントラクト302に対して、ユーザが実行を希望するトランザクションに基づき、対象コントラクト303における対象関数(target function)の実行を指示する(ステップS303)。ステップS303においてアカウント呼び出しコントラクトは、ユーザが実行を希望するトランザクションの対象コントラクト303のアドレス、対象関数(target function)の識別子及び対象関数に入力するデータを、実行者アカウントコントラクトへ渡す。
The
実行者アカウントコントラクト302は、渡されたアドレス及び識別子に基づき、対象コントラクト303の対象関数に、渡されたデータを引数として入力してこれを実行する(ステップS401)。
Based on the passed address and identifier, the
これにより、ユーザが実行を希望するトランザクションの対象コントラクト303で、対象関数の実行によって規定された処理が実行される(ステップS501)。規定された処理の実行により、ユーザが実行を希望するトランザクション(アセットの移動、データ保存、又はコンピューティング)の結果が得られる。
As a result, the processing specified by the execution of the target function is executed in the
アカウント呼び出しコントラクト301は、委任トランザクションに含まれていた委任条件中の、委任手数料の決定に必要なデータに基づいて、ユーザが支払うべき委任手数料(delegation fee token)の量を決定する(ステップS304)。
The
アカウント呼び出しコントラクト301は、決定した量の委任手数料の支払いを、実行者アカウントコントラクト302へ指示する(ステップS305)。ステップS305においてアカウント呼び出しコントラクト301は、指示と共に、委任手数料トークン管理コントラクト304のアドレス及び委任手数料の支払先のアドレスを指定する。
The
実行者アカウントコントラクト302は、指定された委任手数料トークン管理コントラクト304に対し、指定された支払先のアドレスへの委任手数料の支払いを指示する(ステップS402)。
The
ステップS402の指示により、委任手数料トークン管理コントラクト304は、指定された支払先のアドレスに対する委任手数料の支払い処理を実行する(ステップS601)。委任手数料の量は、ゼロの場合がある。これにより、委任トランザクションの実行処理を終了する。
In response to the instruction in step S402, the delegation fee
図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
図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
上述の説明では、アカウント呼び出しコントラクト301と、実行者アカウントコントラクト302とは別のインスタンスであるとして説明した。しかしながら、これらのコントラクト301,302は同一のコントラクトであってもよい。また、委任手数料のユーザからの徴収方法は、委任手数料トークンで徴収する方法と、委任手数料を徴収しないという方法の2つがある。以下、これらのバリエーションに基づき、複数の実施例を説明する。
In the above explanation, the
アカウント呼び出しコントラクト301と、実行者アカウントコントラクト302とが別のインスタンスとして存在する場合、実行者アカウントコントラクト302は仮想アカウントコントラクト(virtual account contract)であるか否かのバリエーションが考えられる。仮想アカウントコントラクトは、実際にユーザが実行を希望するトランザクション(user tx)の処理、呼び出し関数が実行されるまでは実体がない特殊なコントラクトである。
When the
仮想アカウントコントラクトを利用するメリットは、第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
仮想アカウントコントラクトを利用するメリットは、第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
[実施例1]
実施例1では、アカウント呼び出しコントラクト301と実行者アカウントコントラクト302とが別のインスタンスであって、実行者アカウントコントラクトは仮想アカウントコントラクトであり、且つ、委任手数料(delegation fee token)を任意のトークンで徴収する。ここで任意のトークンとは、ユーザがブロックチェーンシステム300のブロックチェーンアカウントで所有するトークンであり、手数料トークン又はユーティリティトークンではない。
[Example 1]
In the first embodiment, the
実施例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
アカウント呼び出しコントラクト301は、取り込まれた委任トランザクションを基に、ユーザが実行を希望するトランザクションの電子署名の正当性を検証し(S302)、検証に成功すると、ステップS302で決定したアドレスの実行者アカウントコントラクト302をデプロイする(ステップS312)。
The
アカウント呼び出しコントラクト301は、デプロイした実行者アカウントコントラクト302に対して、対象コントラクト303における対象関数(target function)の実行を指示する(S303)。ステップS304以降の処理は、図8のシーケンス図を参照した処理と同様である。
The
なお、図9のシーケンス図に示した処理は、実行者アカウントコントラクト302を呼び出す初回のみ実行され、2回目以降は、図8のシーケンス図に示した処理が実行される。
Note that the process shown in the sequence diagram in Figure 9 is executed only the first time the
上述したように、仮想アカウントコントラクトを使用するので、最初に呼び出して(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
[実施例2]
実施例2では、アカウント呼び出しコントラクト301と実行者アカウントコントラクト302とが別のインスタンスであって、実行者アカウントコントラクト302は仮想アカウントコントラクでなく、且つ、委任手数料を任意のトークンで徴収する。
[Example 2]
In the second embodiment, the
実施例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
[実施例3]
実施例3では、アカウント呼び出しコントラクト301と実行者アカウントコントラクト302とが同一のインスタンスであって、それは仮想アカウントコントラクトではなく、且つ、委任手数料を任意のトークンで徴収する。
[Example 3]
In the third embodiment, the
実施例3では、アカウント呼び出しコントラクト301と実行者アカウントコントラクト302とが同一のインスタンスである。ユーザの第1装置1及び中継者の第2装置2の間では、図7のシーケンス図で示した委任トランザクションの作成処理を実行するが、その際、委任条件中の実行者アカウントコントラクト302のアドレスの決定に必要なデータは不要である。
In the third embodiment, the
図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
実施例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
これにより、ユーザが実行を希望するトランザクションの対象コントラクト303では、対象関数の実行によって規定された処理が実行される(S501)。規定された処理の実行により、ユーザが実行を希望するトランザクション(アセットの移動、データ保存、又はコンピューティング)の結果が得られる。
As a result, in the
実行者アカウントコントラクト302は、ユーザが支払うべき委任手数料トークンの量を決定する(S304)。実行者アカウントコントラクト302は、ステップS304で決定した量の支払先のアドレスへの委任手数料の支払いを、委任トランザクションに含まれるアドレスに基づいて委任手数料トークン管理コントラクト304へ指示する(ステップS335)。実行者アカウントコントラクト302は、委任トランザクションの実行処理を終了する。
The
ステップS335の指示により、委任手数料トークン管理コントラクト304は、指定された支払先(中継者)のアドレスに対する委任手数料の支払い処理を実行する。
In response to the instruction in step S335, the delegation fee
[実施例4]
実施例4では、アカウント呼び出しコントラクト301と実行者アカウントコントラクト302とが別のインスタンスであって、実行者アカウントコントラクト302は仮想アカウントコントラクトであり、且つ、委任手数料は徴収しない。この場合、ユーザはブロックチェーンシステム300におけるアカウントさえ所有していなくてもよい。
[Example 4]
In the fourth embodiment, the
実施例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
図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
アカウント呼び出しコントラクト301は、デプロイした実行者アカウントコントラクト302に対して、対象コントラクト303における対象関数(target function)の実行を指示する(S303)。
The
実行者アカウントコントラクト302は、渡されたアドレス及び識別子に基づき、対象のコントラクトの対象関数に、渡されたデータを引数として入力してこれを実行し(S401)、処理が終了する。図8のシーケンス図に示した処理手順におけるステップS304以降の処理は実行されない。
The
ステップS401の処理により、ユーザが実行を希望するトランザクションの対象コントラクト303では、対象関数の実行によって規定された処理が実行される(S501)。規定された処理の実行により、ユーザが実行を希望するトランザクション(アセットの移動、データ保存、又はコンピューティング)の結果が得られる。
By the processing of step S401, the
[実施例5]
実施例5では、アカウント呼び出しコントラクト301と実行者アカウントコントラクト302とが別のインスタンスであって、実行者アカウントコントラクト302は仮想アカウントコントラクトでなく、且つ、委任手数料は徴収しない。
[Example 5]
In the fifth embodiment, the
実施例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
図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
アカウント呼び出しコントラクト301は、ステップS301で決定したアドレスの実行者アカウントコントラクト302に対して、対象コントラクト303における対象関数(target function)の実行を指示する(S303)。
The
指示を受けた実行者アカウントコントラクト302は、渡されたアドレス及び識別子に基づき、対象コントラクト303の対象関数に、渡されたデータを引数として入力してこれを実行し(S401)、処理が終了する。図8のシーケンス図に示した処理手順におけるステップS304以降の処理は実行されない。
The
[実施例6]
実施例6では、アカウント呼び出しコントラクト301と実行者アカウントコントラクト302とが同一のインスタンスであって、それは仮想アカウントコントラクトではなく、且つ、委任手数料は徴収しない。
[Example 6]
In the sixth embodiment, the
実施例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
図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
実施例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
上述したアカウント呼び出しコントラクト301及び実行者アカウントコントラクト302が、ブロックチェーンシステム300のあらゆるブロックチェーンアカウントからのトランザクション実行指示を許容する構成は非現実的である。したがって、実行者アカウントコントラクト302は、アカウント呼び出しコントラクト301からの指示のみを受け付けるように設定し、アカウント呼び出しコントラクト301は、自身の呼び出し関数の実行指示権限を有するアカウント(中継者)をホワイトリスト型で記憶しておくとよい。実施例3及び実施例6のように、アカウント呼び出しコントラクト301と実行者アカウントコントラクト302とが同一のインスタンスである場合、アカウント呼び出しコントラクト301(実行者アカウントコントラクト302)は、実行指示権限を有するアカウント(中継者)をホワイトリスト型で記憶しておき、権限を有していないアカウントからの委任トランザクションを拒否できるようにするとよい。
It is unrealistic for the
図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
委任手数料の徴収方法についても、他のバリエーションが許容される。図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
上述したシステム100により、ユーザは、ユーティリティトークン又は手数料トークンを保有していなくてもブロックチェーンシステム300でのトランザクションの実行が可能になる。これにより、ユーザの負担は大きく軽減される。中継者は、任意のトークン(委任手数料トークン)で委任手数料を徴収することが可能である。本開示では、委任手数料トークン管理コントラクト304は、トランザクションの委任対応のための改変を行なわなくても上述の処理を実行できるため、既にブロックチェーンシステム300に存在する多数のトークンを利用することが可能である。委任手数料トークンは、例えばEthereumではERC20、ERC721、又はERC1155等の標準規格に準拠した既存のトークンでの徴収が可能である。ERC1155の場合、複数種類のトークンでの徴収も可能である。つまり、トランザクションの委任手数料をユーザから徴収するための手続きを柔軟に調整することによって、ユーザの負担を緩和することが可能である。勿論、完全に肩代わりすることも可能であり、完全に肩代わりする場合、負担は相当軽減される。
The above-described
ユーザから中継者(委任される者)へ安全に委任を実施するために電子署名を用いて委任内容の正当性の検証を行なう場合であっても、ユーザは始めに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
中継者が、ユーザが実行を希望するトランザクション(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
委任される中継者は、例えば中央省庁から正式な手続きを経て認可を受けている企業であってもよい。この企業が顧客の暗号資産(秘密鍵)の管理に責任を負い、ユーザが希望するトランザクション(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
本開示のシステム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
本開示のシステム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
本開示のシステム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
Claims (14)
前記第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に記載のトランザクション委任方法。 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.
前記ユーザ所望のトランザクションの実行者となる前記実行スマートコントラクトのアドレス、又は該アドレスを決定するためのデータを含む
請求項3に記載のトランザクション委任方法。 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から請求項4のいずれか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.
前記呼び出しスマートコントラクトは、前記委任トランザクションに基づいて委任手数料を決定し、
前記ユーザのアカウントから中継者への支払いを実行する委任手数料スマートコントラクトへ、決定した委任手数料を支払うためのトランザクションを要求する
請求項5に記載のトランザクション委任方法。 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.
請求項6に記載のトランザクション委任方法。 The method of claim 6 , wherein the delegation fee is different from a fee token or a utility token.
請求項5から請求項7のいずれか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から請求項4のいずれか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.
前記実行スマートコントラクトは、前記委任トランザクションに基づいて委任手数料を決定し、
前記ユーザのアカウントから中継者への支払いを実行する委任手数料スマートコントラクトへ、決定した委任手数料を支払うためのトランザクションを要求する
請求項9に記載のトランザクション委任方法。 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.
請求項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.
ブロックチェーンシステムにおけるアカウントデータを有する第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:
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)
| 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 |
-
2021
- 2021-07-08 JP JP2021113689A patent/JP7628289B2/en active Active
Patent Citations (3)
| 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 |