Cảnh báo rủi ro: Đề phòng huy động vốn bất hợp pháp dưới danh nghĩa 'tiền điện tử' và 'blockchain'. — Năm cơ quan bao gồm Ủy ban Giám sát Ngân hàng và Bảo hiểm
Tìm kiếm
Đăng nhập
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
Xem thị trường
Giải thích chi tiết về tính linh hoạt trong mật mã Sui
SophonLabs
特邀专栏作者
2023-01-08 06:30
Bài viết này có khoảng 2876 từ, đọc toàn bộ bài viết mất khoảng 5 phút
Sui định nghĩa các nguyên hàm mật mã của nó dưới một bí danh loại thống nhất hoặc trình bao bọc enum được chia sẻ bởi toàn bộ kho lưu trữ. Các thay đổi đối với các nguyên hàm này ảnh hưởng đ

Sui đã thiết kế công nghệ cơ bản với tính linh hoạt của mật mã. Hệ thống hỗ trợ nhiều thuật toán mật mã và nguyên hàm mật mã (cryptographicPrimarys), và có thể nhanh chóng chuyển đổi giữa chúng. Các nhà phát triển không chỉ có thể chọn mật mã tốt nhất (mật mã khóa công khai) cho hệ thống của họ mà còn triển khai các thuật toán mới nhất (thuật toán có sẵn).

Sui định nghĩa các nguyên hàm mật mã của nó, chẳng hạn như khóa công khai, chữ ký, chữ ký tổng hợp và hàm băm, dưới một bí danh kiểu thống nhất hoặc trình bao bọc enum được chia sẻ trên kho lưu trữ. Thực hiện các thay đổi đối với các nguyên mẫu này sẽ ảnh hưởng đến tất cả các thành phần của ứng dụng. Các nhà phát triển có thể nhanh chóng cập nhật mật khẩu ứng dụng và đảm bảo tính bảo mật thống nhất.

Hiện tại, Sui hỗ trợ các sơ đồ chữ ký giao dịch người dùng sau thông qua điểm cuối giao dịch thực thi:

1.Pure Ed 25519 

2.Secp 256 k 1 ECDSA

Giao diện triển khai cặp khóa tài khoản người dùng

Dưới đây là bản demo biểu diễn cặp khóa trong Sui. Dễ dàng mở rộng sang các sơ đồ chữ ký mới:

1. Thêm nó vào enum (lớp enum)

2. Triển khai đặc điểm KeyPair được xác định trong thư viện fastcrypto

Chữ ký người dùng được sắp xếp theo thứ tự bằng cách mở rộng cờ 1 byte bổ sung xác định lược đồ chữ ký được liên kết. Mặc dù nhóm Sui đã cân nhắc việc sử dụng Đa định dạng (một giao thức dành cho dữ liệu tự mô tả), bản chất độ dài cờ thay đổi của nó khiến việc tuần tự hóa trở nên khó khăn. Thay vào đó, Sui sử dụng mô hình cờ bắt đầu bằng một byte. Các lược đồ chữ ký và các cờ tương ứng của chúng được định nghĩa như sau:

Khi người dùng gửi một giao dịch đã ký, việc thực hiện giao dịch sẽ chỉ định các tham số sau:

  1. BSC (Binary Canonical Serialization) tuần tự hóa các byte giao dịch thành Base 64

  2. Cờ lược đồ chữ ký (nhận dạng sơ đồ chữ ký), có thể được chuyển thành "ed 25519" hoặc "secp 256 k 1"

  3. Định dạng cơ sở 64 của khóa công khai

  4. Cơ sở 64 của chữ ký tương ứng với sơ đồ của nó

Đoạn mã sau thực hiện một giao dịch đã ký và curl trả về chứng chỉ và kết quả giao dịch nếu thành công.

Đoạn mã sau cho thấy cách nút đầy đủ của Sui tập hợp các trường yêu cầu API thành cờ chữ ký được đánh số thứ tự || chữ ký || khóa công khai và thực hiện kiểm tra xác minh trước khi thực hiện.


Phân tích lý do tại sao Sui hỗ trợ các sơ đồ chữ ký khác nhau

