シラー&ヴァイパー

ブロックチェーンとスマートコントラクトの出現により、dappを構築し、実用的な目的でスマートコントラクトを活用することに幅広い関心が寄せられています。 Solidity —イーサリアムのスマートコントラクト言語—は、イーサリアムのパブリックブロックチェーンネットワークに使用される主要なプログラミング言語であり、現在でも最も人気のあるスマートコントラクト言語です。.

イーサリアムでスマートコントラクトを作成するための成功と広範な使用にもかかわらず、Solidityは比較的新しいプログラミング言語であり、当然バグやいくつかの高レベルの論理障害の影響を受けやすくなっています。スマートコントラクトの作成とそれらを作成するためのセキュリティ手法の改善に対する需要から、プログラミング言語のVyperとScillaが登場しました。.

シラー&ヴァイパー

堅牢性 & スマートコントラクト

堅牢性はによって提案されました ギャビンウッド 2014年にさかのぼり、スマートコントラクトを作成するための主要なプログラミング言語です。イーサリアム仮想マシン(EVM)用に特別に設計されており、いくつかの便利な機能を備えています ドキュメンテーション それが何であるか、そしてそれをどのように使うかについて.

Solidityは、イーサリアムノードで実行されるEVM互換のバイトコードにコンパイルされる高級プログラミング言語です。特に、Solidityは(他の言語と比較して)比較的単純なプログラミング言語であり、JavaScriptに似た非常に馴染みのある構文を備えています。堅牢性は、スマートコントラクトが決定論的である必要性など、ブロックチェーンで実行するためのスマートコントラクト言語としていくつかの重要な考慮事項を考慮して構築されています.

堅牢性ガイド

読む:Solidityとは何ですか?イーサリアムスマートコントラクトの言語ガイド

Solidityは、複数のオンライン教育プラットフォームで学ぶことができます。 Udemy —そしていくつかの広範な それについて書かれています。 Solidityのネットワーク効果により、Ethereum上に構築されたスマートコントラクトとdappsの頼れるプログラミング言語としてSolidityが強化されました。.

広く普及しているにもかかわらず、EVM固有のプログラミング言語としてのSolidityの存在は、他のブロックチェーンプラットフォームでの使用を制限しています。さらに、高級言語とその潜在的な問題に関するセキュリティ上の懸念から、スマートコントラクト監査と、よりシンプルでより安全な言語に重点が置かれています。人目を引く ハック と研究 研究 脆弱性の大きさを明らかにすることは、必然的に、より良いスマートコントラクトプラクティスの差し迫った必要性につながりました.

ヴァイパー

Vyperは、EVMに合わせて特別に調整されているという点で、Solidityに似た実験的なプログラミング言語です。 Vyperは構文的にPythonに似ており、Solidityのように契約指向です.

ただし、Vyperは、セキュリティ、シンプルさ、および監査可能性という特定の目標を持って設計されています。これは主に、初期のスマートコントラクトの反復におけるセキュリティの問題の結果です。 Vyperの原則と目標の結果として、Vyperが意図的に行う機能の明示的な例 ない 持っている 概説 なので:

  • 修飾子
  • クラスの継承
  • 関数 & 演算子のオーバーロード
  • 再帰呼び出し
  • 無限ループ

特に、再帰呼び出しはガス制限の上限を設定することを不可能にし、ガス制限攻撃につながる可能性があります。さらに、修飾子の削除は、コードを誤解を招き、人間が読める形式で解釈するのが困難になる可能性があるため、監査可能性を念頭に置いて行われました。.

Vyperは、セキュリティの脆弱な機能を取り除きますが、境界とオーバーフローのチェック、決定可能性、強い型付けなど、いくつかの重要な機能も追加します。ガス制限に関しては、決定可能性により、開発者は関数呼び出しのガス消費量の正確な上限を計算できます。.

VyperとSolidityの主な違いは、見た目は似ていますが、VyperはSolidityに存在するオブジェクト指向の原型の多くを削除することです。 Vyperのシンプルさを強調することで、プログラミングにあまり詳しくない関係者による監査が必要な場合でも、Vyperをはるかに読みやすくすることができます。したがって、Vyperの潜在的な使用法は、Vyperで記述できる多くの実用的なビジネスダップに魅力的です。.

プログラミング言語レベルでのセキュリティの考慮事項を考慮することが重要です。単純さは、多くの場合、必要な論理の複雑さを軽減し、本質的により優れたセキュリティを提供できます。 Vyperは、必ずしもSolidityを置き換えるように設計されているわけではなく、必要な場合の代替オプションとして、よりシンプルで安全な言語を提供するように構築されています。.

Vyperには バイパー改善プロトコル (VIP)そしてオンラインでテキストエディタさえ持っています コンパイラ Vyperコードで遊んでくれて。イーサリアムの キャスパーFFG 実装もVyperで書かれています.

