長文記事: 量子チェーンのプロトタイプ設計の詳細を解読 - Qtum 仮想マシン (QVM) の GAS メカニズムの設計 (パート 1)

長文記事: 量子チェーンのプロトタイプ設計の詳細を解読 - Qtum 仮想マシン (QVM) の GAS メカニズムの設計 (パート 1)

序文: Qtum Quantum Chain は、Bitcoin エコシステムと Ethereum エコシステムの間に橋を架けることに取り組んでいます。これは、Qtum のコンセンサス メカニズムとしてインセンティブ ベースのプルーフ オブ ステーク メカニズムを使用し、ビットコインの UTXO モデルに基づいています。チューリング完全な仮想マシン(Qtum VM/EVM/Luaなど)をサポートし、モバイル戦略を通じてブロックチェーン技術DAPPとスマートコントラクトに基づくモバイルアプリケーションを構築します。 DAPPストア(分散型アプリケーションストア)の効率的かつ迅速な配布を通じて、ブロックチェーン技術を一般のインターネットユーザーに普及させます。

さらに、Qtum は、スマート コントラクトを通じてプロトコル層に埋め込まれ、さまざまなユーザー アドレス権限とアドレス タイプ、および World Wide Web の標準の管理を通じて、既存の TCP/IP プロトコルを統合するブロックチェーン支払いプロトコルを実現する Value Transfer Protocol (VTP プロトコル) の概念も革新的に提案しました。この支払いプロトコルは、より多くのインテリジェンスとより多くのビジネスの可能性をもたらします。

この壮大なビジョンを実現するには、無数の開発者の継続的な努力が必要です。 Qtum の開発チームは非常に国際的なチームであり、ブロックチェーン技術の分散特性に沿っています。本稿執筆時点では、合計 29 人の開発者が Qtum プロジェクトの開発プロセスに参加しています。異なる国やタイムゾーンの開発者をどのように調整するかも、ブロックチェーン プロジェクトの開発で直面する難しい問題です。 Qtum チームは、GitHub を介した共同開発に加えて、コード共有、コード テスト、コード環境の移行など、独自に開発した共同作業を含む他の多くの共同ツールも採用しています。

今日は、Qtum チームと一緒に数か月前を振り返り、Qtum 仮想マシン (QVM) の GAS メカニズムの設計プロセスを見直してみましょう。ブロックチェーン技術の開発プロセスと作業方法を皆様にもっとよく理解していただき、ブロックチェーン開発者への理解を深めていただくために、当時のチームのGASメカニズムに関する当初の議論プロセスと、GAS1.0設計完了後のやり直しのプロセスを保存しました。これらの開発詳細の公開が、他のブロックチェーン開発チームやブロックチェーン開発プロジェクトに一定の助けをもたらし、プロジェクトの開発効率を向上させることを願っています。また、関連詳細の公開を通じて、誰もがブロックチェーン開発チームに参加し、Qtum開発チームとより多くの交流を持つことができることを願っています。

GAS機構の設計に関わったチームメンバーは以下のとおりです。左から1列目、2列目

Shuai Chu: Qtum の創設者。Draper 大学 (Hero Academy) と中国科学院を卒業。以前はアリババで働いていました。博士課程在学中はブロックチェーン技術の開発と研究に専念し、ブロックチェーン業界で豊富な開発経験を持っています。
ジョン: フロリダ大学を卒業し、以前は Bitwage や Coinpip などのブロックチェーン企業で働いていました。
欧陽雲奇:北京郵電大学卒業。以前は百度、アジアルービックキューブ選手権で勤務。
ニール: 15 年のソフトウェア開発経験があり、ビットコインとイーサリアムの開発と設計に精通したホワイトハット開発者です。
トップ 100: 北京大学の理論物理学プログラムを中退し、以前は Kingsoft Software および Cheetah Mobile で働いていました。
Jordan.earlz: 13 歳でプログラミングを始め、18 年の開発経験を持ち、コイン レビュー担当者であり、コミュニティ内の 100 を超える仮想通貨の設計をレビューしたセキュリティの専門家であり、北米のビットコイン コミュニティで最も有名な開発者の 1 人です。
Emiliano: コンピュータサイエンスの博士号を持ち、データフィードとデータマイニングを専門としています。
IBai: 暗号の専門家、暗号学博士、ブロックチェーン コミュニティの初期の参加者および開発者

