For many Bitcoin holders, one question remains: how can I move my assets across blockchains to make them more useful while maintaining Bitcoin’s core values?
Existing solutions that bridge Bitcoin to Ethereum require users to send their Bitcoin to an intermediary in exchange for an Ethereum token that represents the original asset. This centralized model requires you to trust a third party and is prone to censorship, threatening Bitcoin’s promise of secure, permissionless decentralization.
Threshold aims to solve this problem with TBTC v2.
The second generation of TBTC is a truly decentralized bridge between Bitcoin and Ethereum. It provides Bitcoin holders permissionless access to DeFi and the expanding web3 universe.
TBTC v2 replaces centralized intermediaries with a randomly selected group of node operators on the Threshold Network. This group of independent operators works together to secure your deposited Bitcoin through threshold cryptography. That means TBTC v2 requires a majority threshold agreement before operators perform any action with your Bitcoin. By rotating the selection of operators, TBTC v2 protects against any malicious individual or group of operators seizing control. Unlike other solutions on the market, users on TBTC v2 are reliant on math, not hardware or people. Additionally, TBTC v2 is open and accessible to anyone.
TBTC v2 allows anyone to use Bitcoin in the expanding DeFi and Web3 universe without a third-party intermediary.
This repository contains:
-
TBTC v2 Solidity smart contracts,
-
TBTC v2 Typescript library,
-
TBTC v2 System tests
-
TBTC v2 documentation,
-
TBTC v2 Yearn vault Solidity smart contracts,
-
TBTC v2 monitoring tool,
-
TBTC v2 Cross-chain smart contracts.
tBTCv2 uses the Random Beacon and Sortition Pool to generate governable-sized (starting at 51-of-100) threshold ECDSA Bitcoin wallets at a governable frequency (starting weekly). The youngest wallet accepts new deposits, and the oldest wallet serves redemptions.
Depositing Bitcoin into the tBTCv2 bridge grants a transferable Bank balance, which can be used to mint a supply-pegged ERC-20: TBTC. For an in-depth explanation about the design, see RFC 1: tBTCv2 Design.
-
clone the repository
-
Node.js v14.21.2
-
yarn:
$ npm install -g yarn
-
configure git to use https
git config --global url."https://".insteadOf git://
-
Python 3.11.1 for
node-gyp
. It is suggested to usepyenv
to manage multiple Python versions.
brew install pyenv
pyenv install 3.11.1
cd solidity
yarn install --frozen-lockfile
yarn build
yarn test
yarn test:integration