Người sáng lập Move tiết lộ: Sui Move giúp phát triển sản phẩm Web3 như thế nào

Phỏng vấn người sáng lập ngôn ngữ Move: Tại sao ngôn ngữ hợp đồng thông minh Sui Move phù hợp để xây dựng sản phẩm Web3?

Gần đây, chúng tôi đã có cuộc trò chuyện với Giám đốc Công nghệ của Mysten Labs, Sam Blackshear, người sáng lập ngôn ngữ lập trình Move, về lý do tại sao ông phát triển ngôn ngữ lập trình hợp đồng thông minh Sui Move, khả năng mở rộng của Sui và lợi ích của công nghệ phi tập trung đối với các nhà xây dựng.

Dưới đây là nội dung cuộc phỏng vấn này:

Q1, Trước tiên, bạn có thể tóm tắt ngôn ngữ lập trình là gì, những phẩm chất mà các nhà phát triển quan tâm nhất khi chọn ngôn ngữ lập trình là gì, và điều gì thúc đẩy bạn phát triển ngôn ngữ lập trình của riêng mình?

Ngôn ngữ lập trình là một công cụ để tương tác với máy tính một cách thân thiện, an toàn, hiệu quả và rõ ràng. Điều này đặc biệt quan trọng đối với máy tính. Chúng ta không thể giao tiếp với máy tính bằng ngôn ngữ tự nhiên, vì toàn bộ ý nghĩa của ngôn ngữ tự nhiên nằm ở sự phong phú và khả năng biểu đạt. Khi bạn sử dụng một giọng điệu hơi khác hoặc chọn cách diễn đạt từ ngữ hơi khác, câu hoặc đoạn văn của bạn có thể có ý nghĩa hoàn toàn khác.

Và trong ngôn ngữ lập trình, điều quan trọng nhất là có ý nghĩa được định nghĩa chính xác. Khi bạn viết một chương trình, bạn biết rõ nó sẽ làm gì. Nếu bạn thực hiện một điều chỉnh nhỏ, bạn biết sự thay đổi đó sẽ tạo ra kết quả gì. Điều này cần được duy trì ở nhiều cấp độ, chẳng hạn như bạn có thể viết mã bằng một ngôn ngữ nguồn, nó có một ý nghĩa, sau đó được chuyển đổi thành các hình thức khác để biểu thị, thì nó cũng nên có cùng một ý nghĩa, cho đến khi đến mô-đun xử lý của máy.

Tôi nghĩ rằng, khác với ngôn ngữ tự nhiên, bản chất của ngôn ngữ lập trình là nhắm vào các lĩnh vực cụ thể hoặc các nhiệm vụ cụ thể. Nếu không thì chỉ cần một ngôn ngữ lập trình là có thể hoàn thành tất cả các nhiệm vụ. Nhưng lý do tồn tại nhiều ngôn ngữ lập trình là vì bạn không thể xuất sắc trong mọi lĩnh vực. Chúng đang nỗ lực nhắm mục tiêu vào các lĩnh vực vấn đề cụ thể và tập trung vào việc giải quyết những vấn đề này. Ví dụ, nếu bạn nhìn vào ngôn ngữ lập trình Rust mà chúng tôi sử dụng để viết blockchain Sui và hầu hết các hệ thống khác mà chúng tôi thực hiện tại Mysten, nó tập trung vào việc viết mã vừa nhanh vừa hiệu suất cao, đồng thời đảm bảo an toàn. Nó cho phép bạn tiếp cận với các chi tiết thấp hơn như bộ nhớ, cấu trúc luồng hoặc đồng thời, nhưng không khiến bạn mắc lỗi như những ngôn ngữ trước đây (như C hoặc C++).