Qtum(中国人メンバー)開発チーム 上海オフィス


·alex:みなさんこんにちは。 GAS メカニズムに関する最終的な設計は何ですか?
earlz:私たちは現在の設計メカニズムを選択し、ビットコインの手数料メカニズム (例: 入力 - 出力 = マイナー手数料) を使用し、MAX_GAS オペコードを完成させました。これにより、マイナーは契約の実行に必要な作業量を事前に決定できます。
MAX_GAS の設計メカニズムはこちらです https://qtumproject.atlassian.net/browse/QTUM-7
ネオ:こんにちは、おはようございます
·earlz:おはようございます、ネオ
·アレックス:ありがとう、もう夜だよ笑
·earlz: Alexさん、このGAS設計メカニズムについてどう思いますか?
·earlz:全員がデザインの目的を定め、そのデザインについて同じ理解を持つ必要があります。
·shuaichu:契約を実行するために新しいトークンを再発行するのが良い考えかどうかわかりませんか?
Earlz:これは新しいトークンではなく、単なるカウントユニットです。 Max gas オペコードは、トランザクションに必要な計算量をマイナーが把握できるようにするためにのみ使用されます。
·アレックス:はい、マックスガスは新しいトークンではありません
·shuaichu:手数料の仕組みと同様に、経済的な設計を通じてオペレータを実装する必要があると思います。また、ネットワーク内のすべてのノードが同じオペレータを実行する必要があることに注意する必要があります。契約の実行が無料の場合、ネットワークに対して DDoS 攻撃を行う者も出てくるかもしれません。
·earlz:この側面を設計して、すべてのトランザクションに一定量のガス料金が含まれるようにすることができます(たとえば、極端な場合、これらの料金は直接失われ、マイナーはこれらの料金を受け取ることができません)が、この場合、通貨自体がデフレにならないようにする必要があります。
このアイデアは大丈夫​​です。この方法では、GAS 手数料の一部をマイナーに渡し、残りをノード手数料として直接使用することができます。この方法により、悪意のあるノードに対するインセンティブが大幅に削減されます。
·shuaichu:ビットコインに似た手数料の仕組みを採用して、各オペレーターがQtum仮想マシンで少額の手数料を支払うようにすべきだと思います。
·earlz:そうですが、私が言いたいのは、マイナーはGASコストとしていくらか支払う必要があるため、取引手数料のすべてを負担することはできないということです。
·shuaichu:トランザクションのトランザクション手数料が十分でない場合は、トランザクションを破棄する必要があります。
また、送信者がより高い手数料を設定できるようにすることで、取引を高速化します。
earlz:はい、マイナーは依然として高い手数料で取引を作成できます
·alex: GAS および MAX_GAS メカニズムと OP_EXEC を使用することの利点と欠点は何ですか?
·earlz: MAX_GAS を使用すると悪い影響が出るかどうかはわかりません。その他のオプションでは、マイナーがトランザクション データのサイズに基づいてトランザクションが高価であるかどうかを判断し、それをブロックにパッケージ化するかどうかの判断に影響を与える可能性があります。
·shuaichu:ガス自体は無料で、qtum自体とは関係がないのが問題だと思います
·earlz:この場合、コードの実装が異なるだけで、Ethereum に似ていると思います。 Ethereum ではすべての GAS がマイナーによって取得されますが、Qtum でも同じです。唯一の違いは、Ethereum では「ガス価格」を通じて実装され、Qtum ではガス量と取引手数料を通じて実装されることです。
·アレックス:はい、私たちも同じ意見です。 GAS は Ethereum ネットワークから提供されるべきであり、その価値は Qtum のコストにも依存すると思います。
·earlz: GAS は単なる数字であり、価値はありません。それは単なる計算単位です。トランザクションを構築する際には、トランザクションに必要な GAS の量 (たとえば、計算に必要な演算子の数) を宣言する必要があります。トランザクションにより多くの GAS がかかる場合、トランザクションは OutOfGasException として分類されます。これはイーサリアムに似ており、マイナーは最終的に取引手数料を見てマイニングする価値があるかどうかを判断できます。
はい、GAS は、ビットコイン ネットワークの取引手数料モデルと同様に、Qtum の価格と Qtum ネットワークの状態に基づいて調整される可能性があります。
·alex: GAS はトランザクション手数料の一部であり、バイトコードの実行時に消費されるべきだと考えています。
·shuaichu:アールズさん、ガスはどこから来るんですか?
·アレックス:ガスは取引手数料から得られるべきだ
·earlz:技術的に言えば、ガスは実際にはどこからも来るわけではなく、マイナーが特定の取引手数料が採掘する価値があるかどうかを判断するための測定方法にすぎません。
·shuaichu:しかし、マイナーがすべてのトランザクションを最大許容ガスに設定した場合、マイナーはすべてのガスを無料で入手できるため、ネットワークに DOS が発生しますか?
earlz: MAX_GAS がマイナー自身ではなく、トランザクションの開始者によって設定されるのもこのためです。 MAX_GAS はトランザクションの一部であり、操作することはできません。
·shuaichu:はい、しかし、トランザクションイニシエーターが毎回非常に高い値を設定すると、何か影響がありますか?
earlz:非常に高い値に設定すると、マイナーは高い取引手数料を支払わない限り取引を受け入れない可能性があります。
·shuaichu:なるほど、結局は取引手数料次第ですね(私の理解では)
·earlz:はい
·shuaichu:では、この部分のメカニズムを取引手数料のみに基づいて設計してみてはいかがでしょうか?
earlz:ガスと最大ガスマークがないので、マイナーはトランザクションに最終的にいくらかかるかわかりませんか?
·shuaichu:例えば、イーサリアムと同様に、固定ガス価格
Alex:トランザクション料金 = 入力 – 出力 – すべてのバイトコード実行のガス料金
·shuaichu:ユーザーが最大ガスを設定すると、最終的な計算コストを決定する方法がないためです。
·earlz:ビットコインシステムでは、取引手数料の設計メカニズムは問題ありませんが、この言語はチューリング完全ではなく、循環演算を実行できません。この場合、トランザクションのサイズは、マイナーがトランザクションを処理するのにかかる時間を示す非常に優れた指標ですが、Qtum の仮想マシンでは、非常に小さなトランザクションでも処理に非常に長い時間がかかる可能性があります。たとえば、このトランザクションに関係する演算子にはループなどが含まれます。
·shuaichu:計算コストは​​、最終的に実行される演算子の数と実行の状態によって異なります。
earlz: max_gas 制限がなければ、攻撃者が Qtum ネットワークを攻撃するのは非常に簡単になります。低い手数料で多くのトランザクションを処理する必要があり、手数料が低すぎるためマイナーは対応するパッケージ化されたトランザクションを実行しない可能性があります。 max_gas を使用すると、トランザクションが高価であるかどうかを判断しやすくなり、マイナーはトランザクションを処理するかどうかを事前に決定できます。
·shuaichu:この方法では、トランザクションの開始者が設定した値を信頼できないため、いくつかの問題が発生します。
earlz: Max_gas の場合、各オペコード演算子は一定量のガスを消費します。トランザクションが要求する最大ガスよりも多くのガスを消費した場合、Qtum 仮想マシン全体の実行がロールバックされ、OutOfGasException を通じてロールバックされます。ただし、トランザクションはブロックチェーン ネットワークによって引き続き受け入れられ、マイナーは対応する手数料を受け取ります。
·shuaichu:そして、Ethと同様に、与えられた手数料が対応する費用をカバーできない場合、仮想マシンの動作が停止します。
earlz:はい、間違った Max-gas を使用すると、トランザクションですべての資金を失うリスクがあり、これは現在の OP_EXEC_ASSIGN 演算子の問題でもあります。 UTXO モデルでは資金を直接返還することは容易ではないため、これも考慮する必要がある状況です。
したがって、OP_EXEC_ASSIGN 演算子の戻りアドレスを設計する必要があるかもしれません。
·shuaichu: outofgas の例では、対応する手数料を請求しながら、残りの資金を送信者のアドレスに送るようにネットワークを設計できると思います。
この場合、outofgasは新しいトランザクションを作成します
earlz:はい、しかし問題は、送信者のアドレスが単純なアドレスではなく、マルチ署名(マルチシグ)アドレスやペイ・トゥ・スクリプト・アドレス(P2SH)である場合があることです。
·shuaichu:しかし、最大ガスモデルでは、Qtum のブロックチェーン ネットワークはどのように手数料を請求するのでしょうか?
·earlz:最大ガスモデルでは、取引手数料の徴収はビットコインの取引手数料モデルに似ています。つまり、入力が出力よりも大きく、中間の差が取引手数料です。
·shuaichu:この場合、取引手数料はブロックに含まれる必要があり、つまり、取引はブロックチェーンネットワークにパッケージ化されます。
·earlz:はい
Shuaichu:拒否された取引はブロックチェーンに含まれないため、手数料を徴収することが難しくなります。
·earlz: EVM トランザクションのガスが不足した場合、トランザクションは引き続き有効であり、ブロックに含まれますが、仮想マシン操作は実行されません。ただし、現在の QVM では、このトランザクションの開始者は資金の一部を失うことになります。これは私たちの設計上の欠点です。この欠点は返信先アドレスを通じて修正する必要があります。
·shuaichu: maxgasのアイデアではこの問題を解決できないと思います。使用料の考え方に似ています。
リターンアドレスを使用するとシステムの複雑さが増すため、これは大きな問題です。もっと簡単な方法が見つかるかもしれません。
·earlz:ビットコインエコシステムのUTXOモデルとの互換性を維持できるように、他の代替方法を見つける必要があります。
·shuaichu:確かにそうですね。この問題について慎重に考える必要がある。
·earlz:そうですね、この問題については真剣に考える必要があります。すべての可能性(エッジケース)をテストしたわけではありません。私の本来の意図は、OutOfGasException が発生した場合、手数料は(マイナーに)支払われるが、その他の資金は失われないというものです。
他の人はこれについてどう思いますか?
·shuaichu:私はこの状況について考えています。寝るときに考えてみるかもしれません。ハハハ
·earlz:はい
·shuaichu:私たちが現在直面しているさまざまな問題をまとめる必要があります
·earlz:マックスガスの考え方は借り入れを継続できると感じますが、ガス切れのときと違って資金がなくなったときに、その資金を目的のコントラクトに送ることはできるのですが、QVMがトランザクションを実行しないという問題があります。
ハハ、EVM のガス処理の仕組みがそれほど悪くなければ、ガス不足のトランザクションは次のように手数料を消費するはずです。つまり、トランザクションを作成し、そのトランザクションをブロックチェーンに追加するということです (入力を使い、新しい出力を作成し、その新しい出力を送信者に渡すことを意味しますが、p2sh の場合、送信者が誰であるかはわかりません)
·earlz: max-gas と warning-gas の部分を設計する必要があり、warning-gas はプログラムをトリガーして仮想マシンの現在の実行状態を予測し、仮想マシンに次に何をすべきかを指示するのでしょうか?
·shuaichu: max-gasの考え方はfeeの考え方に似ていると思います。
·earlz:はい
Max-gas のアイデアは、契約を実行する前にマイナーにもう少し情報を提供して、トランザクションにどれくらいのガスコストがかかるかを予測できるようにすることです。
·shuaichu:しかし、これは問題を引き起こします。つまり、マイナーは実際のコストを実際には知らないのです。たとえば、blockx ではコストは 1 ですが、blockx+1 ではコストは 1000 です。また、コントラクトの一部の値を変更すると、プログラムがより複雑なコントラクトを指す場合があります。
earlz:はい、これもmax-gasが存在する理由です。実行にどれくらい時間がかかるかを予測できるようにするためです。
·shuaichu:私たちは同じことについて話しているわけではないと思います、ハハ。たとえば、このような契約があります。疑似コードを書いてみましょう:
·earlz:はい、一緒に書き込むにはホワイトボードが必要です。
·shuaichu:ちょっと笑ってる顔:
earlz:はい、おっしゃる意味はわかります。同じ契約でも、異なるブロックで実行されるとガスコストが異なります(これは、ブロックチェーン ネットワークのどのステップが受け入れられ、どのように実行されるかによって異なります)。
max-gas は上限を設定し、必要な計算量を見積もることができます。トランザクションを作成するときは、ETHシステムが現在直面している問題を回避するために十分に計画する必要があります(ガスメカニズムの設計により、Ethereumが現在直面しているさまざまな問題を確認できます)
·shuaichu:
整数a=0;
void 増分(){
++;
戻る;
}
void 奇妙な計算(){
もしa==0なら
戻る;
}それ以外{
整数 i;
(i=0;i<10000;i++) の場合、a++;
戻る;
}
}
·shuaichu: weirdcalc() は各回の実行時間に依存します。私の言っている意味は分かると思う
·earlz:はい
·shuaichu:問題は、具体的な上限を決めるのが非常に難しいことです。この場合、消費されるガスの量を判断する唯一の方法は、ブラインド実行です。
·earlz:はい、この場合、すべての契約はガスを予測する方法で記述する必要があります。
·shuaichu:はい、でも他の人が何を書くかを制御する方法はありません。最悪の事態も含め、あらゆる可能性を考慮する必要があります。
earlz:はい、契約に必要なガス量を予測可能な方法で決定できない場合、QVM でも EVM と同じ問題に直面し、Ethereum のガス不足状況と同様に、取引手数料を失うことになります。
·shuaichu:はい、私たちが重点を置くべき主な問題は、1. 対応する料金を徴収すること、2. 対応する入力を返すことだと思います。これが現在の解決策で直面している主な問題です。
アールズ: OK
shuaichu:次に、最大ガス方式とガス方式のどちらを検討しても利点があるかどうかを判断する必要があります。
これを実現する 1 つの方法は、手数料を別のトランザクションに送信することです。EVM を拡張すると、トランザクションは消費されている GAS の量を確認し、それに基づいて動作を変更できることに注意してください。
·shuaichu:拡張EVM?
earlz:はい、リンクはここにあります: https://github.com/bitsegroup/qtum-evm/blob/master/docs/dev-doc.md#opcount
EVMにそのような方法がないのはなぜか不思議です
·shuaichu:はい、これにはいくつかの利点がありますが、まずはクラシック VM に焦点を当て、プロトタイプが完成してからテストすることができます。
料金に関していくつか難しい問題を明確にする必要があると思います。
·earlz:はい、オペコードを追加することは特に難しいことではありません。難しいのは、それを既存の堅牢性と統合し、そのセキュリティを確保する方法にあります。
しかし、どうやっても返還金をどう返すかという問題は解決できない。
明日もこの問題をどう解決するか考え続けることができます。ぐっすり眠って目覚めたら、何か新しいアイデアが浮かぶと思います。
ハハオ(∩_∩)オハハ〜

