Commandline tool to quickly broadcast signed transactions over tor (at random times to break timing analysis).
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.
- 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)
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
sudo service tor stop
sudo service tor start
- Download the repo
git clone https://github.com/txCastOrg/txCast
- Install requirements
sudo apt install python3-venv python3-pip
to install pippython3 -m pip install requests
to install requestssudo pip install stem
to install Stem to use torpip install PySocks
to install PySocks (? Perhaps required? )
- Run the script with
python3 txCast-stagger.py
(or basic script with python3 txCast.py)