![見出し画像](https://assets.st-note.com/production/uploads/images/114004023/rectangle_large_type_2_69b0e7de0cc9e112d68f8b759fa2d0fe.png?width=1200)
Neon EVM
SolanaにスケーリングされたEthereum スマートコントラクト(2023.5.18ver1.8)
Neon EVMは、Solana上のEthereum Virtual Machineで、開発者はSolanaを決済レイヤーとして使用することにより、Ethereum dAppをスケールすることができます。
概要
Ethereumは、スマートコントラクトをサポートするブロックチェーンプロトコルとして支配的な存在です。しかし、取引スピードと取引コストは、dAppsのパフォーマンスと可能性を制限する可能性があります。Solanaは最も技術的に進んだブロックチェーンの1つであり、その技術革新により、低いガス料金や高い取引処理能力を提供しています。
本稿では、EthereumのようなトランザクションをEthereumのルールに従ってSolana上で処理できるようにするプロトコルであるNeon EVMを紹介します。Neon EVMは、成長するSolana市場へのアクセスを提供するだけでなく、Ethereum dAppsがトランザクションの並列実行を含むSolanaのネイティブ機能を最大限に活用することを可能にします。このようにNeon EVMは、Solanaの低いガス料金、高いトランザクション速度、高いスループットでdAppsを動作させることができます。
Neon EVMはSolana上のスマートコントラクトとして構築されています。トランザクションのリクエストは中間プロキシサーバーであるNeon Proxyに送られ、Neon ProxyはEthereumのようなトランザクションをSolanaのトランザクションにラップし、Solanaで並列実行するためにNeon EVMに送信します。
スマートコントラクトの並列実行を可能にするために、Neon EVMはいくつかの戦略を実装しています。例えば、コントラクト毎にそのデータを独自のSolanaストレージに保存し、Neonトランザクションの支払いに使用されるアカウントバランスも分離されます。
このソリューションにより、Uniswap、AAVE、Curve、Saddle Financeなどに適用される、コードベースの最小限の再構成で、あらゆるイーサリアムアプリケーションをSolana上で実行することができます。同様に、Solidity、MetaMask、Remix、Truffleなど、Ethereum dAppsの主要なツールはすべてNeon EVMを介してSolana上で動作させることができます。さらに、SolanaやEthereumの新機能が実装された場合、Neon EVMは簡単にアップデートすることができます。
Neon EVMは、Solana上の流動性へのアクセスを解除したい、Solana上で先行者利益を享受し新規顧客を開拓したい、またはSolanaが提供する低ガス料金と高スループットでスケールアップしたい開発者にユニークな機会を提供します。
はじめに
ブロックチェーン技術は分散型の資産保全システム、台帳の不変性、パーミッションレスにおける透明性などに優れています。このようなユーティリティに対応するため、レイヤー1(L1)のブロックチェーンでは、EthereumとSolanaの2大プレイヤーが登場しました。
Ethereumは、スマートコントラクトを実行するための支配的なブロックチェーンプロトコルとしての地位を確立しています。間違いなく、dApps開発者とエンドユーザーに最も高度なインフラを提供します。しかし、Ethereumは技術的に大きな成約を受けています(具体的には、TPSとTTF:それぞれ1秒あたりのトランザクションと確定までの時間に関するもの)。さらに、Ethereum内のトランザクションも比較的高価です。このため、Ethereumのネットワークから計算を外し、取引コストを共有し、代わりにL1を安全な決済レイヤーとして使用し、取引結果の透明性を提供するレイヤー2(L2)スケーリングのエコシステムが出現しています。
Solanaもスクリプトをサポートしていますが、Ethereumとは対照的に、Solanaは高速・低コストのトランザクションをサポートするために設計されました。これにより、Solanaは透明性と不変性を提供しながら、高スループットで低価値の取引に有効なソリューションとなります。2023年第1四半期現在、Solanaは他のどのL1ブロックチェーンよりも多くのトランザクションを扱っています。
このようなL1の分岐は自由な市場とブロックチェーンの技術的な強みがもたらす自然な結果ではありますが、ブロックチェーン領域の構築者に悪影響を及ぼします。dAppsは主要なブロックチェーンのうちの1つ、あるいはもう1つに特化して縛られ、近隣のエコシステムのユーザーにアクセスすることができないことに気づきます。
本論文では、これらの問題に対する解決策を提示します。Neon EVMプロトコルは、SolanaをL1決済レイヤーとして使用することで、dAppsビルダーに既存のEthereum dAppsを拡張する機会を提供します。さらにこのプロトコルは、従来ネイティブL1に結び付けられていたトークンのモビリティを可能にします。EthereumネイティブのdAppsは、初めてSolanaのユーザーベースにアクセスできるようになりました。
Neon EVMはEthereumとSolana間の障壁を取り除くだけでなく、最初のベンチテストに基づき、Neon EVMは現在利用可能な最速のEVMであることが実証されています。
チャレンジアドレス
Neon EVMプロトコルはいくつかの課題に対するソリューションを提供します。大きく分けると、トランザクション上の課題とエコシステムへのアクセス上の課題に分けられます。
トランザクション上の課題
Ethereumはスマートコントラクトと連携するブロックチェーンプロトコルの主流であり、アプリケーション開発のための最も洗練されたインフラを提供しています。しかし、Ethereumのスループットは限られており、本稿執筆時点では最大58TPSを記録し、Polygonなどのサイドチェーンでは最大470TPSを記録しています。
Ethereumが直面する技術的な制約は、状態の表現方法と更新方法に一部基づいています。Ethereum内では、状態はすべてのスマートコントラクトのキーバリューデータを格納するMerkle-Patricia Trieによって表現されます。このようなスマートコントラクトは、一般的にSolidityで書かれており、共有データとコントラクトのコードを別々に参照することはできません。そのため、スマートコントラクトは決定論的な動作を保証するために、順番に実行する必要があります。この性で、スループットが制限され、ネットワークが混雑しているときにはトランザクション速度が低下します。さらにネットワークが混雑すると、トランザクションの送信者が互いに競り勝とうとするため、ガス料金が上昇します。そして、トランザクションが非常に遅く、高価になり、ある種のdAppsにはEthereumを利用できないことがあります。
これらの問題を解決するEthereumネイティブなソリューションがL2スケーリングです。L2スケーリング技術は、L1Ethereumメインネットからトランザクションを取り出し、バンドルして提出します。これまでL2スケーリングソリューションの代表格であるRollupsは、ガス料金を効果的に削減することができました。最大で100倍という報告もありますが、一般的には10倍程度です。
一方、Solanaは分散型アプリケーションの大規模なスケーリングをサポートするように設計されており、理論上の最大スループットは50,000TPS以上、メインネットでのライブ記録では最大5,184TPSを記録しています。Solanaの革新的な技術として、Proof-of-Historyプロトコルによって強化されたProof-of-Stakeコンセンサスシステムが挙げられます。Solanaはリソースを最適化し、CPUやSSDをまたいで水平にスケールできるようにするトランザクション並列化技術や、スループットを高速化する最適化されたmempoolシステムを提供します。
これにより、SolanaはL1ソリューションとL2ソリューションの両方を凌駕することができます。例えば、本稿執筆時点では、EthereumネットワークでETHを送信する際の平均取引手数料は2ドル程度でした。同じタイミングで、L2エコシステムは0.1~0.5ドル、つまり4~20倍の節約を提供することができたのです。これに対し、Solanaの平均取引手数料は、1取引あたり0.00001SOL(0.0002ドル)であり、10,000倍の節約となります。Neon EVMの初期テストでは、負荷テストやトランザクションコストテストで、こ
のことが実際に証明されています(表1-3)。
![](https://assets.st-note.com/img/1684719838602-ptzFRXshxA.png?width=1200)
エコシステムへのアクセス上の課題
EthereumとSolanaは設計上異なるトランザクション構造を持つため、Ethereum dApp開発者がSolanaの提供するトランザクションの革新性を活用するための有意義なソリューションはこれまで存在しなかったのです。
つまり、モバイルアプリの開発者がAndroidとiOSの両方の市場にアクセスするために開発しなければならなかったように、これまでEthereumdAppsの開発者は、ターゲットとしたい別のL1市場にアクセスするためにカスタム開発しなければならなかったのです。EthereumdAppsの開発者は一般的なプログラミング言語であるSolidityに特化し、Ethereumのツールに精通しているため、多くのdApp開発者は、Solanaの異なる技術要件やトランザクション要件に準拠するためにdAppを適合させる能力を持っていません。Neon EVMプロトコルはこれを変えます。
モバイルアプリの分野ではXamarin、Flutterなどのツールがクロスプラットフォームのモバイルアプリ開発を提供します。同様に、Neon EVMはdApps開発者に堅牢なクロスL1ブロックチェーン開発ソリューションを提供し、コードベースの最小限の再構成でEthereumからSolanaにdAppを導入できるようにします。
これにより、Solanaのユーザー層はEthereum dAppsに開放されます。
Neon EVMの構造
次のセクションではNeon EVM が提供する技術ソリューションのハイレベルな概要を説明します。
Neon EVMはSolanaノードと直接やりとりして、Solana上でトランザクションを実行します。これにより、Solanaの処理能力、迅速なブロック速度、低いガス料金がEthereumコントラクトに利用できるようになりました。下図に示すように、本サービスは主に3つの要素から構成されています:
Neon EVMプログラム
Neon Proxy
Neon DAO
システム参加者は以下の通りです。
Neon EVMユーザー:Neon EVMにアカウントを持ち、NEON,ERC準拠のトークン(ERC-20、ERC-721、ERC-1155など)の残高があるユーザー。
Neon EVMオペレーター:Neon Proxyのオペレーターです。オペレーターはNeon Proxyを実行し、Neonトランザクションを受け入れるためのパブリックエンドポイントを提供します。各Neon Proxyオペレーターは、Neonトランザクションの実行に対して手数料を請求します。手数料は、“オペレーター”がハードウェアコスト、トランザクション実行コストをカバーし、利益をもたらすことができるものでなければなりません。
dApp:Neon EVMクライアント、すなわちEVM(Solidity、Vyperなど)のbytecodeコントラクトがSolana上のNeon EVMにロードされているアプリケーション。
Neonトランザクション(tx):Ethereumのルールに従って形成され、署名されたEthereumライクなトランザクション。
![](https://assets.st-note.com/img/1684719997866-5CJJHQIkzk.png?width=1200)
Neon EVM プログラム
Solanaブロックチェーンは、Berkeley Packet Filter(BPF)をベースにした独自の仮想マシンを持っています。BPFbytecodeはもともと高速に実行できるように設計されています。Solana Virtual Machine(SVM)はBPF bytecodeのジャストインタイムコンパイルをサポートしており、BPFコントラクトの実行速度が大幅に向上します。
Neon EVM Programは、他のSolanaスマートコントラクトと同様にRustで書かれ、SVMのBerkeley Packet Filterバイトコードにコンパイルされています。これにより、Neon EVMはトランザクションの並列実行を含むSolanaの機能をフルに活用することができます。さらに、Neon EVM プログラムは、Solanaのハードフォークに関係なく、簡単に更新することができます。
Neon EVMは、以下の機能を有しています:
SolidityまたはVyperコンパイラによって構築されたEVMコントラクトを個々のSolanaアカウントにアップロードすること
Solana上でトランザクションを実行する前に、Ethereumのルールに従って署名を検証すること
Solanaのリソース制約を考慮しながら、必要に応じてNeonのトランザクションを繰り返し実行し、トランザクションを確定させること
SOL(ランポート)とNEONのガス料金を計算すること
ユーザーからNEONトークンで、ガス消費量と手数料の支払いを受け、Neon EVM Operatorに渡すこと
ガバナンスプールのNeon取引実行のために、Neon EVM オペレーターアカウントからSOLトークンで手数料を送金すること
Neon Proxy
Neon Proxyは、Neon EVMクライアントとNeon EVMの間をEthereumライクなWeb3 APIという形で仲介するものです。Neon Proxyはフリーソフトウェアであり、コンテナ化されたソリューションとして提供され、誰でも利用することができます。
冗長性を高め、独立した市場を作るため、Neon Proxyは独立したオペレーターによって運営され、標準的なユーザーフローを作り出します。Neon Proxyは、Solana上でEthereumライクなトランザクションをシームレスに実行できるように、トランザクションをSolanaトランザクションにパッケージします。Neonのベータ版では、技術的な能力に基づいてオペレーターのプールが選択されました。この選択されたプールのみがトランザクションの反復を扱うことができます。詳しくは”Neonトランザクションの反復実行”の項をご覧ください。
dAppsは、トランザクションの価格など競争力のある属性に基づきオペレーターを選択することができます。
あるいはNeon EVMのロードマップにあるように、Neon EVMのクライアントはNeon Proxyを独自に導入し、Neon Proxy Operatorのサービスを利用せずにSolana上でNeon EVMによるNeon取引を実行できるようになります(詳細については”分散化”のセクションを参照)。この場合、dAppsは次のセクションで紹介するNeon EVMの経済ルールに従って、SOLトークンで支払いを賄う必要があります。
Neon DAO
Neon DAOは、SPLガバナンスプログラムとして実行される分散型Neon EVMガバナンスレイヤーです。Solana上に展開された一連のコントラクトとして存在し、そのサービスに対して手数料を受け取ります。DAOコミュニティの参加者、すなわちNEONホルダーは、アドインを含むSPLガバナンスプログラムを使用して、Neon EVMに影響を与える提案を提起し、投票するためにウェブインターフェースを利用します。
NEON EVMエコノミー
![](https://assets.st-note.com/img/1684720171318-6bNF3psBmf.png?width=1200)
Neon EVMエコノミーは手数料制です。Neonトークン”NEON”は、2つの機能(上図参照)を持つユーティリティトークンです:
ガス料金の支払い
Neon Proxy オペレーターは、ユーザーからNEONトークンで支払いを受け、取引実行に必要なガス料金を支払います。ガバナンス
NEONの所有者は、Neon DAOのガバナンス活動に従事することができます。
Neonトランザクションの支払い
Neonの取引は、Ethereumの基準に従って形成されます。各トランザクションは、Neonトランザクションの支払いに対応するデータを提供します。Ethereumのレガシートランザクションタイプの通り、ガスデータは`gas_price`と`gas_limit`の2つのプロパティで指定されます。
Ethereumのトランザクションの中で、ユーザーがトランザクションに費やしたガスに対して、ブロックを生成するマイナーに支払う金額を指定するものです。この手数料はマイナーに支払う代わりに、Solana上でトランザクションを提出するエンティティに支払うためにNEONで取られます。通常、これはNeon Proxy オペレーターです(代替オプションについては、”Neon EVM:今後の発展”のセクションを参照してください)。
Neon EVMにおけるNeonトランザクション実行のコストはSolanaトランザクション実行のSolanaルールに従って計算されます。これにより、Neon EVMのガス料金はSolanaのガス料金がベースとなるため、EthereumやEthereumネイティブのL2よりも大幅に安くすることができます。
Solanaのガス料金は、必要な計算ユニットの数やトランザクションに含まれる署名の数などの料金パラメータによって決定されます。Solana上でのトランザクションにNeon EVMを導入することで、トランザクション担当のNeon EVM オペレーターの署名数が常に1に設定されます。
Neon EVM オペレーターがSOLトークンで支払う手数料は、2つのカテゴリーに分類されます
Solanaトランザクション実行のためのSolanaリーダーへの報酬
Neon EVMトレジャリーのための手数料
トランザクションの結果、Solanaアカウントが作成される場合:手数料には、賃料免除に対応するために必要なランポートも含まれます。例えば、Neonトランザクションは、NEONトークンなどのSPLトークンを新しいNeonユーザーに転送するために、新しいSolanaアカウントを作成します。
トランザクションが反復的に解析される場合、Neon EVM オペレーターは各反復にSOLトークンで料金を支払います(詳細については”Neonトランザクションの反復実行”の項を参照)。
トークンを使ったトランザクション
Neon EVMは、Solana上でdAppsがERC-20トークンを扱うことを可能にします。ERC-20は2種類のバリエーションがあります
1.ERC-20トークン
ERC-20トークンはEVM互換のチェーンでミントされます。Neon EVMは、Neon EVMネイティブトークン(Neon EVMでミントされたもの)と、他のEVMチェーンからブリッジされたラップドトークンの両方で動作します。
![](https://assets.st-note.com/img/1684720369540-QJ8LixDtSL.png?width=1200)
Neon EVMでは、先の画像のように、EthereumやEVM互換チェーンからNeon EVMへのERC-20アセットを利用するためのブリッジやdAppsが利用できます。ブリッジとは、独自のオペレーターを持つEVMのサードパーティソリューション(Neonから独立している)です。Neon EVMは、ベータフェーズのローンチのためにブリッジの統合を確立しています。
2.ERC-20-for-SPLトークン
ERC-20-for-SPLソリューションにより、dAppsは標準ERC-20インターフェースを介してネイティブなSolana SPLトークンを利用することができます。これは、Solana上の既存の各SPLトークンを収容するために、Neon EVMで作成できる特定のスマートコントラクトでdAppsからのアクセスを提供します。Solanaアカウントの残高からSPLトークンを使用できるようにするには、NeonPassを介してNeonEVMアカウントに転送する必要があります(次項”NeonPass:Neon EVMとSolana間のトークンの移動”を参照)。
Neon EVMでは、SPLトークンをERC-20準拠として取引できる2つのコントラクトが利用可能です:
2.1 ERC-20-for-SPL
ERC-20-for-SPLコントラクトは、SPLトークンプログラムを呼び出すことができるNeon EVM内のプリコンパイルされたコントラクトで動作します。これにより、既存のSPLトークン(SOLやNEONなど)を、ERC-20インターフェースを通じて、それぞれwSOLやwNEONとして利用することができるようになります。
2.2 ERC-20-for-SPL-Mintable
ERC-20-for-SPL-Mintableコントラクトには、Neon EVMを使用して新しいSPLトークンをミントし、ERC-20互換としてラップすることができる2つの追加メソッドがあります。この契約は、Solanaのトークンプログラムを使用して新しいSPLトークンを作成し、コンストラクタで指定されたNeonアカウントにミントと凍結権限を提供します。
NeonPass:Neon EVMとSolanaの間でトークンを移動すること
NeonPassは、NeonとSolanaを可能な限りネイティブに統合するための重要なツールです。NeonPassは、技術的なバックグラウンドを持たないユーザーにとって、Neon EVMとSolanaの間でSPLトークンを双方向に移動できる直感的なインターフェースです。ユーザーは、PhantomなどのSolanaウォレットとMetaMaskなどのEVMウォレットを接続し、直接転送を行うことができます。
トークンが転送されると、ERC-20標準インターフェースを介してdAppsで使用することができます。
NeonPassは、2つの別々のブロックチェーンエコシステムをつなぐブリッジではありません。むしろ、Neon EVMに資産を出し入れするための双方向転送ツールなのです。NeonPassは、Solanaの標準的な“関連トークンアカウント”から、Neon EVM内のERC-20 for-SPLインターフェースに“パック”されたNeon EVMトークンアカウントにSPLトークンを転送することで機能します。
Neon EVM ERC-20-for-SPLトークンアカウントは、Neonエコシステムでインスタンス化されたSolana専用アカウントです。これらのアカウントはSolidity dAppsと相互作用することができ、広範なSolana環
境におけるAssociated Token Accountsと同様の構造になっています。このアカウントはユーザーのNeon EVMに面したMetaMaskウォレットに関連するトークンを保存します。
NeonPassはオリジナルのSPL資産をソースからターゲットアドレスに送信することを認識することが重要です。この“転送”機能は、標準的なブロックチェーンブリッジの“ブリッジング”機能(ブリッジはスマートコントラクトで元の資産をロックし、目的地のブロックチェーンエコシステムで“合成”資産をミントする)とは大きく異なります。
NeonPassは、SolanaとNeon EVMの間の流動性を高める回転ドアです。以下にあるような使いやすいツールをユーザーに装備しています:
NEONを含む許可されたSPLトークンをNeon EVM ERC-20-for-SPL トークンアカウントに送り、dAppsで使用するだけでなく、Neonトランザクションの支払い(NEONの場合)にも使用することができます。NEONを除く許可されたSPLトークンは、Neonに展開された対応するERC-20-for-SPLスマートコントラクトを持ちます。
Neon EVM ERC-20-for-SPLトークンアカウントからSPLトークンを引き出し、Solanaに戻します。
NEON EVMの特徴
Neon EVMはEthereumのトランザクション規格の機能を、SolanaのL1のスピード、コスト、セキュリティで提供します。dAppsに必要なセキュリティとファイナリティを提供しながら、代替フローも含めて、自己自律の機会を提供することができます。以下では、そうしたNeon EVMの技術的特徴について、より深く掘り下げていきます。
暗黙のネオンEVMのセキュリティ
Neon EVM プロトコルのセキュリティは、以下の方法で実施されます:
Neon EVMスマートコントラクトコードは定期的に監査され、誰でも確認することができます。
SVMにブロードキャストされたNeonトランザクションは、独立したSolanaバリデーターによって検証されます。
分散型Neon EVMガバナンスは、Neon EVM契約の更新を担当します。
Neon EVM内におけるオペレーションの独立性
Neon EVMはNeon Proxyを実行する意思と能力がある人なら誰でも、そのインフラへのオープンアクセスを提供することでその運営の独立性を確保しています。さらにNeon Proxyは、Neon EVMのクライアントであればクライアントライブラリで置き換えることができます。詳細は、“分散化”のセクションを参照してください。
Neon EVMが受信したトランザクションは、優先順位を決定する属性を持たないため、差別されることはありません。Neon EVMが検証する不変のnonceとユーザー署名フィールドは、Neonトランザクションの一貫した実行を保証し、再実行から保護します。
Neonトランザクション実行のための前提条件
他のSolanaネイティブdAppsと同様に、Neonトランザクションの実行を可能にするには、ユーザーがNeon EVMに自分のアカウントへのアクセス権を与える必要があります。Neon EVMは、送金、スワップなどのユーザー取引のためにユーザーの代わりに行動します。
偽造や不正な操作を防止するため、トランザクションがSVMにブロードキャストされる前に、以下のフィールドをチェックし、検証します:
nonceフィールドには固有の取引インデックスがあり、Neon EVMのスマートコントラクトで検証されます。このため、二重支出攻撃は不可能です。
署名フィールドはEthereumのルールに従って形成され、Neon EVMスマートコントラクトによって検証されます。注:Solana署名とNeon署名の検証手順は異なり、異なるアルゴリズムで実装されています。
ネイティブトークンの転送
従来のEVMで転送が処理される方法と同様に、“value”プロパティによって、トランザクションは転送されるネイティブトークンの量を定義することができます。Neon EVM内では、dAppはプラットフォームのネイティブトークンであるNEONをこの残高に振り替えることができます。
Solana上でのNeonトランザクションの並列実行
ほとんどのブロックチェーンはシングルスレッドでトランザクションを処理するため、ブロックチェーンの状態は一度に1つのコントラクトによって変更されることになります。これに対してSolanaは、Solanaノードで利用可能な限りのコアを使用して、何万ものコントラクトを並行して処理することができます。この機能はSealevelと呼ばれ、スループットを大幅に向上させます。
Neonトランザクションは、Solanaの状態から共有データへのアクセスを制限しつつ、Solanaがネイティブトランザクションとして並列に実行します。しかし、場合によってはNeonのトランザクションはSolanaが1つのトランザクションに割り当てるリソースよりも多くのリソースを必要とすることがあります。この場合、Neon EVMはトランザクションを反復実行し、Solana状態の共有データへのアクセスを制限する
拡張モードが使用されます。詳しくは“Neonトランザクションの反復実行”の項をご覧ください。
Solanaのトランザクションはトランザクションが実行中に読み書きするすべての状態を記述するため、並列処理が可能です。このため、トランザクションが重なることがなく、独立したトランザクションと同じ状態を読み取るトランザクションを同時に実行することができます。
Solanaトランザクションの並列実行を保証するために、Solanaはトランザクションに関与するすべてのSolanaアカウントのリストを必要とします。Solanaトランザクションのヘッダーに指定されていないSolanaアカウントへの呼び出しがあった場合、アルゴリズムはエラーで実行を中止します。
Neonトランザクションの並列実行の手順は、以下のように構成されています:
Neon EVMと同様のEVMを内蔵したNeon Proxyは、ユーザーからNeonトランザクションを受け取ります。
Neon ProxyはNeonトランザクションのテスト起動を行い、現在の状態について、公開SolanaクラスタRPCエンドポイントまたは自身のSolanaノードを呼び出します。
実施したテストの結果、Neon ProxyはNeonの取引に関わるコントラクトとアカウントの完全なリストを受け取ることができます。
Neon Proxyは、NeonコントラクトとNeonアカウントのリストを使用してSolanaトランザクションを形成し、Neonトランザクションはその中にラップされます。
Neon Proxyはオンチェーン実行のSolanaトランザクションをSolanaクラスタに送信します。
SolanaクラスタはSolanaトランザクションを取得し、実行のためにSolanaの先頭ノードに送信します。
Solanaノードの並行トランザクション処理装置は、Solanaトランザクションを並行して実行し、SolanaトランザクションのヘッダーにあるSolanaアカウントを検証することでトランザクションの独立性を確認します。
パックされたNeonトランザクションを実行するSolanaトランザクションは、次のようにNeon EVMスマートコントラクトを呼び出して並列に処理されます:
8.1 NeonEVMスマートコントラクトがロードされます。
8.2 EVM(Solidity,Vyper等)bytecodeスマートコントラクトがロードされます。なお、Solana上で実行されるスマートコントラクトはそれぞれ独立した状態を持っています。
8.3 Neon EVMスマートコントラクトは、EVMスマートコントラクトメソッドを呼び出すことで、Neonトランザクションを実行します。
8.4 Neonトランザクションがオンチェーンで実行されると、Solanaステートのデータが使用され、変更されます。
8.5 Neonトランザクションの実行が終了すると、Neon EVMはSolanaの状態を更新します。
Neonトランザクションの反復実行
SVMはハードウェアの最適な利用を保証するために、単一のトランザクションの実行に割り当てられるリソースを制限しています。Neon EVMはこの制限に対応するために、Neonトランザクションの反復実行を導入しています。
何度も繰り返し解析する必要があるトランザクションを確実に完了させるためにインセンティブ付与プロトコルが確立されています。Neon DAOは、以下を決定するこのプロトコルを管理する責任を負います:
Neon EVMガバナンスプールに支払う料金:"Neon EVM economy "を参照。
Neonトランザクションの反復実行のための保証金の大きさ
Neonトランザクションあたりの最大反復回数(Mi)
待機ブロックの最大数(Mn)1。Mnブロックの後、他のオペレーターが実行を継続し、預託金を受け取ること
1 オペレーターには繰り返し実行の間に通過できる最大ブロック数(Mn)が与えられています。トランザクションの実行時間を制限する必要があるのは、このトランザクションに関与するすべてのアカウントとコントラクトが、他のNeonトランザクションで使用するためにブロックされるからであり、そのため最大待機ブロック数(Mn)を制限しています。
反復実行を初期化するための主な手順は以下の通りです:
Neon EVMは、SOLトークンの保証金をオペレーターのアカウントから別のアカウントに移し替えます。この保証金は、オペレーターがトランザクションを完了するための動機付けとして保有されるものです。
a.Neon EVMはNeonトランザクションで使用するSolanaアカウントをブロックします
または
b. 代わりにSolanaアカウントが他のNeonトランザクションによって既にブロックされている場合、新しいトランザクションはNeon Proxyによる実行のためにキューに入れられます。
トランザクションの実行が選択されると、以下の処理フローが適用されます:
a. 最初の反復であれば、Neon トランザクションはSolana アカウントにロードされます。
・トランザクションプロセスが始まります。
・トランザクションをアップロードするためにユーザーから支払いを受けます
・実行内容をSolanaのストレージアカウントに保存します
b.最初の反復でない場合は
・Mnブロック以上経過した場合は、他のオペレーターに実行を引き継ぎます。
・ストレージアカウントからNeon EVMの実行内容をリストアします。
・Solanaトランザクションで指定された最大数のEVMステップを完了します。
・Neon EVMがガス料金(Neon オペレーターが使用したランポートで測定)を計算します。
・Neon EVMは各反復の終了時にNeonユーザーからNeon オペレーターにNEONトークンを転送します。実行終了でない場合は、
・反復実行のステップを完了したオペレーターを記録します。
・完了した反復回数を増やします。
・実行内容をSolanaのストレージアカウントに保存します。Neonトランザクションの反復実行を終了する条件は以下の通りです:
a. Neonのトランザクションが完了した場合。
または
b. Neonのトランザクションがキャンセルされた場合。この場合、未使用のデポジットはバーンされます。Neonトランザクションはキャンセルすることができます:
・Neon EVM Proxy オペレーターが、前回の反復からMnブロックが経過していない場合
・最後の反復実行のNeon EVM proxyオペレーターの場合Neonトランザクションの反復実行の最後に:
・Neonのトランザクション結果はSolanaレセプトに保存されます。
・Neonトランザクションによって変更されたデータはSolanaストレージに保存されます。
・最後の反復を完了したNeon Proxy オペレーターは、デポジットを受け取ります。
・Neon EVMは、Neonトランザクション開始時にブロックされていたアカウントのロックを解除します。
・Solanaの状態を更新します。
Neon EVM:今後の発展
分散化
Neon EVMは、DAOプロトコルによる分散型ガバナンスを含む高い分散性を有しています。Neon EVMプログラムはSolana上のスマートコントラクトとして、SolanaのL1と同じ分散化レベルを継承しています。Neon EVMのプロダクトビジョンのひとつに、さらなる分散化を促すというものがあります。
Neon EVMプロトコルの最も中央集権的なコンポーネントはNeon Proxyで、EthereumのようなトランザクションをSolanaと互換性を持たせるためにトランザクションをパッケージ化します。Neon EVMのベータ版では、Neon ProxyはNeon Proxyオペレーターの選択されたグループによって運営されています。このオペレータープールは、彼らの技術力に基づいて設立されました。Neon DAOは、オペレーターの許可リストを管理し、悪意のある行動をとるオペレーターを削除する責任があります。オペレーターになることを希望する者はNeon DAOが検討するためのプロポーザルを提出する必要があります。
オペレータープールはdAppからのトランザクションを受け入れる一般に利用可能なエンドポイントが複数存在することを保証します。しかし、オペレータープールの大きさは、集中効果に直接、負の相関があります。この課題に対処するため、Neon EVMはdAppsの自己自律性を実現し、独自のNeon Proxyインスタンスをデプロイできるようにする予定です。
ロードマップの最初のステップは、dAppsが単一のトランザクションのためにNeon Proxyをデプロイできるようにすることです。その後、より技術的に困難な反復トランザクションを処理するために、Neon Proxyを自律的に展開するdAppsが招待される予定です。
最適化
自己自律化は冗長性の向上を超えた新しいレベルの最適化をdAppsにもたらします。また、dApp開発者がNeon Proxyの側面を最適化することも可能になります。たとえば、デフォルトでは、Neon Proxy はテスト実行を行い、Neon トランザクションの実行に使用されるNeon アカウントの完全なリストを取得します。テスト実行には時間がかかりトランザクションを迅速に実行しなければならない場合には、この時間が重要になることがあります。
そのため、ロードマップではNeonのトランザクションをテスト実行せずに実行することもサポートしています。これには、Solanaトランザクションをクライアント側(ウェブ/モバイル)で構築し、その中にNeonトランザクションをパッケージ化することが必要になります。そして、SolanaトランザクションはSolanaノードに直接送信されます。ただし、この場合、大規模なトランザクションを反復して実行できるなど、開発者の技術的な適性はかなり高くなります。
Solanaインターオペラビリティ
Neon EVMのロードマップではSolanaとの相互運用性を継続的に改善することも目標としています。例えば、Neon EVMはSolana上のプログラムを呼び出す機能をdAppsに提供し、その逆もまた然りです。
この機能を実装した後、次のステップとして、Metaplexプロトコルを介してSolanaの高度なNFT機能へのアクセスを提供します。これにより、ERC-721とSolana NFTコレクションの互換性が確保され、dAppsは、繁栄するクリエイター経済と拡大するgameFiアリーナを支える豊かなエコシステムへのアクセスが可能になります。
サマリー
Neon EVMはSolana上のEthereum dAppsを開発者に優しい方法でスケールさせたいと考えている人にとって、摩擦が少ないソリューションです。Solanaの機能を最大限に活用するため、Neon EVMはSolanaのスマートコントラクトとして構築されており、EthereumやSolanaのアップデートに関しても柔軟性を確保しています。
Neon EVMは、Solanaルールによって計算されたガス消費量と、大規模なEthereum EVMコントラクトの反復実行を備えたEthereumフルエミュレシオです。既存のすべてのEthereumツールと完全な互換性があります。Solana上でEVMbytecode(Solidity、Vyperなど)のコントラクトの並列実行を可能にします。また、EthereumツールによるSolanaインフラへのアクセスや、Ethereum向けに作られたコントラクトやツールにネイティブな、ラッパーインターフェースによるSPLトークン契約に登録されたSolanaトークンへのアクセスも可能です。ユーザーはNeon EVMのサービスに対してNEONトークンで支払うことができます。
免責事項
本ホワイトペーパーに概説されている情報は、網羅的なものではない可能性があり、契約関係の要素を示唆するものではありません。本ホワイトペーパーの内容は、ウェブサイト(https://neonevm.org)の内容を含め、当社および当社の関連会社を拘束するものではありません。当社は、理由の如何を問わず、いつでも事前通知なしに本ホワイトペーパーの一部を変更、修正、追加、削除する権利を有します。また、当社は事前の通知により、いつでも本ホワイトペーパーを無効とする権利を留保します。
本ホワイトペーパーは、一般的な情報提供のみを目的とし、本ホワイトペーパーが扱う狭い問題に関連する特定の概念的考察の手引きとして作成されたものです。本ホワイトペーパーは、複製、複写、譲渡、その他第三者への配布を行わないものとします。当社は、本ホワイトペーパーに掲載されているすべての情報が正確かつ最新のものであるよう努力していますが、ここに掲載されているいかなる情報も、専門的なアドバイスではありません。また、当社はここに記載された情報の正確性、信頼性、妥当性、完全性に関して、いかなる表明も保証も行いません。
本ホワイトペーパーはNeon EVMの説明のみを目的としており、その実現可能性、投資魅力、および(または)関連性について、いかなる意見または約束も表明するものではありません。また、最終プロダクトがお客様の期待に応えることを保証するものではありません。本書の情報を使用する前に、Neon EVMの操作に関連するすべてのリスクをご自身で受け止めてください。本ホワイトペーパーに掲載されている情報は、一般に公開されている情報に基づくものであり別途調査したものとはみなされません。本ホワイトペーパーは投資、法律、税務、規制、財務、会計、またはその他のアドバイスを提供するものではありません。本ホワイトペーパーはいかなる法域においても、いかなる種類の目論見書または投資勧誘を構成するものでもなく、また、いかなる有価証券の募集または購入の勧誘を構成するものでもありません。
本ホワイトペーパーをお読みになる方は、ご自身の法域の法律に従って、本ホワイトペーパーが適法に提示されうる人であることを前提に、本ホワイトペーパーが提示されたことに留意してください。
このホワイトペーパーに記載されている一部の記述は、通常、”予想される”、”信じる”、”期待する”、”想定される”または同様の語句や記述の使用によって識別される、将来予想に関する記述に該当する可能性があります。このような将来予想に関する記述や情報は、既知及び未知のリスク及び不確実性の影響を受け、将来予想に関する記述に含まれた又は表現された見積りや結果に重大な影響を与える可能性があります。当社は、これらの記述や情報の更新や見直しに関する義務を負うものではありません。当社は、このような記述の使用または依存によって発生し得るいかなる損失に対しても、一切の責任を負わないものとします。当監査法人は、”ホワイトペーパー“またはホワイトペーパーに反映されたいかなる問題に関しても、独自の検証を行っていません。
お客様はご自身の責任において本ホワイトペーパーを使用するものとします。明示的な同意がない場合、当社はかかる使用により発生し得る損失について、直接的および間接的な結果を含め、いかなる責任も負わないものとします。
本ホワイトペーパーは法的拘束力を持たず、いかなる契約の締結や義務の履行を義務付けるものではありません。
お客様は、質問したり必要な情報を求めたりする権利があり、またそれを推奨されています。これらについてその他の理由でも、info@neonevm.org までご連絡ください。
(原文:https://neonevm.org/Neon_EVM_Whitepaper_v_1.5.pdf)