Solanaは、独自のコンセンサスメカニズムとアーキテクチャ設計によって実現されるスピードとスケーラビリティで知られる、dAppsをサポートするために設計された高性能ブロックチェーンプラットフォームです。この記事では、Solanaのスマートコントラクトプログラミングモデルの特長を簡単に紹介し、コンテキストとしてEthereumと比較します。
Ethereumで実行されるプログラムはスマートコントラクトとして知られており、これらはEthereumネットワーク上の特定のアドレスにあるコード(関数)およびデータ(ステート)のシリーズです。スマートコントラクトはまた、コントラクトアカウントと呼ばれるEthereumアカウントでもあります。彼らは残高を持ち、取引の対象になることができますが、個人によって制御されることはできません。彼らはプログラムとして実行するためにネットワークに展開されています。
対照的に、Solanaで実行される実行可能コードは、各トランザクションとともに送信される命令を解釈するオンチェーンプログラムと呼ばれます。これらのプログラムはネイティブプログラムとしてネットワークコアに直接展開されるか、誰でもSPLプログラムとして公開できます。
Instructions: インストラクションは、ソラナのオンチェーンプログラムのためのユニークな用語です。特定の操作を実行するインストラクションで構成され、ソラナ取引の実行の最小単位を形成します。各ソラナ取引には、オンチェーンプログラムの呼び出し、アカウントの渡し、入力リストの渡し、バイト配列の提供など、実行すべき操作を指定する1つ以上のインストラクションが含まれます。インストラクションには演算の制限があり、オンチェーンプログラムは、より少ない演算単位を使用するように最適化されるか、高価な操作を複数のインストラクションに分割する必要があります。
ネイティブプログラム:これらはバリデータノードによって必要とされる基本機能を提供します。最も有名なのはシステムプログラムで、新しいアカウントの作成と2つのアカウント間でのSOLの送金を管理します。
SPLプログラム:これらは、トークンの作成、取引、貸出、ステーキングプールの作成、オンチェーンドメイン名解決サービスの維持などを含む一連のオンチェーンアクティビティを定義します。その中で、SPLトークンプログラムはトークン操作に使用され、関連するトークンアカウントプログラムのようなプログラムは、他のカスタマイズされたプログラムの記述に一般的に使用されます。
あなたはスマートコントラクトと呼びますが、私はオンチェーンプログラムと呼びます。異なる名前ですが、どちらもブロックチェーン上で実行されるコードを指します。張三、李四、王馬子がすべて名前であるように、品質は他の側面に基づいて評価されるべきです。
Ethereumに類似して、Solanaも口座モデルに基づくブロックチェーンですが、SolanaはEthereumとは異なる口座モデルを提供し、データを異なる方法で保存します。
Solanaでは、アカウントにはウォレット情報やその他のデータを保持することができます。アカウントで定義されるフィールドには、Lamports(アカウント残高)、Owner(アカウントの所有者)、Executable(実行可能なアカウントかどうか)、Data(アカウントに格納されているデータ)が含まれます。各アカウントは、どのプログラムの状態を保持するかを区別するために、プログラムを所有者として指定します。これらのオンチェーンプログラムは読み取り専用またはステートレスであり、プログラムアカウント(実行可能なアカウント)はBPFバイトコードのみを保持し、状態を保持しません。プログラムは、状態を他の独立したアカウント(非実行可能なアカウント)に格納します。Solanaのプログラミングモデルは、コードとデータを分離しています。
一方、イーサリアムのアカウントは主にEVM(Ethereum Virtual Machine)の状態への参照として機能します。イーサリアム上のスマートコントラクトには、コードロジックとユーザーデータの保存が必要とされています。これは、しばしばEVMの歴史から受け継がれた設計上の欠陥と見なされることが多いです。
この違いを過小評価しないでください!Solanaのスマートコントラクトは、Ethereumなどのプログラミングモデルが結合されたブロックチェーンよりも攻撃が基本的に難しいです。
Ethereumでは、スマートコントラクトの「オーナー」は、それぞれのスマートコントラクトに直接対応するグローバル変数です。したがって、特定の関数を呼び出すことで、契約の「オーナー」を直接変更することができます。
ただし、Solanaでは、スマートコントラクトの「所有者」は、グローバル変数ではなくアカウントに関連付けられたデータです。アカウントには1対1の関連付けではなく、複数の所有者がいる場合があります。スマートコントラクトのセキュリティの脆弱性を悪用するには、問題のある関数を特定するだけでなく、「正しい」アカウントをその関数を呼び出す準備もしなければなりません。このステップは簡単ではなく、Solanaのスマートコントラクトは通常、複数の入力アカウントを含み、それらの関係を制約(など)を介して管理しています。account1.owner==account2.key
)。「適切なアカウントの準備」から「攻撃の開始」までのプロセスは、攻撃が発生する前に、スマートコントラクトに関連する「偽の」アカウントの作成に関与する可疑な取引をセキュリティモニターが積極的に検出するのに十分です。
イーサリアムのスマートコントラクトは、単一のユニークなパスワードを持つ金庫のようなものです。このパスワードを持っていると、完全な所有権を得ることができます。一方、ソラナのスマートコントラクトは、多くのパスワードを持つ金庫のようなものです。アクセスを得るためには、パスワードを取得するだけでなく、対応する識別子を理解する必要があります。その後にドアを開けることができます。
Rustは、Solana上でスマートコントラクトを開発するための主要なプログラミング言語です。そのパフォーマンスやセキュリティ機能は、ブロックチェーンやスマートコントラクトの高リスク環境に適しています。Solanaはまた、C、C++、および他の言語(一般的でないものも含む)をサポートしています。公式のRustおよびCのSDKが提供され、オンチェーンプログラムの開発をサポートしています。開発者は、プログラムをBerkeley Packet Filter(BPF)バイトコード(.so拡張子のファイル)にコンパイルし、Solanaブロックチェーンに展開するためのツールを使用することができます。スマートコントラクトのロジックは、その後、Sealevelパラレルスマートコントラクトランタイムを通じて実行されます。
ただし、Rust言語の学習曲線が高く、ブロックチェーン開発向けのカスタマイズが不十分であるため、多くの要件が冗長なコードや輪を再発明する結果となります。開発を簡素化するために、多くのプロジェクトが、BackpackとArmaniのコラボレーションによって作成されたAnchorフレームワークを使用しています。さらに、StarknetのCairoやSui、AptosのMoveなど、ブロックチェーン開発に特化したいくつかの新しいプログラミング言語は、Rustをベースにしています。
多くのプロジェクトが本番でAnchorフレームワークを使用しています。
Ethereumのスマートコントラクトは主にSolidity言語を使用して開発されており、この言語はJavaScriptに類似した構文を持ち、コードファイルは.sol拡張子を持っています。比較的シンプルな構文とより成熟した開発ツール(例えば、HardhatフレームワークやRemix IDEなど)を持つため、Ethereumは一般的にSolanaよりも学習コストの高いものの、よりシンプルで楽しい開発体験を提供すると考えられています。現在Solanaが人気ですが、Ethereumの開発者数はSolanaよりもはるかに多いです。
特定の状況下では、一流のレーシングカーは改造車よりも優れた性能を発揮します。Rustは、一流のレーシングカーのように、Solanaのパフォーマンスとセキュリティを効果的に保証します。しかし、本来オンチェーンのプログラム開発を前提に設計されているわけではなく、かえって運転(開発)の難易度が上がっていきます。Rustをベースにした言語を採用し、オンチェーン開発用にカスタマイズしたパブリックチェーンは、このレーシングカーを道路状況によりよく適応するように改造することに例えることができます。Solanaはこの点で不利です。
Solanaのスマートコントラクトプログラミングモデルは革新的です。Rustを主要なプログラミング言語とし、状態をロジックから分離するアーキテクチャを採用しています。これにより、開発者はセキュリティとパフォーマンスを確保しつつ、スマートコントラクトを構築および展開するための強力な環境を提供されますが、開発の難易度は高くなります。Solanaは高いスループット、低コスト、スケーラビリティに焦点を当てており、高性能のdAppsを作成しようとする開発者にとって理想的な選択肢となっています。
この記事は[から再生されましたpanews]、オリジナルタイトル「私のおばあちゃんも理解できる:SolanaのプログラミングモデルとETHの違いは何ですか?」、著作権はオリジナルの著者に属します[フォーサイトニュース、アレックス・リュウ], もし転載に異議がある場合は、お問い合わせください Gate ラーン チーム, チームは関連手続きに従ってできるだけ早く対応いたします。
免責事項:本文に表れる見解および意見は、著者個人の見解を表すものであり、投資アドバイスを構成するものではありません。
その他の言語バージョンの記事は、Gate Learnチームによって翻訳されていますが、言及されていませんGate.io、翻訳された記事の転載、配布、盗用はできません。
Bagikan
Solanaは、独自のコンセンサスメカニズムとアーキテクチャ設計によって実現されるスピードとスケーラビリティで知られる、dAppsをサポートするために設計された高性能ブロックチェーンプラットフォームです。この記事では、Solanaのスマートコントラクトプログラミングモデルの特長を簡単に紹介し、コンテキストとしてEthereumと比較します。
Ethereumで実行されるプログラムはスマートコントラクトとして知られており、これらはEthereumネットワーク上の特定のアドレスにあるコード(関数)およびデータ(ステート)のシリーズです。スマートコントラクトはまた、コントラクトアカウントと呼ばれるEthereumアカウントでもあります。彼らは残高を持ち、取引の対象になることができますが、個人によって制御されることはできません。彼らはプログラムとして実行するためにネットワークに展開されています。
対照的に、Solanaで実行される実行可能コードは、各トランザクションとともに送信される命令を解釈するオンチェーンプログラムと呼ばれます。これらのプログラムはネイティブプログラムとしてネットワークコアに直接展開されるか、誰でもSPLプログラムとして公開できます。
Instructions: インストラクションは、ソラナのオンチェーンプログラムのためのユニークな用語です。特定の操作を実行するインストラクションで構成され、ソラナ取引の実行の最小単位を形成します。各ソラナ取引には、オンチェーンプログラムの呼び出し、アカウントの渡し、入力リストの渡し、バイト配列の提供など、実行すべき操作を指定する1つ以上のインストラクションが含まれます。インストラクションには演算の制限があり、オンチェーンプログラムは、より少ない演算単位を使用するように最適化されるか、高価な操作を複数のインストラクションに分割する必要があります。
ネイティブプログラム:これらはバリデータノードによって必要とされる基本機能を提供します。最も有名なのはシステムプログラムで、新しいアカウントの作成と2つのアカウント間でのSOLの送金を管理します。
SPLプログラム:これらは、トークンの作成、取引、貸出、ステーキングプールの作成、オンチェーンドメイン名解決サービスの維持などを含む一連のオンチェーンアクティビティを定義します。その中で、SPLトークンプログラムはトークン操作に使用され、関連するトークンアカウントプログラムのようなプログラムは、他のカスタマイズされたプログラムの記述に一般的に使用されます。
あなたはスマートコントラクトと呼びますが、私はオンチェーンプログラムと呼びます。異なる名前ですが、どちらもブロックチェーン上で実行されるコードを指します。張三、李四、王馬子がすべて名前であるように、品質は他の側面に基づいて評価されるべきです。
Ethereumに類似して、Solanaも口座モデルに基づくブロックチェーンですが、SolanaはEthereumとは異なる口座モデルを提供し、データを異なる方法で保存します。
Solanaでは、アカウントにはウォレット情報やその他のデータを保持することができます。アカウントで定義されるフィールドには、Lamports(アカウント残高)、Owner(アカウントの所有者)、Executable(実行可能なアカウントかどうか)、Data(アカウントに格納されているデータ)が含まれます。各アカウントは、どのプログラムの状態を保持するかを区別するために、プログラムを所有者として指定します。これらのオンチェーンプログラムは読み取り専用またはステートレスであり、プログラムアカウント(実行可能なアカウント)はBPFバイトコードのみを保持し、状態を保持しません。プログラムは、状態を他の独立したアカウント(非実行可能なアカウント)に格納します。Solanaのプログラミングモデルは、コードとデータを分離しています。
一方、イーサリアムのアカウントは主にEVM(Ethereum Virtual Machine)の状態への参照として機能します。イーサリアム上のスマートコントラクトには、コードロジックとユーザーデータの保存が必要とされています。これは、しばしばEVMの歴史から受け継がれた設計上の欠陥と見なされることが多いです。
この違いを過小評価しないでください!Solanaのスマートコントラクトは、Ethereumなどのプログラミングモデルが結合されたブロックチェーンよりも攻撃が基本的に難しいです。
Ethereumでは、スマートコントラクトの「オーナー」は、それぞれのスマートコントラクトに直接対応するグローバル変数です。したがって、特定の関数を呼び出すことで、契約の「オーナー」を直接変更することができます。
ただし、Solanaでは、スマートコントラクトの「所有者」は、グローバル変数ではなくアカウントに関連付けられたデータです。アカウントには1対1の関連付けではなく、複数の所有者がいる場合があります。スマートコントラクトのセキュリティの脆弱性を悪用するには、問題のある関数を特定するだけでなく、「正しい」アカウントをその関数を呼び出す準備もしなければなりません。このステップは簡単ではなく、Solanaのスマートコントラクトは通常、複数の入力アカウントを含み、それらの関係を制約(など)を介して管理しています。account1.owner==account2.key
)。「適切なアカウントの準備」から「攻撃の開始」までのプロセスは、攻撃が発生する前に、スマートコントラクトに関連する「偽の」アカウントの作成に関与する可疑な取引をセキュリティモニターが積極的に検出するのに十分です。
イーサリアムのスマートコントラクトは、単一のユニークなパスワードを持つ金庫のようなものです。このパスワードを持っていると、完全な所有権を得ることができます。一方、ソラナのスマートコントラクトは、多くのパスワードを持つ金庫のようなものです。アクセスを得るためには、パスワードを取得するだけでなく、対応する識別子を理解する必要があります。その後にドアを開けることができます。
Rustは、Solana上でスマートコントラクトを開発するための主要なプログラミング言語です。そのパフォーマンスやセキュリティ機能は、ブロックチェーンやスマートコントラクトの高リスク環境に適しています。Solanaはまた、C、C++、および他の言語(一般的でないものも含む)をサポートしています。公式のRustおよびCのSDKが提供され、オンチェーンプログラムの開発をサポートしています。開発者は、プログラムをBerkeley Packet Filter(BPF)バイトコード(.so拡張子のファイル)にコンパイルし、Solanaブロックチェーンに展開するためのツールを使用することができます。スマートコントラクトのロジックは、その後、Sealevelパラレルスマートコントラクトランタイムを通じて実行されます。
ただし、Rust言語の学習曲線が高く、ブロックチェーン開発向けのカスタマイズが不十分であるため、多くの要件が冗長なコードや輪を再発明する結果となります。開発を簡素化するために、多くのプロジェクトが、BackpackとArmaniのコラボレーションによって作成されたAnchorフレームワークを使用しています。さらに、StarknetのCairoやSui、AptosのMoveなど、ブロックチェーン開発に特化したいくつかの新しいプログラミング言語は、Rustをベースにしています。
多くのプロジェクトが本番でAnchorフレームワークを使用しています。
Ethereumのスマートコントラクトは主にSolidity言語を使用して開発されており、この言語はJavaScriptに類似した構文を持ち、コードファイルは.sol拡張子を持っています。比較的シンプルな構文とより成熟した開発ツール(例えば、HardhatフレームワークやRemix IDEなど)を持つため、Ethereumは一般的にSolanaよりも学習コストの高いものの、よりシンプルで楽しい開発体験を提供すると考えられています。現在Solanaが人気ですが、Ethereumの開発者数はSolanaよりもはるかに多いです。
特定の状況下では、一流のレーシングカーは改造車よりも優れた性能を発揮します。Rustは、一流のレーシングカーのように、Solanaのパフォーマンスとセキュリティを効果的に保証します。しかし、本来オンチェーンのプログラム開発を前提に設計されているわけではなく、かえって運転(開発)の難易度が上がっていきます。Rustをベースにした言語を採用し、オンチェーン開発用にカスタマイズしたパブリックチェーンは、このレーシングカーを道路状況によりよく適応するように改造することに例えることができます。Solanaはこの点で不利です。
Solanaのスマートコントラクトプログラミングモデルは革新的です。Rustを主要なプログラミング言語とし、状態をロジックから分離するアーキテクチャを採用しています。これにより、開発者はセキュリティとパフォーマンスを確保しつつ、スマートコントラクトを構築および展開するための強力な環境を提供されますが、開発の難易度は高くなります。Solanaは高いスループット、低コスト、スケーラビリティに焦点を当てており、高性能のdAppsを作成しようとする開発者にとって理想的な選択肢となっています。
この記事は[から再生されましたpanews]、オリジナルタイトル「私のおばあちゃんも理解できる:SolanaのプログラミングモデルとETHの違いは何ですか?」、著作権はオリジナルの著者に属します[フォーサイトニュース、アレックス・リュウ], もし転載に異議がある場合は、お問い合わせください Gate ラーン チーム, チームは関連手続きに従ってできるだけ早く対応いたします。
免責事項:本文に表れる見解および意見は、著者個人の見解を表すものであり、投資アドバイスを構成するものではありません。
その他の言語バージョンの記事は、Gate Learnチームによって翻訳されていますが、言及されていませんGate.io、翻訳された記事の転載、配布、盗用はできません。