Penjelasan tentang keunggulan Sui Move oleh bapak bahasa Move: Alat konstruksi produk Web3

Wawancara dengan Bapak Bahasa Move: Mengapa Bahasa Kontrak Pintar Sui Move Cocok untuk Membangun Produk Web3?

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

Berikut adalah isi wawancara ini:

Q1, Pertama, 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 hanya merupakan alat untuk berinteraksi dengan komputer secara ramah, aman, efisien, dan jelas, yang sangat penting bagi komputer. Kita tidak bisa berkomunikasi dengan komputer menggunakan bahasa alami, karena keseluruhan makna bahasa alami adalah memiliki kekayaan dan kemampuan ekspresi. Ketika Anda menggunakan nada yang sedikit berbeda atau memilih cara yang sedikit berbeda untuk mengekspresikan kosakata, kalimat atau paragraf Anda bisa memiliki makna yang sepenuhnya berbeda.

Dan dalam bahasa pemrograman, yang terpenting adalah memiliki semantik yang terdefinisi dengan tepat. Ketika Anda menulis sebuah program, Anda tahu apa yang akan dilakukannya. Jika Anda melakukan penyesuaian kecil, Anda tahu apa hasil dari perubahan tersebut. Hal ini harus dipertahankan di beberapa level, misalnya Anda dapat menulis kode dalam satu bahasa sumber, yang memiliki satu makna, kemudian diubah menjadi bentuk lain, maka itu juga harus memiliki makna yang sama, sampai ke modul pemrosesan mesin.

Saya percaya bahwa, berbeda dengan bahasa alami, esensi bahasa pemrograman adalah untuk bidang tertentu atau tugas tertentu. Jika tidak, hanya dengan satu bahasa pemrograman, semua tugas dapat diselesaikan. Namun, keberadaan berbagai bahasa pemrograman ada karena Anda tidak dapat tampil baik di semua bidang. Mereka berusaha untuk menargetkan masalah spesifik dan fokus pada penyelesaian masalah tersebut. Sebagai contoh, jika Anda melihat bahasa pemrograman Rust yang kita gunakan untuk menulis blockchain Sui dan sebagian besar sistem lain yang dikerjakan di Mysten, ia fokus pada penulisan kode yang cepat dan berkinerja tinggi, sambil menjamin keamanan. Ini memungkinkan Anda untuk mengakses detail rendah seperti memori, struktur thread, atau konkruensi, tetapi tidak membiarkan Anda melakukan kesalahan seperti pada 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 oleh pengembang dalam sebuah bahasa. Mereka akan bertanya, "Apakah bahasa ini cocok untuk tugas yang ingin saya selesaikan?" Tetapi saya pikir mungkin lebih penting untuk bertanya, "Apakah bahasa ini memiliki komunitas yang besar? Apakah ada banyak database 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 keuntungannya tidak berarti. Membangun komunitas yang besar dan dinamis dari nol adalah hal yang sangat sulit.

Q2, Dapatkah Anda berbagi lebih banyak tentang perkembangan Move?

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

Keputusan untuk membuat sesuatu sendiri didasarkan pada penelitian tentang 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 memang mengecewakan mereka.

Poin ini dapat terlihat jelas dari catatan keamanan Solidity yang buruk, tetapi lebih mendasar adalah bahwa smart contract ini bukanlah jenis program yang sangat tradisional. Solidity bukanlah bahasa yang dibangun untuk hal-hal yang dilakukan orang saat ini. Saya tidak ingin mengkritiknya, karena ini adalah bahasa smart contract pertama, yang juga belum mengetahui apa yang ingin dilakukan orang dengan itu. Begitu Anda melihat orang mencoba melakukan apa dengan itu, saya rasa jelas bahwa Anda memerlukan seperangkat abstraksi dan alat pemrograman yang berbeda, yang tidak dapat 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 dengan mereka, siapa yang dapat membaca mereka, dan siapa yang dapat menulis aturan mereka. Dan memeriksa kebijakan kontrol akses, menentukan siapa yang memiliki aset tersebut, siapa yang diizinkan untuk menggunakannya, siapa yang diizinkan untuk beroperasi atasnya. Segalanya 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 lagi memilikinya.

