txCast
Commandline tool to quickly broadcast signed transactions over tor (at random times to break timing analysis).
Motivation
When a user broadcasts their transaction through their own node their peers could notice that this transaction is new to the network, and is likely being made by a wallet connected to a particular node.
To minimise this risk users attempting to use bitcoin privately often broadcast their transactions over tor.
Work is ongoing by bitcoin core developers to mitigate this risk by making changes at the p2p level, however until those changes are merged less technical users must resort to downloading and installing the tor browser, finding an explorer with a .onion domain, navigating to the broadcast transaction page, entering their signed transaction and clicking broadcast. This is time consuming. For users making frequent transactions a command-line tool may be useful.
This tool also randomises the broadcasts of multiple transactions, allowing you to break timing analysis.
Note: Currently configured for testnet.
Once reviewed the code will be modified to default to mainnet. To switch to mainnet now, remove /testnet
from relevant lines.
Install bitcoin core in testnet
- Edit your bitcoin.conf to incude
testnet=1 [test] rpcport=18332 rpcuser=username rpcpassword=password
- Run bitcoin core (it will be in testnet mode, it might take some time to sync)
Install tor.
These are the instructions for linux:
sudo apt install tor
sudo service tor start
- Hash a password using
tor --hash-password test
(Don’t use the passwordtest
outside of testing) sudo nano /etc/tor/torrc
- Uncomment
ControlPort 9051
- Enter your password hash
HashedControlPassword 16:00000
<- Change 16:00000 to the output of step 3
- Uncomment
sudo service tor stop
sudo service tor start
Get txCast & Install Dependencies
- Download the repo
git clone https://github.com/txCastOrg/txCast
- Install requirements
- Run the script with
python3 txCast-stagger.py
(or basic script with python3 txCast.py)