ECDSA ngưỡng: Thành phần quan trọng đằng sau sự tích hợp Bitcoin và Ethereum của Internet Computer
Việc thiết kế chữ ký ngưỡng ECDSA tạo tiền đề cho sự tích hợp của vi mạch với Bitcoin, Ethereum và các blockchain khác.
Phương pháp tiếp cận tích hợp trực tiếp của Internet Computer cho phép một chuỗi khối phi tập trung xác thực và tương tác một cách an toàn với các chuỗi khối và hệ thống khác mà không cần bên thứ ba trung gian. Trong trường hợp các giải pháp chuỗi chéo trước đây chủ yếu dựa vào các cầu nối, oracles và dịch vụ giám sát, liên quan đến các điểm lỗi đơn lẻ, Internet Computer cho phép tích hợp chuỗi khối với các đặc tính đáng tin cậy mạnh nhất vì không cần phải phụ thuộc vào bên thứ ba.
Ví dụ: tích hợp trực tiếp với Bitcoin , trao quyền cho các hợp đồng thông minh có thể thực hiện trực tiếp các giao dịch Bitcoin mà không cần trung gian hoặc cầu nối, cung cấp một nền tảng đáng tin cậy cho các dự án DeFi sử dụng Bitcoin.
Gần đây, nhóm R&D của DFINITY đã tạo tiền đề cho việc tích hợp Internet Computer với Bitcoin, Ethereum và các blockchain khác bằng cách thiết kế một giao thức mới cho ngưỡng ECDSA (Thuật toán chữ ký số đường cong Elliptic). Thiết kế sáng tạo của tính năng này tạo ra một cách tính toán chữ ký ECDSA không đáng tin cậy bằng cách sử dụng giao thức đa bên mật mã, với các hợp đồng thông minh có thể kiểm soát các khóa ký ECDSA trên một chuỗi khối công cộng. Giao thức này được trình bày chi tiết trong bài báo nghiên cứu này , với phần lớn phân tích bảo mật được thực hiện trong một bài báo nghiên cứu liên quan đã được trình bày rất gần đây tại Eurocrypt 2022 , một hội nghị quốc tế về tất cả các khía cạnh của mật mã được tổ chức bởi Hiệp hội Quốc tế về Nghiên cứu Mật mã.
Trước ngưỡng ECDSA
Trước khi bắt đầu tích hợp Bitcoin, Internet Computer đã cung cấp một giao thức ký phân tán dựa trên một sơ đồ chữ ký cụ thể được gọi là BLS , được đặt theo tên các nhà phát minh của nó, Dan Boneh, Ben Lynn (hiện ở DFINITY) và Hovav Shacham. Lý do chính để chọn chữ ký BLS làm cơ sở cho giao thức ký phân tán là có thể triển khai một giao thức ký phân tán dựa trên BLS đơn giản hơn và hiệu quả hơn nhiều so với bất kỳ sơ đồ chữ ký nào khác. Thật không may, Bitcoin không sử dụng chữ ký BLS. Thay vào đó, Bitcoin và nhiều blockchain khác sử dụng sơ đồ ECDSA. Do đó, để hỗ trợ tích hợp Bitcoin, cũng như tích hợp với các blockchain khác như Ethereum, cộng đồng NNS đã thông qua một đề xuất để triển khai giao thức ký ECDSA phân tán trên Internet Computer.
This is an experimental feature, currently only enabled on a single isolated subnet (2fq7c), and other subnets can use it via xnet communication (which causes most of the latency). In the future we could enable the BTC feature on multiple subnets and avoid the xnet latency.
— Manu ∞ (@manudrijvers) May 31, 2022
Để tích hợp hoàn toàn với các blockchains bên ngoài này, các hợp đồng thông minh canister trên Internet Computer phải có “public key” Bitcoin hoặc Ethereum, chẳng hạn và tạo chữ ký ECDSA để cho phép giao dịch. Giải pháp là có các “private key” được chia sẻ bí mật giữa tất cả các node (bản sao) của một subnet lớn và tạo chữ ký thông qua mật mã ngưỡng . Nghĩa là, nếu một ngưỡng của các node tham gia và hoàn thành giao thức ký một cách chính xác, đầu ra của giao thức này là một chữ ký hợp lệ. Tuy nhiên, một vài node không đáp ứng được ngưỡng không thể tự ký một thông báo trái phép.
Trong khi BLS tương đối dễ thực hiện dưới dạng một lược đồ ngưỡng, ECDSA về cơ bản là thách thức hơn nhiều. Những thách thức chính trong tính năng này liên quan đến việc xác định và triển khai giao thức tính toán đa bên an toàn để thực hiện sơ đồ chữ ký ECDSA ngưỡng và tích hợp nó với ngăn xếp giao thức Internet Computer. Những thách thức khác xung quanh giao thức cốt lõi liên quan đến giao thức tạo khóa phân tán an toàn cũng như kế hoạch sao lưu và khôi phục khóa an toàn cho các khóa ký riêng tư.
Chúng tôi đã thiết kế các giao thức mới hoạt động trong cài đặt không đồng bộ và đảm bảo rằng chữ ký được tạo ra khi được yêu cầu, ngay cả khi một số node bị lỗi (nhưng chúng tôi giả định rằng ít hơn một phần ba bị lỗi, như thường lệ trong tất cả các giao thức của chúng tôi). Các giao thức mới này dựa trên giao thức đồng thuận của Internet Computer. Họ cũng thực hiện các tính toán trước để đảm bảo rằng khi một yêu cầu ký tên đến, nó sẽ được thỏa mãn chỉ với một vòng giao tiếp (không cần sự đồng thuận).
Tại sao lại có chữ ký điện tử?
Trung tâm của giao dịch Bitcoin là một tiện ích mật mã được gọi là chữ ký kỹ thuật số, Bitcoin sử dụng để thực hiện các giao dịch một cách an toàn trên sổ cái Bitcoin (tức là chuỗi khối). Rất ngắn gọn, trong lược đồ chữ ký số, một người dùng nhất định tạo “public key” cùng với “private key” tương ứng. Người dùng có thể sử dụng “private key” mà chỉ họ mới biết, để ký điện tử vào một tin nhắn tùy ý, lấy chữ ký điện tử. Trước khi thêm thông báo này vào sổ cái, không chỉ phải xác minh chữ ký dưới “public key” mà còn phải xác minh rằng các giao dịch trước đó trên sổ cái chỉ ra rằng người dùng được liên kết với “public key” có đủ BTC để thực hiện giao dịch.
Với thông điệp, “public key” và chữ ký, bất kỳ người dùng nào khác đều có thể xác minh rằng chữ ký điện tử là hợp lệ. Đặc tính bảo mật thiết yếu của một sơ đồ như vậy là không ai khác ngoài người dùng đã tạo “public key” có thể tạo chữ ký hợp lệ dưới “public key” đó trên bất kỳ thông báo nào.
Trong quá trình tích hợp Bitcoin vào Internet Computer, vai trò của một người dùng nhất định như đã nêu ở trên sẽ được thực hiện bởi một hợp đồng thông minh dạng canister. Sau đó, câu hỏi trở thành: làm thế nào để Internet Computer lưu trữ an toàn “private key” được liên kết với một canister? Câu trả lời là sử dụng giao thức ký phân tán. Nhớ lại rằng một canister được lưu trữ trên một subnet bao gồm nhiều bản sao. Trong giao thức ký phân tán, “private key” không được lưu trữ trực tiếp bởi bất kỳ bản sao nào. Thay vào đó, “private key” này được chia sẻ giữa tất cả các bản sao trong subnet, do đó nếu một hoặc thậm chí một số bản sao trong subnet bị xâm phạm, thì “private key” sẽ vẫn an toàn. Tuy nhiên, vì “private key” không được lưu trữ trên bất kỳ bản sao nào, nên một giao thức ký phân tán phải được sử dụng. Một giao thức như vậy bao gồm hai giao thức con:
- Giao thức con đầu tiên (được gọi là giao thức tạo khóa phân tán) chạy một lần để tạo khóa công khai theo cách mà mỗi bản sao có được phần chia sẻ của “private key”.
- Giao thức con thứ hai được gọi bất cứ khi nào một chữ ký dưới “public key” trên một thông điệp nhất định được yêu cầu bởi canister – vì không có bản sao nào giữ “private key”, chúng phải làm việc cùng nhau bằng cách nào đó để tạo ra chữ ký.
Giao thức ký phân tán phải có khả năng phục hồi , có nghĩa là nó phải hoạt động đáng tin cậy và an toàn trong khi tạo chữ ký điện tử theo yêu cầu kịp thời ngay cả khi một hoặc một số bản sao trong subnet bị hỏng hoặc dưới sự kiểm soát của kẻ tấn công.
Dưới đây là một số tính năng chính của giao thức ký ECDSA phân tán mới của chúng tôi:
- Nó đảm bảo tính bảo mật , có nghĩa là những chữ ký duy nhất mà kẻ thù có thể có được là những chữ ký được yêu cầu bởi các bản sao trung thực.
- Ngoài sự phụ thuộc vào giao thức đồng thuận cơ bản của Internet Computer, nó hoạt động theo giả định rất yếu về giao tiếp không đồng bộ , nghĩa là nó không giả định bất kỳ giới hạn trên trước nào về thời gian cần thiết để gửi thông điệp giao thức.
- Nó hoạt động với giả định rằng ít hơn một phần ba số bản sao bị hỏng – điều này có nghĩa là các lỗi Byzantine tùy ý .
- Nó cung cấp phân phối đầu ra được đảm bảo , có nghĩa là tất cả các yêu cầu ký kết sẽ được thực hiện và các chữ ký kết quả sẽ được gửi đến các bản sao trung thực (trong phạm vi mà tất cả các thông điệp giữa các bản sao trung thực cuối cùng được gửi và giao thức con đồng thuận cung cấp tính sống động).
- Nó cung cấp một giai đoạn ký trực tuyến rất hiệu quả, không tương tác , có nghĩa là giả sử tính toán trước độc lập với thông điệp thích hợp, để đáp ứng yêu cầu ký, mỗi bản sao chỉ cần phát một “chia sẻ chữ ký” và thu thập đủ nhiều “chia sẻ chữ ký” như vậy để sau đó tính toán chữ ký; đặc biệt, giao thức con đồng thuận (đắt hơn) không cần thiết trong giai đoạn ký trực tuyến.
- Nó hỗ trợ dẫn xuất khóa phụ gia kiểu BIP32 , có nghĩa là nhiều khóa ký có thể dễ dàng bắt nguồn từ một khóa ký duy nhất theo kiểu phân cấp.
An toàn, trực tiếp và không tin cậy
Sự tích hợp Bitcoin của Internet Computer đang thiết lập một giao diện an toàn, trực tiếp và không tin cậy với sổ cái Bitcoin mà không phụ thuộc vào các trung gian tập trung. Sự phát triển của DFINITY về ngưỡng ECDSA cho phép mọi hợp đồng thông minh có thể kiểm soát các khóa ký ECDSA và giữ BTC trực tiếp trên chuỗi khối Bitcoin.
Cùng với nhau, những đổi mới này đang giúp các nhà phát triển có thể xây dựng các dự án dapp và DeFi sử dụng nguyên bản tiền điện tử lớn nhất trên thế giới, tận dụng giá trị to lớn và mang lại các hợp đồng thông minh tiên tiến cho Bitcoin. Các dự án DeFi thế hệ tiếp theo như Sonic , InfinitySwap và ICPSwap đã và đang phát triển các giao thức cho vay và đi vay và các sàn giao dịch liên quan trực tiếp đến BTC. Threshold ECDSA cũng đặt nền tảng cho các nghiên cứu sâu hơn về việc tích hợp trực tiếp với Ethereum trong tương lai tới và mở khóa một loạt các trường hợp sử dụng cho Internet Computer.
Cuối cùng, DFINITY đã mời NCC Group , một công ty tư vấn an ninh mạng đẳng cấp thế giới, tiến hành đánh giá bảo mật và mật mã về ngưỡng triển khai ECDSA. Chúng tôi khuyến khích cộng đồng của mình đọc báo cáo và bình luận về nó trong diễn đàn IC .