Smart Contract Design in Times of Congested Networks

Updated on: August 12th, 2020
This content has been Fact-Checked.
Smart Contract Design in Times of Congested Networks

この記事では、イーサリアムガスが何を意味するのか、そしてなぜそれが最近急上昇したのかを理解しましょう。その後、スマートコントラクトデザインに関しては、RSKやEOSのような他のスマートコントラクトプラットフォームがガス価格をどのように扱うかを見ていきます。

イーサリアムにはガスの問題があります。面白いように聞こえるかもしれませんが、開発者はその声明を笑う以外のことをしていることを保証することができます。

DeFI(分散型金融)アプリケーションの需要の高まりにより、メインのEthereumブロックチェーンの輻輳が増加しています。これは、順番に、メインチェーン上のガス価格を撃ち上げている。Bitinfochartsあたりとして、中央値取引手数料は、2018年初頭以来、その最高レベルまで撮影しています。

スマートコントラクトとEthereum仮想マシン(EVM)

スマートコントラクトは自動化されたコントラクトです。彼らは、特定の条件が行われたときに実行されるコードに書かれた特定の命令で自己実行しています。

スマートコントラクトの詳細については、こちらの詳細なガイドをご覧ください。

スマートな契約は、Ethereumエコシステムで物事がどのように行われるかです。誰かがEthereumで特定のタスクを実行したいとき、彼らは1人または複数の人とスマートな契約を開始します。

スマートコントラクトは、IFTTTロジック、別名IF-THIS-THEN-THOロジックに基づいて動作するプログラミング言語「固体」を使用して書かれた一連の命令です。基本的に、命令の最初のセットが完了した場合は、次の関数を実行し、その後次の関数を実行し、契約の終わりに達するまで繰り返します。

これはスマートコントラクトの背後にあるコア原則です。これは、弁護士のような第三者ではなく、コードによって監督される複数の当事者間で拘束力のある合意を結ぶことができるものです。

Ethereum仮想マシンとは何ですか?

Ethereum仮想マシンは、スマートコントラクトを実行するエコシステムです。適切なスマートコントラクト機能には、3つの重要なことが必要です。

決定論的

終端可能。

孤立した

機能 #1: 決定論的

それは毎回、与えられた入力に同じ出力を与える場合、プログラムは決定論的です。例:3+1 = 4の場合、3+1は常に4になります(同じ基底と仮定します)。したがって、プログラムは、異なるコンピュータ内の入力の同じセットに同じ出力を与えるとき、それは決定論と呼ばれています。

機能 #2: 終了可能

数学論理では、「停止問題」というエラーがあります。基本的には、与えられたプログラムが制限時間内にその機能を実行できるかどうかを知ることができないと述べています。契約は、定義上、所定の時間制限内に終了できなければならないため、これは明らかにスマートな契約の問題です。スマートコントラクトには、停止メカニズムを統合できる環境が必要です。

機能 #3: 分離された

ブロックチェーンでは、誰でもスマートコントラクトをアップロードできます。しかし、このため、契約には故意と無意識のうちにウイルスやバグが含まれている可能性があります。契約が分離されていない場合、これはシステム全体を妨げる可能性があります。したがって、生態系全体を悪影響から救うために、契約がサンドボックス内で隔離され続けることが重要です。

Ethereumは、EVMを介してこれらのすべての機能を提供します。これは、シンプルで強力なチューリング完全な256ビットの仮想マシンです。

イーサリアムガスとは何ですか?

ガスは、特定の操作を実行するためにかかる計算労力の量を測定する単位です。EVMで実行されるすべてのスマートコントラクトは、堅牢性を使用してコード化されています(Ethereumは将来的にSolidityからViperに移行する予定です)。堅実なコードの各行は、計算されるには一定量のガスが必要です。

下の画像は、Ethereum Yellowpageから取得されており、特定の命令がガス的にどれくらいの費用がかかっているかを大まかに理解するために使用できます。

画像提供:エテリアムイエローペーパー

Ethereumでガスがどのように機能するかをよりよく理解するために、類推を使用しましょう。あなたがロードトリップに行くと仮定します。これを行う前に、以下の手順を実行します。

あなたはガソリンスタンドに行き、あなたの車にどれくらいのガスをいっぱいにしたいかを指定します。

そのガスが車の中で満杯になるのね

あなたは、ガソリンスタンドに、あなたがガスのためにそれらを借りている金額を支払う。

さて、Ethereumと平行線を描きましょう。

車は、ガスやスマートコントラクトのように、実行したい操作です。

ガスはよく... ガス

ガソリンスタンドはあなたの鉱夫です。

