# Move言語の創始者インタビュー:なぜSui Moveスマートコントラクト言語がWeb3製品の構築に適しているのか?最近、私たちはMysten Labsの最高技術責任者であり、Moveプログラミング言語の創始者であるSam Blackshearと話をし、彼がなぜSui Moveという新しいスマートコントラクトプログラミング言語を開発したのか、Suiが拡張可能な機能、そして分散型技術がビルダーにもたらす利点について議論しました。以下は今回のインタビュー内容です:**Q1、まず、プログラミング言語とは何か、開発者がプログラミング言語を選ぶ際に最も重視する品質は何か、そして自分自身のプログラミング言語を開発する動機は何ですか?**プログラミング言語は、コンピュータと友好的、安全、効率的、明確に相互作用するためのツールです。コンピュータにとっては特に重要です。私たちは自然言語でコンピュータとコミュニケーションをとることはできません。なぜなら、自然言語の全体的な意味は豊かさと表現力にあるからです。少し異なる口調や微妙に異なる方法で語彙を表現すると、あなたの文や段落の意味は完全に異なるものになります。プログラミング言語では、最も重要なことは、正確に定義された意味を持っていることです。プログラムを書いているとき、あなたはそれが何をするかを明確に理解しています。もしあなたがそれを微小に調整した場合、その変化が何を引き起こすかを知っています。この点は、複数のレベルで維持する必要があります。たとえば、あるソース言語でコードを書くと、その意味を持ち、他の形式に変換されるときも、同じ意味を持つべきです。そして、それが機械の処理モジュールに届くまで同様です。私は、自然言語とは異なり、プログラミング言語の本質は特定の分野または特定のタスクに対していると思います。そうでなければ、1つのプログラミング言語だけで全てのタスクを完了することができるはずです。しかし、複数のプログラミング言語が存在する理由は、すべての分野で優れたパフォーマンスを発揮することが不可能だからです。これらは特定の問題領域に焦点を合わせており、それらの問題を解決することに専念しています。例えば、私たちがSuiブロックチェーンのために書くのに使うRustプログラミング言語は、Mystenでの他のほとんどのシステムの作業においても、迅速かつ高性能なコードを書くことに焦点を当て、安全性を保証します。これは、メモリ、スレッド構造、または並行性などの低レベルな詳細にアクセスできるようにしますが、以前の言語(CやC++など)のようにその中で間違いを犯すことはありません。したがって、Moveのストーリーはこれに非常に似ています。私がそれを創造したとき、それは新しい言語を創造するためではありませんでした。あなたが以前に言及したように、開発者はある言語に何を求めているのか。彼らは尋ねるでしょう、「この言語は私が達成したいタスクに適していますか?」しかし、私が考えるに、より重要なのは、「この言語には大きなコミュニティがありますか?利用可能なデータベースがたくさんありますか?多くのプログラマーが使用していますか?良い教育リソースがありますか?」これらは非常に重要ですので、新しい言語を創造するためのハードルは非常に高くなければなりません。この言語自体がより優れていても、これらの要素がなければ、その利点は意味がありません。ゼロから大規模で活気に満ちたコミュニティを構築するのは非常に困難です。**Q2、Moveの開発状況についてもっと共有していただけますか?**MoveはFacebookのLibraプロジェクトに由来しています。私の当時の任務は新しい言語を作成することではなく、「Libraにはスマートコントラクトが必要なので、私たちが何をすべきかを見つけること」でした。私はさまざまなものを見ました。EVMでSolidityを使えますか?私たちはWASMやJVMのような一般的なプログラミング言語を使用してLibraに適用すべきでしょうか?それとも自分たちのものを作成すべきでしょうか?私たち自身のものを作成することを決定したのは、既存のスマートコントラクトに関する研究、プログラマーが何をしようとしているのか、そして特定の言語が彼らを助ける点と失望させる点について理解した結果です。私の結論は、多くのケースで既存のスマートコントラクト言語が彼らを確かに失望させているということです。この点はSolidityの悪いセキュリティ記録から明らかに見ることができますが、より基本的には、これらのスマートコントラクトは非常に伝統的なプログラムのタイプではありません。Solidityは現在人々が行っていることのために構築された言語ではありません。私はそれを批判するつもりではありません。なぜなら、それは最初のスマートコントラクト言語であり、人々がそれを使って何をしたいのかをまだ知らなかったからです。人々がそれを使って何をしようとしているのかを見ると、明らかに異なる抽象とプログラミングツールのセットが必要だと思いますが、Solidity言語はそれを提供していません。したがって、これらのスマートコントラクトは非常にシンプルで、基本的に二つのことを行います。それらは資産の種類を定義し、資産を転送できる時期、資産で何ができるか、誰がそれを読み取ることができるか、誰がそれを書き込むことができるかのルールを含みます。また、アクセス制御ポリシーを確認し、誰がその資産を所有し、誰が使用を許可されているか、誰が操作を許可されているかを決定します。すべてが資産を中心に構築されており、これらの資産が物理的な資産と同じ属性を持つことを望んでいます。もし私があなたに物を渡すなら、あなたはそれを所有すべきで、私はもはやそれを所有していないということです。スマートコントラクトには所有権と所有権移転の概念が含まれていますが、コンピュータ上では、すべてが単なる数字とバイトであり、自由にコピーできます。また、あなたも知っているように、これらの概念は現実の世界には存在しません。したがって、あなたは所有権と同質化についての良い抽象を提供するための言語を望んでいます。現実の世界と同様ですが、プログラマーに再発明を強いる必要はありません。基本的なセキュリティ保証を得たいと考えています。これが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を水平にスケーリングし、他のいくつかの操作をより効率的に行うことを可能にする秘密の武器でもあります。私たちは、オブジェクトベースのデータモデルを使用してプログラム可能なトランザクションブロックを行うなど、他にも非常に興味深い作業を行いました。これはやや技術的な話題であり、私は喜んで詳細に議論します。しかし、これらの二つの要因が、オリジナルのMoveとの違いを引き起こす主要な動力です。**Q4、プログラム可能な取引ブロックとその機能について、もっと詳しく教えていただけますか?**私は類似を使って説明するのが好きです。他のブロックチェーンはショッピングモールのフードコートのようです。アイスクリームが食べたいとき、アイスクリームスタンドに行き、クレジットカードで支払います。しかし、ハンバーガーも食べたいと思ったら、ハンバーガースタンドに行って再度支払わなければなりません。私はそんなに食いしん坊ではありませんが、もし8種類のものを食べたいなら、8回の個別の取引を行わなければなりません。しかし、Suiはビュッフェのようです。各取引はただの一つのことではありません。一度ビュッフェの料金を支払えば、追加の費用なしで多くのことができます。アイスクリームを食べたり、ハンバーガーを食べたり、それらを混ぜたりすることができます。この概念をより具体的にするために、単純な状況では、100個のNFTをミントするために100回のトランザクションを送信する代わりに、1回のトランザクションで100個のNFTをミントすることができます。このコストは、1つのNFTをミントするコストとほぼ同じです。また、異種トランザクションのパッケージングも可能で、例えばブロック内の最初のトランザクションがあなたのマルチシグウォレットからマリオキャラクターを引き出し、次のトランザクションがマリオをリクエストし、ゲームをプレイできるようにします。もしゲームに勝ってトロフィーを獲得した場合、3つ目のトランザクションがそのトロフィーを友人と共有するトロフィーキャビネットに入れるかもしれません。面白いのは、プログラム可能なトランザクションブロックがプログラマーにこのようにコードを書くことを許可するため、ゲームはマルチシグウォレットやマリオのストレージ方法を知る必要はなく、あなたのトロフィーキャビネットやその実装方法についても知る必要がないということです。プログラム可能な取引ブロックは、入力および出力オブジェクトを持つ取引で構成されています。入力オブジェクトが必要な場合、そのオブジェクトを取得することができ、それがどこから来たのかを気にする必要はありません。そして、それを必要とするオブジェクトに出力を渡すことも、どこに渡されるのかを気にする必要はありません。他のブロックチェーンでは、結合性が強いため、ゲームはマルチシグウォレットやトロフィーケースと統合する必要があるか、またはそれらは共通のインターフェースを実装し、より強い結合性を持つ必要があります。Suiは、いわゆる一時的な組み合わせをより容易にします。パイプラインが一致すれば、一つの取引で完了することができます。**Q5、プログラム可能な取引ブロックはユーザーにどのような利点がありますか?**ユーザーにとって、プログラム可能な取引ブロックの利点には、すべての操作を単独の取引ではなく、1つの取引にまとめることができるため、ガス料金が低くなることが含まれます。さらに、承認が必要な回数も減少します。使用しているシステムが取引の承認を必要とする場合、1回の承認を行うだけで、すべての操作が一度に完了します。もう1つの利点は原子性です。異なる3つのことを行いたい場合、前の2つの操作が成功した後でのみ3番目の操作が成功することを希望する場合、これらの操作が独立した取引でなければ、これを実現することはできません。しかし、すべてを1つの取引にまとめることができれば、それを簡単に実現できます。**Q6、私はあなたと他の人が話しているのを聞いたことがありますが、Suiでの開発はプログラマーにとって素晴らしい経験であり、これは重要です。経験豊富なWeb3プログラマーや新しいWeb3プログラマーがSui Moveを使い始める際に、何か逸話を共有できますか?**他のWeb3プログラミング言語から来た開発者にとって、MoveとSui Moveでの開発体験は確かにより効率的であり、さらに安全です。私は最近、Bucket Protocolに関するポッドキャストに参加しました。彼らはSui上で非常にクールなものを構築しています。
Moveの創設者が明かす:Sui MoveがWeb3製品開発をどのように支援するか
Move言語の創始者インタビュー:なぜSui Moveスマートコントラクト言語がWeb3製品の構築に適しているのか?
最近、私たちはMysten Labsの最高技術責任者であり、Moveプログラミング言語の創始者であるSam Blackshearと話をし、彼がなぜSui Moveという新しいスマートコントラクトプログラミング言語を開発したのか、Suiが拡張可能な機能、そして分散型技術がビルダーにもたらす利点について議論しました。
以下は今回のインタビュー内容です:
Q1、まず、プログラミング言語とは何か、開発者がプログラミング言語を選ぶ際に最も重視する品質は何か、そして自分自身のプログラミング言語を開発する動機は何ですか?
プログラミング言語は、コンピュータと友好的、安全、効率的、明確に相互作用するためのツールです。コンピュータにとっては特に重要です。私たちは自然言語でコンピュータとコミュニケーションをとることはできません。なぜなら、自然言語の全体的な意味は豊かさと表現力にあるからです。少し異なる口調や微妙に異なる方法で語彙を表現すると、あなたの文や段落の意味は完全に異なるものになります。
プログラミング言語では、最も重要なことは、正確に定義された意味を持っていることです。プログラムを書いているとき、あなたはそれが何をするかを明確に理解しています。もしあなたがそれを微小に調整した場合、その変化が何を引き起こすかを知っています。この点は、複数のレベルで維持する必要があります。たとえば、あるソース言語でコードを書くと、その意味を持ち、他の形式に変換されるときも、同じ意味を持つべきです。そして、それが機械の処理モジュールに届くまで同様です。
私は、自然言語とは異なり、プログラミング言語の本質は特定の分野または特定のタスクに対していると思います。そうでなければ、1つのプログラミング言語だけで全てのタスクを完了することができるはずです。しかし、複数のプログラミング言語が存在する理由は、すべての分野で優れたパフォーマンスを発揮することが不可能だからです。これらは特定の問題領域に焦点を合わせており、それらの問題を解決することに専念しています。例えば、私たちがSuiブロックチェーンのために書くのに使うRustプログラミング言語は、Mystenでの他のほとんどのシステムの作業においても、迅速かつ高性能なコードを書くことに焦点を当て、安全性を保証します。これは、メモリ、スレッド構造、または並行性などの低レベルな詳細にアクセスできるようにしますが、以前の言語(CやC++など)のようにその中で間違いを犯すことはありません。
したがって、Moveのストーリーはこれに非常に似ています。私がそれを創造したとき、それは新しい言語を創造するためではありませんでした。あなたが以前に言及したように、開発者はある言語に何を求めているのか。彼らは尋ねるでしょう、「この言語は私が達成したいタスクに適していますか?」しかし、私が考えるに、より重要なのは、「この言語には大きなコミュニティがありますか?利用可能なデータベースがたくさんありますか?多くのプログラマーが使用していますか?良い教育リソースがありますか?」これらは非常に重要ですので、新しい言語を創造するためのハードルは非常に高くなければなりません。この言語自体がより優れていても、これらの要素がなければ、その利点は意味がありません。ゼロから大規模で活気に満ちたコミュニティを構築するのは非常に困難です。
Q2、Moveの開発状況についてもっと共有していただけますか?
MoveはFacebookのLibraプロジェクトに由来しています。私の当時の任務は新しい言語を作成することではなく、「Libraにはスマートコントラクトが必要なので、私たちが何をすべきかを見つけること」でした。私はさまざまなものを見ました。EVMでSolidityを使えますか?私たちはWASMやJVMのような一般的なプログラミング言語を使用してLibraに適用すべきでしょうか?それとも自分たちのものを作成すべきでしょうか?
私たち自身のものを作成することを決定したのは、既存のスマートコントラクトに関する研究、プログラマーが何をしようとしているのか、そして特定の言語が彼らを助ける点と失望させる点について理解した結果です。私の結論は、多くのケースで既存のスマートコントラクト言語が彼らを確かに失望させているということです。
この点はSolidityの悪いセキュリティ記録から明らかに見ることができますが、より基本的には、これらのスマートコントラクトは非常に伝統的なプログラムのタイプではありません。Solidityは現在人々が行っていることのために構築された言語ではありません。私はそれを批判するつもりではありません。なぜなら、それは最初のスマートコントラクト言語であり、人々がそれを使って何をしたいのかをまだ知らなかったからです。人々がそれを使って何をしようとしているのかを見ると、明らかに異なる抽象とプログラミングツールのセットが必要だと思いますが、Solidity言語はそれを提供していません。
したがって、これらのスマートコントラクトは非常にシンプルで、基本的に二つのことを行います。それらは資産の種類を定義し、資産を転送できる時期、資産で何ができるか、誰がそれを読み取ることができるか、誰がそれを書き込むことができるかのルールを含みます。また、アクセス制御ポリシーを確認し、誰がその資産を所有し、誰が使用を許可されているか、誰が操作を許可されているかを決定します。すべてが資産を中心に構築されており、これらの資産が物理的な資産と同じ属性を持つことを望んでいます。もし私があなたに物を渡すなら、あなたはそれを所有すべきで、私はもはやそれを所有していないということです。
スマートコントラクトには所有権と所有権移転の概念が含まれていますが、コンピュータ上では、すべてが単なる数字とバイトであり、自由にコピーできます。また、あなたも知っているように、これらの概念は現実の世界には存在しません。したがって、あなたは所有権と同質化についての良い抽象を提供するための言語を望んでいます。現実の世界と同様ですが、プログラマーに再発明を強いる必要はありません。基本的なセキュリティ保証を得たいと考えています。
これが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を水平にスケーリングし、他のいくつかの操作をより効率的に行うことを可能にする秘密の武器でもあります。
私たちは、オブジェクトベースのデータモデルを使用してプログラム可能なトランザクションブロックを行うなど、他にも非常に興味深い作業を行いました。これはやや技術的な話題であり、私は喜んで詳細に議論します。しかし、これらの二つの要因が、オリジナルのMoveとの違いを引き起こす主要な動力です。
Q4、プログラム可能な取引ブロックとその機能について、もっと詳しく教えていただけますか?
私は類似を使って説明するのが好きです。他のブロックチェーンはショッピングモールのフードコートのようです。アイスクリームが食べたいとき、アイスクリームスタンドに行き、クレジットカードで支払います。しかし、ハンバーガーも食べたいと思ったら、ハンバーガースタンドに行って再度支払わなければなりません。私はそんなに食いしん坊ではありませんが、もし8種類のものを食べたいなら、8回の個別の取引を行わなければなりません。しかし、Suiはビュッフェのようです。各取引はただの一つのことではありません。一度ビュッフェの料金を支払えば、追加の費用なしで多くのことができます。アイスクリームを食べたり、ハンバーガーを食べたり、それらを混ぜたりすることができます。
この概念をより具体的にするために、単純な状況では、100個のNFTをミントするために100回のトランザクションを送信する代わりに、1回のトランザクションで100個のNFTをミントすることができます。このコストは、1つのNFTをミントするコストとほぼ同じです。また、異種トランザクションのパッケージングも可能で、例えばブロック内の最初のトランザクションがあなたのマルチシグウォレットからマリオキャラクターを引き出し、次のトランザクションがマリオをリクエストし、ゲームをプレイできるようにします。もしゲームに勝ってトロフィーを獲得した場合、3つ目のトランザクションがそのトロフィーを友人と共有するトロフィーキャビネットに入れるかもしれません。面白いのは、プログラム可能なトランザクションブロックがプログラマーにこのようにコードを書くことを許可するため、ゲームはマルチシグウォレットやマリオのストレージ方法を知る必要はなく、あなたのトロフィーキャビネットやその実装方法についても知る必要がないということです。
プログラム可能な取引ブロックは、入力および出力オブジェクトを持つ取引で構成されています。入力オブジェクトが必要な場合、そのオブジェクトを取得することができ、それがどこから来たのかを気にする必要はありません。そして、それを必要とするオブジェクトに出力を渡すことも、どこに渡されるのかを気にする必要はありません。他のブロックチェーンでは、結合性が強いため、ゲームはマルチシグウォレットやトロフィーケースと統合する必要があるか、またはそれらは共通のインターフェースを実装し、より強い結合性を持つ必要があります。Suiは、いわゆる一時的な組み合わせをより容易にします。パイプラインが一致すれば、一つの取引で完了することができます。
Q5、プログラム可能な取引ブロックはユーザーにどのような利点がありますか?
ユーザーにとって、プログラム可能な取引ブロックの利点には、すべての操作を単独の取引ではなく、1つの取引にまとめることができるため、ガス料金が低くなることが含まれます。さらに、承認が必要な回数も減少します。使用しているシステムが取引の承認を必要とする場合、1回の承認を行うだけで、すべての操作が一度に完了します。もう1つの利点は原子性です。異なる3つのことを行いたい場合、前の2つの操作が成功した後でのみ3番目の操作が成功することを希望する場合、これらの操作が独立した取引でなければ、これを実現することはできません。しかし、すべてを1つの取引にまとめることができれば、それを簡単に実現できます。
Q6、私はあなたと他の人が話しているのを聞いたことがありますが、Suiでの開発はプログラマーにとって素晴らしい経験であり、これは重要です。経験豊富なWeb3プログラマーや新しいWeb3プログラマーがSui Moveを使い始める際に、何か逸話を共有できますか?
他のWeb3プログラミング言語から来た開発者にとって、MoveとSui Moveでの開発体験は確かにより効率的であり、さらに安全です。私は最近、Bucket Protocolに関するポッドキャストに参加しました。彼らはSui上で非常にクールなものを構築しています。