Sự tích hợp của Bitcoin vào Internet Computer cho phép tương tác trực tiếp và không cần tin tưởng với mạng Bitcoin, cho phép các hợp đồng thông minh của container tạo ra địa chỉ Bitcoin và gửi, nhận bitcoin trực tiếp. Điều này mở ra những khả năng mới cho các ứng dụng và dịch vụ phi tập trung, như DeFi, có thể tận dụng tính thanh khoản và sự an toàn của Bitcoin mà không cần phụ thuộc vào các cầu nối tập trung, từ đó cải thiện an toàn và hiệu quả.
Để kích hoạt các hợp đồng thông minh của Bitcoin trên ICP, cần phải giải quyết hai thách thức kỹ thuật nâng cao:
Một tích hợp ở cấp độ giao thức của ICP với mạng Bitcoin.
Chữ ký khóa chuỗi dựa trên các giao thức ECDSA và Schnorr ngưỡng mới.
Tích hợp ở cấp độ giao thức của ICP với
Giao thức Máy tính Internet (IPC) đã được tích hợp với giao thức Bitcoin để đạt được một tích hợp kỹ thuật trực tiếp giữa hai mạng. Tích hợp này có thể được kích hoạt trên bất kỳ số lượng subnet nào của IPC. Hiện tại, chỉ có một subnet chuyên dụng cho Bitcoin, và các yêu cầu đến API Bitcoin từ các container ở bất kỳ subnet nào được định tuyến đến subnet này thông qua khả năng giao tiếp XNet của ICP. Tích hợp này đáp ứng hai mục tiêu chính:
Lấy tập hợp UTXO của Bitcoin và duy trì nó trong chuỗi trong trạng thái sao chép của máy tính Internet để có thể trả lời các truy vấn của các tập hợp UTXO và số dư tài khoản Bitcoin do các container phát hành.
Chấp nhận các giao dịch Bitcoin đã ký từ các container và gửi chúng đến mạng Bitcoin.
Tích hợp Bitcoin
của khóa chuỗi
Các container có thể có các khóa ECDSA và Schnorr thông qua các giao thức ký ECDSA và Schnorr mới của khóa chuỗi và do đó có thể nhận và lưu trữ bitcoin và các tài sản khác. Chúng cũng có thể tạo các giao dịch Bitcoin và gửi chúng qua API Bitcoin đến mạng Bitcoin. Chúng sử dụng chức năng ECDSA và Schnorr của khóa chuỗi để yêu cầu ký ngưỡng để tiêu thụ UTXO trong một giao dịch sau đó được gửi đến mạng Bitcoin. Các chữ ký của khóa chuỗi là nhiều hơn một triển khai đơn giản của ECDSA và Schnorr ngưỡng, vì, ví dụ, chúng cũng bao gồm các giao thức để tạo và quay vòng an toàn các khóa phân tán, điều này rất quan trọng từ góc độ hệ thống để chữ ký ngưỡng an toàn và thực tế khả thi. Bạn có thể tìm thấy chi tiết về giao thức ký khóa chuỗi của ICP trên trang tài liệu tương ứng.
Các giao thức ký khóa chuỗi tiết lộ một API trong container quản lý, trong khi các điểm cuối tích hợp Bitcoin có sẵn thông qua container Bitcoin. Các API cấp thấp được thiết kế xoay quanh các khái niệm UTXO và giao dịch Bitcoin, có tính phức tạp và yêu cầu hiểu biết sâu sắc về cách hoạt động của Bitcoin. Các API ký ECDSA và Schnorr của khóa chuỗi cũng hữu ích cho bất kỳ trường hợp sử dụng nào, ví dụ, tích hợp với các chuỗi khối khác như Ethereum.
Trang này cung cấp tổng quan về công nghệ đã đề cập ở trên hỗ trợ tích hợp trực tiếp Bitcoin. Để biết thêm chi tiết, người đọc được khuyến nghị tham khảo trang Bitcoin trong Internet Computer Learn Hub, cũng như tài liệu về các chữ ký ngưỡng.
Trong một subnet được kích hoạt bởi Bitcoin, một container Bitcoin, được triển khai dưới dạng một container Wasm được quản lý bởi NNS, cung cấp các điểm cuối tích hợp Bitcoin. Container Bitcoin chứa trạng thái Bitcoin trong chuỗi: tập hợp UTXO, các khối Bitcoin gần đây nhất để cho phép giải quyết các nhánh (khối không ổn định) và các giao dịch ra ngoài.
Một quy trình adapter Bitcoin trong lớp mạng kết nối với các node của mạng Bitcoin, rất giống với một node Bitcoin bình thường.
Bảo trì của
Container và adapter Bitcoin được tích hợp và giao tiếp với nhau qua ngăn xếp giao thức của ICP. Container Bitcoin yêu cầu các khối kế tiếp từ các khối Bitcoin gần đây nhất nhận được từ adapter. Adapter của mỗi bản sao của subnet lấy các khối yêu cầu từ mạng Bitcoin, và adapter của một bản sao sinh khối cung cấp khối yêu cầu cho container Bitcoin thông qua đồng thuận. Container Bitcoin xử lý các khối bằng cách xác minh bằng chứng công việc, trích xuất các giao dịch từ khối, trích xuất các UTXO từ các giao dịch và cập nhật tập hợp UTXO duy trì trong trạng thái sao chép để phản ánh các UTXO đã tiêu thụ và các UTXO được tạo ra bởi các giao dịch. Cả tập hợp UTXO và một tập hợp các khối gần đây chưa được hấp thụ (khối không ổn định) được sử dụng để trả lời các yêu cầu về UTXO và số dư.
Độ phức tạp đáng kể của việc triển khai nằm ở việc giải quyết an toàn các nhánh và bảo vệ chống lại nhiều loại tấn công khác nhau. Ví dụ, để có thể giải quyết các nhánh, container Bitcoin phải duy trì một số lượng nhất định các khối Bitcoin vẫn chưa được thêm vào tập hợp UTXO duy trì, nhưng các UTXO mà nó chứa phải được xem xét một cách hiệu quả để tính toán các UTXO của một địa chỉ nhất định, ngoài các UTXO trong tập hợp UTXO.
Gửi
Các container có thể gửi giao dịch Bitcoin đến container Bitcoin thông qua một điểm cuối dành riêng. Điều này đưa các giao dịch vào hàng đợi để gửi đến mạng Bitcoin. Trong mỗi vòng subnet, các adapter lấy các giao dịch đang chờ từ container Bitcoin và đưa chúng vào hàng đợi để gửi không đồng bộ đến mạng Bitcoin. Điều này cho phép phân phối hiệu quả và nhanh chóng các giao dịch trong mạng Bitcoin, vì mỗi bản sao của subnet gửi giao dịch qua nhiều node kết nối với mạng Bitcoin.
của triển khai
Chức năng của Bitcoin được kích hoạt trên một subnet duy nhất của ICP, và các cuộc gọi API từ các container đến API Bitcoin được định tuyến qua giao tiếp XNet; do đó, một độ trễ bổ sung được tạo ra. Nếu cần, container Bitcoin có thể được kích hoạt thêm trong tương lai trên một số subnet (của ứng dụng) để tránh độ trễ bổ sung của XNet và có thể đáp ứng nhiều yêu cầu hơn trong một đơn vị thời gian.
Các yêu cầu ECDSA ngưỡng được trả lời tương tự bởi một subnet ký hoạt động duy nhất; một subnet khác sao lưu khóa riêng trong định dạng bí mật chia sẻ để phục hồi sau thảm họa.
của phát triển, tiền sản xuất và sản xuất
Chức năng của Bitcoin, bao gồm các chữ ký ngưỡng, có sẵn ở tất cả các giai đoạn cần thiết cho vòng đời phát triển trong ICP:
SDK của IC cho phát triển địa phương các container.
Hỗ trợ của ICP như một môi trường tiền sản xuất cho các thử nghiệm cuối cùng trên mạng thử nghiệm Bitcoin (v4).
Hỗ trợ của ICP như một môi trường sản xuất cho ra mắt bằng cách sử dụng mạng chính của Bitcoin.
địa phương
Trong quy trình làm việc phát triển container điển hình, các container này được biên dịch và thực thi trong môi trường địa phương bằng cách sử dụng SDK của IC trong quá trình phát triển của chúng. Do đó, SDK của IC là giai đoạn đầu tiên hoặc môi trường của quy trình làm việc phát triển. SDK của IC được bật để hỗ trợ tích hợp Bitcoin và các API ECDSA ngưỡng.
Khác với các triển khai ICP của chức năng này, được tích hợp với mạng thử nghiệm Bitcoin và mạng chính của Bitcoin, SDK được tích hợp với một node bitcoind địa phương ở chế độ thử nghiệm hồi quy (regtest). Việc sử dụng bitcoind ở chế độ regtest là cách ưa thích cho phát triển Bitcoin. Với cấu hình này, cả phát triển và thử nghiệm tự động của các hợp đồng thông minh đều được thực hiện trước tiên trong môi trường địa phương.
Adapter Bitcoin chạy trong môi trường địa phương của SDK kết nối với node bitcoind địa phương thay vì nhiều node trong mạng thử nghiệm hoặc mạng chính của Bitcoin. Vui lòng tham khảo đầu ra của dfx start --help để xem các chỉ báo liên quan dfx.
Tích hợp Bitcoin trong Internet Computer cho phép tương tác trực tiếp và không cần tin cậy với mạng Bitcoin, cho phép các hợp đồng thông minh của container tạo địa chỉ Bitcoin và gửi và nhận bitcoin trực tiếp. Điều này mở ra những khả năng mới cho các ứng dụng và dịch vụ phi tập trung, chẳng hạn như DeFi, có thể tận dụng tính thanh khoản và bảo mật của Bitcoin mà không phụ thuộc vào các cầu nối tập trung, do đó cải thiện tính bảo mật và hiệu quả.
Để kích hoạt các hợp đồng thông minh Bitcoin trên ICP, cần phải giải quyết hai thách thức kỹ thuật nâng cao:
Một tích hợp ở cấp độ giao thức của ICP với mạng Bitcoin.
Chữ ký khóa chuỗi dựa trên các giao thức ECDSA và Schnorr ngưỡng mới.
Tích hợp ở cấp độ giao thức của ICP với
Giao thức Máy tính Internet (IPC) đã được tích hợp với giao thức Bitcoin để đạt được một tích hợp kỹ thuật trực tiếp giữa hai mạng. Tích hợp này có thể được kích hoạt trên bất kỳ số lượng subnet nào của IPC. Hiện tại, chỉ có một subnet chuyên dụng cho Bitcoin, và các yêu cầu đến API Bitcoin từ các container ở bất kỳ subnet nào được định tuyến đến subnet này thông qua khả năng giao tiếp XNet của ICP. Tích hợp này đáp ứng hai mục tiêu chính:
Lấy tập hợp UTXO của Bitcoin và duy trì nó trong chuỗi trong trạng thái sao chép của máy tính Internet để có thể trả lời các truy vấn của các tập hợp UTXO và số dư tài khoản Bitcoin do các container phát hành.
Chấp nhận các giao dịch Bitcoin đã ký từ các container và gửi chúng đến mạng Bitcoin.
Tích hợp Bitcoin
của khóa chuỗi
Các container có thể có các khóa ECDSA và Schnorr thông qua các giao thức ký ECDSA và Schnorr mới của khóa chuỗi và do đó có thể nhận và lưu trữ bitcoin và các tài sản khác. Chúng cũng có thể tạo các giao dịch Bitcoin và gửi chúng qua API Bitcoin đến mạng Bitcoin. Chúng sử dụng chức năng ECDSA và Schnorr của khóa chuỗi để yêu cầu ký ngưỡng để tiêu thụ UTXO trong một giao dịch sau đó được gửi đến mạng Bitcoin. Các chữ ký của khóa chuỗi là nhiều hơn một triển khai đơn giản của ECDSA và Schnorr ngưỡng, vì, ví dụ, chúng cũng bao gồm các giao thức để tạo và quay vòng an toàn các khóa phân tán, điều này rất quan trọng từ góc độ hệ thống để chữ ký ngưỡng an toàn và thực tế khả thi. Bạn có thể tìm thấy chi tiết về giao thức ký khóa chuỗi của ICP trên trang tài liệu tương ứng.
Các giao thức ký khóa chuỗi tiết lộ một API trong container quản lý, trong khi các điểm cuối tích hợp Bitcoin có sẵn thông qua container Bitcoin. Các API cấp thấp được thiết kế xoay quanh các khái niệm UTXO và giao dịch Bitcoin, có tính phức tạp và yêu cầu hiểu biết sâu sắc về cách hoạt động của Bitcoin. Các API ký ECDSA và Schnorr của khóa chuỗi cũng hữu ích cho bất kỳ trường hợp sử dụng nào, ví dụ, tích hợp với các chuỗi khối khác như Ethereum.
Trang này cung cấp tổng quan về công nghệ đã đề cập ở trên hỗ trợ tích hợp trực tiếp Bitcoin. Để biết thêm chi tiết, người đọc được khuyến nghị tham khảo trang Bitcoin trong Internet Computer Learn Hub, cũng như tài liệu về các chữ ký ngưỡng.
Trong một subnet được kích hoạt bởi Bitcoin, một container Bitcoin, được triển khai dưới dạng một container Wasm được quản lý bởi NNS, cung cấp các điểm cuối tích hợp Bitcoin. Container Bitcoin chứa trạng thái Bitcoin trong chuỗi: tập hợp UTXO, các khối Bitcoin gần đây nhất để cho phép giải quyết các nhánh (khối không ổn định) và các giao dịch ra ngoài.
Một quy trình adapter Bitcoin trong lớp mạng kết nối với các node của mạng Bitcoin, rất giống với một node Bitcoin bình thường.
Bảo trì của
Container và adapter Bitcoin được tích hợp và giao tiếp với nhau qua ngăn xếp giao thức của ICP. Container Bitcoin yêu cầu các khối kế tiếp từ các khối Bitcoin gần đây nhất nhận được từ adapter. Adapter của mỗi bản sao của subnet lấy các khối yêu cầu từ mạng Bitcoin, và adapter của một bản sao sinh khối cung cấp khối yêu cầu cho container Bitcoin thông qua đồng thuận. Container Bitcoin xử lý các khối bằng cách xác minh bằng chứng công việc, trích xuất các giao dịch từ khối, trích xuất các UTXO từ các giao dịch và cập nhật tập hợp UTXO duy trì trong trạng thái sao chép để phản ánh các UTXO đã tiêu thụ và các UTXO được tạo ra bởi các giao dịch. Cả tập hợp UTXO và một tập hợp các khối gần đây chưa được hấp thụ (khối không ổn định) được sử dụng để trả lời các yêu cầu về UTXO và số dư.
Độ phức tạp đáng kể của việc triển khai nằm ở việc giải quyết an toàn các nhánh và bảo vệ chống lại nhiều loại tấn công khác nhau. Ví dụ, để có thể giải quyết các nhánh, container Bitcoin phải duy trì một số lượng nhất định các khối Bitcoin vẫn chưa được thêm vào tập hợp UTXO duy trì, nhưng các UTXO mà nó chứa phải được xem xét một cách hiệu quả để tính toán các UTXO của một địa chỉ nhất định, ngoài các UTXO trong tập hợp UTXO.
Gửi
Các container có thể gửi giao dịch Bitcoin đến container Bitcoin thông qua một điểm cuối dành riêng. Điều này đưa các giao dịch vào hàng đợi để gửi đến mạng Bitcoin. Trong mỗi vòng subnet, các adapter lấy các giao dịch đang chờ từ container Bitcoin và đưa chúng vào hàng đợi để gửi không đồng bộ đến mạng Bitcoin. Điều này cho phép phân phối hiệu quả và nhanh chóng các giao dịch trong mạng Bitcoin, vì mỗi bản sao của subnet gửi giao dịch qua nhiều node kết nối với mạng Bitcoin.
của triển khai
Chức năng của Bitcoin được kích hoạt trên một subnet duy nhất của ICP, và các cuộc gọi API từ các container đến API Bitcoin được định tuyến qua giao tiếp XNet; do đó, một độ trễ bổ sung được tạo ra. Nếu cần, container Bitcoin có thể được kích hoạt thêm trong tương lai trên một số subnet (của ứng dụng) để tránh độ trễ bổ sung của XNet và có thể đáp ứng nhiều yêu cầu hơn trong một đơn vị thời gian.
Các yêu cầu ECDSA ngưỡng được trả lời tương tự bởi một subnet ký hoạt động duy nhất; một subnet khác sao lưu khóa riêng trong định dạng bí mật chia sẻ để phục hồi sau thảm họa.
của phát triển, tiền sản xuất và sản xuất
Chức năng của Bitcoin, bao gồm các chữ ký ngưỡng, có sẵn ở tất cả các giai đoạn cần thiết cho vòng đời phát triển trong ICP:
SDK của IC cho phát triển địa phương các container.
Hỗ trợ của ICP như một môi trường tiền sản xuất cho các thử nghiệm cuối cùng trên mạng thử nghiệm Bitcoin (v4).
Hỗ trợ của ICP như một môi trường sản xuất cho ra mắt bằng cách sử dụng mạng chính của Bitcoin.
địa phương
Trong quy trình làm việc phát triển container điển hình, các container này được biên dịch và thực thi trong môi trường địa phương bằng cách sử dụng SDK của IC trong quá trình phát triển của chúng. Do đó, SDK của IC là giai đoạn đầu tiên hoặc môi trường của quy trình làm việc phát triển. SDK của IC được bật để hỗ trợ tích hợp Bitcoin và các API ECDSA ngưỡng.
Khác với các triển khai ICP của chức năng này, được tích hợp với mạng thử nghiệm Bitcoin và mạng chính của Bitcoin, SDK được tích hợp với một node bitcoind địa phương ở chế độ thử nghiệm hồi quy (regtest). Việc sử dụng bitcoind ở chế độ regtest là cách ưa thích cho phát triển Bitcoin. Với cấu hình này, cả phát triển và thử nghiệm tự động của các hợp đồng thông minh đều được thực hiện trước tiên trong môi trường địa phương.
Adapter Bitcoin chạy trong môi trường địa phương của SDK kết nối với node bitcoind địa phương thay vì nhiều node trong mạng thử nghiệm hoặc mạng chính của Bitcoin. Vui lòng tham khảo đầu ra của dfx start --help để xem các chỉ báo liên quan dfx.
Lưu ý rằng phí gọi đến các điểm cuối bitcoin_get_utxos và bitcoin_get_block_headers phụ thuộc vào số lượng lệnh Wasm mà container Bitcoin tiêu thụ khi xử lý các yêu cầu để đảm bảo việc tính phí công bằng.
Để bắt đầu xây dựng ứng dụng của riêng bạn với Bitcoin, hãy tham khảo các hướng dẫn sau:
Triển khai dapp Bitcoin đầu tiên của bạn.
Phát triển địa phương
Lưu ý rằng phí gọi đến các điểm cuối bitcoin_get_utxos và bitcoin_get_block_headers phụ thuộc vào số lượng lệnh Wasm mà container Bitcoin tiêu thụ khi xử lý các yêu cầu để đảm bảo việc tính phí công bằng.
Để bắt đầu xây dựng ứng dụng của riêng bạn với Bitcoin, hãy tham khảo các hướng dẫn:
Triển khai dapp Bitcoin đầu tiên của bạn.
Phát triển địa phương