シラー

シラー Zilliqaが使用する中級レベルのスマートコントラクト言語です。 Scillaは、セキュリティとスマートコントラクトの安全性を念頭に置いて明示的に設計されています。重要なのは、それは提供に焦点を当てています フォーマル検証 スマートコントラクトの.

Zilliqaガイド

読む:Zilliqaの初心者向けガイド

フォーマル検証 スマートコントラクトがブロックチェーンに不変にコミットされる前に、それらの静的保証を提供するように設計されています。スマートコントラクトのフォーマル検証は、この分野でより一般的になりつつあり、TezosやCardanoを含むいくつかのプラットフォームによって積極的に追求および適用されています。フォーマル検証を使用すると、ブロックチェーンにコミットされるバグのあるコードのインスタンスが大幅に削減され、その後、サードパーティによる集中的なスマートコントラクト監査の必要性が低下します。.

Scillaは、契約の振る舞いに関する正式な推論を保証しながら、有用なdappを構築するのに十分な表現力を持つように注意深く設計されています。 Vyperと同様に、主要な原則は表現力よりもシンプルさとセキュリティです。 Scillaについて行う必要がある重要な違いは、 中級レベルの言語, これは、高級言語の翻訳ターゲットであり、その後、実行可能なバイトコードにコンパイルされることを目的としています。その結果、この言語はSolidityのような高級言語よりも理解が困難です。.

Scillaは通信と計算を分離します。これは、契約の実行方法に重大な影響を及ぼします。契約は次のように構成されています コミュニケーションオートマトン 契約中の計算は原子遷移として実行されます なし 他の当事者を巻き込む。さらに、別の当事者による必要な関与のインスタンスは、移行の明示的に伝達された終了をもたらします。移行などの契約固有の効果は、メッセージや資金の送受信などのブロックチェーンの相互作用から切り離すことができます。.

さらに、Scillaは 効果的 そして ピュア 間の分離と一緒に計算 呼び出し そして 継続. 効果的で純粋な計算に関して、Scillaは関数型プログラミングからインスピレーションを得ています。

「純粋な言語と不純な言語の側面間の相互作用のセマンティクスを注意深く設計することで、進行状況や型の保存など、契約の移行に関する多くの基本的なプロパティを確保すると同時に、スタンドアロンツールを使用したインタラクティブな検証や自動検証に対応できるようにします。」

呼び出しと継続の分離とは、契約を構造化して、オートマトンを通信し、 CPS 計算モデル。このモデルを明示的な継続で使用すると、Solidityなどの言語をオートマトン構造の整合性を損なうことなくScillaに直接翻訳できます。.

Scillaのフォーマル検証コンポーネントは、に埋め込むことで有効になります。 Coqプルーフアシスタント, スマートコントラクトと分散アプリケーションの機械的に検証された証明を提供するように設計された正式な証明管理システム。結果は、両方の特性について推論する契約のフォーマル検証です。 安全性 そして 活気. 正しさ 分散システムでは、安全性と活気に分けることができます。 Zilliqaによると:

安全性 いつ “何も問題はありません」–これは何か悪いことが起こるという保証です 決して 起こります。コンセンサスでは、これは2つのプロセスが異なる値を決定しない場合です。もう1つの例は、分散トランザクションシステムにデッドロックがないことです。安全性は、長期的にスマートコントラクトの全体的な整合性に重要な影響を及ぼします.

活気 ここで「特定のことが最終的に発生する可能性があります」–何か良いことがあるという保証 最終的に 起こります。 「最終的に」という言葉も時間制限を意味するものではありませんが、システムが十分に長く稼働していれば、活気が保証されます。たとえば、コンセンサスでは、すべてのプロセスが最終的に値を決定します。もう1つの例は、障害のあるプロセスを最終的に検出する障害検出器の完全性です。.

ZilliqaによるScillaの開発と、形式化およびCoqへの組み込みは、高スループットのブロックチェーンで実行されるスマートコントラクトの将来の安全性に関する貴重な決定を証明するはずです。.

最後に、Scillaはブロックチェーンに依存せず、他のブロックチェーンに使用できます。ただし、主にZilliqaチームとの間で、まだ活発な研究開発が行われています。シラー ウェブサイト チュートリアルも提供し、 オンラインIDE 言語を試すために.

結論

スマートコントラクト開発の継続的な革新により、セキュリティに取り組むためのよりコントラクト指向のプログラミング言語とソリューションの台頭が確実に見られます。イーサリアムのような大規模な暗号通貨ネットワークを介して転送される価値の量を考慮すると、dappsとスマートコントラクトのセキュリティの必要性が最も重要です.

スマートコントラクトの最初の反復は、将来の機能に大きな可能性を示しました。現在、新しいクラスの開発は、持続可能性を確保するためにプログラミング言語レベルでのセキュリティの向上に焦点を合わせています。.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me