Do đó, câu chuyện về Move rất tương tự như vậy. Khi tôi tạo ra nó, không phải để tạo ra một ngôn ngữ mới. Bạn đã đề cập trước đó rằng các nhà phát triển tìm kiếm điều gì trong một ngôn ngữ. Họ sẽ hỏi, "Ngôn ngữ này có phù hợp với nhiệm vụ mà tôi muốn hoàn thành không?" Nhưng tôi nghĩ có thể điều quan trọng hơn là, "Ngôn ngữ này có một cộng đồng lớn không? Có nhiều cơ sở dữ liệu có sẵn không? Có nhiều lập trình viên đang sử dụng không? Có tài nguyên giáo dục tốt không?" Tất cả những điều này đều rất quan trọng, vì vậy ngưỡng để tạo ra một ngôn ngữ mới phải rất cao, ngay cả khi ngôn ngữ đó tốt hơn, nhưng nếu nó không có những yếu tố này, thì lợi thế của nó cũng không có ý nghĩa. Việc xây dựng một cộng đồng lớn và sôi động từ con số không là rất khó khăn.

Q2, bạn có thể chia sẻ thêm về tình hình phát triển của Move không?

Move xuất phát từ dự án Libra của Facebook. Nhiệm vụ của tôi lúc đó không phải là tạo ra một ngôn ngữ mới, mà là "Libra cần có hợp đồng thông minh, vì vậy hãy tìm ra chúng ta nên làm gì." Tôi đã xem xét nhiều thứ khác nhau. Chúng ta có thể sử dụng Solidity trong EVM không? Chúng ta có nên sử dụng ngôn ngữ tổng quát thông thường, như WASM hoặc JVM, và áp dụng nó cho Libra? Hay chúng ta nên tạo ra thứ riêng của mình?

Quyết định tạo ra thứ của riêng chúng tôi dựa trên nghiên cứu về các hợp đồng thông minh hiện có, hiểu những gì các lập trình viên đang cố gắng làm và những ngôn ngữ nhất định đã giúp họ ở đâu và khiến họ thất vọng ở đâu. Kết luận của tôi là, trong nhiều trường hợp, các ngôn ngữ hợp đồng thông minh hiện có thực sự đã khiến họ thất vọng.

Điều này có thể được nhìn thấy rõ ràng từ hồ sơ an ninh kém của Solidity, nhưng điều cơ bản hơn là những hợp đồng thông minh này không phải là kiểu chương trình rất truyền thống. Solidity không phải là ngôn ngữ được xây dựng cho những gì mọi người đang làm bây giờ. Tôi không muốn chỉ trích nó, vì nó là ngôn ngữ hợp đồng thông minh đầu tiên, nó cũng chưa biết mọi người muốn làm gì với nó. Khi bạn thấy mọi người cố gắng làm gì với nó, tôi nghĩ rõ ràng rằng bạn cần một tập hợp các trừu tượng và công cụ lập trình khác nhau mà ngôn ngữ Solidity không cung cấp.

Vì vậy, những hợp đồng thông minh này rất đơn giản, chúng chủ yếu thực hiện hai điều. Chúng xác định loại tài sản, bao gồm khi nào có thể chuyển nhượng tài sản, bạn có thể làm gì với chúng, ai có thể đọc chúng, ai có thể viết vào chúng. Và kiểm tra chính sách kiểm soát truy cập, xác định ai sở hữu tài sản này, ai được phép sử dụng nó, ai được phép thao tác với nó. Mọi thứ đều xoay quanh tài sản, bạn mong muốn những tài sản này có những thuộc tính giống như tài sản vật lý. Nếu tôi giao một thứ gì đó cho bạn, thì bạn nên sở hữu nó, tôi không còn sở hữu nó nữa.

Hợp đồng thông minh có các khái niệm về quyền sở hữu và chuyển nhượng quyền sở hữu, nhưng trên máy tính, mọi thứ chỉ là số và byte, và có thể sao chép tự do. Hơn nữa, bạn biết rằng những khái niệm này không tồn tại trong thế giới thực. Do đó, bạn muốn có một ngôn ngữ có thể cung cấp cho bạn một sự trừu tượng tốt về quyền sở hữu và tính đồng nhất. Giống như trong thế giới thực, nhưng không cần phải buộc các lập trình viên phải phát minh lại nó. Bạn muốn có những đảm bảo an toàn cơ bản.

