その他リンクなどはじめにSolidityとVyperはどちらもEthereumやQuorumの開発で利用できる言語ですが、どちらを選ぶか迷うことがあると思います。本記事ではSolidityとVyperはそもそも何かということから説明し、両者を正しく選べるように分かりやすく解説していきます。SolidityとはSolidityはJavaScriptに似た構文を持つスマートコントラクト開発のための言語です。QuorumなどのEVMと互換性を持つブロックチェーンで利用できます。ブロックチェーン上で動くプログラムであるスマートコントラクトは不特定多数のノード上で実行され同じ結果を返す必要があります。そのため、スマートコントラクトのプログラムはランダム性を含んでいてはいけない(決定性)、メモリやストレージを消費しすぎてはいけないなどの制約があります。一度デプロイしたスマートコントラクトは書き換える事ができず、プログラムにバグがあった場合多額の通貨の損失につながる可能性がありますSolidityはこのような制約のなかでスマートコントラクトのプログラムを記述するための言語として開発されました。VyperとはVyperはPythonに似た構文を持つスマートコントラクト開発のための言語で、Solidityと同様にEVM上で動くバイトコードにコンパイルされます。VyperはSolidityの様々なセキュリティー上の問題を解決するために開発され、2020年1月現在においてベータ版でリリースされています。githubVyperはSolidityよりも制約が強くシンプルで分かりやすい言語です。Solidityはチューリング完全ですが、Vyperはチューリング完全の言語ではありません。クラスの継承、再帰呼び出しなどのセキュリティー上問題のある機能を失くしています。SolidityとVyperの利用状況GithubのリポジトリーでSolidityとVyperのファイル数を比較してみましょう。執筆した現在、Solidityファイル数が約37万なのに対して、Vyperファイル数は約200であり、圧倒的にSolidityの方が利用されています。Vyperがほとんど利用されていないのは、まだベータ版の開発段階であり、SolidityほどVyperのドキュメントが成熟していないためです。Vyperは使うべきではないのか?Solidityが大多数だからVyperを使わない方がいいかというと、決してそんな事はありません。ブロックチェーン上でのプログラムのミスは多額の資産の損失に繋がります。Vyperはそのようなミスが含まれないよう、プログラムが複雑になる機能を排除していて、Solidityよりセキュアな記述ができる言語です。2020年1月現在Vyperはベータ版のため本番利用すべきではありませんが、今のうちに概要を掴んでおく方が良い言語でしょう。VyperはSolidityを代替するのか?VyperはSolidityを置き換えるために開発された言語ではありません。VyperもSolidityも同じEVM上のバイトコードを生成する言語であり、共に利用する事ができます。ある研究ではSolidityで書かれたスマートコントラクトのうち3000個のコントラクが脆弱性を含んでいると言われていますが、VyperはSolidityよりも高いセキュリティーが求められる場合に使用するのが良いでしょう。Vyperのフレームワークサポート状況Ethereum開発のデファクトスタンダードであるTruffleではバージョンv5からVyperがサポートされるようになりました。現在はTruffleを利用してSolidityとVyperによるスマートコントラクト開発が行えます。?現在はSolidityが主流でありVyperは現在ベータ版のため本番利用は避けるべきですが、Vyperはよりセキュアなスマートコントラクトを記述するために有用な言語です。Solidityを利用しつつVyperも利用することはなんら問題ありません。Vyperの正式版がリリースされ、かつセキュリティー要件を重視するのであれば是非利用を検討してみるべきでしょう。その他リンクなどSolidityとVyperを理解するのに便利なサイトなどを紹介します。Webマーケティングや事業開発を経験した後、エンジニアに転向。現在はブロックチェーンアプリケーションの開発などに従事。好きな言語はKotlin。Fabric」もっとも利用される企業向けブロックチェーンフレームワークの概要エンタープライズ向けのパーミッション型(許可型)ブロックチェーンとして、「Hyperledger」は多くの企業やプロジェクトに採用されています。Hyp[...]概要を知りたい人ための全Hyperledger分散台帳プロジェクトまとめエンタープライズ向けブロックチェーンのプラットフォームとして、「Hyperledger」は世界有数のコミュニティです。本記事では、Hyperledge[...]つまずかないブロックチェーン学習の始め方と学習手順ブロックチェーン開発をはじめたいと学習してみる人が増えているものの、適切な学習方法が分からずに挫折する割合は非常に大きいです。WordPress.。