Tiến độ tích hợp trực tiếp BTC vào IC
Báo cáo điều tra về tiến độ tích hợp trực tiếp giữa mạng DFINITY và mạng BTC
Ngày 15/9/2021, hệ thống quản lý Internet Computer NNS đã thông qua Đề xuất 20586 để mạng Internet Computer tích hợp trực tiếp với mạng BTC. Sự tích hợp này cho phép các canister của Internet Computer có thể trực tiếp giữ và gửi BTC của mạng chính Bitcoin, đồng thời nó cũng mang các hợp đồng thông minh đến mạng Bitcoin.
Quan trọng hơn, sự đổi mới về mật mã của Internet Computer tạo ra chữ ký cho các hợp đồng mà không cần đến khóa riêng. Do đó, ngoài việc mang lại khả năng chạy hợp đồng thông minh cho mạng chính của Bitcoin, đây còn là cơ sở để các canisters của Internet Computer tương tác trực tiếp với mạng chính Ethereum. Chúng ta sẽ không còn cần phải dựa vào các cầu nối tài sản tập trung, mà sẽ dựa vào sự đồng thuận của mạng IC để đạt được sự tích hợp đầu cuối của các node đa chuỗi một cách trực tiếp.
Tích hợp trực tiếp là gì
- Để canister trực tiếp thu thập và giữ Bitcoin trên mạng Bitcoin
- Cho phép canisters tìm lại và truy vấn UTXO của chính họ trong mạng Bitcoin
- Canister có thể tạo các giao dịch Bitcoin và chấp nhận các giao dịch Bitcoin trong các canister khác và các giao dịch sẽ được chuyển tiếp đến mạng Bitcoin
Sau khi canisters có thể trực tiếp nắm giữ Bitcoin, vì canisters đã hoàn thiện Turing, họ có thể viết ứng dụng và quyết định thời điểm giao dịch với những người dùng Bitcoin khác, bao gồm cả giao dịch Bitcoin với các canisters khác bằng mạng Bitcoin và các hoạt động kinh doanh chạy trên IC Network. Do đó, có thể sử dụng tính thanh khoản trên mạng Bitcoin để thực hiện các hợp đồng thông minh trên Internet Computer mà không liên quan đến bất kỳ trung gian và cầu nối nào. Sau khi hoàn thành tích hợp trực tiếp Bitcoin, bước tiếp theo sẽ là cố gắng kích hoạt canisters chứa ETH và cho phép canisters gửi các giao dịch trên mạng chính Ethereum, cho phép canisters của IC tương tác với hợp đồng thông minh Ethereum mainnet.
Yêu cầu chữ ký ECDSA ngưỡng
Chữ ký ECDSA được sử dụng rộng rãi trong mạng Bitcoin và Ethereum, vì vậy canister trên Internet Computer phải có khóa công khai của Bitcoin hoặc Ethereum và có thể tạo chữ ký ECDSA để gửi giao dịch trong các mạng chuỗi công cộng khác.
Rõ ràng, khóa tương ứng với khóa công khai Bitcoin không nên được lưu trữ ở canisters trạng thái. Ngay cả khi canister có thể đặt pirvate để đóng gói dữ liệu, khóa vẫn có thể được hiển thị cho tất cả các node. Bởi vì trạng thái nội bộ của canister sẽ được chia sẻ giữa các node trong subnet, giống như tất cả các blockchain, theo mô hình tin cậy của Internet Computer, các node độc hại có thể tồn tại và các node độc hại có thể lấy khóa chữ ký thông qua các cuộc tấn công để đánh cắp tài sản.
Để đạt được điều này, trước tiên, chữ ký ngưỡng ECDSA phải được hoàn thành, nghĩa là, một khóa riêng được chia sẻ giữa tất cả các node trong subnet nơi canister đang chạy và chữ ký được tạo thông qua mã hóa ngưỡng. Nói cách khác, nếu ngưỡng của node tham gia và hoàn thành chính xác thỏa thuận chữ ký, đầu ra của thỏa thuận là một chữ ký hợp lệ. Mặt khác, một số node không đáp ứng ngưỡng không thể tự ký các thông báo trái phép. Đây là điều kiện tiên quyết cho việc tích hợp Internet Computer với Bitcoin và Ethereum.
Rủi ro và thách thức
Thách thức chính ở đây là xác định và triển khai một giao thức tính toán đa bên an toàn để thực hiện một lược đồ chữ ký ngưỡng ECDSA và tích hợp nó với các giao thức Internet Computer.
Một thách thức khác xung quanh giao thức chữ ký ngưỡng ECDSA là một giao thức tạo khóa phân tán an toàn và một kế hoạch khôi phục và sao lưu khóa an toàn cho các khóa chữ ký cá nhân.
Đồng thời, subnet không thể chịu đựng hơn 1/3 số node độc hại và chức năng ngưỡng ECDSA cũng dựa trên giả định rằng nếu có quá nhiều bên độc hại thông đồng trong subnet, họ có thể tạo chữ ký thay mặt cho subnet mà không có sự chấp thuận của subnet.
Solution
Hãy xem lại ba yêu cầu được đề cập ở trên:
- Để canister trực tiếp thu thập và giữ Bitcoin trên mạng Bitcoin
- Cho phép canisters tìm lại và truy vấn UTXO của chính họ trong mạng Bitcoin
- Canister có thể tạo các giao dịch Bitcoin và chấp nhận các giao dịch Bitcoin trong các canister khác và các giao dịch được chuyển tiếp đến mạng Bitcoin
Đối với chức năng (1), canisters cần phải có khóa công khai ECDSA ngưỡng dựa trên đó địa chỉ Bitcoin của nó được lấy.
Đối với chức năng (2), khối Bitcoin cần được trích xuất vào Internet Computer để xác minh và theo dõi chuỗi khối Bitcoin. Sau khi có đủ khối lượng công việc trong các khối tiếp theo trên blockchain, giao dịch và UTXO của nó có thể được rút và cung cấp cho canisters theo yêu cầu.
Đối với chức năng (3), Internet Computer phải thiết lập một kênh giao tiếp ra ngoài. Dựa trên điều này, các giao dịch đi từ canisters hợp đồng thông minh Bitcoin có thể được gửi đến mạng Bitcoin một cách đáng tin cậy.
Ngưỡng ECDSA được tách biệt hoàn toàn về mặt chức năng với Bitcoin. Nó được xây dựng dựa trên vi mạch như một chức năng riêng biệt. Người bảo vệ sử dụng nó để lấy khóa công khai và ký các API giao dịch, do đó cho phép các hợp đồng thông minh hỗ trợ Bitcoin.
Về mức độ dễ sử dụng của mạng IC, theo kế hoạch hiện tại, tất cả các lệnh gọi API sử dụng mạng Bitcoin là không đồng bộ. Cần lưu ý rằng các cuộc gọi không đồng bộ diễn ra rất nhanh trong cài đặt này, vì giao dịch gửi Bitcoin theo chức năng và canister chạy trong cùng một subnet và không có độ trễ giữa các subnet.
Cách kiểm tra trạng thái mạng Bitcoin
Internet Computer sẽ giới thiệu các khối từ các mạng khác và xác minh xem chúng có đúng không (định dạng, độ khó, v.v.), và xử lý các giao dịch sau một số xác nhận nhất định để đảm bảo tính cuối cùng. Vì bản sao trên Internet Computer trực tiếp giới thiệu khối từ mạng Bitcoin nên tính bảo mật phụ thuộc vào hoạt động bình thường của Internet Computer và mạng Bitcoin , hơn là các yếu tố khác. Trạng thái của Bitcoin chủ yếu được sử dụng để theo dõi số dư hiện tại của mỗi canister đựng Bitcoin.
Tuy nhiên, không có node Bitcoin và Ethereum nào chạy trên các bản sao và chỉ những bộ điều hợp đặc biệt mới được định cấu hình trên bản sao để lấy các khối từ mạng Bitcoin và Ethereum P2P. Bộ điều hợp sẽ đồng thuận với mạng chính của nó, do đó, bản sao sẽ có cùng trạng thái và hệ thống có thể duy trì các thuộc tính bảo mật mong muốn.
Việc chuyển tiếp giữa Internet Computer và mạng Bitcoin được thực hiện trên các node IC theo cách phân cấp càng nhiều càng tốt: Mỗi node trong subnet IC hỗ trợ tích hợp Bitcoin sẽ được kết nối ngẫu nhiên với bit A tập hợp các node của mạng đồng xu. Phương pháp này cũng cho phép phân cấp nhanh chóng các giao dịch tới nhiều node của mạng Bitcoin theo cách phân cấp cao.
Về các vấn đề bảo mật liên quan, DFINITY có kế hoạch “mã canister cát” thực hiện các tác vụ nguy hiểm, chẳng hạn như phân tích cú pháp nội dung không đáng tin cậy trong canister cát bị hạn chế cao, để ngay cả khi ai đó cung cấp phản hồi mạng độc hại (ví dụ: chúng tôi đã kết nối với node Bitcoin của kẻ tấn công) thành công đã phát động một cuộc tấn công thực thi mã từ xa và chúng không thể vượt qua canister cát, do đó không thể gây ra bất kỳ tác hại thực sự nào.
Tính cuối cùng của Bitcoin được giải thích trong API của get_UTXO_set của bộ điều hợp. Đối với địa chỉ Bitcoin do API trả về, tổng số tiền được xác nhận trong bộ sưu tập UTXO có thể được sử dụng làm siêu dữ liệu của UTXO. Giá trị cuối cùng của Bitcoin sẽ được tóm tắt thêm dưới dạng số dư trong mô hình tài khoản.
Sau khi tích hợp Bitcoin
Kiến trúc mạng của bộ điều hợp được đề cập ở trên được xây dựng theo một cách rất chung chung. Cung cấp tất cả các chức năng này với một kiến trúc thống nhất, duy nhất, là một phần của ngăn xếp giao thức IC . Vì vậy, ngoài việc tích hợp Bitcoin, nó cũng có thể được sử dụng cho nhiều mục đích: Một công dụng chính khác ở đây là tích hợp Ethereum trong tương lai; Cho phép canisters thực hiện các cuộc gọi http hoặc thực hiện các kết nối mạng tùy ý;…
Các giao thức khác nhau (BTC, ETH, http, TCP …) sẽ chia sẻ hầu hết các thành phần kiến trúc, ví dụ ở cấp độ mạng và mỗi giao thức sẽ nhận được bộ điều hợp giao thức riêng của nó. Bằng cách này, chúng ta có thể giữ cho kiến trúc có tính mô-đun cao nhưng mạnh mẽ và việc kết hợp với giao thức IC càng nhỏ càng tốt.
Kế hoạch hiện tại là đầu tiên tích hợp Bitcoin và sau đó tích hợp Ethereum. Chúng tôi sẽ giới thiệu các mã cụ thể cho các blockchain này, chẳng hạn như các bộ điều hợp chuyên dụng để kết nối với mạng Bitcoin hoặc Ethereum P2P. Hiện tại chỉ hỗ trợ cho hai blockchain này sẽ được thêm vào. Nếu quá trình tích hợp thành công tốt đẹp và cộng đồng yêu cầu tích hợp Litecoin, Dogecoin và các mạng khác, tất nhiên chúng ta có thể bỏ phiếu.
Tích hợp với Bitcoin sẽ đặt nền tảng cho việc hiện thực hóa các chức năng gọi HTTP bên ngoài và DFINITY có thể bắt đầu phát triển phần này vào năm tới.
Tiến độ mới nhất
- Cập nhật ngày 15 tháng 9
- Trong các tài liệu nghiên cứu về giao thức mã hóa, đánh giá bảo mật nội bộ cũng được yêu cầu trước khi công bố kết quả cho cộng đồng.
- Cập nhật ngày 22 tháng 9
- Đối thoại cộng đồng ECDSA ngưỡng, nhấp để xem lại: https://www.youtube.com/watch?v=MulbKPwv6_s
- Cập nhật ngày 4 tháng 10
- Triển khai chức năng ECDSA ngưỡng: Một phần tốt của “nền tảng” đã được thực hiện, chẳng hạn như các loại dữ liệu, tạo tác ECDSA ngưỡng tạo nhóm, được sử dụng để tạo và xác minh các giao dịch, v.v. Cho đến nay, các hiện thực nói trên đã được thực hiện ở tất cả các trạng thái mô phỏng. Một số nguyên thủy mã hóa đã được triển khai song song nhưng vẫn chưa được tích hợp với sự đồng thuận.
- Cột mốc quan trọng tiếp theo là vào khoảng ngày 20 tháng 11, sự đồng thuận của subnet nhỏ nhất (4 node) và tích hợp mã hóa ECDSA.
- Cập nhật ngày 19 tháng 10
- Tiến bộ vượt bậc đã được thực hiện trong việc thực hiện chức năng của bộ điều hợp mạng Bitcoin và các thành phần hệ thống Bitcoin. Ví dụ: các thành phần hệ thống Bitcoin đã có thể xây dựng các bộ sưu tập UTXO từ các khối Bitcoin và xử lý tốt các fork.
- Cập nhật ngày 31 tháng 10
- Sau khi thiết lập cột mốc ngày 20 tháng 11, chúng tôi nhận ra rằng tính năng này rất có thể cuối cùng sẽ chỉ được phát hành vào năm sau. Hiện tại rất khó để đưa ra một ước tính tốt, và kế hoạch sẽ được công bố trong quý đầu tiên.
- Hôm qua, chúng tôi đã tổ chức “Hội thảo dành cho các nhà phát triển cộng đồng Bitcoin” đầu tiên. Các nhà phát triển cốt lõi từ DFINITY đang nghiên cứu việc tích hợp ngưỡng ECDSA và Bitcoin.
- Cập nhật ngày 4 tháng 11
- Quyết định cuối cùng về quản lý chính của ngưỡng ECDSA vẫn đang được thảo luận
- Tất cả các khóa canister trên một subnet sẽ đến từ khóa chính này
- Khi cùng một khóa chính được triển khai trên các subnet khác nhau, tính bảo mật của khóa này sẽ phụ thuộc vào những thiếu sót về bảo mật của subnet nơi khóa được triển khai. Điều này có nghĩa là chúng ta cần sử dụng một subnet đủ an toàn để mang khóa chính đã cho
- Chiến lược hiện tại là triển khai các khóa chính trên nhiều subnet để đảm bảo rằng chúng tôi có các bản sao lưu.
- Cập nhật ngày 6 tháng 11
- Cộng đồng đề xuất rằng chính thức cung cấp một tùy chọn để canister chọn sử dụng mạng chính Bitcoin hay thử nghiệm nó. Điều này giúp việc kiểm tra mã canisters dễ dàng hơn mà không cần phải thực hiện các giao dịch trên mạng chính Bitcoin.
- Chức năng ECDSA ngưỡng có khả năng tiếp tục cho đến năm 2022, điều này cũng sẽ trì hoãn việc ra mắt chức năng tích hợp Bitcoin. Cộng đồng đề xuất rằng nếu chức năng Bitcoin được hoàn thành trước thời hạn, chúng tôi nên cho phép họ truy cập chức năng Bitcoin mà không có ngưỡng ECDSA và mô phỏng sự phát triển của chức năng ECDSA trong quá trình triển khai, điều này sẽ giúp rút ngắn thời gian ra mắt của Bitcoin và các chức năng liên quan.
- EVM trên Internet Computer: Cộng đồng đã nhấn mạnh tầm quan trọng của việc có thể chạy mã EVM trên IC để các hợp đồng thông minh được viết bằng Solidity có thể chạy trên IC mà không cần thực hiện lại.
- Cập nhật vào ngày 12 tháng 11
- ECDSA ngưỡng: Nhóm kỹ thuật mã hóa và cơ chế đồng thuận hiện đang đẩy mạnh tích hợp đầu tiên giữa cơ chế đồng thuận và chữ ký ECDSA. Đây là một cột mốc quan trọng. Chúng tôi sẽ xác minh subnet bốn node tối thiểu cần thiết cho chữ ký ECDSA ngưỡng. Chúng tôi đã đặt ra thời hạn cho cột mốc quan trọng này, đó là vào cuối tuần tới. Cho đến nay, chúng tôi đã đạt được những tiến bộ tốt.
- Tích hợp giao thức của bộ điều hợp Bitcoin và các thành phần hệ thống Bitcoin: Tuần này, nhóm kỹ sư đã đạt được tiến bộ đáng kể và giao thức giữa bộ điều hợp Bitcoin ở lớp mạng và thành phần hệ thống Bitcoin ở lớp thực thi đã bắt đầu hoạt động. Nói cách khác, các thành phần hệ thống Bitcoin có thể lấy các khối từ bộ điều hợp và bộ điều hợp khớp yêu cầu với khối được tìm nạp trước của nó và cung cấp một khối Bitcoin mới nếu nó khớp và khối mới được xử lý bởi thành phần hệ thống. Yêu cầu khối của thành phần hệ thống Bitcoin bao gồm tất cả các băm khối trong chế độ xem chuỗi khối Bitcoin mà thành phần hệ thống có. Bộ điều hợp phản hồi với một khối Bitcoin trong trường hợp khối của nó khớp với “đỉnh” của khối trong chế độ xem cục bộ của thành phần hệ thống. Việc tích hợp cấp độ giao thức này được thực hiện thông qua một bộ điều hợp duy nhất, được kết nối “trực tiếp” với các thành phần hệ thống Bitcoin, thay vì thông qua ngăn xếp giao thức IC. Điều này có nghĩa là phần cốt lõi của các chức năng liên quan đến Bitcoin hiện đang hoạt động trong hai thành phần chính này, nhưng các cơ chế giao tiếp mới sẽ tiếp tục được phát triển trong tương lai.
- Bước tiếp theo là giải quyết vấn đề tích hợp của ngăn xếp giao thức, chẳng hạn như mở rộng lớp đồng thuận IC, để yêu cầu và phản hồi được tích hợp với ngăn xếp giao thức IC, cho phép gửi các giao dịch gửi đi.
- Cập nhật vào ngày 19 tháng 11
- Kế hoạch chính thức là phát hành “bản xem trước dành cho nhà phát triển” của chức năng Bitcoin mà không hỗ trợ ngưỡng ECDSA, để mọi người có thể bắt đầu triển khai trước logic kinh doanh liên quan đến Bitcoin trên canisters.
- Cập nhật ngày 20 tháng 11
- Một mốc quan trọng sẽ đạt được vào tuần tới và việc tích hợp subnet bốn node nhỏ nhất sẽ được gợi ý trong phần trình diễn nội bộ.
- Cập nhật ngày 26 tháng 11
- Chức năng đồng thuận của giao thức được ký trước và tích hợp các nguyên thủy mã hóa đã được hoàn thành và chúng tôi cũng đã thêm các chức năng mã hóa. Trong số đó, chữ ký trước là phần phức tạp nhất trong việc triển khai chức năng ECDSA ngưỡng, và chúng tôi vẫn đang sử dụng các phím tắt vẫn cần được “giải quyết” cho công việc đầu cuối. Đối với các phím tắt này, chúng tôi sẽ hoàn thành tất cả các chức năng sau khi thỏa thuận ký kết được thực hiện.
- Để làm cho chữ ký trước cụ thể hơn, chúng tôi đã trực quan hóa chức năng thông qua bảng điều khiển Grafana. Các chi tiêt như sau:
- Mốc tiếp theo là việc thực hiện giao thức ký, sử dụng giao thức ký trước gấp bốn lần cho mỗi chữ ký ECDSA ngưỡng. Nó đơn giản hơn giao thức được chỉ định trước và hiện đang được nghiên cứu.
- Cập nhật ngày 27 tháng 11
- Tháng 1 rất chặt chẽ, vì vậy chúng tôi có thể thấy bản xem trước dành cho nhà phát triển vào cuối tháng 12 hoặc tháng 1 để mọi người có thể bắt đầu xây dựng các hợp đồng thông minh bằng cách sử dụng các tính năng của Bitcoin. Nó dự kiến sẽ được phát hành đầy đủ vào nửa cuối của quý đầu tiên của năm 2022.
- Cập nhật ngày 29 tháng 11
- Chữ ký Taproot và Threshold Schnorr có thể là bước tiếp theo sau ECDSA Ngưỡng, nhưng vẫn chưa có quyết định chắc chắn. Khi triển khai ngưỡng Schnorr, chúng ta có thể sử dụng đầy đủ sức mạnh tổng hợp của công việc ECDSA ngưỡng. Tuy nhiên, chúng ta vẫn cần xác định các đặc tả giao thức, bao gồm các lược đồ dẫn xuất chính, chứng minh tính bảo mật của nó, tạo thiết kế hệ thống (sử dụng sức mạnh tổng hợp) và triển khai nó.
- Do đó, kế hoạch của chúng tôi trước tiên là đưa ra ngưỡng ECDSA, sau đó xem xét Taproot và ngưỡng Schnorr với điều kiện đáp ứng mức độ ưu tiên.
Nguồn
https://forum.dfinity.org/t/threshold-ecdsa-signatures/6152
https://forum.dfinity.org/t/direct-integration-with-Bitcoin/6147
Link bài gốc: Yokayoka