Pengungkapan pendiri Move: Bagaimana Sui Move membantu pengembangan produk Web3

Wawancara dengan Pendiri Bahasa Move: Mengapa Bahasa Kontrak Cerdas Sui Move Cocok untuk Membangun Produk Web3?

Baru-baru ini, kami berbicara dengan Chief Technology Officer Mysten Labs dan pendiri bahasa pemrograman Move, Sam Blackshear, mengenai mengapa ia mengembangkan bahasa pemrograman kontrak pintar baru Sui Move, kemampuan yang dapat diperluas dari Sui, serta manfaat teknologi desentralisasi bagi para pembangun.

Berikut adalah isi wawancara kali ini:

Q1, pertama-tama, dapatkah Anda menjelaskan apa itu bahasa pemrograman, kualitas apa yang paling diperhatikan pengembang saat memilih bahasa pemrograman, dan apa yang mendorong Anda untuk mengembangkan bahasa pemrograman Anda sendiri?

Bahasa pemrograman adalah alat untuk berinteraksi dengan komputer secara ramah, aman, efisien, dan jelas. Hal ini sangat penting bagi komputer. Kita tidak dapat berkomunikasi dengan komputer menggunakan bahasa alami, karena seluruh makna bahasa alami terletak pada kekayaan dan kemampuan ekspresinya. Ketika Anda menggunakan nada yang sedikit berbeda atau memilih cara yang sedikit berbeda untuk mengekspresikan kosakata, arti kalimat atau paragraf Anda dapat menjadi sangat berbeda.

Dan dalam bahasa pemrograman, yang terpenting adalah memiliki makna yang didefinisikan secara tepat. Ketika Anda menulis sebuah program, Anda tahu apa yang akan dilakukannya. Jika Anda membuat penyesuaian kecil, Anda tahu apa hasil dari perubahan tersebut. Hal ini perlu dipertahankan pada berbagai tingkat, misalnya Anda dapat menulis kode dalam satu bahasa sumber, yang memiliki satu makna, kemudian diubah menjadi bentuk lain yang menunjukkan makna yang sama, hingga mencapai modul pemrosesan mesin.

Saya percaya bahwa, berbeda dengan bahasa alami, esensi dari bahasa pemrograman adalah untuk bidang tertentu atau tugas tertentu. Jika tidak, hanya dengan satu bahasa pemrograman, semua tugas dapat diselesaikan. Namun, adanya berbagai bahasa pemrograman adalah karena Anda tidak mungkin unggul di semua bidang. Mereka berusaha untuk menargetkan masalah tertentu dan fokus pada pemecahan masalah tersebut. Sebagai contoh, jika Anda melihat bahasa pemrograman Rust yang kami gunakan untuk menulis blockchain Sui dan sebagian besar sistem lain yang bekerja di Mysten, ia fokus pada penulisan kode yang cepat dan berkinerja tinggi, sambil menjamin keamanan. Ini memungkinkan Anda untuk mengakses detail tingkat rendah seperti memori, struktur thread, atau konkurensi, tetapi tidak membiarkan Anda melakukan kesalahan seperti bahasa sebelumnya (seperti C atau C++).

Oleh karena itu, cerita Move sangat mirip dengan ini. Ketika saya menciptakannya, itu bukan untuk menciptakan bahasa baru. Anda sebelumnya menyebutkan apa yang dicari pengembang dalam suatu bahasa. Mereka akan bertanya, "Apakah bahasa ini cocok untuk tugas yang ingin saya selesaikan?" Tetapi saya pikir mungkin yang lebih penting adalah, "Apakah bahasa ini memiliki komunitas yang besar? Apakah ada banyak basis data yang tersedia? Apakah ada banyak programmer yang menggunakannya? Apakah ada sumber daya pendidikan yang baik?" Semua ini sangat penting, jadi ambang batas untuk menciptakan bahasa baru harus sangat tinggi, bahkan jika bahasa itu sendiri lebih baik, tetapi jika tidak memiliki faktor-faktor ini, maka keunggulannya menjadi tidak berarti. Membangun komunitas yang besar dan dinamis dari awal sangatlah sulit.

Q2, Bisakah Anda berbagi lebih banyak tentang perkembangan Move?

Move berasal dari proyek Libra Facebook. Tugas saya saat itu bukan untuk menciptakan bahasa baru, tetapi "Libra membutuhkan smart contract, jadi cari tahu apa yang harus kami lakukan." Saya melihat berbagai hal. Bisakah kita menggunakan Solidity di EVM? Haruskah kita menggunakan bahasa umum biasa, seperti WASM atau JVM, dan menggunakannya untuk Libra? Atau haruskah kita membuat sesuatu yang baru?