あなたがそれらを支払ったお金は、鉱夫の手数料です。

ユーザーがethereumで実行したいすべての操作は、次のものに対してガスを供給する必要があります。

そのデータをカバーするために、本質的なガス。

その全体の計算をカバーする。

今、私たちは裸の基本をカバーしたので、あなたはおそらく次の質問をします。

なぜこのガスシステムを持っているのですか?

答えは単純です... 煽りです。

作業証明のピアツーピアシステムと同様に、Ethereumは鉱夫のハッシュレートに大きく依存しています。より多くの鉱夫、より多くのハッシュレート、より安全で、システムを高速にします。

より多くの鉱夫をシステムに引き付けるためには、鉱夫にとってシステムをできるだけ有益で魅力的なものにする必要があります。Ethereumでは、鉱夫がお金を稼ぐことができる2つの方法があります。

ブロックをマイニングし、ブロックの報酬を得ることによって。

彼らの採掘ブロックの一時的な独裁者になることで。

2点目を探りましょう。

鉱夫は、ブロック内に取引を入れる責任があります。これを行うには、スマートコントラクトを検証するために計算能力を使用する必要があります。ガスシステムでは、特定の料金を請求することができます。

この手数料は鉱夫の料金として知られており、生態系に積極的に参加するのに十分なインセンティブを与えるのに役立ちます。

で、どのくらいの手数料を請求できますか?計算する前に、ガスをどのように測定するかを理解しましょう。

ガス測定の最小単位はweiです。したがって、操作中に1つのガスユニットを費やすと、それを1魏と呼びます。

測定単位は次のように増加します。

イメージクレジット:スティームミットの

我々はさらに行く前に、ガスリミットの概念を知ることが重要です。

ガス制限とは何ですか?

Ethereumで操作を行うには、操作ジェネレータ(つまり、トランザクションを開始する人またはスマートコントラクトの作成者)は、鉱夫に送信する前にガス制限を指定する必要があります。ガス限界が定義されると、鉱夫は操作の実行を開始します。

ガス限界を提出するときは、次の点を考慮する必要があります。

運用が異なると、ガスコストは異なります(前に示したように)。

鉱山労働者は、ガスがなくなる瞬間実行を停止します。

ガスが残っている場合は、直ちに運転発電機に払い戻されます。

これは、仮想的なシナリオで動作中を見てみましょう。

我々は2つの数字を追加しているとし、そのための契約は、次のアクションを行う必要がありますとします。

変数に10を格納します。この作戦には45魏のガスがかかるとしましょう。

2つの変数を追加すると、これは10魏のガスがかかるとしましょう。

再びコストの結果を保存する 45 魏ガス.

ガス限界が120ウェイであると仮定します。

鉱夫が使用するガスの総数は(45+10+45)100ウェイである。

1 weiコスト0.02マイクロETHと仮定してそれらに負っている手数料は(100* 0.02マイクロETHは)= 0.000002 ETHです。

さて、どのくらいのガスが残っていますか?

120 — 100 = 20 ウェイ。

20衛は運用発電機に払い戻される。

したがって、それを指定すると、考慮しなければならない2つのシナリオがあります。

ガス限界が低すぎます。

ガス限界が高すぎます。

シナリオ #1: ガス限界が低すぎる

操作がガスを使い果たした場合、実際には何も起こらないように元の状態に戻されますが、操作ジェネレータは鉱夫に計算コストの手数料を支払う必要があり、操作がブロックチェーンに追加されます(実行されていなくても)。

私たちのロードトリップのアナロジーに戻って、あなたの車に十分なガスを満たしていない場合、あなたはあなたの目的地に到達することはできませんが、それでもガソリンスタンドに燃料のためのお金を支払ったのですか?

これが仮説的な追加スマートコントラクトでどのように機能するかを見てみましょう。ステップは次のとおりでした。

変数に10を格納します。この作戦には45魏のガスがかかるとしましょう。

2つの変数を追加すると、これは10魏のガスがかかるとしましょう。

再びコストの結果を保存する 45 魏ガス.

しかし、今回は、ガス限界は90ウェイです。

今、私たちは、契約を満たすために必要とされるガスは100魏であることを知っています, しかし、我々は唯一の90ウェル制限を持っています.

このシナリオでは、鉱夫は90魏の価値の計算を行い、90魏の操作ジェネレータ料金を請求します(90* 0.02マイクロETH)0.000018 ETHになります。

また、契約は元の状態に戻り、ブロックチェーンに追加されます。

シナリオ #2: ガス制限が高すぎます

では、ガスの限界をあまりにも高く設定するとどうなりますか?