Đây là vai trò của Move và lý do tại sao chúng tôi cuối cùng đã tạo ra ngôn ngữ mới này. Những nhiệm vụ này là cơ bản cho lập trình hợp đồng thông minh. Chúng rất khó để tái tạo trong các ngôn ngữ khác, bao gồm cả các ngôn ngữ hợp đồng thông minh hiện có, chúng tôi muốn thiết kế toàn bộ ngôn ngữ xung quanh việc cung cấp những chức năng cơ bản này để lập trình viên có thể viết mã một cách an toàn và hiệu quả, mà không cần phải phát minh lại bánh xe mỗi khi họ muốn viết một số mã.

Q3, Sui đã sử dụng một biến thể của Move, được gọi là Sui Move. Điều gì đã thúc đẩy những thay đổi này? Những đặc điểm nào của Sui Move rất phù hợp để xây dựng sản phẩm trong Web3?

Những yếu tố sau đây đã thúc đẩy những thay đổi này, trong đó một yếu tố là mục tiêu ban đầu của dự án Libra là xây dựng một mạng lưới thanh toán tuân thủ. Do đó, chúng tôi đã cố gắng thiết kế Move như một ngôn ngữ chung. Nhưng chúng tôi cũng đã cố ý làm một số điều vì Libra muốn có những điều kiện hạn chế. Một trong những điều quan trọng là họ không muốn mọi người có thể gửi một số tài sản đến bất cứ đâu. Họ muốn mọi người phải tạo một tài khoản một cách rõ ràng và thiết lập một số quy tắc khi tạo tài khoản, chẳng hạn như chủ sở hữu tài khoản phải thực hiện xác minh KYC. Hoặc có thể cần phải trả phí để tạo tài khoản, hoặc chỉ một số ít người có quyền tạo tài khoản mới có thể thực hiện việc này. Vì mục tiêu tổng thể là Libra muốn thực hiện thanh toán tuân thủ và hợp đồng thông minh tuân thủ, nên có những hạn chế này. Nhưng trong lĩnh vực Web3 chung hơn, tình hình ngược lại. Bạn không muốn tuân thủ ở cấp độ cơ sở, đó là khái niệm của hợp đồng thông minh. Bạn muốn mọi thứ tự do nhất có thể, hoàn toàn có thể gửi một cái gì đó đến bất kỳ địa chỉ nào. Sau đó, bạn không nên thực hiện việc tạo tài khoản một cách rõ ràng, vì điều này sẽ cản trở nhiều trường hợp sử dụng khác nhau. Đây là một yếu tố quan trọng.

Một yếu tố khác là, mặc dù chúng tôi tập trung vào tài sản trong Move, nhưng vào thời điểm đó, chúng tôi không xem xét cách đưa sự chú ý vào tài sản vào chính giao dịch trong Libra. Do đó, khi bạn đến cấp giao dịch, bạn vẫn chỉ có API này, trong đó bạn nhập các số và giá trị boolean không phải là tài sản, và sau đó trong Move, bạn sử dụng những con số này để rút tài sản từ tài khoản và thực hiện các thao tác khác. Hóa ra, phần lớn mã mà bạn chạy là loại công việc sổ sách khó chịu này, bao gồm việc rút cái này, rút cái kia, rút cái khác, được rồi, tôi đã có tất cả các tài sản mà tôi muốn. Chúng ở đây, trong phòng làm việc của tôi, bây giờ tôi có thể bắt đầu làm điều gì đó có ý nghĩa. Sau đó, ở cuối quá trình này, bạn có thể nói: "Được rồi, hãy đặt lại những tài sản này vào tài khoản này, đặt chúng vào tài khoản kia, tổ chức lại chúng."

