Move là một ngôn ngữ hợp đồng thông minh được thiết kế cho môi trường blockchain, có thể chạy trên các chuỗi hỗ trợ MoveVM. Thiết kế của nó đã xem xét các vấn đề an toàn của blockchain và hợp đồng thông minh, và đã tham khảo một số nguyên tắc thiết kế an toàn của Rust. Bài viết này sẽ phân tích tính an toàn của ngôn ngữ Move từ ba khía cạnh: đặc điểm ngôn ngữ, cơ chế hoạt động và công cụ xác minh.
1. Các tính năng bảo mật của ngôn ngữ Move
Ngôn ngữ Move cải thiện tính an toàn bằng cách từ bỏ một số tính linh hoạt, không hỗ trợ phân phối động và gọi ngoài đệ quy, mà thay vào đó sử dụng các khái niệm như kiểu tổng quát, lưu trữ toàn cầu, tài nguyên, v.v. để thực hiện các mô hình lập trình thay thế.
Các thành phần chính của Move bao gồm:
Mô-đun: bao gồm kiểu cấu trúc và định nghĩa quy trình
Cấu trúc: có thể được định nghĩa là loại tài nguyên, lưu trữ trong kho khóa giá trị toàn cầu
Quá trình: Định nghĩa logic hợp đồng
Lưu trữ toàn cầu của Move cho phép dữ liệu được lưu trữ lâu dài, chỉ có thể được đọc và ghi bằng cách lập trình bởi những người sở hữu mô-đun, nhưng có thể được xem trong sổ cái công cộng.
Move đảm bảo tính an toàn của mã nguồn trong quá trình biên dịch thông qua hai cơ chế:
Quy tắc bất biến: dùng để kiểm tra tĩnh, định nghĩa tính bảo toàn của trạng thái hệ thống
Trình xác thực bytecode: Thực thi kiểu an toàn và tuyến tính, ngăn chặn các thao tác bất hợp pháp
2. Cơ chế hoạt động của Move
Chương trình Move chạy trong máy ảo, không thể truy cập trực tiếp vào bộ nhớ hệ thống. Nó sử dụng mô hình thực thi theo kiểu ngăn xếp, phân chia bộ nhớ toàn cầu thành bộ nhớ ( ngăn xếp ) và biến toàn cầu ( ngăn xếp ).
Trạng thái của Move được cấu thành từ ngăn xếp gọi, bộ nhớ, biến toàn cục và các thao tác. Trong quá trình thực hiện, ngăn xếp gọi lưu giữ thông tin ngữ cảnh, việc nhảy tĩnh tránh việc phân phối động, do đó ngăn chặn các cuộc tấn công tái nhập.
MoveVM tách biệt lưu trữ dữ liệu và ngăn xếp gọi, khác với EVM. Thiết kế này cải thiện tính bảo mật và hiệu suất thực thi.
3. Di chuyển Prover
Move Prover là một công cụ xác minh hình thức, sử dụng thuật toán xác minh suy diễn để xác minh tính chính xác của chương trình. Quy trình làm việc của nó như sau:
Nhận tệp nguồn Move và quy định
Biên dịch thành mã byte và xác thực mô hình đối tượng
Chuyển đổi sang ngôn ngữ trung gian Boogie
Tạo điều kiện xác thực
Sử dụng trình giải Z3 để xác minh
Tạo báo cáo chẩn đoán
Ngôn ngữ đặc tả Move được sử dụng để mô tả các quy định của chương trình, có thể được viết độc lập với mã nghiệp vụ.
4. Tóm tắt
Move đã xem xét toàn diện trong thiết kế ngôn ngữ, thực thi máy ảo và công cụ bảo mật. Nó đã hy sinh một phần tính linh hoạt, nhưng cải thiện tính bảo mật và khả năng xác minh. Các lỗ hổng EVM phổ biến như tái nhập, tràn số có thể được tránh hiệu quả, nhưng vẫn cần chú ý đến các vấn đề như xác thực, logic và tràn số lớn.
Mặc dù Move cung cấp nhiều biện pháp bảo mật, nhưng vẫn khuyến nghị các nhà phát triển sử dụng dịch vụ kiểm toán an ninh của bên thứ ba và để việc soạn thảo và xác minh các quy định được thực hiện bởi các công ty an ninh chuyên nghiệp.
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.
26 thích
Phần thưởng
26
8
Đăng lại
Chia sẻ
Bình luận
0/400
CountdownToBroke
· 08-04 13:47
Lại là sao chép rust anh em, gần như tương đương với việc Tiểu Băng viết một phiên bản bị chơi đùa với mọi người.
Xem bản gốcTrả lời0
TerraNeverForget
· 08-03 01:26
Lại một lần nữa cuốn move đúng không? Vậy tôi cũng cuốn.
Xem bản gốcTrả lời0
DuckFluff
· 08-02 19:38
Và đã tham khảo một phần từ Rust, nhìn thấy mà đau đầu.
Xem bản gốcTrả lời0
SurvivorshipBias
· 08-01 22:52
Move quá an toàn, sau này đảng cá mập sẽ không có cái để ăn nữa.
Xem bản gốcTrả lời0
Ser_This_Is_A_Casino
· 08-01 22:50
Cảm giác move hơi cứng nhắc, còn cứng nhắc hơn cả rust.
Phân tích toàn diện về tính an toàn của ngôn ngữ Move: Đặc điểm ngôn ngữ, cơ chế hoạt động và công cụ xác minh
Phân tích về tính bảo mật của ngôn ngữ Move
Lời mở đầu
Move là một ngôn ngữ hợp đồng thông minh được thiết kế cho môi trường blockchain, có thể chạy trên các chuỗi hỗ trợ MoveVM. Thiết kế của nó đã xem xét các vấn đề an toàn của blockchain và hợp đồng thông minh, và đã tham khảo một số nguyên tắc thiết kế an toàn của Rust. Bài viết này sẽ phân tích tính an toàn của ngôn ngữ Move từ ba khía cạnh: đặc điểm ngôn ngữ, cơ chế hoạt động và công cụ xác minh.
1. Các tính năng bảo mật của ngôn ngữ Move
Ngôn ngữ Move cải thiện tính an toàn bằng cách từ bỏ một số tính linh hoạt, không hỗ trợ phân phối động và gọi ngoài đệ quy, mà thay vào đó sử dụng các khái niệm như kiểu tổng quát, lưu trữ toàn cầu, tài nguyên, v.v. để thực hiện các mô hình lập trình thay thế.
Các thành phần chính của Move bao gồm:
Lưu trữ toàn cầu của Move cho phép dữ liệu được lưu trữ lâu dài, chỉ có thể được đọc và ghi bằng cách lập trình bởi những người sở hữu mô-đun, nhưng có thể được xem trong sổ cái công cộng.
Move đảm bảo tính an toàn của mã nguồn trong quá trình biên dịch thông qua hai cơ chế:
Quy tắc bất biến: dùng để kiểm tra tĩnh, định nghĩa tính bảo toàn của trạng thái hệ thống
Trình xác thực bytecode: Thực thi kiểu an toàn và tuyến tính, ngăn chặn các thao tác bất hợp pháp
2. Cơ chế hoạt động của Move
Chương trình Move chạy trong máy ảo, không thể truy cập trực tiếp vào bộ nhớ hệ thống. Nó sử dụng mô hình thực thi theo kiểu ngăn xếp, phân chia bộ nhớ toàn cầu thành bộ nhớ ( ngăn xếp ) và biến toàn cầu ( ngăn xếp ).
Trạng thái của Move được cấu thành từ ngăn xếp gọi, bộ nhớ, biến toàn cục và các thao tác. Trong quá trình thực hiện, ngăn xếp gọi lưu giữ thông tin ngữ cảnh, việc nhảy tĩnh tránh việc phân phối động, do đó ngăn chặn các cuộc tấn công tái nhập.
MoveVM tách biệt lưu trữ dữ liệu và ngăn xếp gọi, khác với EVM. Thiết kế này cải thiện tính bảo mật và hiệu suất thực thi.
3. Di chuyển Prover
Move Prover là một công cụ xác minh hình thức, sử dụng thuật toán xác minh suy diễn để xác minh tính chính xác của chương trình. Quy trình làm việc của nó như sau:
Ngôn ngữ đặc tả Move được sử dụng để mô tả các quy định của chương trình, có thể được viết độc lập với mã nghiệp vụ.
4. Tóm tắt
Move đã xem xét toàn diện trong thiết kế ngôn ngữ, thực thi máy ảo và công cụ bảo mật. Nó đã hy sinh một phần tính linh hoạt, nhưng cải thiện tính bảo mật và khả năng xác minh. Các lỗ hổng EVM phổ biến như tái nhập, tràn số có thể được tránh hiệu quả, nhưng vẫn cần chú ý đến các vấn đề như xác thực, logic và tràn số lớn.
Mặc dù Move cung cấp nhiều biện pháp bảo mật, nhưng vẫn khuyến nghị các nhà phát triển sử dụng dịch vụ kiểm toán an ninh của bên thứ ba và để việc soạn thảo và xác minh các quy định được thực hiện bởi các công ty an ninh chuyên nghiệp.