TOP
|
特許
|
意匠
|
商標
特許ウォッチ
Twitter
他の特許を見る
10個以上の画像は省略されています。
公開番号
2025157316
公報種別
公開特許公報(A)
公開日
2025-10-15
出願番号
2025114852,2024066569
出願日
2025-07-08,2018-07-05
発明の名称
ブロックチェーンコンパイラ
出願人
エヌチェーン ライセンシング アーゲー
代理人
弁理士法人ITOH
主分類
G06F
8/40 20180101AFI20251007BHJP(計算;計数)
要約
【課題】ブロックチェーンプラットフォーム上で高レベル言語(HLL)で記述されたソースコードの部分を実行又は促進する方法及びシステムを提供する。
【解決手段】システムは、高レベルソースコードをブロックチェーンプラットフォームで使用可能な形式に変換するブロックチェーンコンパイラを含む。方法は、ソースコードを受信するステップと、複数のオペコードを含むアウトプットスクリプトを生成するステップと、を含む。出力されるスクリプトは、ソースコードの中で指定された機能を提供するように生成される。アウトプットスクリプトを生成するステップは、ソースコード内で提供される少なくとも1つのループ構成を展開するステップを含む。方法はまた、アウトプットスクリプトをブロックチェーンプラットフォーム上で実行可能な形式に変換するよう構成されるインタープリタ又は仮想機械を提供するか又は使用するステップを含む。
【選択図】図1
特許請求の範囲
【請求項1】
コンピュータにより実施される方法であって、
インプットとしてソースコードの部分を受信するステップであって、前記ソースコードの部分は、高レベル言語(HLL)で記述される、ステップと、
機能的に制約されたブロックチェーンスクリプト言語から選択された及び/又は該ブロックチェーンスクリプト言語に固有の複数のオペコードを含むアウトプットスクリプトを生成するステップであって、前記アウトプットスクリプトは、実行されると、少なくとも部分的に前記ソースコードの部分の中で指定された機能を提供し、前記機能的に制約されたブロックチェーンスクリプト言語は、複雑な制御フロー構成、反復、及びジャンプに基づくループを本来サポートしない、ステップと、
を含むコンピュータにより実施される方法。
続きを表示(約 1,500 文字)
【請求項2】
前記アウトプットスクリプトを実行するステップであって、前記機能的に制約されたブロックチェーンスクリプト言語はスタックに基づくものであり、前記アウトプットスクリプトの実行中に、条件をテストする1つ以上のオペコードコマンドが、真又は偽の結果として評価し、前記真又は偽の結果を前記機能的に制約されたブロックチェーンスクリプト言語により使用されるスタックの最上位に配置する、ステップ、を更に含む請求項1に記載のコンピュータにより実施される方法。
【請求項3】
前記アウトプットスクリプトを生成するステップは、コンパイラにより実行される、請求項1又は2に記載のコンピュータにより実施される方法。
【請求項4】
前記アウトプットスクリプトは静的コンパイルを実行することにより生成される、請求項1~3のいずれかに記載のコンピュータにより実施される方法。
【請求項5】
前記アウトプットスクリプトをブロックチェーンプラットフォーム上で実行可能な形式に変換するよう構成されたインタープリタ又は仮想機械を提供する又は使用するステップ、を更に含む請求項1~4のいずれかに記載のコンピュータにより実施される方法。
【請求項6】
前記ソースコードの部分は、スマートコントラクトの少なくとも部分である、請求項1~5のいずれか一項に記載のコンピュータにより実施される方法。
【請求項7】
前記アウトプットスクリプトを生成するステップは、エラーをテストし、1つ以上のエラーが検出された場合に警告を出力するステップを更に含む、請求項1~6のいずれか一項に記載のコンピュータにより実施される方法。
【請求項8】
エラーをテストすることは、オーバーフローエラーをテストすることを含む、請求項7に記載のコンピュータにより実施される方法。
【請求項9】
前記HLLは、以下のプリミティブ若しくはオペレータ、又は以下のプリミティブ若しくはオペレータと機能的に等価なもの、のうちの少なくとも1つを含む:
Initiate、
Declare、
Increment、
IF、
While、
Populate、
Monus、
Reset、
Rawscript、
Abort、
Retrieve、
Hash、hash 160、又は別のハッシュ演算、又はハッシュ演算の変形、
請求項1~8のいずれかに記載のコンピュータにより実施される方法。
【請求項10】
コンピュータにより実装されるシステムであって、1つ以上のプロセッサとコンピュータ実行可能命令を格納するメモリとを含み、前記コンピュータ実行可能命令は、実行の結果として、前記1つ以上のプロセッサに、
インプットとしてソースコードの部分を受信させ、前記ソースコードの部分は、高レベル言語(HLL)で記述され、
機能的に制約されたブロックチェーンスクリプト言語から選択された及び/又は該ブロックチェーンスクリプト言語に固有の複数のオペコードを含むアウトプットスクリプトを生成させ、前記アウトプットスクリプトは、実行されると、少なくとも部分的に前記ソースコードの部分の中で指定された機能を提供し、前記機能的に制約されたブロックチェーンスクリプト言語は、複雑な制御フロー構成、反復、及びジャンプに基づくループを本来サポートしない、
システム。
(【請求項11】以降は省略されています)
発明の詳細な説明
【技術分野】
【0001】
本開示は、概して、分散台帳技術に関し、特に、Bitcoinネットワーク又は関連プロトコルのようなブロックチェーン技術に関する。本開示は、コンピュータに基づくコードの変換のためのコンパイラ及びコンパイラ関連技術にも関する。本発明の1つ以上の実施形態は、ブロックチェーンプラットフォーム又は機能的に制約されたスクリプトに基づく言語を含むプロトコル上で、高レベルプログラムの自動化及び実行を可能にする及び/又は促進するためのソリューションとしての使用に適する。
続きを表示(約 3,700 文字)
【背景技術】
【0002】
本願明細書で、用語「ブロックチェーン」は、あらゆる形式の電子的な、コンピュータに基づく、分散台帳を含むよう使用される。これらは、総意に基づくブロックチェーン及びトランザクションチェーン技術、許可及び未許可台帳、共有台帳、及びそれらの変形を含む。最も広く知られているブロックチェーン技術の用途はBitcoin台帳であるが、他のブロックチェーンの実装が提案され開発されている。ビットコインは便宜上及び説明を目的として本願明細書において言及されるが、本発明はビットコインのブロックチェーンと共に使用することに限定されず、代替のブロックチェーンの実装及びプロトコルが本発明の範囲に含まれることに留意すべきである。用語「ユーザ」は、人間又はコンピュータに基づくリソースを表すことがある。
【0003】
ブロックチェーンは、ブロックにより構成される、コンピュータに基づく非集中型の分散型システムとして実装されるピアツーピア電子台帳である。また、ブロックはトランザクションにより構成される。各トランザクションは、ブロックチェーンシステム内で参加者間のデジタルアセットの制御の移転を符号化するデータ構造であり、少なくとも1つのインプット及び少なくとも1つのアウトプットを含む。各ブロックは前のブロックのハッシュを含み、ブロックは共にチェーンになって、その発端からブロックチェーンに書き込まれている全てのトランザクションの永久的な変更不可能なレコードを生成する。トランザクションは、そのインプット及びアウトプットに組み込まれたスクリプトとして知られる小さなプログラムを含む。スクリプトは、トランザクションのアウトプットがどのように及び誰によりアクセス可能かを指定する。ビットコインプラットフォーム上で、これらのスクリプトは、Scriptと呼ばれるスタックに基づくスクリプト言語を用いて記述される。スクリプトは、コマンド(オペコード)を用いて記述され、該コマンドはインタープリタにより実行可能コードに変換される。
【0004】
トランザクションがブロックチェーンに書き込まれるために、「検証され」なければならない。ネットワークノード(マイナー)は、各トランザクションが有効であることを保証するために作業を実行し、無効なトランザクションはネットワークから拒否される。ノードにインストールされたソフトウェアクライアントは、自身のロック及びアンロックスクリプトを実行することにより、この検証作業を未使用トランザクション(UTXO)に対して実行する。ロック及びアンロックスクリプトの実行が真と評価した場合、及びチェックに合格した場合、トランザクションは有効であり、トランザクションはブロックチェーンに含まれるためにマイニングされる。したがって、トランザクションがブロックチェーンに書き込まれるためには、トランザクションは、i)トランザクションを受信した第1ノードにより検証され、トランザクションが検証された場合に、ノードは該トランザクションをネットワーク内の他のノードに中継し、ii)マイナーにより構築された新しいブロックに追加し、iii)マイニングされ、つまり過去のトランザクションの公開台帳に追加されなければならない。
【0005】
ブロックチェーン技術は、暗号通貨実装の使用で最も広く知られているが、デジタル起業家が、新しいシステムを実装するために、Bitcoinの基づく暗号通貨セキュリティシステム、及びブロックチェーンに格納可能なデータの両方の使用を探索し始めている。ブロックチェーンが、暗号通貨の領域に限定されない自動タスク及びプロセスのために使用できれば、非常に有利である。このようなソリューションは、それらの用途において一層多様でありながら、ブロックチェーンの利点(例えば、永久的、イベントの耐タンパレコード、分散プロセス、等)を利用できる。したがって、黎明期のインターネットの採用及びウェブに基づくシステムの発展における後の急成長と同様に、新しいアプリケーションのための技術の幅広い採用及び技術革新の必要がある。
【0006】
しかしながら、このようなスクリプト言語でプログラムを記述することは、例えば、低レベルプログラミング技術に関連する知識及び熟練を必要とするために、より広いプログラミングコミュニティにより直感的又は直ちに採用できない。これは、プログラマに、スタック及びその中のデータの位置を考慮することを要求する。低レベルオペコードで構成されるプログラムの記述は、C、Java(登録商標)、等のような高レベル言語(high-level language:HLL)でソースコードを記述するより時間及び労働集約的である。このようなHLLのために構築されるコンパイラ/インタープリタは、プログラマをメモリ管理等に関連する多くの面倒な低レベルな問題から遠ざける便利な抽象化レベルを提供する。1つ以上のスタックの中のデータを操作するためのオペコードのシーケンスの記述は、HLLでソースコードを記述するより、技術的に複雑であり且つ時間がかかる。したがって、低レベルオペコードの使用の困難な特性により、エラー及びバグの発生する可能性がより高い。
【0007】
さらに、HLLは、プログラマが、ループ、case文、及び反復呼び出しのような複雑な制御フロー構成を彼らのソースコードに含めることを可能にする。プログラマは、所望のロジックに焦点を当て、「これが真の間はXを行う...」のようなメカニズムにより直感的方法で論理的フローを表現できる。しかしながら、BitcoinのScriptのような幾つかのブロックチェーンに関連するスクリプト言語は、それらが算術演算のような典型的な演算、並びにハッシュ演算及び署名検証のような暗号関数も含むが、それらは、HLLでは使用可能な、whileループのような複雑な制御構造のための固有のプリミティブを含まない、或いは、反復技術の使用を許容しない、という意味で機能的に制約されている。このような制約された言語は、ジャンプに基づく制御フローをサポートしない。したがって、設計により、それらは、ソースコードに包含するためにプログラマに提供される言語及び論理的構成を制約する。これは、一部の人々を、Scriptのような制約された言語がチューリング不完全であるという論争に導くが、この定義は他の者達により異議を唱えられている。したがって、私達は、「機能的に制約された」という表現を使用する。
【0008】
この意図的な制約は、プログラマにとってコーディング処理を一層困難にすることがあるが、プログラム実行時間が限られ、重要なことに、悪意ある手段を防ぎ、例えばDoS(Denial of Service)攻撃を実施するための無限ループの使用から保護するので、重要なセキュリティメカニズムを提供することに留意する。
【0009】
したがって、重大なセキュリティと、ブロックチェーンに基づく技術の発展を促進し、奨励し、及び向上させる必要との間にはトレードオフが存在する。後者の問題を解決するために、Ethereumは、それ自体のブロックチェーンプラットフォームに、固有の特徴としてHLL言語を組み込んでいる。Scriptと同様に、低レベルインタープリタが、コードの実行可能バージョンを生成するために要求される。EthereumのHLL言語は、Etherとして知られ、条件付き及び無条件ジャンプの使用を通じて、制御フローを実行させる。これは、反復も可能にする。DoS攻撃のような問題を回避するために、Ethereumは、ガス(gas)、つまり実行コストをカバーするために予め支払われる暗号通貨の一部、の概念を導入することにより、トランザクション実行時間を制限する。したがって、固有のHLLの使用により、技術的及び商業的に複雑な追加レイヤが必要である。さらに、Ethereumは、今まで、少なくとも1つの重大な反復に基づく攻撃に苦しんできた。例えば以下を参照する。http://hackingdistributed.com/2016/06/18/analysis-of-the-dao-exploit/
【0010】
したがって、プログラマに親しみのあるHLL言語を用いて、しかし機能的に制約されたスクリプト言語により提供されるセキュリティを危険に晒すことなく、プログラマが有効なブロックチェーンソリューションを、より容易に、迅速に、且つ一層効率的な方法で開発し、設計し、及び生産できるメカニズムを提供することが望ましい。これは、決して自明な作業ではなく、有意な技術的革新を要求する。これは、特に、本開示により解決される技術的課題の1つである。
【発明の概要】
(【0011】以降は省略されています)
この特許をJ-PlatPat(特許庁公式サイト)で参照する
関連特許
個人
詐欺保険
1か月前
個人
縁伊達ポイン
1か月前
個人
RFタグシート
24日前
個人
5掛けポイント
13日前
個人
職業自動販売機
6日前
個人
地球保全システム
1か月前
個人
ペルソナ認証方式
21日前
個人
QRコードの彩色
1か月前
個人
自動調理装置
23日前
個人
情報処理装置
16日前
個人
農作物用途分配システム
1か月前
個人
残土処理システム
1か月前
個人
サービス情報提供システム
8日前
個人
知的財産出願支援システム
1か月前
個人
タッチパネル操作指代替具
1か月前
個人
インターネットの利用構造
20日前
個人
携帯端末障害問合せシステム
29日前
個人
スケジュール調整プログラム
29日前
株式会社キーエンス
受発注システム
1か月前
個人
エリアガイドナビAIシステム
21日前
個人
海外支援型農作物活用システム
2か月前
株式会社キーエンス
受発注システム
1か月前
個人
食品レシピ生成システム
1か月前
株式会社キーエンス
受発注システム
1か月前
株式会社ケアコム
項目選択装置
16日前
個人
帳票自動生成型SaaSシステム
1か月前
大同特殊鋼株式会社
疵判定方法
1か月前
トヨタ自動車株式会社
通知装置
27日前
個人
音声・通知・再配達UX制御構造
1か月前
キヤノン株式会社
情報処理装置
今日
キヤノン株式会社
印刷システム
29日前
エッグス株式会社
情報処理装置
1か月前
キヤノン株式会社
情報処理装置
14日前
株式会社ワコム
電子ペン
15日前
キヤノン株式会社
画像認識装置
今日
キヤノン株式会社
情報処理装置
今日
続きを見る
他の特許を見る