それは正しいことをするのが理にかなっていますか?結局のところ、残り物は何でも操作ジェネレータに返金されますか?

それは紙には良いように聞こえますが、実際にはうまくいきません。Ethereumの各ブロックには全体的なガス制限があることを覚えておく必要があります。鉱夫は、ブロックガス限界以下になるように加算する作業のみを追加できます。

画像提供:ハッカーヌーン

42,000のガス制限を持つトランザクションAと、21,000の通常の制限を持つ2つのトランザクションBとCがあるとします。

鉱山労働者が自分のブロックに入れるのはどれが理にかなっていますか?

彼らは取引Aに入れ、膨大な量のガスを払い戻すだろうか?

それとも、彼らはトランザクションBとCを入れて、戻って何にもほとんど返金しますか?

2番目のポイントは、経済的に正しい彼らにもっと理にかなっていますか?

これは、膨大化したガス限界を持つことが賢明な方法ではない理由です。

高低ガス vs 高低料金

これまでのところ、ガスとエーテルは同じものではないことは明らかです。ガスは必要な計算能力の量であり、エーテルはそのガスのために支払わなければならない料金別名価格です。

今、私たちがこれまでに得たすべての知識を持って、のは、特定のガスや手数料のシナリオを見てみましょう。

操作に低ガスがある場合、それは計算を完了するのに十分なガスを持っていないため、鉱山労働者はそれを拾うことさえしません。

操作が低い手数料を持っている場合、それはそれをカバーするのに十分なガスを持っているかもしれませんが、それでも低手数料の操作は経済的に実行可能ではないので、鉱夫はそれを拾うためにビットでchompingされません。

動作がHIGHガスを持っている場合、それは動作が高いガス限界で肥大しているため、鉱夫はそれを拾わないことを意味します。

操作に高い手数料がある場合、鉱夫はたくさんのお金を稼いで即座に拾うことを知っています。

ガスステーションによると、異なる取引手数料の推奨ガス価格は次のとおりです。

エテリアムガス価格の上昇

Ethereumブロックチェーンは、最近では使用量が増加しています。これは、より複雑なスマートコントラクトの使用が増加するためです。

Ethereumガソリンスタンドごとに、USDTのようなステーブルコインやUniswapのような分散型交換は、スペース内のより多くのガス飢えたスマートな契約です。この使用量の増加は、トランザクションをより速く処理するために高い手数料を支払うことをユーザーに促します。そのため、アクティビティが多い場合、料金レートは急速に上昇する可能性があります。

状況がどれほど劇的であるかを理解するには、これを考慮してください。Coin Metrics によると、ある時点で、トランザクションあたりの平均コストは、2020年の開始時点で約8セントから約91セントの7日間の平均に上昇しました。デジタル資産データの Connor Abendschein は次のように述べています。

「現時点では、ガス料金が高いため、小規模なプレイヤーは、Synthetixなど、DEFI の最も興味深いプロトコルに参加できなくなっています。」

EthereumとDeFiがオープンで簡単にアクセス可能なグローバル金融システムを構築することであるため、これは絶対的な恥です。

より悪い部分は、この問題は、より複雑なDeFiプロトコルとユーザーがエコシステムに入るにつれて、悪化しすぎないということです。

だから、Ethereumの競合他社はどのようにガスの問題に対処していますか?見てみましょう..

EOSのスマート契約設計:所有権モデル

イーサリアムガスシステムは、レンタルモデルと考えることができます。Ethereumは、アプリケーションを作成して実行するためのリソース(ガス)をレンタルするグローバルなスーパーコンピュータです。

一方、EOSは所有権モデルを使用します。分散型スーパーコンピュータである代わりに、EOSはDapp開発者が様々なDappを作成しコード化するために利用できる分散型オペレーティングシステムになることを計画している。EOSトークンは料金所として機能し、それらを保持することで、帯域幅、計算、RAMなどのさまざまなリソースにアクセスできます。

これらのリソースが不足しているため、EOSはトークンを長期間保持することを望んでいません。EOSの背後にある会社、Block.Oneは、プラットフォーム憲法で、3年間トークンを使用していないEOSメンバーがアカウントを終了することを明示的に言及しています。

EOSトークンをスタックしてロックすることで、ネットワークとCPUの帯域幅で同等の量のリソースが提供されます。しかし、RAMは乏しいリソースなので、賭けによって自動的に取得されることはありません。したがって、それらを入手するには、RAMマーケットプレイスから直接購入する必要があります。

誰かがRAMを購入または販売するたびに、0.5%の手数料が購入者側と出品者側の両方に適用されます(全体で1%)。これは、実際にユーザーにRAMを販売するための経済的なインセンティブを与え、収集された手数料が速やかに燃焼(生態系から削除される)されるため、投機的なマーケティングとインフレを落胆させます。