Keputusan untuk menciptakan sesuatu milik kami didasarkan pada penelitian terhadap smart contract yang ada, memahami apa yang coba dilakukan oleh para programmer, serta di mana beberapa bahasa membantu mereka dan di mana mereka merasa kecewa. Kesimpulan saya adalah, dalam banyak kasus, bahasa smart contract yang ada benar-benar membuat mereka kecewa.

Hal ini dapat dilihat jelas dari catatan keamanan Solidity yang buruk, tetapi yang lebih mendasar adalah bahwa kontrak pintar ini bukan jenis program yang sangat tradisional. Solidity bukanlah bahasa yang dibangun untuk hal-hal yang orang-orang lakukan sekarang. Saya tidak berniat untuk mengkritiknya, karena itu adalah bahasa kontrak pintar pertama, yang juga belum tahu apa yang ingin dilakukan orang-orang dengannya. Setelah Anda melihat apa yang orang-orang coba lakukan dengannya, saya pikir jelas bahwa Anda memerlukan seperangkat abstraksi dan alat pemrograman yang berbeda, yang tidak disediakan oleh bahasa Solidity.

Jadi, kontrak pintar ini sangat sederhana, mereka pada dasarnya melakukan dua hal. Mereka mendefinisikan jenis aset, termasuk kapan aset dapat dipindahkan, apa yang dapat Anda lakukan dengannya, siapa yang dapat membacanya, siapa yang dapat menulis aturannya. Dan memeriksa kebijakan kontrol akses, menentukan siapa yang memiliki aset tersebut, siapa yang diizinkan untuk menggunakannya, siapa yang diizinkan untuk mengoperasikannya. Semuanya berpusat pada aset, Anda ingin aset ini memiliki atribut yang sama dengan aset fisik. Jika saya menyerahkan sesuatu kepada Anda, maka Anda seharusnya memilikinya, dan saya tidak memilikinya lagi.

Dalam kontrak pintar ada konsep kepemilikan dan pengalihan kepemilikan, tetapi di komputer, semuanya hanyalah angka dan byte, dan dapat disalin secara bebas. Dan, Anda tahu, konsep-konsep ini tidak ada di dunia nyata. Oleh karena itu, Anda ingin memiliki bahasa yang dapat memberikan Anda abstraksi yang baik tentang kepemilikan dan homogenitas. Seperti di dunia nyata, tetapi tanpa memaksa programmer untuk menciptakannya kembali. Anda ingin mendapatkan jaminan keamanan dasar.

Inilah fungsi Move dan mengapa kami akhirnya menciptakan bahasa baru ini. Tugas-tugas ini adalah dasar untuk pemrograman smart contract. Mereka sulit untuk direplikasi dalam bahasa lain, termasuk bahasa smart contract yang ada, dan kami ingin merancang seluruh bahasa di sekitar penyediaan fungsi dasar ini sehingga programmer dapat menulis kode dengan aman dan efisien, tanpa harus menciptakan kembali roda setiap kali mereka ingin menulis beberapa kode.

Q3, Sui menggunakan varian Move yang disebut Sui Move. Apa yang mendorong perubahan ini? Karakteristik apa dari Sui Move yang sangat cocok untuk membangun produk di Web3?

Beberapa faktor berikut memicu perubahan ini, salah satunya adalah tujuan awal proyek Libra adalah membangun jaringan pembayaran yang sesuai. Oleh karena itu, kami berusaha merancang Move sebagai bahasa yang universal. Namun, kami juga secara sadar melakukan beberapa hal, karena Libra ingin memiliki batasan. Salah satu hal penting adalah, mereka tidak ingin orang-orang dapat mengirimkan aset tertentu ke sembarang tempat. Mereka ingin orang-orang secara eksplisit membuat akun, dan menetapkan beberapa aturan saat akun dibuat, seperti pemilik akun harus melakukan verifikasi KYC. Atau mungkin perlu membayar biaya untuk membuat akun, atau hanya dapat dibuat oleh sekelompok kecil orang yang memiliki wewenang untuk membuat akun. Karena seluruh tujuannya adalah Libra ingin melakukan pembayaran yang sesuai dan kontrak pintar yang sesuai, maka ada batasan-batasan ini. Tetapi di bidang Web3 yang lebih umum, situasinya justru sebaliknya. Anda tidak ingin mematuhi di tingkat dasar, itulah konsep kontrak pintar. Anda ingin segala sesuatu sefleksibel mungkin, sepenuhnya dapat mengirim sesuatu ke alamat manapun. Kemudian Anda tidak seharusnya melakukan pembuatan akun secara eksplisit, karena itu akan menghambat berbagai kasus penggunaan. Ini adalah faktor penting.