Trong Sui, chúng tôi đã suy nghĩ kỹ lưỡng, nếu mỗi chương trình bắt đầu và kết thúc theo cách này, liệu chúng tôi có thể trừu tượng hóa nó không? Do đó, logic xử lý giao dịch sẽ giúp lập trình viên hoàn thành điều này, từ quan điểm của lập trình viên, họ chỉ cần chuẩn bị tài sản cần thiết và ngay lập tức bắt đầu công việc thú vị. Đây là mô hình dữ liệu hướng đối tượng tồn tại trong Sui. Trong Move gốc, chúng tôi có mô hình dữ liệu dựa trên tài khoản, tài sản được lưu trữ dưới tài khoản và lập trình viên phải lấy chúng một cách rõ ràng. Còn trong Sui, khi vào phần Move của giao dịch, tài sản đã được Sui runtime lấy. Điều này thuận tiện hơn cho lập trình viên, vì họ không cần phải thực hiện tất cả các công việc ghi sổ trước và sau đó, và đây cũng là vũ khí bí mật cho phép chúng tôi xác định liệu một giao dịch có thể chạy song song với giao dịch khác mà không thực sự thực hiện, mở rộng Sui theo chiều ngang và thực hiện một số thao tác khác hiệu quả hơn.

Chúng tôi cũng đã thực hiện một số công việc rất thú vị khác, chẳng hạn như việc sử dụng mô hình dữ liệu dựa trên đối tượng để tạo ra các khối giao dịch có thể lập trình. Đây là một chủ đề có phần kỹ thuật, tôi rất sẵn lòng bàn sâu hơn. Nhưng hai yếu tố này là động lực chính dẫn đến sự khác biệt với Move gốc.

Q4, bạn có thể chia sẻ thêm thông tin về các khối giao dịch có thể lập trình và chức năng của chúng không?

Tôi thích sử dụng một phép so sánh để giải thích, các blockchain khác giống như một khu ẩm thực trong một trung tâm mua sắm. Bạn muốn ăn một ly kem, bạn đến quầy kem, lấy thẻ tín dụng để thanh toán. Nhưng nếu bạn quyết định muốn ăn một cái bánh hamburger, thì bạn phải đến quầy hamburger và thanh toán một lần nữa. Tôi không phải là người tham ăn, nhưng nếu tôi muốn ăn tám món, tôi phải thực hiện tám giao dịch riêng biệt. Còn Sui giống như một bữa tiệc tự chọn, mỗi giao dịch không chỉ là một việc. Khi bạn đã thanh toán phí bữa tiệc tự chọn, bạn có thể làm nhiều điều mà không cần chi thêm. Bạn có thể ăn kem, bạn có thể ăn hamburger, bạn có thể trộn chúng lại với nhau.

Để làm cho khái niệm này cụ thể hơn, trong trường hợp đơn giản, nếu bạn muốn gửi 100 giao dịch để đúc 100 NFT, bạn có thể gửi một giao dịch đúc 100 NFT. Chi phí như vậy gần như tương đương với chi phí của việc đúc một NFT. Bạn cũng có thể thực hiện gói giao dịch không đồng nhất, chẳng hạn như giao dịch đầu tiên trong khối lấy một nhân vật Mario từ ví đa chữ ký của bạn, trong khi giao dịch thứ hai yêu cầu một Mario, sau đó cho phép bạn chơi trò chơi. Nếu bạn thắng trò chơi và nhận được cúp, có thể giao dịch thứ ba sẽ đưa cúp vào một tủ cúp được chia sẻ với bạn bè. Thật tuyệt vời, các khối giao dịch lập trình cho phép lập trình viên viết mã theo cách này, trò chơi không cần biết cách lưu trữ ví đa chữ ký hoặc Mario, nó cũng không cần biết tủ cúp của bạn hoặc cách thực hiện của nó.

