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 dari Mysten Labs dan pencipta bahasa pemrograman Move, Sam Blackshear, untuk mendiskusikan mengapa ia mengembangkan Sui Move, bahasa pemrograman smart contract baru, kemampuan skalabilitas Sui, dan manfaat teknologi terdesentralisasi bagi para pembangun.
Berikut adalah isi wawancara ini:
Q1, Pertama, dapatkah Anda memberikan gambaran tentang 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. Ini sangat penting bagi komputer. Kita tidak bisa berkomunikasi dengan komputer menggunakan bahasa alami, karena makna keseluruhan dari bahasa alami adalah kaya dan mampu mengekspresikan.
Dalam bahasa pemrograman, hal terpenting adalah memiliki makna yang didefinisikan dengan tepat. Ketika Anda menulis sebuah program, Anda tahu apa yang akan dilakukannya. Jika Anda membuat penyesuaian kecil, Anda tahu perubahan ini akan menghasilkan apa.
Saya percaya bahwa, berbeda dengan bahasa alami, esensi bahasa pemrograman adalah untuk bidang atau tugas tertentu. Jika tidak, hanya dengan satu bahasa pemrograman, semua tugas bisa diselesaikan. Namun, alasan munculnya berbagai bahasa pemrograman adalah karena Anda tidak mungkin tampil baik di semua bidang. Mereka berusaha untuk menargetkan masalah tertentu dan fokus pada pemecahan masalah tersebut.
Oleh karena itu, kisah Move sangat mirip dengan ini. Ketika saya menciptakannya, itu bukan untuk menciptakan bahasa baru. Pengembang ketika memilih bahasa 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 basis data yang tersedia? Apakah banyak programmer yang menggunakannya? Apakah ada sumber daya pendidikan yang baik?" Semua ini sangat penting, sehingga ambang batas untuk menciptakan bahasa baru harus sangat tinggi.
Q2, Bisakah Anda berbagi lebih banyak tentang perkembangan Move?
Move berasal dari proyek Libra Facebook. Tugas saya pada saat itu bukanlah untuk menciptakan bahasa baru, tetapi "Libra membutuhkan 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 haruskah kita membuat sesuatu yang baru?
Keputusan untuk membuat sesuatu sendiri didasarkan pada penelitian tentang smart contract yang ada, memahami apa yang coba dilakukan oleh programmer, serta di mana bahasa tertentu membantu mereka dan di mana mereka merasa kecewa. Kesimpulan saya adalah, dalam banyak kasus, bahasa smart contract yang ada memang membuat mereka kecewa.
Hal ini dapat dilihat jelas dari catatan keamanan Solidity yang buruk, tetapi yang lebih mendasar adalah bahwa smart contract ini bukanlah jenis program yang sangat tradisional. Solidity bukanlah bahasa yang dibangun untuk apa yang orang lakukan saat ini.
Jadi kontrak pintar ini sangat sederhana, mereka pada dasarnya melakukan dua hal. Mereka mendefinisikan jenis aset, termasuk kapan aset dapat dipindahkan, apa yang bisa Anda lakukan dengan aset tersebut, siapa yang dapat membacanya, dan siapa yang dapat menulis aturan untuknya. Dan memeriksa kebijakan kontrol akses, menentukan siapa yang memiliki aset tersebut, siapa yang diizinkan untuk menggunakannya, dan siapa yang diizinkan untuk mengoperasikannya. Semuanya berpusat pada aset, Anda ingin aset ini memiliki atribut yang sama dengan aset fisik.
Dalam smart contract terdapat 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 berharap ada suatu bahasa yang dapat memberikan Anda abstraksi yang baik tentang kepemilikan dan homogenitas. Seperti di dunia nyata, tetapi tanpa memaksa programmer untuk menemukan kembali semuanya. 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 direkonstruksi dalam bahasa lain, termasuk bahasa smart contract yang ada, dan kami ingin merancang seluruh bahasa di sekitar penyediaan fungsi-fungsi dasar ini, sehingga programmer dapat menulis kode dengan aman dan efisien tanpa harus menciptakan ulang 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 mendorong perubahan ini, di mana salah satunya adalah tujuan awal proyek Libra untuk membangun jaringan pembayaran yang sesuai. Oleh karena itu, kami mencoba merancang Move sebagai bahasa yang universal. Namun, kami juga secara sadar melakukan beberapa hal, karena Libra ingin mempunyai batasan. Salah satu hal penting adalah, mereka tidak ingin orang-orang dapat mengirimkan aset tertentu ke sembarang tempat. Mereka ingin orang-orang secara jelas membuat akun, dan saat pembuatan akun, menetapkan beberapa aturan, seperti pemilik akun harus melakukan verifikasi identitas (KYC). Atau mungkin diperlukan biaya untuk membuat akun, atau hanya sebagian kecil orang yang memiliki izin untuk membuat akun yang dapat melakukannya. Karena tujuan keseluruhannya adalah Libra ingin melakukan pembayaran yang sesuai dan kontrak pintar yang sesuai, maka ada batasan-batasan ini. Namun, di bidang Web3 yang lebih umum, situasinya justru sebaliknya. Anda tidak ingin melakukan kepatuhan di tingkat dasar, itulah konsep kontrak pintar. Anda ingin segala sesuatunya bebas sebisa mungkin, dan sepenuhnya dapat mengirimkan sesuatu ke alamat mana pun. Kemudian Anda seharusnya tidak melakukan pembuatan akun secara eksplisit, karena ini akan menghalangi berbagai kasus penggunaan. Ini adalah faktor penting.
Faktor lain adalah, meskipun kami fokus pada aset di Move, saat itu kami tidak mempertimbangkan bagaimana membawa fokus aset ke dalam transaksi itu sendiri di Libra. Jadi, ketika Anda mencapai level transaksi, Anda masih hanya memiliki API ini, di mana Anda memasukkan angka dan nilai boolean dan lain-lain 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 menyebalkan ini, yang mencakup mengambil ini, mengambil itu, mengambil yang lain, 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 ke akun itu, dan reorganisir mereka."
Dalam Sui, kami telah mempertimbangkan dengan cermat, jika setiap program dimulai dan diakhiri dengan cara ini, apakah kita dapat mengabstraksikannya? Oleh karena itu, logika yang digunakan untuk menangani transaksi akan menyelesaikan ini bagi para programmer, dari sudut pandang programmer, mereka hanya perlu menyiapkan aset yang diperlukan, dan segera mulai melakukan pekerjaan yang menarik. Inilah model data yang berorientasi objek yang ada dalam Sui. Dalam Move asli, kami memiliki model data berbasis akun, aset disimpan di bawah akun, dan programmer harus mengekstraknya secara eksplisit. Namun, dalam Sui, saat mereka memasuki bagian Move dari transaksi, aset sudah diambil oleh runtime Sui. 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 lainnya tanpa benar-benar mengeksekusinya, memungkinkan Sui untuk melakukan penskalaan horizontal dan melakukan beberapa operasi lain dengan lebih efisien.
Kami juga melakukan beberapa pekerjaan 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 transaksi 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 gerai es krim dan mengeluarkan kartu kredit Anda untuk membayar. Tetapi jika Anda memutuskan ingin makan hamburger juga, maka Anda pergi ke gerai hamburger dan membayar lagi. Saya bukan orang yang rakus, tetapi jika saya ingin makan delapan jenis makanan, saya harus melakukan delapan transaksi terpisah. Sedangkan Sui lebih mirip dengan 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, dan Anda bisa mencampurkannya.
Untuk membuat konsep ini lebih konkret, dalam situasi sederhana, jika Anda ingin mengirim 100 transaksi untuk mencetak 100 NFT, Anda dapat mengirim satu transaksi untuk 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 mengambil satu karakter Mario dari dompet multisig Anda, sedangkan 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-teman. Yang keren adalah blok transaksi yang dapat diprogram memungkinkan programmer untuk menulis kode dengan cara seperti itu, 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 yang memiliki objek input dan output. Jika Anda memerlukan objek input, Anda dapat memperoleh objek tersebut tanpa perlu khawatir dari mana asalnya, kemudian mengalihkan outputnya kepada objek yang membutuhkannya, tanpa perlu khawatir kemana itu akan dikirim. Di blockchain lain, keterkaitan lebih kuat, sehingga permainan harus diintegrasikan dengan dompet multi-tanda tangan dan lemari trofi, atau mereka semua harus mengimplementasikan beberapa antarmuka bersama dan memiliki keterkaitan yang lebih kuat. Sui membuat yang disebut kombinasi sementara menjadi lebih mudah. Seperti jika pipa cocok, kita dapat menyelesaikan dalam satu transaksi.
Q5, Apa keuntungan dari blok perdagangan yang dapat diprogram bagi pengguna?
Untuk pengguna, manfaat dari blok perdagangan yang dapat diprogram 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 selesai sekaligus. Manfaat lainnya adalah atomisitas, jika Anda ingin melakukan tiga hal yang berbeda dan ingin operasi ketiga hanya berhasil jika dua operasi sebelumnya berhasil, jika operasi tersebut harus merupakan transaksi terpisah, maka Anda tidak dapat mencapainya. Namun, jika Anda dapat mengemas semuanya dalam satu transaksi, maka Anda dapat dengan mudah mencapainya.
Q6, Saya telah mendengar Anda dan orang lain berbicara bahwa mengembangkan di Sui adalah pengalaman yang luar biasa bagi para programmer, dan itu sangat penting. Apakah Anda memiliki cerita menarik untuk dibagikan tentang pengalaman programmer Web3 yang berpengalaman dan baru saat mulai menggunakan Sui Move?
Bagi para pengembang yang berasal dari bahasa pemrograman Web3 lainnya, pengalaman pengembangan mereka di Move dan Sui Move memang jauh lebih efisien dan lebih aman. Saya baru saja mengikuti podcast tentang Bucket Protocol, yang sedang membangun proyek DeFi yang sangat keren di Sui. Mereka menunjukkan arsitektur sistem saat menjelaskan bagaimana berbagai komponen bekerja sama. Mereka mengatakan bahwa jika mereka menggunakan Solidity untuk menulis proyek ini, mungkin akan memakan waktu delapan bulan, tetapi dengan Sui Move hanya memerlukan dua bulan, dan mereka sangat percaya diri terhadap keamanannya. Cara kerja bahasa ini sangat dekat dengan ide portofolio proyek yang ada di pikiran mereka. Sedangkan di bidang Solidity, hubungan ini tidak begitu langsung.
Ini hanya contoh, tetapi kami telah mendengar banyak kasus serupa, di mana orang-orang mengatakan bahwa mereka dapat mengembangkan lebih cepat dalam bahasa ini dan merasa lebih percaya diri setelah menyelesaikannya. Mendengar ini membuat saya senang. Namun, dalam beberapa hal, ini tidak mengejutkan; kami telah mempelajari Solidity dan memahami masalah di dalamnya. Kami secara eksplisit merancang solusi di sekitar bagaimana membuatnya lebih aman dan lebih cepat. Kami memeriksa apa yang coba dilakukan para pengembang yang menggunakan bahasa ini, dan bagaimana merancang bahasa yang memenuhi kebutuhan mereka, alih-alih menyesuaikan dengan situasi yang ada. Bahasa ini dirancang untuk masalah yang dihadapi orang, jadi ketika mereka beralih, mereka benar-benar akan sangat menghargai bahasa ini.
Mereka bilang keuntungan awal itu penting, tapi saya rasa dalam situasi ini, keuntungan akhir lebih penting.
Betul, begitulah.
 dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