Kontrak pintar memiliki konsep kepemilikan dan transfer kepemilikan, tetapi di komputer, semuanya hanyalah angka dan byte, dan dapat dengan bebas disalin. Selain itu, Anda tahu bahwa konsep-konsep ini tidak ada di dunia nyata. Oleh karena itu, Anda ingin memiliki suatu bahasa yang dapat memberikan abstraksi yang baik tentang kepemilikan dan homogenitas. Seperti di dunia nyata, tetapi tanpa memaksa programmer untuk menemukan 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 direproduksi dalam bahasa lain, termasuk bahasa smart contract yang ada, dan kami ingin merancang seluruh bahasa yang menyediakan fungsi dasar ini, sehingga programmer dapat menulis kode dengan aman dan efisien, tanpa harus menemukan kembali roda setiap kali mereka ingin menulis 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 mendorong perubahan ini, salah satunya adalah tujuan awal proyek Libra adalah membangun jaringan pembayaran yang sesuai. Oleh karena itu, kami berusaha merancang Move sebagai bahasa umum. 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 mana saja. 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 izin untuk membuat akun. Karena keseluruhan tujuannya adalah Libra ingin melakukan pembayaran yang sesuai dan smart contract yang sesuai, maka ada batasan-batasan ini. Namun, di bidang Web3 yang lebih umum, situasinya justru sebaliknya. Anda tidak ingin melakukan kepatuhan pada tingkat dasar, itulah konsep smart contract. Anda ingin segala sesuatu sefleksibel mungkin, sepenuhnya dapat mengirimkan sesuatu ke alamat mana pun. Kemudian Anda tidak seharusnya melakukan pembuatan akun secara eksplisit, karena ini akan menghambat berbagai kasus penggunaan. Ini adalah faktor penting.

Faktor lain adalah, meskipun kami fokus pada aset dalam Move, pada saat itu kami tidak mempertimbangkan bagaimana membawa fokus aset ke dalam transaksi itu sendiri di Libra. Jadi, ketika Anda mencapai tingkat transaksi, Anda masih hanya memiliki API ini, di mana Anda memasukkan angka dan nilai boolean dan sebagainya yang bukan aset, 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, yang mencakup mengambil barang ini, mengambil barang itu, mengambil barang lainnya, baiklah, saya 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, masukkan aset-aset ini kembali ke akun ini, masukkan kembali ke akun itu, dan atur ulang mereka."

Di Sui, kami telah mempertimbangkan dengan matang, jika setiap program dimulai dan diakhiri dengan cara ini, apakah kita dapat 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 model data berbasis objek yang ada di Sui. Dalam Move asli, kami memiliki model data berbasis akun, aset disimpan di bawah akun, dan programmer harus secara eksplisit mengekstraknya. Namun di Sui, mereka sudah 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 sebuah transaksi dapat dijalankan secara paralel dengan transaksi lainnya tanpa benar-benar mengeksekusinya, melakukan penskalaan horizontal pada 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 membagikan lebih banyak informasi tentang blok perdagangan yang dapat diprogram dan fungsinya?

Saya suka menggunakan analogi untuk menjelaskan, blockchain lain seperti area makanan di pusat perbelanjaan. Jika Anda ingin makan es krim, Anda pergi ke stan es krim dan mengeluarkan kartu kredit Anda untuk membayar. Tetapi jika Anda memutuskan ingin makan hamburger juga, maka Anda pergi ke stan hamburger dan membayar lagi. Saya bukan orang yang rakus, tetapi jika saya ingin makan delapan hal, saya harus melakukan delapan transaksi terpisah. 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 hamburger, Anda bisa mencampurnya.

Untuk membuat konsep ini lebih konkret, dalam kasus yang 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 untuk mencetak satu NFT. Anda juga dapat melakukan pengemasan transaksi heterogen, misalnya transaksi pertama dalam blok mengambil satu karakter Mario dari dompet multisig Anda, sementara transaksi kedua meminta satu Mario, kemudian memungkinkan Anda untuk 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 seperti itu, permainan tidak perlu tahu cara penyimpanan dompet multisig atau Mario, dan juga tidak perlu tahu tentang lemari trofi Anda atau cara implementasinya.

Blok transaksi yang dapat diprogram terdiri dari transaksi yang memiliki 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, tanpa perlu khawatir ke mana itu akan diteruskan. Di blockchain lain, keterkaitannya lebih kuat, sehingga permainan harus terintegrasi dengan dompet multisig dan lemari trofi, atau semuanya harus menerapkan beberapa antarmuka bersama dan memiliki keterkaitan yang lebih kuat. Sui membuat kombinasi sementara yang disebut menjadi lebih mudah. Seperti, jika pipa cocok, kita dapat menyelesaikannya dalam satu transaksi.

Q5, Apa keuntungan dari blok perdagangan yang dapat diprogram bagi pengguna?

Manfaat dari blok perdagangan yang dapat diprogram bagi pengguna termasuk biaya gas yang lebih rendah, karena Anda dapat mengemas semua operasi ke dalam satu transaksi, bukan melakukan transaksi terpisah. Selain itu, jumlah persetujuan yang diperlukan juga akan berkurang. Jika sistem yang Anda gunakan memerlukan persetujuan transaksi, Anda hanya perlu melakukan satu persetujuan, lalu semua operasi akan selesai sekaligus. Manfaat lainnya 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 ke dalam satu transaksi, maka Anda dapat dengan mudah mewujudkannya.

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

Bagi 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, yang sedang membangun sebuah non di Sui.

MOVE3.11%
SUI6.08%
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
  • 2
  • Posting ulang
  • Bagikan
Komentar
0/400
MoonlightGamervip
· 17jam yang lalu
move adalah masa depan
Lihat AsliBalas0
LiquidationWatchervip
· 18jam yang lalu
ugh hari lain bahasa kontrak pintar yang lain... semoga saja tidak dieksploitasi seperti solana
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)