Nền
Cách đây một thời gian, lần đầu tiên chúng ta biết về TON: Tài khoản, Token, Bảo mật giao dịch và tài sản thảo luận về các đặc điểm của TON và các vấn đề bảo mật tài sản của người dùng. Hôm nay, chúng ta hãy cùng tìm hiểu về một nền tảng blockchain hiệu suất cao mới nổi khác - Sui, nền tảng này có một số công nghệ tiên tiến và tính năng độc đáo, thu hút sự chú ý của các nhà phát triển và nhà nghiên cứu. Sui tập trung vào việc cung cấp trải nghiệm giao dịch nhanh chóng và an toàn, phù hợp với nhiều tình huống ứng dụng khác nhau. Bài viết này sẽ giúp người đọc hiểu về Sui bằng cách giải thích mô hình tài khoản, quản lý mã thông báo, cơ chế giao dịch và bảo mật tài sản của Sui.
Mẫu tài khoản
Địa chỉ
Sui tuân theo các thông số kỹ thuật ví được chấp nhận rộng rãi trong ngành tiền điện tử, bao gồm BIP-32 (và biến thể SLIP-0010), BIP-44 và BIP-39, để cung cấp khả năng quản lý khóa cho người dùng.
Để lấy được địa chỉ Sui 32 byte, Sui ghép cờ sơ đồ chữ ký (1 byte) với các byte khóa chung bằng cách sử dụng hàm băm BLAKE2b (đầu ra 256 bit). Các địa chỉ Sui hiện hỗ trợ Ed25519, Secp256k1, Secp256r1 và MultiSig thuần túy và các byte cờ tương ứng lần lượt là 0x00, 0x01, 0x02 và 0x03.
Cân bằng
Trên Sui, mọi thứ đều là một đối tượng , số dư của người dùng cũng là một đối tượng. Trong quá trình chuyển giao, nếu số dư chứa trong đối tượng không bằng giá trị yêu cầu thì cần tách hoặc sáp nhập các đối tượng. Ví dụ: nếu bạn có một đối tượng chứa 100 SUI, nhưng bạn chỉ muốn chuyển 30 SUI, hệ thống sẽ chia đối tượng này thành hai đối tượng: một đối tượng chứa 30 SUI và đối tượng kia chứa 70 SUI. Bạn có thể chuyển các đối tượng chứa 30 SUI và giữ lại các đối tượng còn lại. Ngược lại, nếu cần số lượng lớn hơn, bạn cũng có thể kết hợp nhiều vật cân để tạo thành vật có số lượng lớn hơn.
Quản lý Token
Sui chính thức triển khai mã chuẩn của Coin. Khi phát hành Coin, nhà phát triển chỉ cần nhập mã đó vào hợp đồng Gọi `use sui::coin;` để sử dụng tất cả các chức năng của thư viện chuẩn này.
Do sử dụng ngôn ngữ Move nên nó khác với các ngôn ngữ lập trình thông dụng khác trong blockchain (chẳng hạn như Solidity mà Nhà phát triển cần phải hiểu). và chú ý một số điều khi sử dụng nó. Để biết các chức năng hoặc tính năng độc đáo, hãy xem một đoạn mã:
Đây là một hợp đồng phát hành tiền xu hoàn chỉnh. Hợp đồng thông minh thiết kế trên Sui phù hợp với các khối như Ethereum hay Solana. Nền tảng chuỗi thì khác, chúng tôi không thể thấy việc quản lý quyền trong mã nguồn. Khi tạo Coin bằng chức năng này (coin::create_regulation_currency), người tạo hợp đồng sẽ nhận được đối tượng Kho bạc cần thiết để đúc Coin mới hoặc phá hủy Coin hiện có. Chỉ những địa chỉ có quyền truy cập vào đối tượng này mới có thể duy trì việc phát hành Coin.
Đối với người dùng nhận Coin, tài khoản của anh ta sẽ kiểm soát quyền sở hữu các mã thông báo này. Khi gọi hợp đồng thông minh để sử dụng các mã thông báo này, anh ta cũng cần phải nhập các mã thông báo này. đối tượng và ký kết giao dịch.
Cơ chế giao dịch
Giao dịch là khái niệm blockchain cơ bản A trên thế giới, đó là một cách để tương tác với blockchain. Giao dịch được sử dụng để thay đổi trạng thái của blockchain và là phương pháp duy nhất. Trong ngôn ngữ lập trình Move mà Sui sử dụng, các giao dịch được sử dụng để gọi các hàm trong gói, triển khai các gói mới và nâng cấp các gói hiện có.
Khi xây dựng giao dịch, bạn cần chú ý, mỗi giao dịch phải xác định rõ đối tượng mà nó thao tác! Điều này hơi giống với các giao dịch của Solana yêu cầu phải nhập tài khoản.
Nội dung có trong giao dịch:
Người gửi--tài khoản đã ký giao dịch
Danh sách hướng dẫn (hoặc hướng dẫn chain) -- Thao tác cần thực hiện
Nhập lệnh -- Tham số lệnh: văn bản thuần túy -- Một giá trị đơn giản, chẳng hạn như số hoặc chuỗi hoặc một đối tượng -- đối tượng mà giao dịch sẽ truy cập
Đối tượng Gas -- Đối tượng Coin được sử dụng để thanh toán cho giao dịch
Giá Gas và Ngân sách -- Chi phí giao dịch
Bảo đảm hợp đồng
Sui sử dụng Move làm ngôn ngữ lập trình cho hợp đồng thông minh, ở một mức độ nhất định có thể giải quyết các vấn đề về lỗ hổng thường gặp của Solidity, chẳng hạn như tấn công truy cập lại, tràn số nguyên, chi tiêu gấp đôi, DoS các cuộc tấn công và sự cố trình biên dịch, nhưng tránh Nhà phát triển không thể đưa lỗi vào mã, vì vậy việc kiểm tra bảo mật vẫn cần thiết. Sau đây là một số vấn đề mà nhà phát triển cần chú ý trong quá trình phát triển:
1. Kiểm tra quyền:Phân tích các đối tượng nhận được. theo loại hàm bên ngoài, đối với các hàm đặc quyền liên quan đến các hoạt động nhạy cảm, bạn cần đảm bảo rằng đối tượng được truyền vào là đối tượng đặc quyền. Nếu một hàm nhận và sử dụng một đối tượng đặc quyền thì người gọi hàm phải là chủ sở hữu hợp pháp của đối tượng đó.
2. Kiểm tra chức năng bên ngoài:Bản thân một số chức năng không nên được gọi trực tiếp ra bên ngoài Nếu có các giao diện chức năng không được hiển thị. bên ngoài, Nhà phát triển nên đề xuất rằng chức năng này không nên được công khai.
3. Kiểm tra phân tích đối tượng:Vì các đối tượng trong Sui có thể được chuyển đổi thành đối tượng công khai (Đối tượng dùng chung), nên các nhà phát triển Sắp xếp loại của tất cả các đối tượng được sử dụng, xác nhận xem chúng là tĩnh hay công khai và liệu có bất kỳ lỗi nào không. Nếu một đối tượng lẽ ra phải riêng tư lại được chuyển đổi thành đối tượng công khai thì bất kỳ ai cũng có thể sử dụng đối tượng đó, điều này gây ra rủi ro bảo mật.
4. Kiểm tra mức tiêu thụ tiền xu:Mô hình mã thông báo của Sui khác với các chuỗi khác. Thiết kế của nó cho phép các đối tượng mã thông báo được đưa vào và nắm giữ. bởi các đối tượng khác và cũng có thể được phân chia, dẫn đến một số chế độ sử dụng mã thông báo:
Chuyển trực tiếp đối tượng mã thông báo sang đối tượng khác;
Tạo đối tượng mới sau khi điều chỉnh cấu trúc của mã thông báo đối tượng, sau đó chuyển nó sang đối tượng đích;
Tách đối tượng mã thông báo và chuyển phần tách các phần cho đối tượng mới.
Do đó, trong trường hợp tiêu thụ token, nhà phát triển cần kiểm tra các điểm sau:
5. Cuộc tấn công thao túng giá của Oracle:If Sui If của bạn hợp đồng sử dụng oracle để lấy giá, bạn cũng cần chú ý đến khả năng thao túng giá. Các nhà phát triển có thể ngăn chặn nguy cơ thao túng một nguồn dữ liệu bằng cách giới thiệu nhiều nguồn dữ liệu và cơ chế đồng thuận. Ngoài ra, giá trung bình theo thời gian cũng có thể được sử dụng để ngăn ngừa rủi ro thao túng oracle.
6. Tấn công quản trị:Trong hợp đồng trên Sui, nếu quyền biểu quyết của mã thông báo quản trị không được thiết kế hợp lý, sẽ có cũng có thể gặp phải nguy cơ bị tấn công quản trị, bạn có thể tham khảo logic quản trị cộng đồng của một số tổ chức phi tập trung trưởng thành.
7. Tấn công chênh lệch giá:Nếu thiết kế logic không hợp lý, hợp đồng DeFi trên Sui cũng có nguy cơ bị tấn công chênh lệch giá. Nhà phát triển nên xem xét kỹ tính logic trong hợp đồng khi phát triển để tránh bị kẻ tấn công lợi dụng.
8. Tấn công tiền gửi giả: Khi xử lý tiền gửi Sui token, các sàn giao dịch hoặc nhà phát triển cũng cần chú ý kiểm tra trạng thái của giao dịch có thành công hay không và ID gói của mã thông báo có chính xác hay không để ngăn chặn các cuộc tấn công nạp tiền giả mạo.
Tóm tắt
Trong bài viết này, chúng tôi đã thảo luận ngắn gọn về Sui các tính năng thiết kế bao gồm mô hình tài khoản, quản lý mã thông báo, cơ chế giao dịch và bảo mật hợp đồng. Sử dụng ngôn ngữ lập trình Move, Sui không chỉ đảm bảo hiệu suất cao và độ trễ thấp mà còn giới thiệu các mô hình dữ liệu cải tiến và phương pháp lưu trữ đối tượng, cải thiện đáng kể tính bảo mật và tính linh hoạt. So với các nền tảng blockchain khác, ngôn ngữ Move hoạt động tốt trong việc ngăn chặn các lỗ hổng hợp đồng thông minh phổ biến (chẳng hạn như tràn, tấn công lại, v.v.), điều này giúp Sui trở nên mạnh mẽ và đáng tin cậy hơn ở cấp độ kỹ thuật. Tuy nhiên, các nhà phát triển vẫn cần chú ý đến bảo mật ở cấp độ logic nghiệp vụ, đặc biệt là về quản lý quyền, sử dụng loại đối tượng và mức tiêu thụ mã thông báo, đồng thời đề phòng tổn thất tài sản do lỗi hoặc thiết kế mã không đúng.
Liên kết tham khảo:
https://docs. sui.io/
https://docs.sui.io/standards/coin
https://move-book.com/