ECDSA sử dụng đường cong elip secp 256 k 1 được Bitcoin, Ethereum và các loại tiền điện tử khác áp dụng rộng rãi. Người dùng có thể thích sơ đồ chữ ký này vì họ muốn tận dụng các công cụ quản lý khóa ký quỹ và ví hiện có, chẳng hạn như chữ ký ngưỡng (được dịch là "chữ ký ngưỡng của hệ thống mật mã ngưỡng" trong mật mã trong nước) và đa chữ ký. Ngoài ra, nó có khả năng tương thích tốt hơn với các mô-đun bảo mật phần cứng và cơ sở hạ tầng đám mây (những mô-đun phổ biến như ví phần cứng cipher machine uk, v.v.) và hỗ trợ khôi phục khóa công khai từ tin nhắn và tải trọng chữ ký.

Trong khi đó, Ed 25519 là một sơ đồ chữ ký hiện đại hơn có chữ ký nhanh xác định và toán học đơn giản hóa. Mặc dù Typescript SDK hỗ trợ cả hai lược đồ chữ ký. Nhưng Sui vẫn chọn Ed 25519 làm thuật toán ví Sui được đề xuất.

Bởi vì Sui hỗ trợ các lược đồ chữ ký khác nhau, nên sẽ mất ít nỗ lực để thêm các lược đồ như ECDSA sau này bằng cách sử dụng đường cong secp 256 r 1 (còn được gọi là NIST-P 256 ), hiện là chìa khóa cho mật mã di động và tương lai. một đường cong phải được hỗ trợ và đó cũng là một chức năng thường được cộng đồng yêu cầu.

Hỗ trợ cho sơ đồ chữ ký linh hoạt này cũng cho phép hệ thống Sui được so sánh với sơ đồ chữ ký null không an toàn. Đối với một hệ thống thực thi nhanh như Sui, thiết kế song song của việc ký và xác minh cũng xảy ra ở cấp độ giao dịch, không chỉ ở cấp độ khối và tính linh hoạt của mật mã cho phép Sui kiểm tra chi phí mà các hoạt động mật mã mang lại cho hệ thống. Những kết quả điểm chuẩn này đã có thể cung cấp cho Sui việc xác định các nút thắt cổ chai và hướng để tối ưu hóa.

Cặp khóa ủy quyền

Cơ quan trên Sui (bộ xác thực) nắm giữ ba cặp khóa khác nhau:

  1. Cặp khóa giao thức Cặp khóa giao thức

  2. Cặp khóa tài khoản Cặp khóa tài khoản

  3. Cặp khóa mạng Cặp khóa mạng

Cặp khóa giao thức Cặp khóa giao thức

Cặp khóa giao thức cung cấp chữ ký được ủy quyền nếu giao dịch được ký bởi người dùng được xác minh. Sui sẽ thực hiện các giao dịch khi tỷ lệ cơ quan có thẩm quyền cung cấp chữ ký cho các giao dịch của người dùng vượt quá ngưỡng 2/3 yêu cầu. Lược đồ BLS 12381 hiện được chọn để nhanh chóng xác minh chữ ký tổng hợp cho một số cơ quan nhất định. Cụ thể, nó đã được quyết định sử dụng chế độ minSig BLS, theo đó mỗi khóa công khai riêng lẻ là 96 byte và chữ ký là 48 byte. Cái sau rất quan trọng bởi vì các trình xác nhận thông thường đăng ký khóa của họ một lần vào đầu mỗi kỷ nguyên và sau đó họ ký các giao dịch liên tục; do đó, Sui tối ưu hóa kích thước chữ ký tối thiểu.

Để ý! Sử dụng sơ đồ BLS, các chữ ký độc lập có thể được tổng hợp, dẫn đến một tải trọng có chữ ký BLS duy nhất. Sui cũng tổng hợp chữ ký cùng với một ảnh bitmap (bitmap) để thể hiện trình xác minh của chữ ký. Điều này giúp giảm hiệu quả kích thước chữ ký của cơ quan có thẩm quyền từ (2f + 1) × kích thước BLS_sig xuống chỉ còn một tải trọng BLS_sig, do đó có lợi thế về chi phí mạng trong việc nén chứng chỉ giao dịch độc lập với kích thước bộ xác thực.

Bí danh loại tài liệu chính được tập trung tại một vị trí duy nhất được sử dụng trong toàn bộ kho lưu trữ. Trên thực tế, chỉ bằng cách thay đổi bí danh (thay đổi tham số bí danh trong mã chữ ký tổng hợp khi sắp xếp theo thứ tự và truyền tham số), Sui của khóa giao thức đã được chuyển từ Ed 25519 sang BLS 12381.