Faktor lain adalah, meskipun kita fokus pada aset dalam Move, pada saat itu di Libra kita tidak mempertimbangkan bagaimana membawa fokus aset ke dalam transaksi itu sendiri. Oleh karena itu, ketika Anda mencapai tingkat transaksi, Anda masih hanya memiliki API ini, di mana Anda memasukkan angka dan nilai boolean yang bukan aset, dan kemudian di Move, Anda menggunakan angka-angka ini untuk menarik aset dari akun dan melakukan operasi lainnya. Ternyata, sebagian besar kode yang Anda jalankan adalah pekerjaan buku besar yang menjengkelkan, termasuk menarik barang ini, menarik barang itu, menarik barang lainnya, baiklah, saya telah memiliki semua aset yang saya inginkan. Mereka ada di sini, di studio saya, sekarang saya bisa mulai melakukan sesuatu yang berarti. Kemudian di akhir proses ini, Anda mungkin akan berkata: "Baiklah, kembalikan aset-aset ini ke akun ini, kembalikan ke akun itu, atur ulang mereka.

Di Sui, kami telah mempertimbangkan dengan seksama, jika setiap program dimulai dan diakhiri dengan cara ini, bisakah kita mengabstraksikannya? Oleh karena itu, logika yang digunakan untuk memproses transaksi akan menyelesaikan ini untuk programmer, dari sudut pandang programmer, mereka hanya perlu menyiapkan aset yang diperlukan dan segera mulai melakukan pekerjaan yang menarik. Inilah yang ada dalam model data berbasis objek di Sui. Dalam Move yang asli, kami memiliki model data berbasis akun, aset disimpan di bawah akun dan programmer harus secara eksplisit menariknya. Sedangkan di Sui, aset tersebut telah diambil oleh runtime Sui saat memasuki bagian Move dari transaksi. Ini lebih nyaman bagi programmer karena mereka tidak perlu melakukan semua pekerjaan pembukuan sebelumnya dan sesudahnya, dan ini juga merupakan senjata rahasia yang memungkinkan kami untuk menentukan apakah satu transaksi dapat dijalankan secara paralel dengan transaksi lain tanpa benar-benar mengeksekusinya, melakukan penskalaan horizontal Sui, dan melakukan beberapa operasi lain dengan lebih efisien.

Kami juga melakukan beberapa pekerjaan lain yang sangat menarik, seperti menggunakan model data berbasis objek untuk blok transaksi yang dapat diprogram. Ini adalah topik yang agak teknis, dan saya sangat senang untuk membahasnya lebih dalam. Namun, kedua faktor ini adalah pendorong utama yang menyebabkan perbedaan dengan Move asli.

Q4, bisakah Anda berbagi lebih banyak informasi tentang blok perdagangan yang dapat diprogram dan fungsinya?

Saya suka menggunakan analogi untuk menjelaskan, blockchain lain seperti food court di pusat perbelanjaan. Jika Anda ingin makan es krim, Anda pergi ke kios es krim dan mengeluarkan kartu kredit Anda untuk membayar. Tetapi jika Anda memutuskan ingin makan burger, Anda pergi ke kios burger dan membayar lagi. Saya bukan orang yang rakus, tetapi jika saya ingin makan delapan hal, saya harus melakukan delapan transaksi terpisah. Sementara itu, Sui lebih seperti prasmanan, di mana setiap transaksi bukan hanya satu hal. Setelah Anda membayar biaya prasmanan, Anda dapat melakukan banyak hal tanpa biaya tambahan. Anda bisa makan es krim, Anda bisa makan burger, Anda bisa mencampurnya.