15 Suka
Hadiah
15
5
Posting ulang
Bagikan
Komentar
0/400
DegenWhisperer
· 08-18 15:44
Lao Hei kali ini berkata dengan baik loh
Lihat AsliBalas0
BearMarketBro
· 08-18 06:41
Suckers baru sebaiknya tidak datang lagi
Lihat AsliBalas0
OnchainDetective
· 08-17 04:31
move luar biasa sui mengikuti To da moon
Lihat AsliBalas0
GateUser-44a00d6c
· 08-17 04:22
Sudah lama saya mengikuti Move luar biasa
Lihat AsliBalas0
AirdropHuntress
· 08-17 04:22
Kecepatan iterasi kode Sui diragukan, data menunjukkan bahwa aktivitas mainnet tidak memenuhi standar.
Pendiri bahasa Move menjelaskan: Mengapa Sui Move lebih cocok untuk membangun 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 dari Mysten Labs dan pencipta bahasa pemrograman Move, Sam Blackshear, untuk mendiskusikan mengapa ia mengembangkan Sui Move, bahasa pemrograman smart contract baru, kemampuan skalabilitas Sui, dan manfaat teknologi terdesentralisasi bagi para pembangun.
Berikut adalah isi wawancara ini:
Q1, Pertama, dapatkah Anda memberikan gambaran tentang 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. Ini sangat penting bagi komputer. Kita tidak bisa berkomunikasi dengan komputer menggunakan bahasa alami, karena makna keseluruhan dari bahasa alami adalah kaya dan mampu mengekspresikan.
Dalam bahasa pemrograman, hal terpenting adalah memiliki makna yang didefinisikan dengan tepat. Ketika Anda menulis sebuah program, Anda tahu apa yang akan dilakukannya. Jika Anda membuat penyesuaian kecil, Anda tahu perubahan ini akan menghasilkan apa.
Saya percaya bahwa, berbeda dengan bahasa alami, esensi bahasa pemrograman adalah untuk bidang atau tugas tertentu. Jika tidak, hanya dengan satu bahasa pemrograman, semua tugas bisa diselesaikan. Namun, alasan munculnya berbagai bahasa pemrograman adalah karena Anda tidak mungkin tampil baik di semua bidang. Mereka berusaha untuk menargetkan masalah tertentu dan fokus pada pemecahan masalah tersebut.
Oleh karena itu, kisah Move sangat mirip dengan ini. Ketika saya menciptakannya, itu bukan untuk menciptakan bahasa baru. Pengembang ketika memilih bahasa 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 basis data yang tersedia? Apakah banyak programmer yang menggunakannya? Apakah ada sumber daya pendidikan yang baik?" Semua ini sangat penting, sehingga ambang batas untuk menciptakan bahasa baru harus sangat tinggi.
Q2, Bisakah Anda berbagi lebih banyak tentang perkembangan Move?
Move berasal dari proyek Libra Facebook. Tugas saya pada saat itu bukanlah untuk menciptakan bahasa baru, tetapi "Libra membutuhkan 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 haruskah kita membuat sesuatu yang baru?
Keputusan untuk membuat sesuatu sendiri didasarkan pada penelitian tentang smart contract yang ada, memahami apa yang coba dilakukan oleh programmer, serta di mana bahasa tertentu membantu mereka dan di mana mereka merasa kecewa. Kesimpulan saya adalah, dalam banyak kasus, bahasa smart contract yang ada memang membuat mereka kecewa.
Hal ini dapat dilihat jelas dari catatan keamanan Solidity yang buruk, tetapi yang lebih mendasar adalah bahwa smart contract ini bukanlah jenis program yang sangat tradisional. Solidity bukanlah bahasa yang dibangun untuk apa yang orang lakukan saat ini.
Jadi kontrak pintar ini sangat sederhana, mereka pada dasarnya melakukan dua hal. Mereka mendefinisikan jenis aset, termasuk kapan aset dapat dipindahkan, apa yang bisa Anda lakukan dengan aset tersebut, siapa yang dapat membacanya, dan siapa yang dapat menulis aturan untuknya. Dan memeriksa kebijakan kontrol akses, menentukan siapa yang memiliki aset tersebut, siapa yang diizinkan untuk menggunakannya, dan siapa yang diizinkan untuk mengoperasikannya. Semuanya berpusat pada aset, Anda ingin aset ini memiliki atribut yang sama dengan aset fisik.
Dalam smart contract terdapat 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 berharap ada suatu bahasa yang dapat memberikan Anda abstraksi yang baik tentang kepemilikan dan homogenitas. Seperti di dunia nyata, tetapi tanpa memaksa programmer untuk menemukan kembali semuanya. 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 direkonstruksi dalam bahasa lain, termasuk bahasa smart contract yang ada, dan kami ingin merancang seluruh bahasa di sekitar penyediaan fungsi-fungsi dasar ini, sehingga programmer dapat menulis kode dengan aman dan efisien tanpa harus menciptakan ulang 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 mendorong perubahan ini, di mana salah satunya adalah tujuan awal proyek Libra untuk membangun jaringan pembayaran yang sesuai. Oleh karena itu, kami mencoba merancang Move sebagai bahasa yang universal. Namun, kami juga secara sadar melakukan beberapa hal, karena Libra ingin mempunyai batasan. Salah satu hal penting adalah, mereka tidak ingin orang-orang dapat mengirimkan aset tertentu ke sembarang tempat. Mereka ingin orang-orang secara jelas membuat akun, dan saat pembuatan akun, menetapkan beberapa aturan, seperti pemilik akun harus melakukan verifikasi identitas (KYC). Atau mungkin diperlukan biaya untuk membuat akun, atau hanya sebagian kecil orang yang memiliki izin untuk membuat akun yang dapat melakukannya. Karena tujuan keseluruhannya adalah Libra ingin melakukan pembayaran yang sesuai dan kontrak pintar yang sesuai, maka ada batasan-batasan ini. Namun, di bidang Web3 yang lebih umum, situasinya justru sebaliknya. Anda tidak ingin melakukan kepatuhan di tingkat dasar, itulah konsep kontrak pintar. Anda ingin segala sesuatunya bebas sebisa mungkin, dan sepenuhnya dapat mengirimkan sesuatu ke alamat mana pun. Kemudian Anda seharusnya tidak melakukan pembuatan akun secara eksplisit, karena ini akan menghalangi berbagai kasus penggunaan. Ini adalah faktor penting.
Faktor lain adalah, meskipun kami fokus pada aset di Move, saat itu kami tidak mempertimbangkan bagaimana membawa fokus aset ke dalam transaksi itu sendiri di Libra. Jadi, ketika Anda mencapai level transaksi, Anda masih hanya memiliki API ini, di mana Anda memasukkan angka dan nilai boolean dan lain-lain 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 menyebalkan ini, yang mencakup mengambil ini, mengambil itu, mengambil yang lain, 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 ke akun itu, dan reorganisir mereka."
Dalam Sui, kami telah mempertimbangkan dengan cermat, jika setiap program dimulai dan diakhiri dengan cara ini, apakah kita dapat mengabstraksikannya? Oleh karena itu, logika yang digunakan untuk menangani transaksi akan menyelesaikan ini bagi para programmer, dari sudut pandang programmer, mereka hanya perlu menyiapkan aset yang diperlukan, dan segera mulai melakukan pekerjaan yang menarik. Inilah model data yang berorientasi objek yang ada dalam Sui. Dalam Move asli, kami memiliki model data berbasis akun, aset disimpan di bawah akun, dan programmer harus mengekstraknya secara eksplisit. Namun, dalam Sui, saat mereka memasuki bagian Move dari transaksi, aset sudah diambil oleh runtime Sui. 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 lainnya tanpa benar-benar mengeksekusinya, memungkinkan Sui untuk melakukan penskalaan horizontal dan melakukan beberapa operasi lain dengan lebih efisien.
Kami juga melakukan beberapa pekerjaan 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 transaksi 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 gerai es krim dan mengeluarkan kartu kredit Anda untuk membayar. Tetapi jika Anda memutuskan ingin makan hamburger juga, maka Anda pergi ke gerai hamburger dan membayar lagi. Saya bukan orang yang rakus, tetapi jika saya ingin makan delapan jenis makanan, saya harus melakukan delapan transaksi terpisah. Sedangkan Sui lebih mirip dengan 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, dan Anda bisa mencampurkannya.
Untuk membuat konsep ini lebih konkret, dalam situasi sederhana, jika Anda ingin mengirim 100 transaksi untuk mencetak 100 NFT, Anda dapat mengirim satu transaksi untuk 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 mengambil satu karakter Mario dari dompet multisig Anda, sedangkan 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-teman. Yang keren adalah blok transaksi yang dapat diprogram memungkinkan programmer untuk menulis kode dengan cara seperti itu, 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 yang memiliki objek input dan output. Jika Anda memerlukan objek input, Anda dapat memperoleh objek tersebut tanpa perlu khawatir dari mana asalnya, kemudian mengalihkan outputnya kepada objek yang membutuhkannya, tanpa perlu khawatir kemana itu akan dikirim. Di blockchain lain, keterkaitan lebih kuat, sehingga permainan harus diintegrasikan dengan dompet multi-tanda tangan dan lemari trofi, atau mereka semua harus mengimplementasikan beberapa antarmuka bersama dan memiliki keterkaitan yang lebih kuat. Sui membuat yang disebut kombinasi sementara menjadi lebih mudah. Seperti jika pipa cocok, kita dapat menyelesaikan dalam satu transaksi.
Q5, Apa keuntungan dari blok perdagangan yang dapat diprogram bagi pengguna?
Untuk pengguna, manfaat dari blok perdagangan yang dapat diprogram 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 selesai sekaligus. Manfaat lainnya adalah atomisitas, jika Anda ingin melakukan tiga hal yang berbeda dan ingin operasi ketiga hanya berhasil jika dua operasi sebelumnya berhasil, jika operasi tersebut harus merupakan transaksi terpisah, maka Anda tidak dapat mencapainya. Namun, jika Anda dapat mengemas semuanya dalam satu transaksi, maka Anda dapat dengan mudah mencapainya.
Q6, Saya telah mendengar Anda dan orang lain berbicara bahwa mengembangkan di Sui adalah pengalaman yang luar biasa bagi para programmer, dan itu sangat penting. Apakah Anda memiliki cerita menarik untuk dibagikan tentang pengalaman programmer Web3 yang berpengalaman dan baru saat mulai menggunakan Sui Move?
Bagi para pengembang yang berasal dari bahasa pemrograman Web3 lainnya, pengalaman pengembangan mereka di Move dan Sui Move memang jauh lebih efisien dan lebih aman. Saya baru saja mengikuti podcast tentang Bucket Protocol, yang sedang membangun proyek DeFi yang sangat keren di Sui. Mereka menunjukkan arsitektur sistem saat menjelaskan bagaimana berbagai komponen bekerja sama. Mereka mengatakan bahwa jika mereka menggunakan Solidity untuk menulis proyek ini, mungkin akan memakan waktu delapan bulan, tetapi dengan Sui Move hanya memerlukan dua bulan, dan mereka sangat percaya diri terhadap keamanannya. Cara kerja bahasa ini sangat dekat dengan ide portofolio proyek yang ada di pikiran mereka. Sedangkan di bidang Solidity, hubungan ini tidak begitu langsung.
Ini hanya contoh, tetapi kami telah mendengar banyak kasus serupa, di mana orang-orang mengatakan bahwa mereka dapat mengembangkan lebih cepat dalam bahasa ini dan merasa lebih percaya diri setelah menyelesaikannya. Mendengar ini membuat saya senang. Namun, dalam beberapa hal, ini tidak mengejutkan; kami telah mempelajari Solidity dan memahami masalah di dalamnya. Kami secara eksplisit merancang solusi di sekitar bagaimana membuatnya lebih aman dan lebih cepat. Kami memeriksa apa yang coba dilakukan para pengembang yang menggunakan bahasa ini, dan bagaimana merancang bahasa yang memenuhi kebutuhan mereka, alih-alih menyesuaikan dengan situasi yang ada. Bahasa ini dirancang untuk masalah yang dihadapi orang, jadi ketika mereka beralih, mereka benar-benar akan sangat menghargai bahasa ini.
Mereka bilang keuntungan awal itu penting, tapi saya rasa dalam situasi ini, keuntungan akhir lebih penting.
Betul, begitulah.
![Wawancara dengan Bapak Move: Mengapa bahasa smart contract Sui Move cocok untuk membangun produk Web3?](