Why Sui Move その1:安全性
これは、私たちがSui Moveエコシステムでの構築を選択した理由について解説するシリーズのパート1です。私たちがEthos(開発者向けの垂直ウォレットインフラ及びユーザー向けのホームベース体験ウォレット)を発表したときに、よく聞かれた質問は「なぜSui Moveを選んだのか?」というものでした。開発者の方たちは、私たちがSuiブロックチェーン上のサードパーティアプリケーションとしてのローンチを決定した経緯について知りたがっていたのです。このシリーズの目的は、同じような決断をしている他の開発者をサポートするものでもあります。まず始めに、開発者とユーザーにとってWeb3での価値のある体験を作るための基本的な要素である、「安全性」について深く掘り下げていきます。
Web3分野では、詐欺にあった人が数多く存在します。 彼らは、巧みに作られた偽プロジェクトに騙され、たったワンクリックしてしまっただけで貴重なNFTを失いました。そして、多くの場合、騙された人々は技術面やWeb3の仕組みに精通しています。それでも、騙されたのです。
今後、10億人の人々がWeb3に乗り換える際には、安全性が最も重要となるでしょう。Web3は、トランザクションに署名する際のユーザー体験を大幅に改善し、詐欺に遭う可能性を減らすことができなければ、永遠にニッチな存在に留まってしまう運命にあります。
特に、オンチェーンでのやり取りがよりカジュアルに、頻繁に行われるようになればなるほど、その傾向は顕著になっていくでしょう。気をつけていても、普段の取引と同じように深く調べることな、習慣的に誤って署名してしまうかもしれないのです。このような経験は、Web3全体に対する人々の信頼を失墜させるものとなるでしょう。
トランザクションから生じる変更予想を確実にするために、トランザクションをシミュレートすることに関する潜在的な解決策があります。しかし、この手法は、リソースと時間を消費するため、実際には困難です。特に、ゲームやソーシャルメディアなど、より頻繁なエンゲージメントが発生するユースケースの場合には、困難が伴います。
これが、私たちがSui Moveを使った構築に惹かれた理由の一つです。Moveは、SolidityやRustなどの言語から学んだことを基に作られた新しいスマートコントラクト言語で、これらがどのように使われてきたか、どこに脆弱性があるのかに関する改善の上に開発されています。
また、Sui Moveは、Moveフレームワークをベースに、いくつかのユニークな機能を導入しています。
その1つが、一定のセキュリティ保証を提供するアセットベースのモデルです。関数のシグネチャを見るだけで、その関数が提供するあらゆる資産に対して何をする権限があるのかが分かります。
以下はその例です:
public entry fun cool_transfer(asset: CoolAsset, recipient: address, ctx: &mut TxContext) {
assert!(tx_context::epoch(ctx) > asset.creation_date + 30, ECantTransferYet); transfer(asset, recipient)
}
Move構文にまだ慣れていない人にとっては読みにくいかもしれません。
このスニペットは、「CoolAsset」アセットの権限レベルを指定しています(太字で表示)。権限レベルのオプションは以下の3つです:
- アセット:CoolAsset
これは権限レベルを示すものであり、アセットへの最も多くのアクセスを提供し、アセットの譲渡、再パッケージ化、破壊、変更につながる可能性があります。エンドユーザーが最も注意するべきレベルです。 - アセット: &mut CoolAsset
これは何らかの方法でアセットを変更する許可を要求しますが、アセットの譲渡、再パッケージ化、破壊は許可されません。 - アセット: &CoolAsset
これはアセットの読み込みの許可のみを要求します。これは最も安全な操作です。
この関数は、どのようなアセットと相互作用するかを正確に指定しているだけでなく、関数がそのアセット(この場合は CoolAsset)で何ができるかを明示的に示しています。
この価値を過小評価するのは簡単です。この情報によって、Ethos Walletなどのウォレットは、頻繁で安全なトランザクションを迅速または自動的に行えるようなユーザー体験を非常に容易に実現できます。これによって、より高い信頼性を持って自動化できるトランザクションを指定することが可能になり、必要に応じて複数回でもユーザーに確認することで、悪意のある可能性のある取引から保護するものとして機能します。例えば、貴重なアセットの譲渡など、予期しない、重大な許可が含まれる場合、ユーザーにその取引に署名することを望んでいるかどうかを確認する複数回のチャンスを提供することができます。
これは比較的小さな要素に見えるかもしれませんが、この変更によって、dAppsの使用と開発の経験がより安全でユーザーフレンドリーになると考えています。Ethos Walletにとっては、エンドユーザーの利便性と安全性を同時に提供することが可能になるのです。