The Internet Computer will add smart contracts to Bitcoin through an application of Chain Key cryptography that will directly integrate the networks. Smart contracts on the Internet Computer will be able to hold, send and receive bitcoin, without the need for private keys.
Prepping a design document for the community
- Ask questions
- Propose ideas
- 1-pager posted on the forum for review: September 10, 2021
- NNS Motion Proposal (to approve design + project) submission: September 15,15:00 UTC
- Community Conversation with Thomas Locher on Bitcoin Integration September 16, 16:00 UTC
- NNS Motion Proposal (to approve design + project) expiration: September 17, 2021, 15:00 UTC
- If NNS Motion Proposal passes, implementation + testing+ deploy would take months: Q4 2021.
Scope of project
The scope of this feature is the integration of the Internet Computer with the Bitcoin blockchain with the following goals: (1) Making powerful smart contract functionality available for Bitcoin transactions; (2) enabling Bitcoin transactions with fast finality and low transaction cost.
(1) Bitcoin does not support generic smart contract functionality, but only a limited scripting language that supports a small subset of general smart contract semantics. The envisioned smart contract functionality for Bitcoin transactions allows a user to deploy a canister or make use of an existing canister that can receive and transfer Bitcoin and execute arbitrary smart contract logic expressed in a Turing-complete programming language. To this end, canisters must be able to hold Bitcoin balances, which requires a threshold ECDSA protocol. This protocol enables the replicas hosting a canister to share an ECDSA private key and create ECDSA signatures using cryptographic multi-party computation using a secret-shared private key, that is, without any node learning any information about the private key while jointly computing signatures to sign transactions. Smart contracts require access to the state of the Bitcoin blockchain, the so-called chainstate. Thus, we need to replicate the chainstate on the Internet Computer and provide services to canisters implementing smart contracts to query it and thereby receive UTXO-related information. This feature allows any canister to validate and create Bitcoin transactions and implement powerful smart contract logic.
(2) Transactions on the Bitcoin network are inherently slow and expensive. We want to enable fast and low-cost transactions by building ledger functionality on the Internet Computer that allows users to transfer Bitcoin into and out of accounts on this ledger, thereby creating wrapped Bitcoin on the Internet Computer. Users can transfer Bitcoin into their accounts on the ledger and buy and sell Bitcoin with ledger transactions on the Internet Computer with finality in seconds, while incurring only a tiny fraction of the transaction fees when compared to executing the same transaction on the Bitcoin blockchain. Holders of wrapped Bitcoin can settle their accounts any time by having their account balance transferred to their Bitcoin address.