最近のリリースをフォローしてください:
Qtum 仮想マシン (QVM) における GAS メカニズムの設計 (パート 2)

下の図は、Quantum Chain Virtual Machine の GAS メカニズムの設計スケッチの最初のバージョンです。大幅に変更されました。次の記事では、設計プロセス全体をさらに分析しますので、お楽しみに。


<<:  ETCネットワークには大きなセキュリティ上の問題はなく、ETHの予期せぬフォークの影響を受けていない。

>>:  ブロックチェーン+IoTデバイスがサプライチェーンに劇的な変化をもたらす

推薦する

米国のビットコインプラットフォームの創設者が、6,000ビットコインが盗まれた事実を隠蔽したとして逮捕された。

米証券取引委員会(SEC)は2月21日、仮想通貨取引所ビットファンダーが登録せずに運営し、偽の証券を...

世界は混乱しているが、パイは素晴らしい

乱気流は世界の調子です。好況サイクルの繁栄と不況サイクルの荒廃は、同じコインの裏表である。永遠の笑い...

ビットコインと宇宙旅行がベンチャーキャピタルの新たなホットスポットに

[米金融ウェブサイトQuartzが7月18日に報じた] タイトル: ビットコインと宇宙旅行はベンチャ...

ブルームバーグ:暗号通貨市場の売り出しの原因は何か

