Move言語の父が、Web3製品を構築するための強力なツールであるSui Moveの利点を分析します

Move言語の父へのインタビュー:なぜSui Moveスマートコントラクト言語がWeb3製品の構築に適しているのか?

最近、私たちはMysten Labsの最高技術責任者であり、Moveプログラミング言語の創作者であるSam Blackshearと対談し、彼がなぜSui Moveという新しいスマートコントラクトプログラミング言語を開発したのか、Suiが拡張できる機能、そして分散型技術が構築者にもたらす利点について話しました。

以下は今回のインタビュー内容です:

Q1、まず、プログラミング言語とは何か、開発者がプログラミング言語を選ぶ際に最も重視する品質は何か、また、自身のプログラミング言語を開発する動機は何かを概説していただけますか?

プログラミング言語は、コンピュータとの友好的で安全かつ効率的、明確なインタラクションのためのツールに過ぎません。コンピュータにとって、これは特に重要です。自然言語を使ってコンピュータとコミュニケーションを取ることはできません。なぜなら、自然言語の全体的な意味は豊かさと表現力を持っているからです。異なる口調や微妙に異なる表現を選択すると、あなたの文や段落の意味は完全に異なるものになります。

プログラミング言語において最も重要なのは、正確に定義されたセマンティクスを持つことです。プログラムを書くとき、あなたはそれが何をするかを明確に理解しています。もし微小な調整を加えた場合、その変更がどのような結果をもたらすかを知っています。この点は複数のレベルで維持されるべきであり、例えば、あるソース言語でコードを書いた場合、それには1つの意味があり、他の形式に変換されるときも同じ意味を持つべきですし、機械の処理モジュールに到達するまで同様です。

私は、自然言語とは異なり、プログラミング言語の本質は特定の領域や特定のタスクに焦点を当てていると考えています。そうでなければ、1つのプログラミング言語だけで全てのタスクを完了できるはずです。しかし、さまざまなプログラミング言語が存在するのは、すべての領域で優れたパフォーマンスを発揮することは不可能だからです。それらは特定の問題領域に対してターゲットを絞り、これらの問題を解決することに注力しています。例えば、私たちがSuiブロックチェーンを構築するために使用しているRustプログラミング言語や、Mystenでの他のシステムでの作業を見てみると、それは迅速かつ高性能なコードを記述することに重点を置きつつ、安全性を保証しています。それはメモリ、スレッド構造、または並行性などの低レベルの詳細にアクセスできるようにしますが、以前の言語(CやC++など)よりも間違いを犯すことが難しくなっています。

したがって、Moveのストーリーはこれと非常に似ています。私がそれを創造したとき、新しい言語を創造するためではありませんでした。あなたは以前、開発者がある言語に何を求めているかを言及しました。彼らは尋ねるでしょう、「この言語は私が達成したいタスクに適していますか?」しかし、私が考えるに、より重要なのは「この言語には大規模なコミュニティがありますか?利用可能なデータベースはたくさんありますか?多くのプログラマーが使用していますか?良い教育リソースはありますか?」これらは非常に重要であり、新しい言語を創造するためのハードルは非常に高くなければなりません。たとえその言語自体が優れていても、これらの要素がなければ、その利点は意味がありません。ゼロから大規模で活気に満ちたコミュニティを構築することは非常に困難です。

Q2、Moveの開発状況についてもっと共有していただけますか?

MoveはFacebookのLibraプロジェクトに由来しています。私の当時の任務は新しい言語を作成することではなく、「Libraにはスマートコントラクトが必要なので、私たちは何をすべきかを見つけることでした。」私はさまざまなものを見ました。EVMでSolidityを使用できますか?私たちはLibraのためにWASMやJVMのような一般的な汎用言語を使用すべきでしょうか?それとも自分たちのものを作成すべきでしょうか?

私たち自身のものを作成することを決定したのは、既存のスマートコントラクトの研究、プログラマーが何を試みているのか、そして特定の言語が彼らを助ける点や失望させる点を理解することに基づいています。私の結論は、多くのケースにおいて、既存のスマートコントラクト言語が確かに彼らを失望させているということです。

この点はSolidityのひどいセキュリティ記録から明らかに見ることができますが、もっと基本的なことは、これらのスマートコントラクトは非常に伝統的なプログラムのタイプではないということです。Solidityは、現在人々がしていることのために構築された言語ではありません。私はそれを批判するつもりはありません。なぜなら、それは最初のスマートコントラクト言語であり、まだ人々がそれを使って何をしたいのかを知らなかったからです。人々がそれを使って何をしようとしているのかを見ると、異なる抽象とプログラミングツールのセットが必要であることは明らかだと思いますが、Solidity言語はそれを提供できません。