この内部RAM市場は、RAMの安定した可用性を確保し、将来の予測不足を相殺します。現在利用可能なRAM供給に基づいて、システムが設定した価格に基づいてRAMを購入することができます。

これらのリソースを購入して使用することで、開発者は分散型アプリケーションを作成できます。

EOS 開発コスト

Ethereumとは対照的に、EOSでガス価格を支払う必要はありません。スマートコントラクトの帯域幅、CPU、ストレージを受け取るには、EOSトークンを賭ける必要があります。このすべてに加えて、あなたはまだRAMが必要です。RAMはまれなリソースなので、内部RAMマーケットプレイスから購入する必要があります。EOS リソースプランナーによると、RAM コストは KiB あたり 0.154 米ドル

したがって、すべての情報を念頭に置いて、アプリケーションを実行するためにどのくらいのEOSを賭けなければならないかを見てみましょう。私たちは、1000ユーザーのためのアプリケーションを作成しようとしていると仮定しましょう。次の指標を考慮する必要があります。

ユーザーアカウントごとに支払います。

あなたは彼らのストレージのために支払う必要があります

また、必要なネットワーク帯域幅と CPU 帯域幅も考慮する必要があります。

RSK-ビットコインとイーサリアムの架け橋-スマートコントラクトデザイン

Rootstock(RSK)は、サイドチェイン技術を介してBitcoinブロックチェーンに接続されたスマートな契約プラットフォームです。Rootstockは、Ethereumのアプリケーション(Web3/EVM/Solidityモデル)とビットコインを基盤とする暗号侵害として互換性があるために生まれました。RSKの作成の背後にあるアイデアは、Bitcoinブロックチェーンにスマートな契約機能を提供することでした。その核心では、Rootstockは以下の組み合わせです。

EthereumのEVMと互換性のあるTuring完全なリソース計上決定論的仮想マシン(スマートコントラクト用)。

強力なフェデレーションに基づく双方向ペッグビットコインサイドコイン(BTC建ての貿易用)

30秒のブロック間隔を持つSHA256Dマージマイニングコンセンサスプロトコル(ビットコインの鉱夫に依存するコンセンサスセキュリティ用)。(迅速な支払いのために)。

RSKを使用すると、Ethereumブロックチェーンに直接接続するトークンブリッジを構築できます。これにより、契約作成者は両方のブロックチェーンの利点を活用することができますが、両者の間で繁栄し、相互運用可能なエコシステムを構築することもできます。

では、これはどのようにガソリン価格に変換されますか?RSKはガスコストに関しては歴史的にイーサリアムより安くなってきた

上の青いラインはイーサリアムのガス価格で、下のグリーンラインはRSKのガス価格です。Ethereumと比較してガス効率のRSKがどれくらいあるかについてより明確化が必要な場合は、これをチェックしてください:

ここには平均があります。過去10日間のEthereumとRSKの取引手数料の比較。だから、これが意味することは、RSKが安いだけでなく、Bitcoinブロックチェーンの全体的なセキュリティをもたらし、EthereumとEOSの両方に明確な利点を与えることです。

結論

DEFI の革新と幅広い採用というまったく新しい時代を迎えるにつれて、開発者はアプリケーションを効率的に開発できるプラットフォームが必要になります。Ethereumが最初の移動者であることを否定する人はいませんが、RSKのような他のプラットフォームは間違いなく将来の潜在的な重いヒッターとして強力なケースを作っています。スマートコントラクトとあらゆる種類の代替トークンと代替不可能なトークンの開発がRSKのシームレスなプロセスであるという事実を考慮すると、開発者はこのスマートコントラクトプラットフォームをテストする大きなインセンティブを持っています。

Rajarshi Mitra
Rajarshi started writing in the blockchain space after listening to Andreas Antonopoulos’ podcast with Joe Rogan. A content generating machine, Rajarshi has been consistently producing high-quality guides and articles for us since late 2016. His articles have been shared extensively in social media and several start-ups have used his guide as learning material for their staff. He is continuously invited all over his country to give talks in various crypto seminars and conferences. He has gained a solid reputation as a speaker/educator on top of being one of the most promising writers in the crypto space. When he is not busy nerding out over the latest in the blockchain/crypto space, he is usually busy watching re-runs of top gear and MMA.

Like what you read? Give us one like or share it to your friends and get +16

1,102
Hungry for knowledge?
New guides and courses each week
Looking to invest?
Market data, analysis, and reports
Just curious?
A community of blockchain experts to help

Get started today

Already have an account? Sign In