Untuk membuat konsep ini lebih konkret, dalam kasus sederhana, jika Anda ingin mengirim 100 transaksi untuk mencetak 100 NFT, Anda dapat mengirim satu transaksi yang mencetak 100 NFT. Biaya seperti itu hampir sama dengan biaya mencetak satu NFT. Anda juga dapat melakukan pengemasan transaksi heterogen, misalnya, transaksi pertama dalam blok mengeluarkan satu karakter Mario dari dompet multisig Anda, sementara transaksi kedua meminta satu Mario, lalu memungkinkan Anda bermain game. Jika Anda memenangkan permainan dan mendapatkan trofi, mungkin transaksi ketiga akan menempatkan trofi tersebut ke dalam lemari trofi yang dibagikan dengan teman. Yang keren adalah blok transaksi yang dapat diprogram memungkinkan programmer untuk menulis kode dengan cara ini, permainan tidak perlu mengetahui cara penyimpanan dompet multisig atau Mario, dan juga tidak perlu mengetahui lemari trofi Anda atau cara implementasinya.

Blok transaksi yang dapat diprogram terdiri dari transaksi dengan objek input dan output. Jika Anda memerlukan objek input, Anda dapat memperoleh objek tersebut tanpa perlu khawatir dari mana asalnya, lalu meneruskan outputnya ke objek yang membutuhkannya, juga tanpa perlu khawatir ke mana ia akan diteruskan. Di blockchain lain, kekuatan penggabungan lebih tinggi, sehingga permainan harus terintegrasi dengan dompet multi-tanda tangan dan lemari trofi, atau mereka semua harus mengimplementasikan beberapa antarmuka bersama dan memiliki penggabungan yang lebih kuat. Sui membuat kombinasi sementara menjadi lebih mudah. Seperti, jika pipa cocok, kita dapat menyelesaikannya dalam satu transaksi.

Q5, Apa keuntungan dari blockchain transaksi yang dapat diprogram bagi pengguna?

Manfaat blok transaksi yang dapat diprogram bagi pengguna termasuk biaya gas yang lebih rendah, karena Anda dapat mengemas semua operasi dalam satu transaksi, bukan melakukan transaksi secara terpisah. Selain itu, jumlah persetujuan yang diperlukan juga akan berkurang. Jika sistem yang Anda gunakan memerlukan persetujuan transaksi, Anda hanya perlu melakukan satu persetujuan, dan kemudian semua operasi akan diselesaikan sekaligus. Manfaat lain adalah atomisitas; jika Anda ingin melakukan tiga hal yang berbeda dan ingin agar operasi ketiga hanya berhasil jika dua operasi pertama berhasil, jika operasi tersebut harus merupakan transaksi yang terpisah, maka Anda tidak dapat mencapainya. Namun, jika Anda dapat mengemas semuanya dalam satu transaksi, maka Anda dapat dengan mudah mencapainya.

Q6, Saya mendengar Anda dan orang lain berbicara bahwa mengembangkan di Sui adalah pengalaman yang luar biasa bagi para programmer, dan ini sangat penting. Apakah Anda memiliki anekdot yang bisa dibagikan untuk programmer Web3 yang berpengalaman dan yang baru saat mulai menggunakan Sui Move?

Untuk para pengembang yang berasal dari bahasa pemrograman Web3 lainnya, pengalaman pengembangan mereka di Move dan Sui Move memang lebih efisien dan lebih aman. Saya baru saja mengikuti sebuah podcast tentang Bucket Protocol, mereka sedang membangun sesuatu yang sangat keren di Sui.

MOVE2.52%
SUI1.3%
Lihat Asli
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
  • Hadiah
  • 7
  • Posting ulang
  • Bagikan
Komentar
0/400
GasOptimizervip
· 07-18 07:39
Ayo bergerak!
Lihat AsliBalas0
GasOptimizervip
· 07-17 16:03
tps akan lebih cepat 8,64 kali daripada ETH sudah dihitung
Lihat AsliBalas0
AirdropHuntressvip
· 07-15 22:08
Satu lagi pemasaran yang hanya gimmick, siapa yang mempelajari kode kontrak awal?
Lihat AsliBalas0
HodlKumamonvip
· 07-15 22:04
Lihat datanya tidak wajar ya Move Papi
Lihat AsliBalas0
CryptoAdventurervip
· 07-15 22:02
Semua就完事 太久没看move了
Lihat AsliBalas0
Degen4Breakfastvip
· 07-15 21:57
move lagi datang untuk berbohong
Lihat AsliBalas0
NftPhilanthropistvip
· 07-15 21:54
hmm pendiri web3 lain mencoba menyelamatkan kita dengan tumpukan teknologi mereka
Lihat AsliBalas0
  • Sematkan
Perdagangkan Kripto Di Mana Saja Kapan Saja
qrCode
Pindai untuk mengunduh aplikasi Gate
Komunitas
Bahasa Indonesia
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)