したがって、これらのスマートコントラクトは非常にシンプルで、基本的に2つのことを行います。資産の種類を定義し、資産を移転できるタイミング、資産を使って何ができるか、誰がそれを読めるか、誰がそれに書き込むことができるかのルールを含みます。そして、アクセス制御ポリシーを確認し、誰がその資産を所有しているのか、誰がそれを使用することを許可されているのか、誰がそれに対して操作を行うことを許可されているのかを決定します。すべては資産の周りにあり、あなたはこれらの資産が物理的な資産と同じ特性を持つことを望んでいます。もし私が何かをあなたに渡したら、あなたはそれを所有し、私はそれを所有しなくなります。

スマートコントラクト中には所有権と所有権移転の概念がありますが、コンピュータ上ではすべてがただの数値とバイトであり、自由にコピーできます。そして、あなたは知っているように、これらの概念は現実の世界には存在しません。したがって、あなたは所有権と同質化に関する良い抽象を提供する言語を望んでいます。現実の世界のように、プログラマーにそれを再発明させることなく。基本的なセキュリティ保証を得たいと考えています。

これがMoveの役割であり、私たちがこの新しい言語を最終的に作成した理由です。これらのタスクはスマートコントラクトプログラミングにとって基本的なものです。それらは他の言語、既存のスマートコントラクト言語を含めて再現するのが難しいため、プログラマーが安全かつ効率的にコードを書くことができるように、これらの基本機能を提供する全体の言語を設計したいと考えています。コードを書くたびに毎回車輪を再発明する必要はありません。

Q3、SuiはMoveの一種の変種であるSui Moveを使用しています。これらの変更を促したのは何ですか?Sui Moveのどの特徴がWeb3で製品を構築するのに非常に適しているのですか?

以下のいくつかの要因がこれらの変化を促しました。その中の一つは、最初のLibraプロジェクトの目標がコンプライアンスのある支払いネットワークを構築することだったことです。したがって、私たちはMoveを汎用の言語として設計しようとしました。しかし、私たちは意識的にいくつかのことを行いました。なぜなら、Libraは制限条件を備えたいと考えていたからです。重要な点の一つは、彼らが人々が特定の資産をどこにでも送信できることを望んでいないということです。彼らは人々が明示的にアカウントを作成し、アカウント作成時にいくつかのルールを設定することを望んでいます。たとえば、アカウントの所有者はKYC認証を受けなければならないとか、アカウントを作成するために料金を支払う必要があるとか、あるいはアカウント作成の権限を持つ少数の人だけがアカウントを作成できるといったことです。全体の目的がLibraがコンプライアンスのある支払いとコンプライアンスのあるスマートコントラクトを希望しているため、これらの制限が存在します。しかし、より一般的なWeb3の領域では、状況は正反対です。あなたは基本レベルでコンプライアンスを望んでいないのです。これがスマートコントラクトの概念です。あなたは物事が可能な限り自由であることを望み、完全に何かを任意のアドレスに送信することができます。そして、明示的なアカウント作成を行うべきではありません。なぜなら、それがさまざまなユースケースを妨げるからです。これは重要な要因です。

別の要因は、私たちがMoveにおいて資産に焦点を当てていたにもかかわらず、その当時Libraでは取引自体に資産の焦点をどのように組み込むかを考慮していなかったことです。したがって、取引レベルに達する際には、あなたはまだこのAPIしか持っておらず、そこには資産ではない数字やブール値などを入力します。そしてMoveでは、これらの数字を使用してアカウントから資産を引き出したり、他の操作を行ったりします。実際、あなたが実行しているコードのほとんどは、この煩わしい帳簿作業であり、これを取り出し、あれを取り出し、他のものを取り出すことが含まれています。「いいえ、私は必要なすべての資産を手に入れました。彼らはここに、私の作業室にいます。今、私は何か意味のあることを始めることができます。」そしてこのプロセスの最後に、あなたはこう言うかもしれません:「さて、これらの資産をこのアカウントに戻し、それらをあのアカウントに戻し、再編成します。」

Suiでは、私たちは慎重に考えました。もしすべてのプログラムがこのように開始し、終了するなら、私たちはそれを抽象化できるでしょうか?したがって、取引を処理するためのロジックはプログラマーがこの操作を行うことであり、プログラマーの視点から見ると、必要な資産を準備するだけで、すぐに興味深い作業を開始できます。これがSuiに存在するオブジェクト指向データモデルです。元のMoveでは、私たちはアカウントベースのデータモデルを持っており、資産はアカウントの下に保存され、プログラマーはそれを明示的に取り出さなければなりませんでした。しかし、Suiでは、取引のMove部分に入ると、すでにSuiランタイムが資産を取得しています。これはプログラマーにとって便利です。なぜなら、彼らはこれらすべての以前および以後の記帳作業を行う必要がなく、また、実際に実行することなく、ある取引が別の取引と並行して実行できるかどうかを特定し、Suiを水平にスケールさせ、その他のいくつかの操作をより効率的に行うことを可能にする秘密の武器でもあります。

