Zeroichi Arakawa
2022 年の夏、Flow ブロックチェーンのメインネットで、スマートコントラクトのパーミションレス・デプロイ(Permissionless Deployment)が可能になります。
現在のところ、Flow でメインネットにスマートコントラクトをデプロイするためには Flow チームからの許可が必要です(詳細)。
これは、Flow で使われる Cadence 言語の設計が、これまでのブロックチェーンのプログラミング言語とは大きく異なるため、セキュリティ的に問題ないことを時間をかけて確認する必要があったためです。
2022 年の夏、この制限がついに外れる予定です。これにより、Flow チームからの許可を得ることなく、誰でもコントラクトをデプロイできるようになります。
パーミションレス・デプロイ達成のためのマイルストーンと日程については、こちらの特設ページで状況を確認できます。具体的な日時は、2022 年 6 月中を目処に完了する監査結果と、バグバウンティの状況を考慮して決定されると考えられます。
真にパブリックなブロックチェーンになるとともに、Flow のエコシステムのさらなる発展が期待できます。
これまでは Flow チームからのレビューが必要だったため、どちらかというと大衆向けのメジャーなコンテンツを扱うプロジェクトのリリースが促進されていました。レビューには、ある程度しっかりとしたロードマップや運営体制も求められました。そのためこれまでは、発行数が少ないニッチな NFT や、実験的なコントラクトは、どうしても表に出てきづらい状況にあったと思います。また、アーティストが自分の独自コントラクトをデプロイすることも難しかったと思います。しかし今後は、より多様で、自由なプロジェクトが増えていくことが期待できます。
先日(2022年6月12日)、Flow 開発コミュニティの参加メンバー何名かで集まって、パーミションレス・デプロイに関する AMA(質問会)を開催しました。以下、いくつかの質問と回答を記載します。
A: ユーザーにとっては、特にすぐに何かが変わるということはないが、良くも悪くもより多様なコンテンツが増える可能性が高い。開発者にとっては、Flow チームに連絡を取ることなくコントラクトをデプロイできるようになるので、より実験的なことや個人プロジェクトを作りやすくなる。
A: これまでは Flow チームからのある意味で検閲フィルターがかかったプロジェクトだけがリリースされていたが、これからは詐欺的なプロジェクトも出てくる可能性がある。一般的な話ではあるが、変なプロジェクトじゃないか、自身できちんと調べたほうがよい。Flowverse で扱われているプロジェクトかどうかという点は、判断基準のひとつにはなるかもしれない(※あくまで判断材料のひとつ)。ただし、Ethereum など多くのブロックチェーンと違い、スマートコントラクトやトランザクションのコードが人間に読める形式であるため、怪しいコードかどうかは判別しやすい。
A: 注意は常に必要。Cadence を学ぶことがベストではある。ちなみに、Cadence は非常に静的解析がしやすい言語であるため、Blocto ウォレットや Litico ウォレットなど、ウォレット側でのセキュリティ的なチェック機能の追加が期待される。
A: ERC20 や ERC721 トークンと、Flow の FT・NFT は仕組みが違うが、とはいえ、第 3 者に自分のトークンを移動できる権限を渡す機能は Flow にもある。現状は、Ethereum などのように、approve しているアドレス一覧を調べたり、revoke したりするサイトは Flow にはないが(このあたりはまだ標準化もされていない)、同等のものが今後でてくる可能性はある。
A: できる。コントラクトは、アドレス(デプロイする Flow アカウントのアドレス)とコントラクト名で一意に識別されるため、デプロイするアカウントが異なれば別物という扱いになる。
A: 現状、Dapper ウォレットと接続するためには、個別に Flow チームと調整する必要がある(ステーブルコインを扱うため、国によって制限があったりする)。Blocto と Lilico に関しては、FCL Discovery という仕組みを使うと、Dapps 側は簡単にウォレット選択画面を表示でき、ユーザーが何のウォレットを使っているかも特に意識しなくてよくなる。
A: はい。ユーザーがその NFT のコレクションを自分のアカウントストレージで初期化しない限り、好き勝手な NFT を送りつけられることはない。そういう意味では、多少は Etherum や Polygon などよりはマシ。ただし、Rarible などの共通コントラクトを使って spam 的なものが送られることはありえる。
A: 特に、どちらかでしか発生しないケースはないという認識。どちらも同じような攻撃が可能であり、変なサイトにはアクセスしない、署名しない、など注意が必要。
A: レビューを申請すること自体はそこまで手間ではない(こちらを参照)。逆に、パーミションレス・デプロイが有効になったあとは、おそらく今のように誰でもレビューを受けれる状況はなくなる。いまが最後のチャンスかもしれない。
A: 現状はその仕組みはないが、トランザクション手数料の仕様は活発に議論されていることの一つであり、今後追加される可能性はある。
A: このパーミションレス・デプロイに向けたアップデートのひとつに、トランザクション手数料の仕様変更が含まれている(こちらの記事も参照)。これにより、処理内容に応じて手数料が変わる仕組みと、ネットワーク状況に応じた手数料調整が可能となっている。スパム的にトランザクションが増えた場合は、ネットワーク手数料が上がることでこれを抑える力が働く。また、スパムのフィルタリングなどの対策をアクセスノード側に入れることもできる。ノードの種類が複数あるため、ネットワーク全体への影響は比較的小さくできるかもしれない。
A: Alchemy で Flow のノードを用意することができる。サービス側では、バックエンドでこれを使うことができる。ただし、Blocto などのウォレットは現状対応していない。
ネットワークの不調により、残念ながら最初の 30 分しか録画されていませんが(ほんとは 全部で 2 時間ほど話しましたが…)、いちおうアーカイブ動画を YouTube に公開しています。