Move là gì?
Move là một loại ngôn ngữ lập trình đặc biệt, ban đầu được tạo ra để xây dựng blockchain Diem. Dự án này do một tập hợp công ty công nghệ gọi là Diem Association hậu thuẫn, và được ủng hộ bởi Meta (trước đây là Facebook). Mặc dù dự án blockchain Diem đã không thành công và bị hủy bỏ, ngôn ngữ Move vẫn được sử dụng rộng rãi trong nhiều dự án khác.
Ngôn ngữ lập trình dựa trên bytecode
Move dựa trên cơ sở của mã bytecode, giúp hỗ trợ việc tạo và thực thi các hợp đồng thông minh và giao dịch tùy chỉnh trên các hệ thống blockchain. Mục tiêu cốt lõi của Move là giải quyết các vấn đề mà các ngôn ngữ lập trình blockchain khác như Solidity thường gặp phải. Mặc dù vậy, Move vẫn giữ vững mục tiêu chính, đó là đảm bảo tính hiếm có của tài sản kỹ thuật số cũng như quyền kiểm soát chúng.
Điểm đặc biệt của Move nằm ở khả năng quản lý việc sử dụng tài nguyên một cách chặt chẽ, dựa trên lý thuyết logic tuyến tính. Điều này đồng nghĩa rằng tài nguyên chỉ có thể được sử dụng một lần và không thể được sao chép hoặc loại bỏ một cách ngầm định. Điều này giúp các nhà phát triển mã hóa tạo ra các loại tài nguyên tùy chỉnh mà không cần lo lắng về việc bị xóa bỏ hoặc sao chép một cách không mong muốn, và chúng được xử lý một cách đặc biệt hơn so với các loại tài nguyên khác.
Hệ thống kiểu tĩnh và tính toán an toàn
Trong Move, có một hệ thống kiểu tĩnh mà mỗi biến phải được xác định với một loại dữ liệu cụ thể, giúp bảo vệ các tài nguyên quan trọng. Tuy nhiên, những biến này vẫn có thể được sử dụng như bình thường và có thể được lưu trữ trong các cấu trúc dữ liệu hoặc được sử dụng như giá trị trong các phép tính. Các tài nguyên cũng được thiết kế để có tính minh bạch và bảo mật trong các module (mô-đun), đồng thời được giấu khỏi bất kỳ nguồn gốc ngoại lệ nào.
Cấu trúc mô-đun
Cấu trúc mô-đun trong Move giống như cách chúng ta tổ chức các lớp, đối tượng và phương thức trong lập trình hướng đối tượng. Các mô-đun có khả năng được tách rời để kiểm tra tính chức năng và chúng giúp bảo vệ dữ liệu quan trọng và thực hiện các nhiệm vụ quan trọng đối với các tài nguyên.
Kiểm tra tính an toàn trên chuỗi
Move có khả năng kiểm tra tính an toàn trên chuỗi, tức là nó có khả năng đảm bảo rằng các giao dịch và hợp đồng thông minh hoạt động đúng cách mà không có lỗi. Đồng thời, Move cũng hỗ trợ các công cụ kiểm tra tính toán trước khi chúng được triển khai trên chuỗi, giúp giảm bớt sự phức tạp trong việc kiểm tra tính an toàn.
Thiết kế của Move dựa trên ba quyết định quan trọng:
- Không có việc gọi động: Điều này giúp tránh sự phức tạp của việc xây dựng biểu đồ gọi động động và cho phép xác định tĩnh của các điểm gọi một cách dễ dàng hơn.
- Mô-đun có tính tương đối: Các mô-đun được thiết kế để cô lập chức năng, giúp bảo vệ dữ liệu quan trọng và thực hiện các tác vụ quan trọng đối với các tài nguyên.
- Khả năng thay đổi hạn chế: Move cho phép sử dụng các loại tham chiếu tương tự như C++, giúp biến đổi giá trị Move một cách an toàn. Thông thường, các giá trị tạm thời được tạo ra và hủy bỏ trong quá trình chuyển đổi.
Sự khác biệt của Move so với các ngôn ngữ lập trình blockchain khác
Move nổi bật so với các ngôn ngữ lập trình blockchain khác ở một số khía cạnh quan trọng:
- Không có giới hạn trong việc định nghĩa các loại dữ liệu tùy chỉnh hoặc thủ tục.
- Move tích hợp chính sách kiểm soát truy cập vào ngữ cảnh ngôn ngữ.
- Không có hệ thống kiểu mặc định cho tài sản kỹ thuật số, khác biệt so với Bitcoin hoặc Ethereum.
- Cho phép tìm kiếm tài sản duy nhất có đại diện trong ngôn ngữ lập trình, giúp phát triển viên xem xét tính an toàn của tài sản tùy chỉnh của họ.
Nhờ vào các đặc điểm này, Move giúp xây dựng và quản lý các tài sản kỹ thuật số một cách dễ dàng và linh hoạt hơn, đồng thời tạo điều kiện cho việc tùy chỉnh kiểm soát truy cập.
Các thành phần của Move
Move có một số thành phần cơ bản hình thành cơ sở của nó:
- Kiểu dữ liệu: Các kiểu dữ liệu có thể là Boolean, số nguyên không dấu (64-bit), mảng byte có kích thước cố định và địa chỉ (256-bit).
- Cấu trúc: Có hai loại cấu trúc cụ thể: loại tài sản và loại tổng quát.
- Phương thức: Các phương thức có thể là công khai hoặc nội bộ.
- Trình xác minh bytecode: Dùng để kiểm tra tính an toàn trước khi mô-đun được công bố. Trước khi các chương trình trở thành chạy trên mạng, chúng phải trải qua trình xác minh và qua nhiều giai đoạn kiểm tra như kiểm tra kiểu, cân bằng ngăn xếp, kiểm tra tham chiếu, phát triển đồ thị điều khiển, liên kết tham chiếu và kiểm tra tài nguyên.
- Trình thông dịch bytecode: Theo sau quá trình xác minh và tương tự như Ethereum, trình thông dịch này sử dụng gas để đảm bảo rằng không có vòng lặp vô hạn.
- Máy ảo Move: Tương tự như các blockchain khác, với các khối chứa nhiều giao dịch và mỗi giao dịch được thực hiện để tạo ra hiệu ứng giao dịch. Hiệu ứng này tạo ra trạng thái toàn cầu được cập nhật của blockchain, với sự phân tách giữa hiệu ứng và quá trình chuyển trạng thái.
Các blockchain sử dụng ngôn ngữ Move
Sau khi dự án Diem bị hủy bỏ, nhiều blockchain khác đã bắt đầu sử dụng ngôn ngữ Move để xây dựng dự án của riêng họ. Các ví dụ bao gồm các blockchain Aptos và Sui. Điều này thể hiện sự linh hoạt và mạnh mẽ của Move trong việc phát triển các ứng dụng blockchain an toàn và hiệu quả.
Move là một ví dụ mẫu về cách ngôn ngữ lập trình phát triển nhanh chóng và đa dạng trong ngữ cảnh blockchain. Với khả năng quản lý tài nguyên, đảm bảo tính an toàn tính toán, và khả năng tạo ra các loại tài sản kỹ thuật số tùy chỉnh, Move hứa hẹn sẽ trở thành một công cụ quan trọng trong việc xây dựng các hệ thống blockchain tiên tiến và bảo mật trong tương lai.
Trả lời