私たちは、オブジェクトベースのデータモデルを利用してプログラム可能なトランザクションブロックを実現するなど、他にも非常に興味深い作業を行いました。これは技術的なトピックであり、私は喜んで詳細に議論します。しかし、これら2つの要因が原初のMoveとの相違の主な動機となっています。

Q4、プログラム可能な取引ブロックおよびその機能に関する詳細を共有していただけますか?

私はアナロジーを使って説明するのが好きです。他のブロックチェーンはショッピングモールのフードコートのようなものです。アイスクリームを食べたい場合、アイスクリームスタンドに行き、クレジットカードで支払います。しかし、もしハンバーガーも食べたいと思ったら、ハンバーガースタンドに行き、再度支払う必要があります。私はあまり食いしん坊ではありませんが、もし8種類のものを食べたいなら、8回別々に取引を行わなければなりません。一方、Suiはビュッフェのようなもので、各取引はただ一つのことではありません。一度ビュッフェ料金を支払えば、追加の費用なしで多くのことができます。アイスクリームを食べたり、ハンバーガーを食べたり、それらを混ぜ合わせたりすることができます。

この概念をより具体的にするために、簡単なケースでは、100個のNFTを鋳造するために100個のトランザクションを送信する必要がある場合、100個のNFTを鋳造するトランザクションを1つ送信することができます。このコストは、1つのNFTを鋳造するコストとほぼ同じです。また、異種トランザクションのバンドルも可能で、例えばブロック内の最初のトランザクションがあなたのマルチシグウォレットからマリオキャラクターを取り出し、2番目のトランザクションがマリオを要求し、ゲームをプレイできるようにします。ゲームに勝ち、トロフィーを獲得した場合、3番目のトランザクションがそのトロフィーを友達と共有するトロフィーキャビネットに置くかもしれません。面白いのは、プログラム可能なトランザクションブロックにより、プログラマーがこのような方法でコードを書くことができ、ゲームはマルチシグウォレットやマリオのストレージ方法を知る必要がなく、あなたのトロフィーキャビネットやその実装方法を知る必要もないということです。

プログラム可能なトランザクションブロックは、入力および出力オブジェクトを持つトランザクションで構成されています。入力オブジェクトが必要な場合、そのオブジェクトを取得できますが、それがどこから来たのかを気にする必要はありません。そして、その出力を必要としているオブジェクトに渡すことも、どこに渡されるのかを気にする必要はありません。他のブロックチェーンでは、結合度が高いため、ゲームはマルチシグウォレットやトロフィーキャビネットと統合する必要があります。また、これらは共通のインターフェースを実装し、より強い結合性を持つ必要があります。Suiは、いわゆる一時的な組み合わせをより容易にします。パイプが一致する場合、1つのトランザクションで完了することができます。

Q5、プログラム可能な取引ブロックはユーザーにどのような利点がありますか?

ユーザーにとって、プログラム可能な取引ブロックの利点には、すべての操作を個別の取引ではなく、1つの取引にパッケージ化できるため、より低いガス料金が含まれます。また、承認が必要な回数も減少します。使用しているシステムが取引の承認を必要とする場合は、1回の承認だけで済み、その後すべての操作を一度に完了できます。もう一つの利点は原子性です。3つの異なることを行いたい場合、そして最初の2つの操作が成功した場合にのみ3つ目の操作が成功することを望む場合、これらの操作が独立した取引である必要があるなら、それを実現することはできません。しかし、それらを1つの取引にまとめることができれば、それを簡単に実現できます。

Q6、私はあなたと他の人が、Sui上での開発がプログラマーにとって素晴らしい体験であり、それが重要であると話しているのを聞きました。経験豊富なWeb3プログラマーや新しいプログラマーがSui Moveを使い始める際、何か逸話を共有していただけますか?

他のWeb3プログラミング言語から来た開発者にとって、MoveとSui Moveでの開発体験は確かにより効率的であり、より安全です。私は最近、Bucket Protocolに関するポッドキャストに参加しました。彼らはSui上で非

MOVE3.78%
SUI5.22%
原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • 2
  • リポスト
  • 共有
コメント
0/400
MoonlightGamervip
· 08-12 02:56
ムーブは未来です
原文表示返信0
LiquidationWatchervip
· 08-12 02:30
うーん、また別の日、別のスマートコントラクト言語か...ただ、ソラナのように悪用されないことを祈る。
原文表示返信0
  • ピン
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)