(57)【特許請求の範囲】
【請求項１】
プロセッサによって実行されると、前記プロセッサに、
スマート・コントラクト・トランザクション・タイプであるターゲット・トランザクションを実行するためにトランザクション要求を受け取るステップと、
ブロックチェーンに対応する複数の構成されたトランザクション・テンプレートに前記スマート・コントラクト・トランザクション・タイプに合致するトランザクション・テンプレートがあるか否かを決定するステップと、
前記複数の構成されたトランザクション・テンプレートに前記スマート・コントラクト・トランザクション・タイプに合致するトランザクション・テンプレートがあると判断した場合、前記ターゲット・トランザクションの前記スマート・コントラクト・トランザクション・タイプに合致するトランザクション・テンプレートをロードするステップと、又は、前記複数の構成されたトランザクション・テンプレートに前記スマート・コントラクト・タイプに合致するトランザクション・テンプレートがないと判断した場合、前記トランザクション・テンプレートとしてスマート・コントラクト・トランザクション・テンプレートを生成するステップと、
前記トランザクション・テンプレートから前記スマート・コントラクト・トランザクション・タイプに合致するスマート・コントラクト・トランザクション処理ルールを決定するステップと、
スマート・コントラクト・アドレスであって、前記スマート・コントラクトは前記ブロックチェーンに記憶されるスマート・コントラクト・アドレスと前記トランザクション要求に含まれる１つ又は複数のトランザクション・パラメータを取得するためのスマート・コントラクト・トランザクション処理ルールに基づく前記トランザクション要求の分析と、
前記１つ又は複数のトランザクション・パラメータを実行し、トランザクション結果を出力するために、前記スマート・コントラクト・アドレスに従って、前記スマート・コントラクトを呼び出すことによって、
前記トランザクション・テンプレートに従って前記ターゲット・トランザクションを処理するステップと、
前記トランザクション結果を前記ブロックチェーンに書き込むステップと、
を含む、動作を実行させる命令を格納する非一時的なコンピュータ可読記憶媒体。
【請求項２】
前記トランザクション・テンプレートをロードするステップが、
前記ターゲット・トランザクションのトランザクション識別子を決定するステップと、
前記トランザクション識別子に従って、前記ターゲット・トランザクションの前記スマート・コントラクト・トランザクション・タイプを決定するステップと
を含む、請求項１に記載の非一時的なコンピュータ可読記憶媒体。
【請求項３】
前記トランザクション・テンプレートに従って前記ターゲット・トランザクションを処理するステップが、
前記トランザクション・テンプレート中のチェック・ルールを決定するステップと、
前記トランザクション要求が前記チェック・ルールに従って事前設定された条件を満たすか否かをチェックするステップと
前記トランザクション要求が前記チェック・ルールに従って事前設定された条件を満たす場合、前記スマート・コントラクト・トランザクション処理ルールに従って、前記ターゲット・トランザクションを処理するステップと、
前記トランザクション要求が前記チェック・ルールに従って事前設定された条件を満たさないと判断した場合、前記ターゲット・トランザクションの処理が失敗したことを示すプロンプトを返すステップと、
を含む、請求項１に記載の非一時的なコンピュータ可読記憶媒体。
【請求項４】
前記トランザクション結果を前記ブロックチェーンに書き込むステップが、
前記トランザクション結果の第１トランザクション情報を、前記ブロックチェーンに追加されるターゲット・ブロックに書き込むステップを含み、
前記動作は、第１トランザクション情報を前記ターゲット・ブロックに書き込むときに、前記ターゲット・ブロックの状態変更値であって、前記ターゲット・ブロックに記憶された前記第１トランザクション情報が、前記ブロックチェーン内の他のブロックに記録された他のトランザクション情報と一致しているか否かをチェックするために使用される状態変更値を決定及び記憶するステップ、を更に含む請求項１に記載の非一時的なコンピュータ可読記憶媒体。
【請求項５】
前記状態変更値を決定及び記憶するステップが、
前記第１トランザクション情報を前記ターゲット・ブロックに書き込んだ後、前記ターゲット・ブロックのチェック値を計算するステップと、
前記チェック値を前記ターゲット・ブロックの状態変更値として使用するステップ、を含む請求項４に記載の非一時的なコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、コンピュータ技術の分野に関し、詳細には、トランザクション処理方法および装置に関する。
【背景技術】
【０００２】
ブロックチェーン技術は、分散型台帳技術とも呼ばれる。ブロックチェーン技術は、それらの出現以来、そのような技術を使用して記憶されるデータの不変性および非中央集権化などの特徴により、広範囲にわたる注目を集めている。コンピュータ技術の連続的な発達に伴って、ブロックチェーン技術は、ますます安全なデータ記憶環境およびデータ記憶の利便性を人々に提供することになるであろう。
【０００３】
例示的な適用では、ブロックチェーン技術は、一般的には、トランザクションで生成されるトランザクション情報を記憶するために使用される。しかしながら、スマート・コントラクトの出現が、ブロックチェーンのサービス範囲をさらに拡大する。スマート・コントラクトは、一般的には、ブロックチェーン（またはブロックチェーンのトランザクション処理ノード）に記憶されるコードのセグメントである。スマート・コントラクトの実行条件およびトランザクション処理ロジックが、コードのセグメントに規定される。すなわち、トランザクション処理要求の場合は、スマート・コントラクトを呼び出すための条件、およびスマート・コントラクトが呼び出された後の受け取ったトランザクション処理要求の処理方法が規定される。したがって、ユーザが、スマート・コントラクトにより指定されたトランザクションを処理する必要があるとき、ユーザは、指定されたトランザクションを処理するために必要とされるトランザクション・パラメータを、ブロックチェーンのトランザクション処理ノードに送り、これによりトランザクション処理ノードは、トランザクション・パラメータが、スマート・コントラクトによって規定された実行条件を満たすと決定されるとき、トランザクション・パラメータを実行し、次いで指定されたトランザクションの処理ジョブを完了してよい。
【０００４】
たとえば、ユーザがスマート・コントラクトによりいくつかの指定されたトランザクションを処理する必要があるとき、ブロックチェーンのスマート・コントラクトの記憶アドレスが、トランザクション処理要求で搬送され、これによりブロックチェーンのトランザクション処理ノードが、トランザクション処理要求が実行されるとき、トランザクション処理要求からトランザクション・パラメータおよびブロックチェーンのスマート・コントラクトの記憶アドレスを決定してよい。記憶アドレスに従って、トランザクション処理ノードは、記憶アドレスに記憶されているスマート・コントラクトを呼び出し、トランザクション・パラメータがスマート・コントラクトの実行条件を満たすかどうかを決定してもよい。はいの場合、トランザクション処理ノードは、指定されたトランザクションの処理ジョブを完了するために、スマート・コントラクトに事前に規定されたトランザクション処理ロジックに従ってトランザクション・パラメータを処理する。
【０００５】
ブロックチェーンに記憶されたデータが不変であるという特徴により、スマート・コントラクトがブロックチェーンに記憶されると、スマート・コントラクトを変更することは不可能である。トランザクションの連続的なアップグレードにつれて、スマート・コントラクトが新しい（アップグレードされた）トランザクションの処理ジョブをサポートできない場合がある。スマート・コントラクトが新しいトランザクションの処理ジョブをサポートできるようにするには、スマート・コントラクトは、新しいトランザクションに従って再開発され、ブロックチェーンに書き直されなければならない。
【０００６】
したがって、トランザクション処理方法がブロックチェーンにおいてトランザクションへのアップグレードに柔軟に適応できないというブロックチェーンにおける問題を解決するためのトランザクション処理方法の差し迫った必要がある。
【発明の概要】
【０００７】
本出願の実施形態は、トランザクション処理方法がトランザクションへのアップグレードに柔軟に適応できないというブロックチェーンにおける問題を解決するためのトランザクション処理方法および装置を提供する。
【０００８】
本出願の実施形態は、トランザクション処理方法を提供し、この方法は、
トランザクション要求を受け取るステップと、
トランザクション要求に含まれるターゲット・トランザクションのトランザクション・タイプを決定するステップと、
トランザクション・タイプに従って、トランザクション・タイプに合致するトランザクション・テンプレートをロードするステップと、
トランザクション・テンプレートに従ってターゲット・トランザクションを処理し、処理から取得されたトランザクション情報をブロックチェーンに書き込むステップと
を含む。
【０００９】
本出願の実施形態は、トランザクション処理方法を提供し、この方法は、
トランザクション要求を受け取り、トランザクション要求に含まれるターゲット・トランザクションのトランザクション・タイプを決定するステップと、
トランザクション・タイプに従って、トランザクション・タイプに合致するトランザクション・テンプレートをロードするステップと、
トランザクション・テンプレートに従ってターゲット・トランザクションを処理し、処理から取得されたトランザクション情報をブロックチェーンのターゲット・ブロックに書き込むステップと、
取得されたトランザクション情報をターゲット・ブロックに書き込むとき、ターゲット・ブロックの状態変更値を決定および記憶するステップであって、状態変更値が、ターゲット・ブロックに記録されたトランザクション情報がブロックチェーンの他のブロックに記録されたトランザクション情報と一致するかどうかをチェックするために使用される、決定および記憶するステップと
を含む。
【００１０】
本出願の実施形態は、トランザクション処理装置を提供し、この装置は、
トランザクション要求を受け取るように構成された受取りモジュールと、
トランザクション要求に含まれるターゲット・トランザクションのトランザクション・タイプを決定するように構成された決定モジュールと、
トランザクション・タイプに従って、トランザクション・タイプに合致するトランザクション・テンプレートをロードするように構成されたテンプレート・ローディング・モジュールと、
トランザクション・テンプレートに従ってターゲット・トランザクションを処理し、処理から取得されたトランザクション情報をブロックチェーンに書き込むように構成された処理モジュールと
を備える。
【００１１】
本出願の実施形態は、トランザクション処理装置を提供し、この装置は、
トランザクション要求を受け取り、トランザクション要求に含まれるターゲット・トランザクションのトランザクション・タイプを決定するように構成された受取りモジュールと、モジュールと、
トランザクション・タイプに従って、トランザクション・タイプに合致するトランザクション・テンプレートをロードするように構成されたテンプレート・ローディング・モジュールと、
トランザクション・テンプレートに従ってターゲット・トランザクションを処理し、処理から取得されたトランザクション情報をブロックチェーンのターゲット・ブロックに書き込むことと、取得されたトランザクション情報をターゲット・ブロックに書き込むとき、ターゲット・ブロックの状態変更値を決定および記憶することとを行うように構成された処理モジュールであって、状態変更値が、ターゲット・ブロックに記録されたトランザクション情報がブロックチェーンの他のブロックに記録されたトランザクション情報と一致するかどうかをチェックするために使用される、処理モジュールと
を備える。
【００１２】
本出願の実施形態によって採用される上記で説明した少なくとも１つの技術的解決策は、以下の有利な効果を達成することができる。
【００１３】
本出願の実施形態では、ユーザによって送られたトランザクション要求が受け取られた後、トランザクション要求に含まれるターゲット・トランザクションのトランザクション・タイプに従って、トランザクション・タイプに合致するトランザクション・テンプレートをロードすることができ、ターゲット・トランザクションは、トランザクション・テンプレートに従って処理される。ここで、トランザクション処理ノードは、トランザクション処理プロセスでユーザによって送られたトランザクション要求に従ってトランザクション要求に含まれるターゲット・トランザクションを処理することができるトランザクション・モデルをロードしてもよいので、トランザクション処理が固定され、拡張できないという現在の技術におけるブロックチェーンの限界は突破され、それによってブロックチェーンにおけるトランザクション処理をより柔軟にし、ユーザにとってブロックチェーンベースのトランザクション処理を容易にする。
【００１４】
本明細書で説明する添付の図面は、本出願のより良い理解を可能にし、本出願の一部を構成するために使用する。本出願の例示的な実施形態および例示的な実施形態の説明は、本出願を説明するために使用され、本出願に不適当な制限を与えない。
【図面の簡単な説明】
【００１５】
【図１】本出願のいくつかの実施形態によるトランザクション処理プロセスの概略図である。
【図２】本出願のいくつかの実施形態による、トランザクション・プラットフォームでトランザクション・テンプレート・インストール・パッケージをリリースするユーザの概略図である。
【図３】本出願のいくつかの実施形態によるトランザクション処理プロセスの概略図である。
【図４】本出願のいくつかの実施形態によるトランザクション処理装置の概略図である。
【図５】本出願のいくつかの実施形態によるトランザクション処理装置の概略図である。
【発明を実施するための形態】
【００１６】
当業者が本出願の技術的解決策をより良く理解できるように、本出願の実施形態での技術的解決策について、本出願の実施形態で添付の図面を参照しながら以下で明確にかつ余すところなく説明する。説明する実施形態は本出願の一部の実施形態にすぎず、全部ではないことは明らかである。本出願の実施形態に基づいて、当業者によって創造的な努力なしに得られる他のすべての実施形態は、本出願の範囲内に入るものとする。
【００１７】
図１は、以下のステップを含む、本出願のいくつかの実施形態によるトランザクション処理プロセスの概略図である。
【００１８】
Ｓ１０１：トランザクション要求を受け取る。
【００１９】
本出願の実施形態では、本出願の実施形態の実行エンティティが、トランザクション処理ノードであってよい。ここではトランザクション処理ノードは、ブロックチェーン処理技術を備えており、すなわち、トランザクション処理ノードは、ブロックチェーン・トランザクションを処理することができる。したがって、Ｓ１０１は、トランザクション処理ノードがトランザクション要求を受け取るステップと解釈されてよい。
【００２０】
トランザクション要求は、ユーザによってトランザクション処理ノードに、端末デバイス（ここでは端末デバイスは、モバイル端末、ＰＣ端末などと解釈されてよい）を介して送られると解釈されてよく、または、ユーザによって送られたトランザクション要求を受け取ったサーバ（サーバは、ブロックチェーン処理技術を備えており、トランザクション処理ノードとのデータ送信を行うことができてよい）によって送られると解釈されてよく、またはさらに、ブロックチェーン処理技術を備えていないサーバによって、サーバがユーザによって送られたトランザクション要求を受け取った後に、トランザクション処理ノードに送られると解釈されてよく、これは本明細書の実施形態によって限定されない。
【００２１】
たとえば、トランザクション処理を行うプロセスでは、ユーザが、トランザクション要求をトリガするために、対応するトランザクション・データをコンピュータ、携帯電話などの端末に入力してよい。たとえば、ユーザが振込トランザクションを行う必要があるとき、ユーザは、振込金額および振込みの受領者を端末に入力してよく、ユーザによって入力された振込金額および振込受領者、ならびに振込イニシエータ（すなわち、ユーザ）は、ユーザによって入力された振込トランザクションのトランザクション・データを構成してよい。ユーザは次いで、振込金額、振込受領者、および振込イニシエータを含むトランザクション・データをトランザクション処理ノードに搬送するトランザクション要求を送る。別の例では、ユーザがブロックチェーンにデータを記憶する必要があるとき、ユーザはデータを端末に入力してよく、データは、ユーザによって入力されたデータ記憶トランザクションのトランザクション・データであり、次いでユーザは、記憶されるデータを含むトランザクション・データをトランザクション処理ノードに搬送するトランザクション要求を送る。ユーザがトランザクション要求をトランザクション処理ノードに送る方法は、本明細書の実施形態によって限定されない。
【００２２】
また別の例の場合は、ユーザが指定された動作（たとえば、端末インターフェース上に表示される指定されたコントロールをクリックすることなど）を実行するのを端末が検出すると、端末は、ユーザによって端末に入力されたトランザクション・データを決定し、次いでトランザクション・データに従って対応するトランザクション要求を生成し、トランザクション要求をトランザクション処理ノードに送り、これによりトランザクション処理ノードがトランザクション要求を受け取り、その後のプロセスでトランザクション要求に含まれるターゲット・トランザクションを処理してよい。ユーザがトランザクション要求をトランザクション処理ノードに送る方法は、本明細書の実施形態によって限定されない。
【００２３】
本出願の実施形態でのトランザクション処理プロセスでは、ユーザが対応するトランザクション・データを端末に入力してよく、またトランザクション・データを端末上にインストールされた指定されたアプリケーションに入力してもよいことに留意されたい。対応して、ユーザによって入力されたトランザクション・データが受け取られた後、指定されたアプリケーションは、対応するトランザクション要求を生成してよい。したがって、ユーザによる指定された動作が検出される（たとえば、指定されたコントロールをクリックすることなど）と、指定されたアプリケーションは、トランザクション要求をトランザクション処理ノードに送ってよい。
【００２４】
Ｓ１０２：トランザクション要求に含まれるターゲット・トランザクションのトランザクション・タイプを決定する。
【００２５】
トランザクション処理ノードが、端末を介してユーザによって送られたトランザクション要求を受け取った後、トランザクション処理ノードは、トランザクション要求に含まれるターゲット・トランザクションのトランザクション・タイプをさらに決定してよい。このアクションは、以下の目的で提供される。本出願の実施形態では、トランザクション・テンプレートが、トランザクション処理ノードに事前に記憶され、異なるトランザクション・テンプレートは、異なるトランザクション処理ジョブに対応し、したがって、トランザクション処理ノードがユーザによって送られたトランザクション要求を受け取った後、トランザクション処理ノードは、事前に記憶されたトランザクション・テンプレートからのどのトランザクション・テンプレートが、トランザクション要求に含まれるターゲット・トランザクションを処理することができるかを決定する必要がある。トランザクション処理ノードは、一般的に、トランザクション・タイプに対応するトランザクション・テンプレートを記憶する。したがって、どのトランザクション・テンプレートがトランザクション要求に含まれるターゲット・トランザクションを処理することができるかを決定するプロセスでは、トランザクション処理ノードは、ターゲット・トランザクションのトランザクション・タイプを決定し、次いで、トランザクション・タイプとトランザクション・テンプレートとの事前に記憶された関係に従ってトランザクション・タイプに対応するトランザクション・テンプレートを決定し、さらに、その後のプロセスでトランザクション・テンプレートによりトランザクション要求に含まれるターゲット・トランザクションを処理してよい。
【００２６】
一例では、トランザクション処理ノードが、ユーザによって送られたトランザクション要求を受け取った後、トランザクション処理ノードは、トランザクション要求に含まれるターゲット・トランザクションのトランザクション識別子を決定し、トランザクション識別子に従ってターゲット・トランザクションのトランザクション・タイプを決定してよく、トランザクション識別子は、数字の文字列であってよく、数字の文字列の一部が、ターゲット・トランザクションを表すことができるトランザクション・コードである。たとえば、トランザクション識別子＃２４４３４０９２３では、＃２がターゲット・トランザクションを表すトランザクション・コードである。トランザクション識別子はまた、他の形態であってもよい。たとえば、トランザクション要求が、「ｔｒａｎｓｆｅｒ  ｔｙｐｅ」の文字を含むとき、「ｔｒａｎｓｆｅｒ  ｔｙｐｅ」がトランザクション要求に含まれるターゲット・トランザクションのトランザクション識別子である。
【００２７】
本出願の実施形態によるトランザクション処理ノードに事前に記憶されるトランザクション・テンプレートは、ＡＰＩにより構築され、トランザクション処理ノードに記憶されてよいことに留意されたい。
【００２８】
Ｓ１０３：トランザクション・タイプに従って、トランザクション・タイプに合致するトランザクション・テンプレートをロードする。
【００２９】
本出願の実施形態では、様々なトランザクション・タイプに対応するトランザクション・テンプレートが、トランザクション処理ノードに事前に記憶される。したがって、トランザクション処理ノードがユーザによって送られたトランザクション要求を受け取った後、トランザクション処理ノードは、トランザクション要求に含まれるターゲット・トランザクションに対応する決定されたトランザクション・タイプに従って、事前に記憶されたトランザクション・テンプレートからトランザクション・タイプに合致するトランザクション・テンプレートをロードしてよい。次いでその後のプロセスで、トランザクション処理ノードは、トランザクション・テンプレートによりターゲット・トランザクションを処理してよい。
【００３０】
たとえば、ユーザがトランザクション処理ノードへの振込要求（すなわち、トランザクション要求）を開始すると仮定すると、トランザクション処理ノードが振込要求を受け取った後、トランザクション処理ノードは、振込要求を分析し、振込要求に対応するトランザクション・タイプは振込トランザクションであると決定してよい。次いで、トランザクション処理ノードは、事前に記憶されたトランザクション・テンプレートから、振込トランザクション（すなわち、トランザクション・タイプ）に合致する振込テンプレートを決定し、ロードする。その後のプロセスで、トランザクション処理ノードは、振込テンプレートにより振込要求を処理する。
【００３１】
トランザクション処理ノードがトランザクション要求に含まれるターゲット・トランザクションのトランザクション・タイプを決定した後、トランザクション処理ノードは、事前に構成されたトランザクション・テンプレートにはトランザクション・タイプに合致するトランザクション・テンプレートがないとわかる。すなわち、トランザクション・テンプレートのいずれも、トランザクション要求に含まれるターゲット・トランザクションを処理することができない。したがって、トランザクション処理ノードは、ユーザによって入力されたトランザクション・コードに従ってターゲット・トランザクションを処理することができるトランザクション・テンプレートを生成し、次いで生成したトランザクション・テンプレートによりターゲット・トランザクションを処理してよい。
【００３２】
一例では、トランザクション処理ノードが、ユーザによって送られたトランザクション要求を受け取ると、トランザクション処理ノードは、事前に構成されたトランザクション・テンプレートに、トランザクション要求に対応するトランザクション・テンプレートがないと決定する。次いで、トランザクション処理ノードはユーザに、トランザクション要求に含まれるターゲット・トランザクションを処理できないことをプロンプトしてよい。ユーザがプロンプトを見ると、ユーザは、ターゲット・トランザクションのためにトランザクション処理ノードでターゲット・トランザクションを処理するのに必要とされるトランザクション・コードをコンパイルしてよく、トランザクション処理ノードは、ユーザによって入力されたトランザクション・コードに従って、対応するトランザクション・テンプレートを生成してよい。次いで、トランザクション処理ノードは、生成されたトランザクション・テンプレートをロードし、ターゲット・トランザクションを処理してよい。
【００３３】
例示的な適用では、異なるトランザクション・テンプレートが読み取ることができるデータ・フォーマットは、一般的に異なる。したがって、トランザクション処理ノードが、本出願の実施形態でユーザによって送られたトランザクション要求を受け取った後、トランザクション処理ノードは、事前に記憶されたトランザクション・テンプレートによりトランザクション要求を順次読み取ってもよい。トランザクション処理ノードが、あるトランザクション・テンプレートによりトランザクション要求を読み取ることができる（すなわち、トランザクション要求のデータ・フォーマットがそのトランザクション・テンプレートに合致する）と、トランザクション処理ノードは、その後のプロセスでそのトランザクション・テンプレートによりトランザクション要求に含まれるターゲット・トランザクションを処理してよい。
【００３４】
トランザクション処理ノードのデータが変更される場合があるので、トランザクション処理ノードに事前に記憶されたトランザクション・テンプレートは、更新され、調整されてよい。したがって、トランザクションが連続してアップグレートされるとき、ユーザが対応してトランザクション処理ノードでトランザクション・テンプレートをアップグレートしてよい。ユーザは、トランザクション・テンプレートがアップグレードされたトランザクションをサポートできるようにするために、トランザクション・テンプレートを再開発する必要はなく、元のトランザクション・テンプレートに基づいて更新および調整を行うだけであり、それによってトランザクション保守効率を著しく改善する。
【００３５】
しかしながら、ブロックチェーンに記憶されるデータは不変であるので、データを記憶するためのユーザによるブロックチェーンの使用は、データ記憶の安全性を効果的に保証することになり、それによってユーザによるその後のデータ検証に有利な検証基準を与える。一方、データの不変性は、ブロックチェーンのトランザクション処理における不便にもつながり、最も重要な問題の１つは、ブロックチェーン・トランザクション展開を現在サポートしているスマート・コントラクトが一般的にすべてブロックチェーンに記憶され、したがって、スマート・コントラクトは、トランザクションの連続的なアップグレードとともに更新されない場合があることである。スマート・コントラクトが新しいトランザクションの処理ジョブをサポートできるようにするには、ユーザは、スマート・コントラクトを再開発し、再開発されたスマート・コントラクトをブロックチェーンに書き込む必要がある。したがって、トランザクションの連続的なアップグレードは必然的に、ユーザにスマート・コントラクトを再開発し続けることを強制し、それによってユーザにはトランザクション保守での著しい不便が生じる。
【００３６】
本出願の実施形態では、様々なターゲット・トランザクションを処理するためのすべてのトランザクション・テンプレートが、ブロックチェーンに記憶されるのではなく、トランザクション処理ノードに事前に記憶されてよい。したがって、トランザクションがアップグレードされるとき、ユーザは、トランザクション・テンプレートがアップグレードされたトランザクションをサポートできるようにするために、トランザクション処理ノードに記憶されたトランザクション・テンプレート上で対応する更新を行うだけでよい。アップグレードされたトランザクションに適応するためにトランザクション・テンプレートを再開発する必要がなく、ユーザがスマート・コントラクトを再開発して、再開発されたスマート・コントラクトに、アップグレードされたトランザクションのトランザクション処理をサポートさせることしかできない現在の技術と比較して、トランザクション保守のコストは大幅に削減されることになる。同時に、トランザクション処理方法がトランザクション・アップグレードに柔軟に適応できないという問題は解決され、ブロックチェーンでのトランザクション処理の柔軟性は大幅に高められる。
【００３７】
さらに、例示的な適用では、スマート・コントラクト実行のプロセスで必要とされるシステム・リソースが、一般的に仮想マシンによって割り振られる。しかしながら、仮想マシンはサーバから分割されているので、仮想マシンは、サーバのシステム・リソースの一部を処理するにすぎない場合がある。スマート・コントラクトによって必要とされるシステム・リソースの、仮想マシンによる割振りは、スマート・コントラクトが、仮想マシンによって所有されるサーバのシステム・リソースの一部から、必要とされるシステム・リソースを取得することしかできないことを意味する。このようにして、スマート・コントラクトは、少量のシステム・リソースを取得する。しかしながら、ますます高まるトランザクション需要量に適応するために、スマート・コントラクトは、ますます増加するトランザクションへの十分なサポートを行うには仮想マシンからより多くのシステム・リソースを取得する必要があるに違いない。仮想マシン自体の性能問題（すなわち、仮想マシンは比較的少量のシステム・リソースを所有し、スマート・コントラクトに割り振られるシステム・リソースの量もまた比較的少ない）は、スマート・コントラクトがますます増加するトランザクションへの良好なサポートを行うことを不可能にし、それによってブロックチェーン・トランザクション処理効率を大きく下げ、ユーザに不便を招くことになる。
【００３８】
本出願の実施形態では、様々なトランザクションに対応するトランザクション・テンプレートが、トランザクション処理ノードに事前に記憶される。トランザクション処理ノードは、サーバと同じ量のシステム・リソースを所有するので、トランザクション要求を処理するためにトランザクション・テンプレートを開始するプロセスにおいて、トランザクション処理ノードは、トランザクション要求を処理するプロセスにより多くのシステム・リソースを割り振ってよい。したがって、トランザクション量の連続的な増加とともに、トランザクション処理ノードは、様々なトランザクションの処理をさらに強力にサポートし、それによってブロックチェーン・トランザクション処理効率を確保することができる。
【００３９】
Ｓ１０４：トランザクション・テンプレートに従ってターゲット・トランザクションを処理し、処理から取得されたトランザクション情報をブロックチェーンに書き込む。
【００４０】
トランザクション処理ノードが、トランザクション・タイプに合致するトランザクション・テンプレートを決定した後、トランザクション処理ノードは、トランザクション要求に含まれるターゲット・トランザクションを、トランザクション・テンプレートにより処理してよく、トランザクション・テンプレートは、事前に規定されたトランザクション処理ルールを含み、トランザクション処理ノードは、トランザクション処理ルールに従ってターゲット・トランザクションを処理してよい。
【００４１】
例示的な適用では、トランザクションの各タイプが、一般的にいくつかのサブトランザクションを含む。たとえば、金融トランザクションは、振込トランザクション、財務管理トランザクションなどのサブトランザクションを含む場合があり、これに基づいて、本出願の実施形態では、各トランザクション・テンプレートでのトランザクション処理ルールが、主要なタイプのトランザクションのトランザクション処理を担ってもよく、各トランザクション処理ルールが、複数の処理ルールを含み、トランザクションのタイプが異なるサブトランザクションを異なる処理ルールが対応して処理する。たとえば、金融トランザクションの場合、トランザクション処理ノードは、金融トランザクション処理を担う金融トランザクション・テンプレートを記憶してよく、金融トランザクション・テンプレートは、振込み、財務管理、および他のサブトランザクションを処理するための様々な処理ルールを含む。
【００４２】
したがって、本出願の実施形態では、トランザクション処理ノードが、トランザクション要求に含まれるターゲット・トランザクションのトランザクション・タイプに従って、トランザクション・タイプに合致するトランザクション・テンプレートをロードした後、トランザクション処理ノードは、トランザクション・テンプレートに含まれるトランザクション処理ルールを決定してよい。次いで、トランザクション処理ノードは、トランザクション処理ルールに含まれる処理ルールから、ターゲット・トランザクションに合致する処理ルールをさらに決定し、この処理ルールによりターゲット・トランザクションを処理してよい。
【００４３】
たとえば、トランザクション処理ノードによって受け取られたトランザクション要求が、ユーザによって送られた振込要求であると仮定すると、トランザクション処理ノードは、トランザクション要求のトランザクション・タイプは金融であると決定してよい。次いで、トランザクション処理ノードは、事前に記憶されたトランザクション・テンプレートから金融トランザクションを処理することができるトランザクション・テンプレートを決定し、ロードしてよい。トランザクション処理ノードがトラザクション・テンプレートをロードした後、トランザクション処理ノードは、トランザクション・テンプレートに含まれるトランザクション処理ルールを決定してよい。次いで、トランザクション処理ノードは、トランザクション処理ルールに含まれる処理ルールから、振込トランザクションに合致する振込処理ルール（すなわち、上述の処理ルール）を決定し、この処理ルールにより振込トランザクションを処理してよい。
【００４４】
例示的な適用では、ユーザによってトラザクション処理ノードに入力されたトランザクション要求が、規定に従わないデータ・フォーマット、不正なトランザクション要求などの状況を作り出す場合がある。トランザクション処理ノードが、問題のあるこれらのトランザクション要求を処理するとき、トランザクション処理ノードの動作は影響を受ける場合があり、トランザクション処理ノードは、厳しい状況で崩壊する場合さえある。
【００４５】
トランザクション処理ノードの効果的な動作を確保し、トランザクション処理ノードのトランザクション処理効率を確保するために、本出願の実施形態では、トランザクション処理ノードは、決定されたトランザクション・テンプレート（トランザクション処理ノードによって受け取られたトランザクション要求を処理するために使用されるトランザクション・テンプレート）に従って受け取られたトランザクション要求をチェックしてよい。
【００４６】
一例では、トランザクション処理ノードが、トランザクション要求に対応するトランザクション・テンプレート（すなわち、ターゲット・トランザクションのトランザクション・タイプに対応するトランザクション・テンプレート）を決定した後、トランザクション処理ノードは、トランザクション・テンプレートからトランザクション・テンプレートに含まれるトランザクション処理ルールを決定してよく、トランザクション処理ルールは、トランザクション処理を実行するための処理ルールと、トランザクション要求をチェックするためのチェック・ルールとを含む。したがって、トランザクション処理ノードは、チェック・ルールに従ってトランザクション要求をチェックしてよい。トランザクション処理ノードが、トランザクション要求はチェック・ルールに規定されたプリセット条件を満たす（すなわち、トランザクション要求は正当および正常な要求である）と決定するとき、トランザクション処理ノードは、ターゲット・トランザクションを処理してよく、トランザクション処理ノードが、トランザクション要求はチェック・ルールに規定されたプリセット条件を満たさない（すなわち、トランザクション要求は従っていないデータ・フォーマット、不正なトランザクション要求などの問題を有する可能性がある）と決定するとき、トランザクション処理ノードは、ターゲット・トランザクションを処理せず、トランザクション要求処理が失敗するというプロンプトをユーザに返し、これによりユーザはプロンプトに従ってトランザクション処理ノードへのトランザクション要求を再び開始してよい。
【００４７】
トランザクション処理ノードが、トランザクション・テンプレートによりトランザクション要求の処理を完了した後、トランザクション処理ノードは、対応するトランザクション情報を取得してよい。ここではトランザクション情報は、トランザクション処理ノードがトランザクションを処理した後に取得されるトランザクション結果、トランザクション処理プロセス全体を示すためのトランザクション記録、またはトランザクション要求に含まれるトランザクション・データであってよい。トランザクション処理ノードは、その後トランザクション情報をブロックチェーンに書き込んでよい。このようにして、ユーザは、その後ブロックチェーンのトランザクション情報を検索し、次いでトランザクション情報でのデータ検証などの動作を行ってよい。
【００４８】
本出願の実施形態では、トランザクション処理ノードに事前に記憶されたトランザクション・テンプレートは、様々なトランザクションを対象とするものであってよく、例示的な適用では、ブロックチェーンを含むトランザクションは、主として以下の４つのタイプに分けられてよい。
Ｉ．トレーシング・トランザクション、このトランザクションは、指定されたデータ片の転送経路を詳細に記録し、ブロックチェーンに記録された指定されたデータ片の転送経路を通して、すなわち、指定されたデータ片のソースをたどって、ユーザが指定されたデータ片の元の所有者を決定できるようにする。
ＩＩ．認証トランザクション、このトランザクションは、ブロックチェーンに記憶されたデータの不変性を使用し、指定されたデータの後の検証のために、または指定されたデータによる他のデータの検証のために、指定されたデータをブロックチェーンに記憶する。
ＩＩＩ．スマート・コントラクトに基づくトランザクション、このトランザクションは、ブロックチェーンでスマート・コントラクトを実行することによって財務管理製品からユーザに定期的に利益を返すことなど、現在の技術のスマート・コントラクトを使用して実装される特定のトランザクションである。
ＩＶ．交換トランザクション、このトランザクションは、ブロックチェーンを介したユーザ間の相互トランザクションを実現し、トランザクション・プロセスにおけるトランザクション詳細をブロックチェーンに記録する。
【００４９】
上記で説明した４つのタイプのトランザクションに関して、これらの４つのタイプのトランザクションを処理することができるトランザクション・テンプレートが、本出願の実施形態ではトランザクション処理ノードに事前に記憶される。したがって、トランザクション処理ノードがこれらの４つのタイプのトランザクションに対するトランザクション要求を受け取った後、トランザクション処理ノードは、４つのタイプのトランザクション要求に含まれるターゲット・トランザクションを処理するために、事前に記憶された４つのタイプのトランザクション・テンプレートをロードしてよく、４つのタイプのトランザクション要求は、それぞれ、追跡テンプレート、認証テンプレート、契約テンプレート、および交換テンプレートであってよい。
【００５０】
本出願の実施形態のトランザクション処理プロセスをさらに説明するために、これらの４つのタイプのトランザクション要求のトランザクション処理プロセスについて、以下で詳細に説明する。
【００５１】
トランザクション処理ノードがユーザによって送られた追跡データ要求を受け取ると、トランザクション処理ノードは、追跡データ要求に含まれる追跡トランザクション識別子に従って、追跡トランザクション識別子に対応する追跡トランザクション・タイプを決定してよく、次いで、トランザクション処理ノードは、追跡トランザクション・タイプに従って、事前に記憶されたトランザクション・テンプレートから追跡トランザクション・タイプに合致する追跡モデルを決定し、ロードしてよい。次いで、追跡テンプレートをアクティブ化することによって、トランザクション処理ノードは、追跡データ要求に含まれる追跡トランザクションを処理する。
【００５２】
トランザクション処理ノードが追跡テンプレートにより追跡トランザクションを処理するプロセスでは、トランザクション処理ノードは、追跡トランザクション・タイプに対応する追跡トランザクション処理ルールを決定し、次いで、分析により、追跡データ、追跡データ受領者のアドレス、および追跡データ要求に含まれる追跡データ送信者のアドレスを取得するために追跡トランザクション処理ルールを実行してよい。その後、トランザクション処理ノードは、追跡データを追跡データ受領者にさらに送り、対応する追跡データ転送情報を生成してよい。次いで、トランザクション処理ノードは、転送情報をブロックチェーンに書き込み、ユーザがその後、ブロックチェーンに記憶された転送情報により追跡データの転送経路を決定できるようにする。
【００５３】
認証トランザクションに関して、トランザクション処理ノードが、ユーザによって送られた認証データ要求を受け取ると、トランザクション処理ノードは、認証データ要求に対応する認証トランザクション・タイプを決定し、事前に記憶されたトランザクション・テンプレートから認証トランザクション・タイプに合致する認証テンプレートをロードしてよい。トランザクション処理ノードは、認証テンプレートから認証トランザクション・タイプに対応する認証トランザクション処理ルールを決定し、分析により、認証トランザクション処理ルールを通して、認証データ要求からユーザによって要求されるブロックチェーンに書き込まれる認証データを取得し、次いで認証データをブロックチェーンに書き込んでよい。
【００５４】
本出願の実施形態では、トランザクション処理ノードは、ブロックチェーンに記憶されたスマート・コントラクトによりトランザクションを実行してもよく、すなわち、スマート・コントラクトにより実行されるトランザクションに対応する契約テンプレート（すなわち、トランザクション・テンプレート）が、トランザクション処理ノードに事前に記憶されてよい。次いで、トランザクション処理ノードがユーザによって送られた契約データ要求を受け取ると、トランザクション処理ノードは、契約データ要求に対応する契約トランザクション・タイプを決定し、契約トランザクション・タイプに従って、事前に記憶されたトランザクション・テンプレートから契約トランザクション・タイプに対応する契約テンプレートを決定してよい。ブロックチェーンは、契約テンプレートから契約トランザクション・タイプに合致する契約トランザクション処理ルールをさらに決定し、契約データ要求に含まれるコントラクト・アドレスおよびトランザクション・パラメータを取得するために、契約トランザクション処理ルールを実行することにより分析してよく、コントラクト・アドレスは、ブロックチェーンのスマート・コントラクトの記憶アドレスである。その後、トランザクション処理ノードは、コントラクト・アドレスでブロックチェーンのスマート・コントラクトを検索し、次いで決定されたトランザクション・パラメータをスマート・コントラクトに送信し、これによりスマート・コントラクトがトランザクション・パラメータを自動的に実行し、対応するトランザクション結果（すなわち、トランザクション情報）をトランザクション処理ノードに返してよい。トランザクション処理ノードが、スマート・コントラクトによって返されたトランザクション結果を受け取った後、トランザクション処理ノードは、トランザクション結果をユーザに表示し、同時に、トランザクション結果についてデータ検証を行うことなどのユーザによる後の動作に備えて、トランザクション結果をブロックチェーンに書き込んでよい。
【００５５】
交換トランザクションに関して、トランザクション処理ノードが、ユーザによって送られたトランザクション要求を受け取ると、トランザクション処理ノードは、事前に記憶されたトランザクション・テンプレートからトランザクション要求を処理することができる交換テンプレートを決定し、交換テンプレートをロードすることによってトランザクション要求に含まれる交換トランザクションを処理してよく、トランザクション処理ノードはまず、決定された交換トランザクション・タイプに従って、交換テンプレートから交換トランザクション・タイプに合致する交換トランザクション処理ルールを決定してよい。交換トランザクション処理ルールを通して、トランザクション処理ノードは、分析により、トランザクション・イニシエータ、トランザクション受領者、トランザクション金額など、トランザクション要求に関わる情報を取得し、交換トランザクション処理ルールを実行することによってトランザクション・イニシエータのアカウントから対応するトランザクション金額の引き算を行い、次いで、このトランザクション金額を、トランザクション受領者のアカウントでのトランザクション処理に移す。このプロセスでは、トランザクション処理ノードは、このトランザクションのトランザクション詳細（すなわち、トランザクション情報）を取得してよい。ユーザがその後のプロセスでブロックチェーンのトランザクション詳細を見るために、およびトランザクション詳細のトランザクション証明がその後のプロセスでユーザに提供されるように、トランザクション処理ノードは、ブロックチェーンにトランザクション詳細を書き込んでよい。
【００５６】
本出願の実施形態では、トランザクション処理ノードは、他のトランザクションのトランザクション処理をサポートしてもよく、ユーザは、トランザクション処理ノードによってトランザクションの処理を行うために、所望のトランザクションのトランザクション・テンプレートをトランザクション処理ノードにロードするだけでよい。
【００５７】
上記で説明した方法から、様々なターゲット・トランザクションを処理するためのトランザクション・テンプレートが、ブロックチェーンではなくトランザクション処理ノードに事前に記憶されることがわかる。したがって、トランザクションがアップグレードされるとき、ユーザは、トランザクション・テンプレートがアップグレードされたトランザクションをサポートできるようにするために、トランザクション処理ノードに記憶されたトランザクション・テンプレート上で対応する更新を行うだけでよい。アップグレードされたトランザクションに適応するためにトランザクション・テンプレートを再開発する必要がなく、ユーザがスマート・コントラクトを再開発して、再開発されたスマート・コントラクトに、アップグレードされたトランザクションのトランザクション処理をサポートさせることしかできない現在の技術と比較して、トランザクション保守のコストは大幅に削減されることになる。
【００５８】
本出願の実施形態では、ユーザは、すべてのトランザクション・テンプレートをプリコンパイルし、トランザクション・テンプレートをトランザクション処理ノードに入力してよい。対応して、トランザクション処理ノードがユーザによって入力されたトランザクション・テンプレートを受け取った後、トランザクション処理ノードは、トランザクション処理ノードに対するトランザクション・テンプレートを記憶してよい。その後のプロセスにおいて、トランザクション処理ノードは、これらのトランザクション・テンプレートをロードすることによって、受け取ったトランザクション要求を処理してよい。
【００５９】
本出願の実施形態では、ユーザは、すべてのトランザクション・テンプレートをトランザクション・プラットフォームにパッケージ化およびリリースし、これによりトランザクション・テンプレート・インストール・パッケージを必要としている他のユーザが対応するトランザクション・テンプレート・インストール・パッケージをトランザクション・プラットフォームからダウンロードし、トランザクション・テンプレート・インストール・パッケージをローカル・トランザクション処理ノードに記憶してよい。ローカル・トランザクション処理ノードがトランザクション・テンプレート・インストール・パッケージをロードした後、トランザクション処理ノードは、図２に示すように、トランザクション・テンプレートに対応するトランザクションを処理する能力を持つ。
【００６０】
図２は、本出願のいくつかの実施形態による、トランザクション・プラットフォームでトランザクション・テンプレート・インストール・パッケージをリリースするユーザの概略図である。
【００６１】
図２では、ユーザＡは、コンパイル言語を使用してトランザクション・テンプレートをコンパイルし、トランザクション・プラットフォームにアップロードするために、トランザクション・テンプレートをそれぞれパッケージ化してよい。トランザクション・プラットフォームが、ユーザＡによってアップロードされたトランザクション・テンプレート・インストール・パッケージを受け取った後、トランザクション・プラットフォームは、他のユーザがダウンロードし、使用するためにトランザクション・テンプレート・インストール・パッケージをリリースしてよい。トランザクション・テンプレート・インストール・パッケージは、他のユーザによってアップロードされる場合もあり、ユーザは、ユーザのそれぞれにコンパイルされたトランザクション・テンプレート・インストール・パッケージを、ユーザが使用するためにトランザクション・プラットフォーム上で共有してよい。
【００６２】
例示的な適用では、スマート・コントラクトが一般的に、ユーザ自身によってコンパイルされ、ブロックチェーンに書き込まれることに留意されたい。ユーザが悪意のあるスマート・コントラクトをブロックチェーンにコンパイルし、書き込む場合、スマート・コントラクトは、他のユーザによるスマート・コントラクトに基づくトランザクション処理に不都合および損失をもたらす可能性がある。
【００６３】
上記で説明した状況を回避するために、本出願の実施形態では、トランザクション・プラットフォームは、ユーザによってアップロードされるトランザクション・テンプレート・インストール・パッケージをチェックしてよい。ユーザによってアップロードされたトランザクション・テンプレート・インストール・パッケージが悪意のあるコードを含むことがわかると、トランザクション・テンプレート・インストール・パッケージはリリースされることはなく、それによって、トランザクション・テンプレート・インストール・パッケージをダウンロードするための良い環境をユーザに提供する。
【００６４】
本出願の実施形態は、トランザクション処理方法をさらに提供する。図３は、本出願のいくつかの実施形態によるトランザクション処理方法の概略図である。
【００６５】
トランザクション処理ノードが、トランザクション要求を受け取り、トランザクション要求に含まれるターゲット・トランザクションのトランザクション・タイプを決定し、トランザクション・タイプに従って、トランザクション・タイプに合致するトランザクション・テンプレートをロードし、トランザクション・テンプレートに従ってターゲット・トランザクションをさらに処理し、処理から取得されたトランザクション情報をブロックチェーンのターゲット・ブロックに書き込み、取得されたトランザクション情報をターゲット・ブロックに書き込むとき、ターゲット・ブロックの状態変更値を決定および記憶し、状態変更値は、ターゲット・ブロックに記録されたトランザクション情報がブロックチェーンの他のブロックに記録されたトランザクション情報と一致するかどうかをチェックするために使用される。
【００６６】
さらに、ターゲット・ブロックの状態変更値を決定および記録することが、
取得されたトランザクション情報をターゲット・ブロックに書き込んだ後、ターゲット・ブロックのチェック値を計算することと、チェック値をターゲット・ブロックの状態変更値として決定することと、状態変更値をブロックチェーンに記憶することと
を含む。
【００６７】
すなわち、トランザクション情報が異なるブロックに書き込まれるとき、ブロックの変更値が計算により決定されてよい。このようにして、異なるブロックの変更値は、マークル木（Ｍｅｒｋｌｅ  ｔｒｅｅ）などの木構造に順次記憶され、次いで、ブロックチェーンの異なるブロックに記録されたデータが一致しているかどうかが、マークル木のルート・ノードのハッシュ値により決定されてよい。
【００６８】
本出願の実施形態によるブロックチェーンは、ビットコイン（Ｂｉｔｃｏｉｎ）・ブロックチェーン、イーサリアム（Ｅｔｈｅｒｅｕｍ）・ブロックチェーン、ライトコイン（Ｌｉｔｅｃｏｉｎ）・ブロックチェーンなどのブロックチェーンであってよい。
【００６９】
トランザクション処理ノードが、決定されたトランザクション・テンプレートにより、ユーザによって望まれるターゲット・トランザクション（すなわち、ユーザによって送られたトランザクション要求に含まれるターゲット・トランザクション）の処理を完了した後、トランザクション処理ノードは、ロードされたトランザクション・モデルをアップロードし、それによってトランザクション処理ノードのメモリ空間を節約してよいことにさらに留意されたい。代替的に、トランザクション処理ノードがターゲット・トランザクションの処理を完了した後、トランザクション処理ノードは、トランザクション・テンプレートをスリープにし、トランザクション・テンプレートに対応するトランザクション要求が後で受け取られた後、トランザクション要求を処理するために、トランザクション・テンプレートを再アクティブ化してもよい。
【００７０】
本出願の実施形態では、様々なターゲット・トランザクションを処理するためのすべてのトランザクション・テンプレートが、ブロックチェーンに記憶されるのではなく、トランザクション処理ノードに事前に記憶される。したがって、トランザクションがアップグレードされるとき、ユーザは、トランザクション・テンプレートがアップグレードされたトランザクションをサポートできるようにするために、トランザクション処理ノードに記憶されたトランザクション・テンプレート上で対応する更新を行うだけでよい。アップグレードされたトランザクションに適応するためにトランザクション・テンプレートを再開発する必要がなく、ユーザがスマート・コントラクトを再開発して、再開発されたスマート・コントラクトに、アップグレードされたトランザクションのトランザクション処理をサポートさせることしかできない現在の技術と比較して、トランザクション保守のコストは大幅に削減されることになる。同時に、トランザクション処理方法がトランザクション・アップグレードに柔軟に適応できないという問題は解決され、ブロックチェーンでのトランザクション処理の柔軟性は大幅に高められる。
【００７１】
さらに、トランザクション処理ノードが事前に記憶されたトランザクション・テンプレートによりトランザクション処理を行うプロセスでは、トランザクション・テンプレートによりターゲット・トランザクションを処理するために必要とされるすべてのシステム・リソースが、トランザクション処理ノード自体によって割り振られ、トランザクション処理ノードは、ターゲット・トランザクションを処理するためにトランザクション処理ノードのすべてのシステム・リソースを使用してよく、これは、スマート・コントラクト実行のプロセスで仮想マシンによってコールされるシステム・リソースが不足しているという現在の技術の問題を効果的に回避し、ブロックチェーン・トランザクション処理効率を大幅に向上させ、ユーザのトランザクション処理を容易にする。
【００７２】
本出願の実施形態では、トランザクション処理のプロセスで、ユーザが、対応するトランザクション要求をトランザクション処理ノードに入力してよい。トランザクション処理ノードがトランザクション要求を受け取った後、トランザクション処理ノードは、トランザクション要求に含まれるターゲット・トランザクションのトランザクション・タイプを決定し、トランザクション・タイプに合致するトランザクション・テンプレートをロードし、トランザクション・テンプレートによりターゲット・トランザクションを処理し、トランザクション処理ノードは、ブロックチェーン・トランザクションを処理することができる端末、ブロックチェーン・トランザクションを処理するためのサーバ、またはブロックチェーン・トランザクションを処理するためのクライアントもしくはアプリケーションであってよい。
【００７３】
上記で説明したのは、本出願の実施形態によるトランザクション処理方法である。同じ概念に基づいて、本出願の実施形態は、図４に示すように、トランザクション処理装置をさらに提供する。
【００７４】
図４は、本出願のいくつかの実施形態によるトランザクション処理装置の概略図であり、この装置は、
トランザクション要求を受け取るように構成された受取りモジュール４０１と、
トランザクション要求に含まれるターゲット・トランザクションのトランザクション・タイプを決定するように構成された決定モジュール４０２と、
トランザクション・タイプに従って、トランザクション・タイプに合致するトランザクション・テンプレートをロードするように構成されたテンプレート・ローディング・モジュール４０３と、
トランザクション・テンプレートに従ってターゲット・トランザクションを処理し、処理から取得されたトランザクション情報をブロックチェーンに書き込むように構成された処理モジュール４０４と
を備える。
【００７５】
決定モジュール４０２は、ターゲット・トランザクションのトランザクション識別子を決定し、トランザクション識別子に従って処理されるトランザクションのトランザクション・タイプを決定するように構成される。
【００７６】
テンプレート・ローディング・モジュール４０３は、構成されたトランザクション・テンプレートからトランザクション・タイプに合致するトランザクション・テンプレートを決定し、トランザクション・テンプレートをロードするように構成される。
【００７７】
テンプレート・ローディング・モジュール４０３は、構成されたトランザクション・テンプレートにトランザクション・タイプに合致するトランザクション・テンプレートがない場合、トランザクション・タイプに合致するトランザクション・テンプレートを生成し、生成されたトランザクション・テンプレートをロードするように構成される。
【００７８】
処理モジュール４０４は、トランザクション・テンプレートに含まれるトランザクション処理ルールに従って、ターゲット・トランザクションを処理するように構成される。
【００７９】
処理モジュール４０４は、ターゲット・トランザクションに対応するトランザクション・テンプレート中のトランザクション処理ルールを決定し、トランザクション処理ルールに従ってターゲット・トランザクションを処理するように構成される。
【００８０】
処理モジュール４０４は、トランザクション処理ルールに含まれるチェック・ルールを決定することと、トランザクション要求がチェック・ルールに従ってプリセット条件を満たすかどうかをチェックすることと、トランザクション要求がチェック・ルールに従ってプリセット条件を満たす場合、トランザクション処理ルール中の処理ルールに従ってターゲット・トランザクションを処理することと、トランザクション要求がチェック・ルールに従ってプリセット条件を満たさない場合、ターゲット・トランザクション処理が失敗することをプロンプトすることとを行うように構成される。
【００８１】
テンプレート・ローディング・モジュール４０３は、決定されたトランザクション・タイプが追跡トランザクション・タイプである場合、追跡トランザクション・タイプに対応する追跡テンプレートから、追跡トランザクション・タイプに対応する追跡トランザクション処理ルールを決定するように構成され、
処理モジュール４０４は、分析により、追跡トランザクション処理ルールに基づいて、追跡データ、追跡データ要求に含まれる追跡データの受領者および送信者のデータを取得することと、送信者から受領者に追跡データを転送することと、対応する転送情報を生成することと、転送情報をブロックチェーンに書き込むこととを行うように構成される。
【００８２】
テンプレート・ローディング・モジュール４０３は、決定されたトランザクション・タイプが認証トランザクション・タイプである場合、認証トランザクション・タイプに対応する認証テンプレートから、認証トランザクション・タイプに対応する認証トランザクション処理ルールを決定するように構成され、
処理モジュール４０４は、分析により、認証トランザクション処理ルールに基づいて、認証データ要求に含まれる認証データを取得することと、認証データをブロックチェーンに書き込むこととを行うように構成される。
【００８３】
テンプレート・ローディング・モジュール４０３は、決定されたトランザクション・タイプが契約トランザクション・タイプである場合、契約トランザクション・タイプに対応する契約トランザクション・テンプレートから、契約トランザクション・タイプに対応する契約トランザクション処理ルールを決定するように構成され、
処理モジュール４０４は、分析により、契約トランザクション処理ルールに基づいて、契約データ要求に含まれるコントラクト・アドレスおよびトランザクション・パラメータを取得することと、コントラクト・アドレスに従って、トランザクション・パラメータをコントラクト・アドレスに対応するスマート・コントラクトに送信し、これによりスマート・コントラクトがトランザクション・パラメータを実行し、対応するトランザクション結果を返すことと、受け取ったトランザクション結果をブロックチェーンに書き込むこととを行うように構成される。
【００８４】
テンプレート・ローディング・モジュール４０３は、決定されたトランザクション・タイプが交換タイプである場合、交換タイプに対応する交換テンプレートから、交換タイプに対応する交換処理ルールを決定するように構成され、
処理モジュール４０４は、分析により、交換処理ルールに基づいて、トランザクション要求に含まれるトランザクション・イニシエータ・アカウント、トランザクション金額、およびトランザクション受領者アカウントを取得することと、トランザクション・イニシエータ・アカウントからトランザクション金額を差し引くことと、トランザクション金額をトランザクション受領者アカウントに移してトランザクション詳細を取得することと、トランザクション詳細をブロックチェーンに書き込むこととを行うように構成される。
【００８５】
本出願の実施形態では、トランザクション処理ノードがユーザによって送られたトランザクション要求を受け取った後、トランザクション処理ノードは、トランザクション要求に含まれるターゲット・トランザクションのトランザクション・タイプに従って、トランザクション・タイプに合致するトランザクション・テンプレートをロードし、トランザクション・テンプレートによりターゲット・トランザクションを処理してよい。ここでは、様々なターゲット・トランザクションを処理するためのすべてのトランザクション・テンプレートが、ブロックチェーンに記憶されるのではなく、トランザクション処理ノードに事前に記憶される。したがって、トランザクションがアップグレードされるとき、ユーザは、トランザクション・テンプレートがアップグレードされたトランザクションをサポートできるようにするために、トランザクション処理ノードに記憶されたトランザクション・テンプレート上で対応する更新を行うだけでよい。アップグレードされたトランザクションに適応するためにトランザクション・テンプレートを再開発する必要がなく、ユーザがスマート・コントラクトを再開発して、再開発されたスマート・コントラクトに、アップグレードされたトランザクションのトランザクション処理をサポートさせることしかできない現在の技術と比較して、トランザクション保守のコストは大幅に削減されることになる。同時に、トランザクション処理方法がトランザクション・アップグレードに柔軟に適応できないという問題は解決され、ブロックチェーンでのトランザクション処理の柔軟性は大幅に高められる。
【００８６】
さらに、トランザクション処理ノードが事前に記憶されたトランザクション・テンプレートによりトランザクション処理を行うプロセスでは、トランザクション・テンプレートによりターゲット・トランザクションを処理するために必要とされるすべてのシステム・リソースが、トランザクション処理ノード自体によって割り振られ、トランザクション処理ノードは、ターゲット・トランザクションを処理するためにトランザクション処理ノードのすべてのシステム・リソースを使用してよく、これは、スマート・コントラクト実行のプロセスで仮想マシンによってコールされるシステム・リソースが不足しているという現在の技術の問題を効果的に回避し、ブロックチェーン・トランザクション処理効率を大幅に向上させ、ユーザのトランザクション処理を容易にする。
【００８７】
同じ概念に基づいて、本出願の実施形態は、図５に示すように、トランザクション処理装置をさらに提供する。
【００８８】
図５は、本出願のいくつかの実施形態によるトランザクション処理装置の概略図であり、この装置は、
トランザクション要求を受け取り、トランザクション要求に含まれるターゲット・トランザクションのトランザクション・タイプを決定するように構成された受取りモジュール５０１と、
トランザクション・タイプに従って、トランザクション・タイプに合致するトランザクション・テンプレートをロードするように構成されたテンプレート・ローディング・モジュール５０２と、
トランザクション・テンプレートに従ってターゲット・トランザクションを処理し、処理から取得されたトランザクション情報をブロックチェーンのターゲット・ブロックに書き込むことと、取得されたトランザクション情報をターゲット・ブロックに書き込むとき、ターゲット・ブロックの状態変更値を決定および記憶することとを行うように構成された処理モジュール５０３であって、状態変更値は、ターゲット・ブロックに記憶されたトランザクション情報がブロックチェーンの他のブロックに記録されたトランザクション情報と一致するかどうかをチェックするために使用される、処理モジュール５０３と
を備える。
【００８９】
本出願のいくつかの他の実施形態では、処理モジュール５０３がターゲット・ブロックの状態変更値を決定および記憶することは、
取得されたトランザクション情報をターゲット・ブロックに書き込んだ後、ターゲット・ブロックのチェック値を計算することと、
チェック値をターゲット・ブロックの状態変更値として決定することと、
状態変更値をブロックチェーンに記憶することと
を含む。
【００９０】
１９９０年代においては、技術の改善は、ハードウェア改善（たとえば、ダイオード、トランジスタ、スイッチなどの回路構造の改善）、またはソフトウェア改善（方法のフローの改善）に明らかに区別することができる。しかしながら、技術開発とともに、多くの現在の方法フローの改善は、ハードウェア回路構造の直接的改善と考えられてよい。設計者は、ほとんどの場合、改善された方法フローをハードウェア回路にプログラミングすることによって対応するハードウェア回路構造を得る。したがって、方法フローの改善がハードウェア・モジュールで実現できないと結論付けることはできない。たとえば、プログラマブル論理デバイス（ＰＬＤ）（たとえば、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ））は、集積回路の論理関数が、デバイスをプログラミングすることによりユーザによって決定される集積回路である。設計者は、ＰＬＤの１つにデジタル・システムを「組み込む」ために、チップ製造業者に専用ＩＣチップの設計および製造を依頼することなく、設計者自身でプログラムを作ってよい。さらに現在、このタイプのプログラミングは、たいてい、ＩＣチップを手動で製造するのではなく、「論理コンパイラ」ソフトウェアにより実装されている。論理コンパイラ・ソフトウェアは、プログラム開発と書き込みに使用されるソフトウェア・コンパイラと同様であり、コンパイルより前にソース・コードを書き込むために特定のプログラミング言語が使用されなければならず、これは、ハードウェア記述言語（ＨＤＬ）と呼ばれる。ＡＢＥＬ（Ａｄｖａｎｃｅｄ  Ｂｏｏｌｅａｎ  Ｅｘｐｒｅｓｓｉｏｎ  Ｌａｎｇｕａｇｅ）、ＡＨＤＬ（Ａｌｔｅｒａハードウェア記述言語）、Ｃｏｎｆｌｕｅｎｃｅ、ＣＵＰＬ（コーネル大学プログラミング言語）、ＨＤＣａｌ、ＪＨＤＬ（Ｊａｖａ（登録商標）ハードウェア記述言語）、Ｌａｖａ、Ｌｏｌａ、ＭｙＨＤＬ、ＰＡＬＡＳＭ、ＲＨＤＬ（Ｒｕｂｙハードウェア記述言語）など、１つだけでなく、多くのタイプのＨＤＬがある。現在、最も一般的に使用されるものは、ＶＨＤＬ（Ｖｅｒｙ−Ｈｉｇｈ−Ｓｐｅｅｄ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ：超高速集積回路ハードウェア記述言語）およびＶｅｒｉｌｏｇを含む。方法フローで少しの論理プログラムを実行し、方法フローをＩＣにプログラムするために上記のＨＤＬを使用することによって論理方法を実装するためのハードウェア回路を取得することが容易であることもまた、当業者は理解するであろう。
【００９１】
コントローラが任意の適切な方法で実装されてよい。たとえば、コントローラは、たとえば、マイクロプロセッサまたはプロセッサの形態、ならびに、（マイクロ）プロセッサによって実行できるコンピュータ可読プログラム・コード（たとえば、ソフトウェアまたはファームウェア）を記憶するコンピュータ可読媒体、論理ゲート、スイッチ、特定用途向け集積回路（ＡＳＩＣ）、プログラマブル論理コントローラ、および組込みマイクロコントローラの形態であってよい。コントローラの例は、限定はしないが、以下のマイクロコントローラ、すなわちＡＲＣ  ６２５Ｄ、Ａｔｍｅｌ  ＡＴ９１ＳＡＭ、Ｍｉｃｒｏｃｈｉｐ  ＰＩＣ１８Ｆ２６Ｋ２０、およびＳｉｌｉｃｏｎｅ  Ｌａｂｓ  Ｃ８０５１Ｆ３２０を含む。メモリ・コントローラが、メモリの制御論理の一部としてさらに実装される場合がある。コントローラが純粋なコンピュータ可読プログラム・コードの形で実装されることに加えて、コントローラが論理ゲート、スイッチ、ＡＳＩＣ、プログラマブル論理コントローラ、組込みマイクロコントローラなどの形態で同じ機能を実装できるように方法のステップで論理プログラミングを実行することが実現可能であることもまた、当業者は理解するであろう。したがって、そのようなコントローラは、ハードウェア部分と考えられてよく、コントローラに含まれ、様々な機能を実現するように構成されたデバイスは、ハードウェア部分の内部の構造体と考えられてもよい。代替的に、様々な機能を実現するように構成されたデバイスは、方法を実装するソフトウェア・モジュールとハードウェア部分の内部の構造体の両方と考えられてもよい。
【００９２】
上記の実施形態で説明したシステム、装置、モジュール、またはユニットは、コンピュータ・チップもしくはエンティティによって実装されることがあり、またはある機能を有する製品によって実装されることがある。一般的な実装デバイスはコンピュータである。一例では、コンピュータは、たとえば、パーソナル・コンピュータ、ラップトップ・コンピュータ、携帯電話、カメラ電話、スマート・フォン、携帯情報端末、メディア・プレーヤ、ナビゲーション・デバイス、電子メール・デバイス、ゲーム機、タブレット・コンピュータ、ウェアラブル・デバイス、またはこれらのデバイスのいずれかのデバイスの組合せであることがある。
【００９３】
説明の便宜上、上記のデバイスは、説明のための機能に従って様々なユニットに分割される。本出願が実装されるとき、ユニットの機能は、ソフトウェアおよび／またはハードウェアの１つまたは複数の部分に実装される場合がある。
【００９４】
本発明の実施形態は、方法、システム、またはコンピュータ・プログラム製品として提供される場合があることは、当業者には理解されよう。したがって、本発明は、完全なハードウェア実施形態、完全なソフトウェア実施形態、またはソフトウェアとハードウェアを組み合わせた実施形態として実装される場合がある。さらに、本発明は、コンピュータ使用可能プログラム・コードを含む１つまたは複数のコンピュータ使用可能記憶媒体（限定はしないが、磁気ディスク・メモリ、ＣＤ−ＲＯＭ、光メモリなどを含む）に実装されるコンピュータ・プログラム製品の形態である場合がある。
【００９５】
本発明は、本発明の実施形態による、方法、デバイス（システム）、およびコンピュータ・プログラム製品のフローチャートおよび／またはブロック図を参照しながら説明される。フローチャートおよび／またはブロック図中の各プロセスおよび／またはブロック、ならびにフローチャートおよび／またはブロック図中のプロセスおよび／またはブロックの組合せを実施するために、コンピュータ・プログラム命令が使用されてよいことを理解されたい。これらのコンピュータ・プログラム命令は、汎用コンピュータ、専用コンピュータ、組込みプロセッサ、または機械を生成するための他のプログラマブル・データ処理デバイスのプロセッサに提供されてよく、これにより他のプログラマブル・データ処理デバイスのコンピュータまたはプロセッサによって実行される命令が、フローチャート中の１つもしくは複数のプロセスにおいておよび／またはブロック図中の１つもしくは複数のブロックにおいて指定される機能を実装するための装置を生み出す。
【００９６】
これらのコンピュータ・プログラム命令は、コンピュータまたは他のプログラマブル・データ処理デバイスに特定の方法で動作するよう命令することができるコンピュータ可読メモリに記憶されてもよく、これによりコンピュータ可読メモリに記憶された命令が、命令装置を含む製品を生み出す。命令装置は、フローチャート中の１つもしくは複数のプロセスにおいておよび／またはブロック図中の１つもしくは複数のブロックにおいて指定される機能を実装する。
【００９７】
これらのコンピュータ・プログラム命令は、コンピュータまたは他のプログラマブル・データ処理デバイスにロードされてもよく、これにより一連の動作ステップが、コンピュータまたは他のプログラマブル・デバイス上で行われ、それによってコンピュータ実装処理を生み出す。したがって、コンピュータまたは他のプログラマブル・デバイス上で実行される命令は、フローチャートの１つもしくは複数のプロセスにおいておよび／またはブロック図の１つもしくは複数のブロックにおいて指定される機能を実装するためのステップを提供する。
【００９８】
一般的な構成では、コンピュータ・デバイスは、１つまたは複数のプロセッサ（ＣＰＵ）と、入力／出力インターフェースと、ネットワーク・インターフェースと、メモリとを含む。
【００９９】
メモリは、揮発性メモリ、ランダム・アクセス・メモリ（ＲＡＭ）、および／または不揮発性メモリ、たとえば、読取り専用メモリ（ＲＯＭ）もしくはフラッシュＲＡＭなどのコンピュータ可読媒体を含んでよい。メモリは、コンピュータ可読媒体の一例である。
【０１００】
コンピュータ可読媒体は、任意の方法または技術により情報記憶を実装することができる永続的、揮発性、可動型、および固定型の媒体を含む。情報は、コンピュータ可読命令、データ構造、プログラム・モジュール、または他のデータであってよい。コンピュータの記憶媒体の例は、限定はしないが、相変化ランダム・アクセス・メモリ（ＰＲＡＭ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、他のタイプのランダム・アクセス・メモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、電気的消去可能プログラマブル読取り専用メモリ（ＥＥＰＲＯＭ）、フラッシュ・メモリもしくは他のメモリ技術、コンパクト・ディスク読取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）もしくは他の光学メモリ、カセット、カセットおよびディスク・メモリもしくは他の磁気メモリ・デバイス、または、計算デバイスがアクセス可能な情報を記憶するために使用することができる任意の他の非伝送媒体を含む。本明細書での定義によれば、コンピュータ可読媒体は、変調されたデータ信号および搬送波などの一時的な媒体を含まない。
【０１０１】
「含む」、「備える」、またはこれらの用語の他のどんな異形も、非排他的包含を含むよう意図され、一連の要素を含むプロセス、方法、商品、もしくはデバイスが、これらの要素を含むだけでなく、明確に列挙されていない他の要素も含む、またはプロセス、方法、商品、もしくはデバイスに固有の要素をさらに含むようにすることにさらに留意されたい。さらなる制限がないとき、「１つの・・・を備える」という記載によって定義される要素は、追加の同一の要素をさらに備えることから、上記の要素を備えるプロセス、方法、商品、またはデバイスを除外しない。
【０１０２】
本出願の実施形態は、方法、システム、またはコンピュータ・プログラム製品として提供される場合があることは、当業者には理解されよう。したがって、本出願は、完全なハードウェア実施形態、完全なソフトウェア実施形態、またはソフトウェアとハードウェアを組み合わせた実施形態として実装される場合がある。さらに、本出願は、コンピュータ使用可能プログラム・コードを含む１つまたは複数のコンピュータ使用可能記憶媒体（限定はしないが、磁気ディスク・メモリ、ＣＤ−ＲＯＭ、光メモリなどを含む）に実装されるコンピュータ・プログラム製品の形態である場合がある。
【０１０３】
本出願は、プログラム・モジュールなど、コンピュータによって実行されるコンピュータ実行可能命令の通常の文脈で説明されてよい。一般に、プログラム・モジュールは、特定のタスクを実行するまたは特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本出願は、分散コンピューティング環境で実施される場合もある。これらの分散コンピューティング環境では、通信ネットワークを介して接続されたリモート処理デバイスが、タスクを実行する。分散型コンピューティング環境では、プログラム・モジュールが、記憶デバイスを含む、ローカルおよびリモートのコンピュータ記憶媒体にあってよい。
【０１０４】
本明細書の実施形態は、各実施形態が他の実施形態との差に焦点を当てて、漸進的に説明され、実施形態は、同一または同様の部分を相互に参照される場合がある。具体的には、システム実施形態は、実質的に方法実施形態と同様であるので、比較的単純な方法で説明される。方法実施形態の説明は、関連する部分を参照される場合がある。
【０１０５】
上述の説明は、本出願の実施形態にすぎず、本出願を限定するために使用されない。当業者には、本出願は、様々な改変および変更を有する可能性がある。本出願の趣旨および原理内で行われるいかなる修正、均等物との置換、または改良も、本出願の特許請求に包含されるものとする。
【図１】
0006912583.tif 000002
【図２】
0006912583.tif 000003
【図３】
0006912583.tif 000004
【図４】
0006912583.tif 000005
【図５】
0006912583.tif 000006