Khối giao dịch có thể lập trình được bao gồm các giao dịch với các đối tượng đầu vào và đầu ra. Nếu bạn cần một đối tượng đầu vào, bạn có thể nhận được đối tượng đó mà không cần quan tâm nó đến từ đâu, sau đó truyền đầu ra của nó cho đối tượng cần nó mà cũng không cần quan tâm nó sẽ được truyền đến đâu. Trong các blockchain khác, độ kết hợp cao hơn, do đó trò chơi phải tích hợp với ví đa chữ ký và tủ chiến lợi phẩm, hoặc chúng đều phải thực hiện một số giao diện chung và có độ kết hợp mạnh hơn. Sui giúp cho cái gọi là sự kết hợp tạm thời trở nên dễ dàng hơn. Giống như, nếu ống dẫn khớp nhau, chúng ta có thể hoàn thành trong một giao dịch.

Q5, Lợi ích của khối giao dịch có thể lập trình đối với người dùng là gì?

Đối với người dùng, lợi ích của các khối giao dịch có thể lập trình bao gồm phí gas thấp hơn, vì bạn có thể gói tất cả các thao tác vào một giao dịch, thay vì thực hiện các giao dịch riêng lẻ. Ngoài ra, số lần cần phê duyệt cũng sẽ giảm. Nếu hệ thống bạn đang sử dụng yêu cầu phê duyệt giao dịch, bạn chỉ cần thực hiện một lần phê duyệt, sau đó nó sẽ hoàn thành tất cả các thao tác một lần duy nhất. Một lợi ích khác là tính nguyên tử, nếu bạn muốn thực hiện ba việc khác nhau và chỉ muốn việc thứ ba thành công nếu hai thao tác đầu tiên thành công, nếu những thao tác này phải là các giao dịch độc lập, thì bạn không thể thực hiện điều này. Nhưng nếu bạn có thể gói tất cả chúng vào một giao dịch, thì bạn có thể dễ dàng thực hiện điều đó.

Q6, Tôi đã nghe bạn và những người khác nói rằng việc phát triển trên Sui là một trải nghiệm tuyệt vời cho các lập trình viên, và điều này rất quan trọng. Bạn có câu chuyện nào để chia sẻ về việc các lập trình viên Web3 có kinh nghiệm và mới bắt đầu sử dụng Sui Move không?

Đối với những nhà phát triển đến từ các ngôn ngữ lập trình Web3 khác, trải nghiệm phát triển của họ trên Move và Sui Move thực sự hiệu quả hơn và an toàn hơn. Tôi vừa tham gia một chương trình podcast về Bucket Protocol, họ đang xây dựng một dự án rất thú vị trên Sui.

MOVE-2.66%
SUI-3.61%
Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
  • Phần thưởng
  • 7
  • Chia sẻ
Bình luận
0/400
GasOptimizervip
· 07-18 07:39
move làm đi!
Xem bản gốcTrả lời0
GasOptimizervip
· 07-17 16:03
tps sẽ nhanh hơn ETH 8.64 lần đã tính xong
Xem bản gốcTrả lời0
AirdropHuntressvip
· 07-15 22:08
Một chiêu trò tiếp thị nữa, ai đã nghiên cứu mã hợp đồng sớm?
Xem bản gốcTrả lời0
HodlKumamonvip
· 07-15 22:04
Xem dữ liệu không đúng rồi, Move ông ơi.
Xem bản gốcTrả lời0
CryptoAdventurervip
· 07-15 22:02
All in就完事 太久没看move了
Xem bản gốcTrả lời0
Degen4Breakfastvip
· 07-15 21:57
move lại đến để nói khoác rồi
Xem bản gốcTrả lời0
NftPhilanthropistvip
· 07-15 21:54
hmm một nhà sáng lập web3 khác đang cố gắng cứu chúng ta bằng công nghệ của họ
Xem bản gốcTrả lời0
  • Ghim
Giao dịch tiền điện tử mọi lúc mọi nơi
qrCode
Quét để tải xuống ứng dụng Gate
Cộng đồng
Tiếng Việt
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)