デジタル資産投資商品からの資金流出と米国の借入コストの長期的な上昇見通しにより仮想通貨市場が弱まり、...

イノシリコンは納品を遅らせ、低い計算能力が高計算能力に取って代わり、権利保護の対象となった

暗号通貨界にはたくさんの物語があります!逃げる人もいれば、権利を守る人もいます...いろいろな人がい...

トランプはなぜビットコインを規制したいのか?

トランプ大統領は、仮想通貨に対する厳しい規制姿勢で知られる現SEC委員長のゲイリー・ゲンスラー氏に代...

ビットコインは韓国で非常に人気があり、政府はそれに課税することを計画している

ビットコインの取引量がコスダックを上回った後、韓国は暗号通貨に課税する準備を始めた。国税庁長官のハン...

ビッグニュース! 「雲宝資産」仮想通貨オンラインねずみ講事件が発覚

11日、フルン市公安局経済捜査大隊は、120万元を超えるねずみ講を組織・主導した事件を摘発し、容疑者...

6枚のカードが並列に!ビットコインマイニングには専用のマザーボードがある

ビットコインの流行も勝者を牽引する上で一定の役割を果たした。たとえば、多くの人が、デュアル GPU ...

データ:イーサリアム上のDeFiプロトコルのロックされた価値の合計は514.8億ドル

本日16:00現在、イーサリアム上のDeFiプロトコルのロックされた合計価値は約514.8億米ドルで...

金利引き下げとトランプ勝利の期待が市場を刺激し、ビットコイン強気派は65,000ドルを突破した。

金融市場は火曜日も上昇を続け、米国株、金、仮想通貨市場はいずれも急上昇した。仮想通貨市場では、Bit...

ブロックチェーン技術が主流に:デジタル通貨の受け入れ障壁を打破する方法

先週、ブロックチェーン業界の著名な専門家たちがトルコのリビエラで開催されたCoinsbankネットワ...

16nmチップのコストが20%上昇し、ビットコインマイナーは深刻な半導体不足に直面する可能性がある

半導体チップの深刻な不足に対する懸念が再び注目を集めている。マレーシアからの報告によると、半導体メー...

ザッカーバーグの公開書簡: なぜ名前を「Meta」に変更したのか

Facebook は本日、同社のメタバースへの重点と投資を示すため、Meta への変更を正式に発表し...

もしかしたら、この弱気相場は暗号通貨にとってそれほど悪いことではないのかもしれない。

仮想通貨業界が深刻な弱気相場に陥っていることは否定できない。主要プロジェクトは2021年冬頃の史上最...