Fiat Crypto là gì?
Fiat Crypto, thường được viết là Fiat-Crypto hoặc Fiat Cryptography, là một hệ thống mã nguồn mở dùng để tạo mã số học mật mã hiệu quả và được xác minh hình thức.Hệ thống được thiết kế để chuyển các mô tả toán học cấp cao thành các triển khai cấp thấp đi kèm với bằng chứng về tính đúng đắn được kiểm tra bằng máy.Dự án chủ yếu tập trung vào các phép toán số học được sử dụng trong mật mã đường cong elliptic, chữ ký số, trao đổi khóa, xác thực và các hệ thống mật mã khác.Phần mềm tiền mã hóa phụ thuộc nhiều vào loại phép toán này vì giao dịch blockchain được xác thực bằng chữ ký số và kiểm tra bằng các phép toán trên trường hữu hạn.Fiat Crypto không phải là tiền mã hóa, token, blockchain, stablecoin, ví, nền tảng giao dịch hay tài sản kỹ thuật số được bảo chứng bằng tiền pháp định.Trong tên gọi này, “fiat” được dùng theo nghĩa trong lĩnh vực ngôn ngữ lập trình, tức là tạo phần mềm từ các đặc tả, chứ không mang nghĩa tiền tệ do chính phủ phát hành.Kho lưu trữ Fiat-Crypto chính thức mô tả dự án là một hệ thống tổng hợp mã có tính đúng đắn theo thiết kế cho các thành phần mật mã cơ bản.
Dự án được phát triển thông qua các nghiên cứu liên quan đến nhóm Ngôn ngữ lập trình và Xác minh tại Viện Công nghệ Massachusetts.Mục tiêu cốt lõi của dự án là giảm nguy cơ xảy ra các lỗi số học khó phát hiện trong phần mềm mật mã trọng yếu về bảo mật.Vì sao số học mật mã khó triển khai?
Nhiều thuật toán mật mã dễ biểu diễn dưới dạng phương trình toán học nhưng khó triển khai hiệu quả trên bộ xử lý máy tính thực tế.Một đặc tả toán học có thể thực hiện phép toán trên các số nguyên dài hàng trăm bit.Thông thường, bộ xử lý phổ thông chỉ thao tác với các giá trị kích thước cố định nhỏ hơn nhiều, chẳng hạn như từ máy 32 bit hoặc 64 bit.Nhà phát triển phải chia một số lớn thành nhiều phần nhỏ hơn, đồng thời quản lý cẩn thận số nhớ, số mượn, kết quả phép nhân và phép rút gọn modulo.Một lỗi số nhớ hoặc thiếu bước rút gọn có thể tạo ra chữ ký sai, từ chối giao dịch hợp lệ, chấp nhận giá trị không hợp lệ hoặc làm lộ thông tin bí mật.Các triển khai nhanh nhất thường được viết thành những chuỗi dài gồm các phép toán số học cấp thấp.Con người có thể khó hiểu và kiểm thử toàn diện các đoạn mã này.Kiểm thử truyền thống có thể cho thấy mã hoạt động với một số đầu vào được chọn.Nhưng kiểm thử không thể chứng minh rằng triển khai hoạt động với mọi đầu vào hợp lệ có thể có.Fiat Crypto giải quyết vấn đề này bằng cách tạo mã từ các đặc tả toán học, đồng thời tạo bằng chứng có thể được máy kiểm tra rằng các phép toán trong mã được tạo tuân theo những đặc tả đó.“Đúng đắn theo thiết kế” nghĩa là gì?
“Đúng đắn theo thiết kế” có nghĩa là tính đúng đắn được tích hợp vào quy trình tạo phần mềm.Nhà phát triển bắt đầu bằng mô tả toán học về phép toán cần thực hiện.Hệ thống biến đổi mô tả đó qua một chuỗi bước biên dịch và tối ưu hóa đã được chứng minh.Mỗi bước đã xác minh đều bảo toàn ý nghĩa của phép toán ban đầu.Do đó, quy trình chứng minh hình thức kết nối thủ tục số học cuối cùng với đặc tả cấp cao.Cách tiếp cận này khác với việc tự viết mã tối ưu rồi tìm cách chứng minh mã đó đúng sau này.Cách này cũng có thể giảm khối lượng công việc chứng minh lặp lại khi hỗ trợ một mô-đun số nguyên tố mới hoặc kích thước từ máy mới.Bài nghiên cứu Simple High-Level Code for Cryptographic Arithmetic mô tả việc dự án sử dụng các chương trình cấp cao ngắn gọn và bằng chứng tính đúng đắn chức năng được máy kiểm tra.
Xác minh hình thức là gì?
Xác minh hình thức sử dụng logic toán học để chứng minh phần mềm đáp ứng các thuộc tính được nêu chính xác.Một trợ lý chứng minh kiểm tra từng chứng minh theo một tập hợp nhỏ các quy tắc logic đáng tin cậy.Fiat Crypto sử dụng trợ lý chứng minh Coq cho các đặc tả, chứng minh, thành phần trình biên dịch và quy trình tạo mã.Coq cho phép nhà phát triển định nghĩa các đối tượng toán học, viết chương trình, nêu định lý và xây dựng chứng minh để hệ thống kiểm tra bằng máy.Một chứng minh thành công không chỉ phụ thuộc vào việc chạy một tập hợp trường hợp kiểm thử.Nó xác lập thuộc tính đã được chứng minh cho mọi đầu vào nằm trong phạm vi của đặc tả hình thức và các giả định.Xác minh hình thức không chứng minh được mọi thuộc tính có thể tưởng tượng của một ứng dụng tiền mã hóa hoàn chỉnh.Nó chứng minh những mệnh đề cụ thể mà nhà phát triển đã xác định trong mô hình được xác minh.Fiat Crypto hoạt động như thế nào?
Fiat Crypto bắt đầu bằng mô tả cấp cao về số học modulo.Nhà phát triển xác định các thông tin như mô-đun số nguyên tố, kích thước từ máy xử lý, cách sắp xếp limb, chiến lược triển khai và các phép toán cần tạo.Hệ thống biểu diễn các phép toán trong Coq.Sau đó, hệ thống áp dụng các phép biến đổi đã được xác minh để đơn giản hóa biểu thức, tính giới hạn số an toàn, loại bỏ các phép toán không cần thiết và chuyển chương trình dần sang dạng số học trên từ máy.Chương trình sau biến đổi trở thành một biểu diễn nội bộ dạng tuần tự, tương tự C.Backend chuyển biểu diễn đó thành ngôn ngữ lập trình đích hoặc một ngôn ngữ trung gian khác đã được xác minh.Các hàm được tạo có thể bao gồm phép cộng, phép trừ, phép nhân, phép bình phương, xử lý số nhớ, lựa chọn có điều kiện và chuyển đổi byte.Sau khi được rà soát, tích hợp, biên dịch và kiểm thử phù hợp, mã kết quả có thể được đưa vào một thư viện mật mã lớn hơn.Số học modulo là gì?
Số học modulo thực hiện các phép tính trong đó những số chênh nhau một bội số của mô-đun được xem là tương đương.Đồng hồ là một ví dụ đơn giản: 13:00 và 1:00 biểu thị cùng một vị trí trên đồng hồ 12 giờ.Số học modulo trong mật mã sử dụng các mô-đun lớn hơn nhiều, thường là các số nguyên tố lớn.Giả sử các phép tính sử dụng mô-đun 17.Giá trị 20 tương đương với 3 vì lấy 20 trừ 17 sẽ được 3.Biểu thức có thể được viết là
Trường hữu hạn là gì?
Trường hữu hạn là một tập hợp hữu hạn các giá trị có các phép cộng, trừ, nhân và chia được xác định rõ.Các hệ thống mật mã thường sử dụng trường dựa trên số nguyên modulo một số nguyên tố lớn.Các giá trị nằm trong khoảng từ 0 đến nhỏ hơn số nguyên tố một đơn vị.Mọi giá trị khác 0 đều có nghịch đảo nhân trong trường.Các điểm trên đường cong elliptic được xác định bằng tọa độ có phép toán diễn ra trong trường hữu hạn.Do đó, hệ thống chữ ký số và thỏa thuận khóa phụ thuộc vào các phép toán trường hữu hạn chính xác.Fiat Crypto chủ yếu hỗ trợ tạo các thủ tục cấp thấp để thực hiện phép toán trên trường này.Limb là gì?
Limb là một phần có kích thước bằng từ máy của một số nguyên lớn hơn.Một phần tử trường 256 bit có thể được biểu diễn bằng bốn limb 64 bit.Một cách triển khai khác có thể sử dụng năm limb, mỗi limb chứa khoảng 51 bit.Để trống một số bit trong mỗi limb có thể tạo không gian cho số nhớ và kết quả trung gian.Cách sắp xếp limb phù hợp nhất phụ thuộc vào mô-đun, bộ xử lý, lệnh nhân, chiến lược rút gọn và hiệu năng mong muốn.Chọn giới hạn không phù hợp có thể khiến kết quả trung gian vượt quá phạm vi của kiểu dữ liệu máy.Fiat Crypto tính toán và chứng minh các giới hạn của giá trị số học khi chúng đi qua thủ tục được tạo.Rút gọn modulo là gì?
Rút gọn modulo chuyển một số trung gian lớn thành giá trị tương đương nằm trong phạm vi modulo dự kiến.Phép nhân hai giá trị 256 bit có thể tạo ra giá trị trung gian cần đến 512 bit.Triển khai phải rút gọn giá trị đó theo mô-đun nguyên tố đã chọn.Phép chia tổng quát có thể chậm và không đảm bảo đặc tính thời gian phù hợp.Vì vậy, các triển khai mật mã sử dụng phương pháp rút gọn chuyên biệt dựa trên cấu trúc của mô-đun.Fiat Crypto hỗ trợ nhiều chiến lược triển khai để tạo mã rút gọn hiệu quả.Các chiến lược số học được hỗ trợ
Số học Solinas bão hòa
Biểu diễn bão hòa sử dụng các limb chiếm gần hết hoặc toàn bộ phạm vi từ máy có sẵn.Số học kiểu Solinas tận dụng các số nguyên tố có thể biểu diễn bằng lũy thừa của 2 và một số ít số hạng bổ sung.Cấu trúc này có thể giúp phép rút gọn nhanh hơn phép chia tổng quát.Số học Solinas không bão hòa
Biểu diễn không bão hòa để trống một số bit ở phần trên của mỗi limb.Khoảng trống bổ sung cho phép thực hiện nhiều phép toán trước khi cần xử lý số nhớ hoặc rút gọn đầy đủ.Số học trường của Curve25519 thường sử dụng năm limb, mỗi limb khoảng 51 bit, trên máy 64 bit.Số học Montgomery từng từ
Số học Montgomery biểu diễn giá trị trong một miền đặc biệt, cho phép nhân modulo mà không cần phép chia thông thường cho mô-đun.Phép rút gọn Montgomery từng từ xử lý kết quả theo từng phần có kích thước bằng từ máy.Cách tiếp cận này có thể hỗ trợ các mô-đun lẻ tổng quát không có dạng Solinas thuận tiện.Phép nhân Dettman
Phép nhân kiểu Dettman là kỹ thuật triển khai liên quan đến số học hiệu quả cho một số biểu diễn trường nguyên tố nhất định.Kỹ thuật này tổ chức phép nhân và phép rút gọn để tận dụng mô-đun và cấu trúc limb.Phép rút gọn Solinas
Phép rút gọn Solinas sử dụng các quan hệ đặc biệt giữa lũy thừa của 2 và số nguyên tố được chọn.Các phần cao của số trung gian có thể được gộp trở lại các vị trí thấp hơn bằng những quan hệ đó.Chuyển đổi cơ số
Chuyển đổi cơ số thay đổi cách một giá trị trường được chia thành các limb.Việc này có thể cần thiết khi hai phần của hệ thống mật mã sử dụng các biểu diễn nội bộ khác nhau.Kho lưu trữ hiện tại mô tả các chiến lược này thông qua giao diện tạo mã thống nhất
Fiat Crypto có thể tạo những phép toán nào?
Fiat Crypto có thể tạo các thủ tục cộng và trừ modulo.Hệ thống có thể tạo các thủ tục nhân và bình phương.Hệ thống có thể tạo các hàm xử lý số nhớ và rút gọn để đưa giá trị về phạm vi chấp nhận được.Hệ thống có thể tạo phép phủ định và phép nhân với các hằng số được chọn.Hệ thống có thể tạo các hàm lựa chọn có điều kiện được thiết kế để tránh các nhánh thông thường phụ thuộc vào giá trị bí mật.Hệ thống có thể tạo các hàm chuyển đổi giữa limb nội bộ và chuỗi byte theo chuẩn.Các hàm cụ thể có sẵn phụ thuộc vào chiến lược được chọn và tùy chọn dòng lệnh.Một triển khai chữ ký hoặc trao đổi khóa hoàn chỉnh cần thêm các phép toán nhóm, hàm băm, tạo nonce, xác thực giao thức và logic ứng dụng ngoài các thủ tục trường này.Fiat Crypto hỗ trợ những số nguyên tố mật mã nào?
Fiat Crypto được thiết kế để tạo phép toán cho nhiều mô-đun nguyên tố chứ không chỉ hỗ trợ một đường cong cố định.Kho lưu trữ chính thức có các ví dụ tạo mã cho số nguyên tố
Các ví dụ tạo mã Bedrock2 bao gồm số nguyên tố
Vì sao secp256k1 liên quan đến Fiat Crypto?
secp256k1 là một đường cong elliptic được một số giao thức tiền mã hóa lớn sử dụng.Ví dùng khóa riêng tư secp256k1 để tạo chữ ký xác thực các giao dịch blockchain.Các node xác minh chữ ký trước khi chấp nhận giao dịch là hợp lệ.Các phép tính tọa độ của đường cong phụ thuộc vào phép toán modulo một số nguyên tố 256 bit cụ thể.Lỗi trong phép toán trường này có thể tạo ra điểm, chữ ký hoặc kết quả xác minh không chính xác.Việc Fiat Crypto hỗ trợ phép toán liên quan đến secp256k1 khiến dự án có ý nghĩa đối với nghiên cứu triển khai blockchain và phần mềm ví có mức độ đảm bảo cao.Dự án nghiên cứu CryptOpt liên quan cũng đã kết nối mã trung gian đã xác minh của Fiat Cryptography với việc tạo mã assembly tối ưu, bao gồm công trình về phép toán secp256k1.
Fiat Crypto và mật mã đường cong elliptic
Mật mã đường cong elliptic sử dụng các điểm thỏa mãn một phương trình đại số trên trường hữu hạn.Khóa công khai được tạo bằng cách nhân một điểm trên đường cong với một scalar bí mật.Việc tạo và xác minh chữ ký sử dụng lặp lại phép cộng điểm, phép nhân đôi, phép nhân scalar và các phép toán trường.Fiat Crypto cung cấp nền tảng đã được xác minh cho một số phép toán bên dưới các thuật toán cấp cao hơn này.Kho lưu trữ cũng có các chứng minh và định nghĩa cho biểu diễn đường cong Edwards, Montgomery và Weierstrass.Chỉ riêng phép toán trường chính xác không chứng minh rằng toàn bộ giao thức đường cong elliptic an toàn.Đường cong, xác thực điểm, xử lý scalar, tạo nonce, xây dựng chữ ký và phần mềm xung quanh cũng phải chính xác.Fiat Crypto hỗ trợ những ngôn ngữ lập trình nào?
Kho lưu trữ hiện tại duy trì backend C chính.Dự án cũng hỗ trợ luồng Bedrock2/C với phạm vi chứng minh mạnh hơn về mối liên hệ giữa cây cú pháp nội bộ và Bedrock2.Các backend do cộng đồng hoặc bên ngoài duy trì bao gồm Go, Rust và Zig.Backend JSON được mô tả là đang thử nghiệm.Kho lưu trữ cho biết backend Java không được bảo trì và có các vấn đề đã biết.Trạng thái backend có thể thay đổi, vì vậy nhà phát triển nên xem bảng trạng thái backend hiện tại trước khi chọn mã được tạo.
Dự án nêu rõ rằng không đảm bảo chất lượng như nhau cho mọi backend.Trình biên dịch được tạo như thế nào?
Các định nghĩa và phép biến đổi đã xác minh được viết trong Coq.Fiat Crypto có thể trích xuất mã trình biên dịch có thể thực thi sang OCaml hoặc Haskell.Chương trình dòng lệnh sau đó nhận các tham số mô tả cách triển khai phép toán.Chương trình xuất mã nguồn được tạo ra vào đầu ra tiêu chuẩn.Cách tiếp cận này cho phép người dùng chạy quy trình tạo mã mà không cần tải toàn bộ trợ lý chứng minh cho mỗi yêu cầu tạo mã.Quá trình phát triển chứng minh xác lập các thuộc tính của những phép biến đổi dùng để trích xuất trình biên dịch có thể thực thi.Người dùng xây dựng toàn bộ kho lưu trữ vẫn cần các phần phụ thuộc Coq, OCaml, hệ thống build và gói thư viện được tài liệu hóa.Fiat Crypto chứng minh điều gì?
Fiat Crypto được thiết kế để chứng minh tính đúng đắn chức năng của phép toán được tạo so với các đặc tả hình thức.Tính đúng đắn chức năng có nghĩa là phép toán được tạo tính ra kết quả toán học dự kiến với các đầu vào thỏa mãn tiền điều kiện được ghi rõ.Hệ thống cũng xét đến phạm vi số để bảo đảm các giá trị trung gian nằm trong kích thước số nguyên máy được chọn.Các bước biên dịch và viết lại đã xác minh được thiết kế để bảo toàn ý nghĩa của biểu thức.Phạm vi chứng minh đầu cuối chính xác phụ thuộc vào backend và luồng tích hợp.Kho lưu trữ cho biết backend Bedrock2 có chứng minh kết nối cây cú pháp trừu tượng Bedrock2 với cây cú pháp trừu tượng nội bộ.Các backend chuyển đổi chuỗi sang ngôn ngữ khác hiện không có cùng phạm vi chứng minh.Điều này rất quan trọng khi đánh giá các tuyên bố rằng mã nguồn được tạo đã được xác minh hoàn toàn.Fiat Crypto không chứng minh điều gì?
Fiat Crypto không chứng minh rằng mọi ví, node blockchain, hợp đồng thông minh hay ứng dụng xung quanh đều an toàn.Hệ thống không tự động chứng minh giao thức mật mã an toàn trước mọi cuộc tấn công toán học.Hệ thống không chứng minh khóa riêng tư được tạo bằng nguồn ngẫu nhiên đủ tốt.Hệ thống không ngăn nhà phát triển truyền tham số không hợp lệ hoặc sử dụng sai các hàm được tạo.Hệ thống không đảm bảo mọi trình biên dịch, trình liên kết, hệ điều hành, bộ xử lý hoặc thiết bị phần cứng đều bảo toàn mọi thuộc tính dự kiến.Hầu hết backend đầu ra không có quy trình chuyển đổi được chứng minh đầy đủ từ biểu diễn nội bộ sang văn bản mã nguồn cuối cùng.Kho lưu trữ cũng lưu ý rằng cách xử lý biểu thức số nguyên của trình biên dịch C thông thường vẫn thuộc môi trường đáng tin cậy hoặc cần được rà soát riêng.Do đó, nên hiểu xác minh hình thức là một mức đảm bảo mạnh và có phạm vi xác định chính xác, chứ không phải một bảo đảm toàn diện.Fiat Crypto có đảm bảo thời gian thực thi hằng định không?
Mã mật mã thường cần tránh luồng điều khiển và mẫu truy cập bộ nhớ phụ thuộc vào giá trị bí mật.Kỷ luật lập trình này thường được gọi là lập trình thời gian hằng định.Phép toán tuần tự được tạo và các hàm chọn có điều kiện có thể hỗ trợ triển khai thời gian hằng định.Tuy nhiên, hành vi thời gian thực tế phụ thuộc vào backend được tạo, trình biên dịch, bộ xử lý đích, mã xung quanh và vi kiến trúc.Chứng minh tính đúng đắn chức năng không tự động là chứng minh hoàn chỉnh chống lại mọi cuộc tấn công dựa trên thời gian, cache, năng lượng, điện từ, thực thi suy đoán hoặc tiêm lỗi.Nhà phát triển phải rà soát mức đảm bảo cụ thể của quy trình đã chọn và tiến hành kiểm thử, phân tích kênh kề phù hợp.Fiat Crypto so với mã mật mã viết thủ công
Mã mật mã viết thủ công có thể rất nhanh nếu được một chuyên gia giàu kinh nghiệm tạo ra.Tuy nhiên, mã cũng có thể chứa lỗi khó phát hiện qua quy trình rà soát thông thường.Một triển khai thủ công thường cần công sức riêng cho từng số nguyên tố, kích thước từ máy, bộ xử lý và biểu diễn số học.Fiat Crypto tự động hóa phần lớn quá trình chuyên biệt hóa này dựa trên một khung toán học có thể tái sử dụng.Mã được tạo có thể dễ tái tạo hơn khi giả định hoặc mục tiêu thay đổi.Hiệu năng vẫn cần được đo trên nền tảng đích thực tế.Trong một số môi trường chuyên biệt, assembly được viết cẩn thận vẫn có thể nhanh hơn C được tạo thông thường.Các dự án như CryptOpt nghiên cứu cách mở rộng nền tảng đã xác minh của Fiat Crypto để tạo assembly tối ưu cao.Fiat Crypto so với kiểm thử truyền thống
Kiểm thử so sánh kết quả thực tế với kết quả mong đợi cho một tập hợp hữu hạn các ví dụ.Xác minh hình thức chứng minh một thuộc tính được xác định cho toàn bộ phạm vi đầu vào nằm trong định lý.Kiểm thử vẫn hữu ích vì có thể phát hiện vấn đề tích hợp, build, nền tảng, tuần tự hóa và hiệu năng nằm ngoài phạm vi chứng minh hình thức.Kho lưu trữ Fiat Crypto kiểm thử mã C được tạo bằng một bộ kiểm thử mật mã đã được sử dụng rộng rãi.Mã Rust đầu ra được kiểm thử bằng bộ kiểm thử của một thư viện mật mã riêng.Vì vậy, chứng minh hình thức và kiểm thử thực tế bổ trợ cho nhau chứ không thay thế lẫn nhau.Fiat Crypto so với tiền pháp định
Tiền pháp định là tiền do chính phủ phát hành, chẳng hạn như đô la, euro hoặc yen.Fiat Crypto là dự án xác minh phần mềm và tạo mã.Dự án không phát hành tiền hoặc gắn token với một đồng tiền quốc gia.Dự án không cung cấp thanh toán ngân hàng, thanh toán thẻ, nạp tiền pháp định hoặc mua tiền mã hóa.Tìm kiếm “fiat crypto” có thể trả về thông tin về việc đổi tiền do chính phủ phát hành sang tiền mã hóa.Ý nghĩa tài chính đó không liên quan đến dự án phần mềm Fiat-Crypto.Fiat Crypto so với chuyển đổi tiền pháp định sang tiền mã hóa
Chuyển đổi tiền pháp định sang tiền mã hóa là việc đổi tiền do chính phủ phát hành thành tiền mã hóa hoặc tài sản kỹ thuật số.Dịch vụ on-ramp tiền pháp định sang tiền mã hóa có thể xử lý chuyển khoản ngân hàng, thẻ thanh toán, xác minh danh tính, chuyển đổi tiền tệ và chuyển tài sản lên blockchain.Fiat Crypto tạo các triển khai phép toán mật mã.Dự án không vận hành dịch vụ on-ramp hay off-ramp.Cần phân biệt hai khái niệm này vì tên gọi tương tự nhau nhưng đề cập đến các lĩnh vực hoàn toàn khác nhau trong hệ sinh thái tiền mã hóa.Fiat Crypto so với phép biến đổi Fiat–Shamir
Phép biến đổi Fiat–Shamir chuyển một số giao thức chứng minh tương tác thành chứng minh hoặc chữ ký không tương tác.Tên gọi này bắt nguồn từ các nhà mật mã học Amos Fiat và Adi Shamir.Fiat Crypto là một dự án phương pháp hình thức riêng biệt nhằm tổng hợp mã số học mật mã.Cả hai đều thuộc lĩnh vực mật mã nhưng giải quyết các vấn đề khác nhau.Fiat–Shamir liên quan đến tương tác giao thức và tạo thử thách.Fiat Crypto tập trung vào triển khai đã xác minh các phép toán toán học cấp thấp.Fiat Crypto so với thư viện mật mã
Thư viện mật mã hoàn chỉnh cung cấp API sẵn dùng cho chữ ký, mã hóa, hàm băm, trao đổi khóa, chứng chỉ và các giao thức khác.Fiat Crypto chủ yếu là một framework tạo mã và chứng minh cho các thành phần số học.Đầu ra của dự án có thể được tích hợp vào một thư viện rộng hơn.Thư viện rộng hơn vẫn chịu trách nhiệm về logic giao thức, giao diện công khai, quản lý bộ nhớ, tính ngẫu nhiên, xác thực đầu vào, xử lý lỗi và lưu trữ khóa an toàn.Nhà phát triển không nên xem một thủ tục nhân được tạo là một triển khai chữ ký hoàn chỉnh.Fiat Crypto so với trình biên dịch đa dụng
Trình biên dịch đa dụng tiếp nhận các chương trình bao gồm nhiều loại phép tính.Fiat Crypto là hệ thống chuyên biệt theo lĩnh vực, tập trung vào số học mật mã.Phạm vi tập trung này cho phép hệ thống tận dụng kiến thức toán học về trường nguyên tố, limb, số nhớ và phép rút gọn modulo.Hệ thống có thể chuyên biệt hóa mã bằng những thông tin mà trình biên dịch đa dụng có thể không suy ra được từ mã nguồn thông thường.Mã C hoặc ngôn ngữ khác được tạo vẫn có thể được biên dịch bằng trình biên dịch đa dụng sau đó.Do đó, luồng đáng tin cậy hoàn chỉnh bao gồm cả quy trình tạo mã Fiat Crypto và chuỗi công cụ build tiếp theo.Vì sao Fiat Crypto quan trọng đối với bảo mật blockchain?
Các giao thức blockchain đặt tài sản có giá trị dưới quyền kiểm soát của khóa mật mã.Lỗi số học trên trường có thể làm suy yếu chữ ký số ngay cả khi các quy tắc kinh tế của blockchain chính xác.Node có thể xử lý khóa công khai, chữ ký, bằng chứng và dữ liệu giao dịch không đáng tin cậy nhận được từ mạng.Vì vậy, triển khai mật mã phải xử lý chính xác mọi trường hợp biên được phép.Phương pháp hình thức có thể cung cấp bằng chứng mạnh hơn kiểm thử thông thường cho các thủ tục số học có không gian đầu vào khổng lồ.Fiat Crypto cũng giúp tạo các triển khai nhất quán cho nhiều kích thước bộ xử lý và trường nguyên tố khác nhau.Điều này có thể giúp giảm sự phụ thuộc vào một nhóm nhỏ chuyên gia phải viết lại thủ công các đoạn mã số học phức tạp.Ví tiền mã hóa có thể hưởng lợi từ Fiat Crypto như thế nào?
Ví tạo khóa công khai và chữ ký bằng phép toán mật mã.Ví di động có thể cần mã an toàn và hiệu quả trên bộ xử lý 32 bit hoặc 64 bit.Ví phần cứng có thể bị giới hạn nghiêm ngặt về bộ nhớ, thời gian và bộ xử lý.Các thủ tục trường được tạo có thể cung cấp nền tảng đã xác minh cho hoạt động khóa và chữ ký.Nhà phát triển ví vẫn phải xác thực khóa công khai, bảo vệ khóa bí mật, tạo nonce an toàn và ngăn rò rỉ kênh kề.Lỗi giao diện người dùng và phân tích giao dịch cũng nằm ngoài phạm vi chứng minh số học.Node blockchain có thể hưởng lợi từ Fiat Crypto như thế nào?
Node blockchain có thể cần xác minh hàng nghìn chữ ký hoặc bằng chứng mật mã.Hiệu năng rất quan trọng vì xác minh kém hiệu quả có thể làm giảm thông lượng giao dịch và tăng yêu cầu phần cứng.Tính đúng đắn cũng quan trọng không kém vì các node phải đưa ra cùng một kết quả xác định tính hợp lệ.Một bất đồng số học hiếm gặp có thể gây lỗi đồng thuận nếu một số triển khai chấp nhận giao dịch trong khi số khác từ chối.Số học đã xác minh có thể giảm một nguồn gây bất đồng giữa các triển khai.Node vẫn cần kiểm thử đồng thuận, đặc tả giao thức, bảo mật mạng, an toàn cơ sở dữ liệu và rà soát toàn bộ triển khai.Hệ thống zero-knowledge có thể hưởng lợi như thế nào?
Hệ thống chứng minh zero-knowledge thực hiện lượng lớn phép toán trên trường hữu hạn.Prover và verifier có thể sử dụng nhiều trường nguyên tố khác nhau.Phép toán trường sai có thể tạo ra bằng chứng không hợp lệ, từ chối nhầm hoặc gây ra lỗi bảo mật nghiêm trọng.Trình tạo mã chuyên biệt hóa phép toán theo mô-đun của hệ thống chứng minh có thể cải thiện tính di động và mức độ đảm bảo.Fiat Crypto không tự động tạo ra một hệ thống chứng minh zero-knowledge hoàn chỉnh.Cam kết đa thức, cách xây dựng transcript, phương trình chứng minh, logic mạch và các giả định mật mã cần được triển khai và chứng minh riêng.Cách sử dụng Fiat Crypto an toàn
Nhà phát triển nên bắt đầu từ kho lưu trữ chính thức và đọc tài liệu build cùng tài liệu backend hiện tại.Họ nên chọn chiến lược số học được hỗ trợ, phù hợp với mô-đun và kiến trúc đích.Mã được tạo cần được kiểm tra, biên dịch bằng các thiết lập được hỗ trợ và đối chiếu với các vector kiểm thử độc lập có kết quả đã biết.Phạm vi chứng minh và hạn chế của backend nên được ghi lại trong quy trình rà soát bảo mật của ứng dụng sử dụng mã.Nhà phát triển nên kiểm thử đầu vào sai định dạng, giá trị biên, số nhớ tối đa, giá trị 0 và mã hóa không chuẩn tắc.Hành vi kênh kề cần được đánh giá trên tổ hợp trình biên dịch và phần cứng thực tế.Các bản cập nhật cho trình tạo mã, trợ lý chứng minh, trình biên dịch hoặc backend cần được kiểm thử và rà soát lại.Nhóm vận hành thực tế không nên xem cụm từ “đã xác minh hình thức” là lý do để bỏ qua kiểm toán tích hợp.Ưu điểm của Fiat Crypto
Fiat Crypto cung cấp bằng chứng tính đúng đắn chức năng được máy kiểm tra cho các phép biến đổi số học quan trọng.Hệ thống có thể tạo triển khai cho nhiều mô-đun nguyên tố và kích thước từ máy.Hệ thống giảm công việc thủ công lặp lại khi tạo phép toán trường tối ưu.Các đặc tả cấp cao dễ suy luận hơn hàng nghìn phép toán cấp thấp viết thủ công.Dự án là mã nguồn mở và có thể được kiểm tra độc lập.Dự án hỗ trợ tạo mã có thể tái lập thay vì chỉ dựa vào các tệp số học sao chép không rõ nguồn gốc.Các thủ tục được tạo đã được kết nối với phần mềm mật mã được sử dụng rộng rãi và các bộ kiểm thử mở rộng.Hạn chế của Fiat Crypto
Fiat Crypto chỉ bao phủ một phần của toàn bộ ngăn xếp phần mềm mật mã.Mức bảo đảm trong chứng minh khác nhau tùy backend.Việc build và sửa đổi quá trình phát triển chứng minh đòi hỏi kiến thức chuyên môn về Coq, phương pháp hình thức, trình biên dịch và số học mật mã.Mã nguồn được tạo vẫn phải đi qua trình biên dịch thông thường và chuỗi công cụ của nền tảng.Tính đúng đắn chức năng không tự động chứng minh khả năng chống lại mọi kênh kề.Hiệu năng có thể khác nhau tùy bộ xử lý và trình biên dịch.Tham số không được hỗ trợ hoặc backend không được bảo trì có thể tạo thêm rủi ro.Một triển khai đúng hình thức của thiết kế mật mã không an toàn vẫn không an toàn.Những hiểu lầm thường gặp về Fiat Crypto
Fiat Crypto không phải là tiền mã hóa.Dự án không liên quan đến tiền pháp định do chính phủ phát hành.Dự án không chuyển tiền mặt thành tài sản kỹ thuật số.Fiat Crypto không phải là phép biến đổi Fiat–Shamir.Dự án không tự động tạo các ứng dụng blockchain hoàn chỉnh.Dự án không chứng minh rằng mọi chương trình sử dụng đầu ra của hệ thống đều an toàn.Dự án không loại bỏ nhu cầu kiểm thử và rà soát mã.Dự án không cung cấp mức đảm bảo chứng minh giống nhau cho mọi backend ngôn ngữ được hỗ trợ.Dự án không thể khiến khóa yếu, giao thức không an toàn hoặc giao diện ví thiếu an toàn trở nên an toàn.Câu hỏi thường gặp
Fiat Crypto là gì?
Fiat Crypto là dự án mã nguồn mở tạo mã số học mật mã hiệu quả từ các đặc tả cấp cao, đi kèm bằng chứng tính đúng đắn được máy kiểm tra.Fiat Crypto có phải là tiền mã hóa không?
Không. Đây là dự án xác minh phần mềm và tạo mã, không phải tài sản kỹ thuật số.Fiat Crypto có liên quan đến tiền pháp định không?
Không. Dự án không phát hành, xử lý hoặc chuyển đổi tiền tệ do chính phủ phát hành.Fiat Crypto có giống Fiat Cryptography không?
Có. Fiat-Crypto và Fiat Cryptography là những tên gọi thường dùng cho cùng một dự án và hướng nghiên cứu.Ai phát triển Fiat Crypto?
Dự án phát triển từ các nghiên cứu về xác minh hình thức và triển khai mật mã gắn với nhóm Ngôn ngữ lập trình và Xác minh của MIT cùng các cộng tác viên bên ngoài.Fiat Crypto sử dụng trợ lý chứng minh nào?
Dự án sử dụng Coq để định nghĩa đặc tả, triển khai phép biến đổi và kiểm tra các chứng minh tính đúng đắn.Fiat Crypto tạo loại mã nào?
Dự án chủ yếu tạo các thủ tục số học modulo cấp thấp cho trường hữu hạn mật mã.Fiat Crypto có tạo mã C không?
Có. C là một trong những mục tiêu đầu ra chính được duy trì.Fiat Crypto có hỗ trợ Rust không?
Kho lưu trữ có backend Rust do bên ngoài duy trì cùng hoạt động kiểm thử mã được tạo.Fiat Crypto có hỗ trợ Go không?
Có. Kho lưu trữ liệt kê backend Go do bên ngoài duy trì.Fiat Crypto có hỗ trợ Zig không?
Có. Zig được liệt kê là backend do bên ngoài duy trì, với mã được tạo sử dụng trong kiểm thử.Backend Java có được khuyến nghị không?
Kho lưu trữ hiện tại cho biết backend Java không được bảo trì và có các vấn đề đã biết.Trường hữu hạn là gì?
Trường hữu hạn là một tập hợp hữu hạn các giá trị có các phép toán số học được nhiều thuật toán mật mã sử dụng.Limb là gì?
Limb là một phần có kích thước bằng từ máy của một số nguyên mật mã lớn hơn.Rút gọn modulo là gì?
Rút gọn modulo chuyển kết quả số học thành một giá trị tương đương theo một mô-đun được chọn.Số học Montgomery là gì?
Số học Montgomery sử dụng cách biểu diễn số đặc biệt để thực hiện phép nhân modulo hiệu quả mà không cần phép chia thông thường cho mô-đun.Số học Solinas là gì?
Số học Solinas tận dụng các mô-đun nguyên tố có dạng cho phép rút gọn hiệu quả bằng lũy thừa của 2 và các hằng số nhỏ.Fiat Crypto có hỗ trợ phép toán Curve25519 không?
Có. Kho lưu trữ chính thức có ví dụ tạo mã cho số nguyên tố được sử dụng trong mật mã thuộc họ Curve25519.Fiat Crypto có hỗ trợ secp256k1 không?
Dự án có công trình liên quan đến trường và đường cong elliptic secp256k1, phù hợp với các triển khai chữ ký blockchain.Fiat Crypto có tạo chữ ký số không?
Dự án tạo các thành phần số học có thể dùng trong triển khai chữ ký, nhưng bản thân dự án không phải là ứng dụng ký hoàn chỉnh.Fiat Crypto có chứng minh một lược đồ chữ ký an toàn không?
Không. Tính đúng đắn chức năng của phép toán khác với việc chứng minh tính bảo mật toán học của toàn bộ lược đồ chữ ký.Fiat Crypto có ngăn tràn số học không?
Quy trình đã xác minh của hệ thống tính đến các giới hạn và chọn kích thước số nguyên được thiết kế để chứa các giá trị trung gian nằm trong phạm vi của đặc tả.Fiat Crypto có đảm bảo mã chạy thời gian hằng định không?
Thiết kế của hệ thống hỗ trợ phép toán mật mã có luồng điều khiển cố định, nhưng bảo mật kênh kề tổng thể phụ thuộc vào backend, trình biên dịch, bộ xử lý và ứng dụng xung quanh.Kiểm thử có thể thay thế chứng minh của Fiat Crypto không?
Không. Kiểm thử và chứng minh hình thức cung cấp các hình thức đảm bảo khác nhau và hữu ích nhất khi được kết hợp.Xác minh hình thức có thể thay thế kiểm toán bảo mật không?
Không. Kiểm toán còn phải rà soát logic giao thức, tích hợp, tính ngẫu nhiên, an toàn bộ nhớ, xử lý khóa, kênh kề và hành vi ứng dụng.Mọi backend Fiat Crypto đều được xác minh hình thức phải không?
Không. Kho lưu trữ ghi rõ các mức chứng minh, bảo trì và kiểm thử khác nhau cho các backend đầu ra.Luồng backend nào có mức đảm bảo cao nhất được tài liệu hóa?
Backend Bedrock2 có thêm một chứng minh liên kết cây cú pháp trừu tượng với biểu diễn nội bộ của Fiat Crypto.Vì sao Fiat Crypto hữu ích cho blockchain?
Hệ thống có thể giảm lỗi triển khai số học trong chữ ký, khóa, bằng chứng và các phép toán mật mã khác được phần mềm blockchain sử dụng.Fiat Crypto có thể được dùng trong ví không?
Phép toán được tạo có thể được tích hợp vào mật mã của ví, nhưng toàn bộ ví vẫn cần các biện pháp kỹ thuật bảo mật riêng.Fiat Crypto có giống dịch vụ chuyển đổi tiền pháp định sang tiền mã hóa không?
Không. Chuyển đổi tiền pháp định sang tiền mã hóa là dịch vụ tài chính cho phép mua tài sản kỹ thuật số bằng tiền do chính phủ phát hành.Fiat Crypto có giống Fiat–Shamir không?
Không. Fiat–Shamir biến đổi các chứng minh tương tác, còn Fiat Crypto tổng hợp các triển khai số học đã xác minh.Fiat Crypto có mã nguồn mở không?
Có. Dự án được công khai theo một số lựa chọn giấy phép mã nguồn mở linh hoạt được ghi trong kho lưu trữ.Kết luận
Fiat Crypto là hệ thống xác minh hình thức và tạo mã dùng để tạo phép toán mật mã hiệu quả.Hệ thống cho phép nhà phát triển mô tả các phép toán modulo ở cấp cao và tạo triển khai cấp thấp hơn thông qua các phép biến đổi được máy kiểm tra.Dự án đặc biệt có ý nghĩa với tiền mã hóa vì chữ ký blockchain, khóa công khai, ví, node và hệ thống zero-knowledge đều phụ thuộc vào phép toán trường hữu hạn chính xác.Fiat Crypto có thể tạo phép toán cho các trường nguyên tố quan trọng và những chiến lược triển khai như số học Solinas và Montgomery.Dự án hỗ trợ các luồng C và Bedrock2/C được duy trì, cùng các backend ngôn ngữ do bên ngoài duy trì.Mức độ đảm bảo chính xác phụ thuộc vào backend được chọn và phạm vi của chứng minh hình thức.Xác minh hình thức giảm nguy cơ xảy ra lỗi số học nhưng không chứng minh mọi thuộc tính của một ứng dụng mật mã hoàn chỉnh.Nhà phát triển vẫn phải rà soát bảo mật giao thức, xử lý khóa riêng tư, tính ngẫu nhiên, tuần tự hóa, hành vi trình biên dịch, hành vi phần cứng và khả năng chống kênh kề.Do đó, nên xem Fiat Crypto là nền tảng mạnh cho phần mềm mật mã có mức đảm bảo cao, chứ không phải giải pháp thay thế hoàn toàn cho kiểm thử, kiểm toán và thiết kế hệ thống an toàn.Có thể bạn cũng thích
WhatsMiner M30S++
Tên miền Web3
Dự án Web3
HOT
Tiền mã hoá thịnh hành hiện nay đang thu hút sự chú ý đáng kể của thị trường
TOP KL
Tiền mã hoá có khối lượng giao dịch cao nhất
Mới được thêm vào
Tiền mã hoá được niêm yết gần đây có thể giao dịch