Để giải quyết các cuộc tấn công khóa độc hại tiềm ẩn vào chữ ký tổng hợp BLS 12381, Proof of Key Knowledge (KOSK) được sử dụng trong quá trình đăng ký quyền hạn. Bằng chứng về quyền sở hữu được gửi và xác minh khi cơ quan có thẩm quyền yêu cầu được thêm vào bộ trình xác thực. Xác minh khóa giao thức kosk || khóa công khai giao thức || địa chỉ sui. Không giống như hầu hết các tiêu chuẩn, sơ đồ bằng chứng kiến ​​thức của Sui cũng được cam kết với các địa chỉ, giúp cung cấp khả năng bảo vệ bổ sung chống lại việc sử dụng lại khóa BLS của trình xác nhận một cách ác ý từ một trình xác nhận độc hại khác.

Chữ ký tổng hợp rất hữu ích trong hai tình huống:

Khi trình điều khiển đại biểu hình thành Giao dịch được chứng nhận từ Giao dịch đã ký được trả về từ nhiều cơ quan

Khi cơ quan có thẩm quyền hình thành SignedCheckpointSummary, mỗi cơ quan sẽ ký vào nội dung điểm kiểm tra

Cặp khóa tài khoản Cặp khóa tài khoản

Các tài khoản được các cơ quan quản lý sử dụng để nhận các khoản thanh toán phần thưởng đặt cược được bảo mật bằng các cặp khóa tài khoản, sử dụng Ed 25519 làm sơ đồ chữ ký.

Cặp khóa mạng Cặp khóa mạng

Khóa riêng tư được sử dụng để thực hiện bắt tay TLS mà QUIC yêu cầu đối với giao diện mạng chính và mạng công nhân của Narwhal. Khóa chung được sử dụng để xác minh ID nút và Ed 25519 được sử dụng làm lược đồ chữ ký.

Băm và mã hóa tính linh hoạt

Hiện tại, hàm băm mặc định của Sui là sha 3256 và các điểm chuẩn đang được chạy để so sánh với sha 256 và họ blake 2/blake 3. Để hỗ trợ tính linh hoạt của mã hóa, Base 64 và Hex xác định một tính năng mã hóa trong fastcrypto dưới dạng trình bao bọc xung quanh cơ sở 64 ct::Base 64 và hex cũng như xác thực và tuần tự hóa tùy chỉnh của nó. Đáng chú ý, thùng cơ sở 64 ct đã được chọn thay vì thùng Rust cơ sở 64 phổ biến nhất vì a) đó là thời gian không đổi và b) từ chối rõ ràng các mã hóa bị hỏng để ngăn chặn các cuộc tấn công dễ uốn khi giải mã. Các thành viên trong nhóm nghiên cứu của Sui gần đây đã báo cáo các vấn đề đáng ngạc nhiên về khả năng mở rộng trong hầu hết các thư viện bộ giải mã cơ sở 64, giành được Giải thưởng Người đăng bài xuất sắc nhất tại AsiaCCS 2022, một trong những hội nghị hàng đầu trong lĩnh vực mật mã và bảo mật.

Đoạn mã sau cho thấy cách cấu trúc trình bao bọc được triển khai trong fastcrypto:

Mã hóa linh hoạt theo xu hướng trong mật mã

Với tính linh hoạt về mật mã về các cặp khóa, chữ ký và hàm băm, Sui thuận tiện trong việc lựa chọn thư viện, sơ đồ chữ ký cơ bản, mã hóa và hàm băm. Điều này không chỉ cho phép Sui được cập nhật nhanh chóng nếu thư viện có lỗ hổng được phát hiện hoặc sơ đồ có lỗi, mà còn cho phép đo điểm chuẩn của toàn bộ hệ thống dựa trên các nguyên tắc mật mã được chọn làm tham số.

Sui
hợp đồng thông minh
Chào mừng tham gia cộng đồng chính thức của Odaily
Nhóm đăng ký
https://t.me/Odaily_News
Tài khoản chính thức
https://twitter.com/OdailyChina
Tóm tắt AI
Trở về đầu trang
Sui định nghĩa các nguyên hàm mật mã của nó dưới một bí danh loại thống nhất hoặc trình bao bọc enum được chia sẻ bởi toàn bộ kho lưu trữ. Các thay đổi đối với các nguyên hàm này ảnh hưởng đ
Thư viện tác giả
SophonLabs
Tải ứng dụng Odaily Nhật Báo Hành Tinh
Hãy để một số người hiểu Web3.0 trước
IOS
Android