※前提
私は素人なので間違った解釈・説明があると思います。
もし間違いがあったり、理解が浅いなと思うようなところがありましたら、是非ご指摘お願いします。
Aleoとは
ZKP(ゼロ知識証明)を活用したプラットフォームを作ってます。
例えば、Swapするときに自分のアドレスや残高を見せずに、トークンをスワップできたりします。
何故できるかというと、ゼロ知識証明で自分がSwapできる残高を持っていることを証明することができるからです。
まだ理解が弱く、おろおろと書いているのですが、実際にAleoでデプロイしてみたら何となく動きが直感的に分かりました。
なので、是非触ってみてください!
開発環境構築
開発環境は下記ドキュメントと公式のDiscordを読んで調べて作ることができました。
- Aleoドキュメント
https://developer.aleo.org/getting_started/ - Discord
https://discord.gg/aleohq
開発構築手順は2ステップです。
ドキュメント見ながら簡単にインストールできます。
-
Aleoのプログラム言語Leoをインストール
Rustで作られてて、その上で開発する感じです。 -
SnarkVMをインストール
leo言語で書いたプログラムをローカルで実行するためにインストールします。 -
SnarkOSをインストール
snarkOSでtestnetにデプロイしたりトランザクションを流したりします。 -
インストールできたらコマンドを実行して、正常にインストールできてるか確認しましょう
leo --help
snarkos --help
私はDockerの勉強がてら、Dockerfileを作ってDockerで構築してみました。
https://github.com/ais31/Aleo_testnet_deploy_contract
snarkOSとsnarkVMの違い
snarkOSとsnarkVMは役割に違いがあります。
簡単に言うと、snarkOSはノード、snarkVMはEVMといった感じです。
- snarkVMコマンド
デプロイしたプログラムの実行などを行います。 - snarkOSコマンド
レコードをネットワークに送信、トランザクションの検証、別ノードへの中継が行えます。
上記2つのコマンドの使われ方は、
- leoで書いたプログラムを実行したいときは「snarkVM」のコマンドを使う。
- レコードをtestnet3に流したり、プログラムをデプロイするときは「snarkOS」のコマンドを使う。
となります。
次の記事では簡単なプログラムのtestnetへのデプロイと実行をまとめていきたいと思ってます。