Bisq: The P2P Exchange Network

From Whonix
Jump to navigation Jump to search
Bisq Logo

How to use Bisq - The P2P Exchange Network - in Whonix

Introduction[edit]

Bisq is an open-source, peer-to-peer (P2P) application that went into production on 19 April, 2016. Bisq is designed to allow for a safe, private and decentralized method of exchanging national currencies for cryptocurrencies. Primary features include: [1] [2] [3]

  • no registration is required - identity theft is impossible
  • fully decentralized and censorship resistant design:
    • multi-signature escrow transactions without a third party
    • security deposits encourage safe, successful trades [4]
    • resolution of disputes with a decentralized arbitration system
  • protection of user privacy via a custom P2P network of users running Bisq over Tor
  • no data is stored regarding who trades with whom -- end-to-end data encryption ensures trade details are only readable by counterparties
  • no approval wait times
  • resistant against spam or flooding
  • a cross-platform desktop application is available for Linux, macOS and Windows
  • the project is funded directly by its users through trading fees and donations

Bisq holds a lot of promise, since it eliminates the risk associated with theft of funds from centralized exchanges, removes the threat of interference with trades from third parties, and separates users' personal information from associated transactions. To learn more, refer to:

Installation[edit]

warning Warning: Instructions might be broken due to Bisq upstream changes.

A contributor developer is required to fix these instructions.

Development discussion: https://forums.whonix.org/t/bisq-the-p2p-exchange-network/4953archive.org

This application requires incoming connections through a Tor onion service. Supported Whonix-Gateway modifications are therefore necessary for full functionality; see instructions below.

For better security, consider using Multiple Whonix-Gateway and Multiple Whonix-Workstation. In any case, Whonix is the safest choice for running it. [5]

Whonix-Gateway Installation Steps[edit]

onion-grater Profile[edit]

On Whonix-Gateway.

Extend the onion-grater whitelist in Whonix-Gateway (sys-whonix).

On Whonix-Gateway.

Add onion-grater profile.

sudo onion-grater-add 40_bisq

Whonix-Workstation Installation Steps[edit]

System Requirements[edit]

Bisq is an application that is very resource intensive. Your system needs to accommodate the program requirements by changing the VM configuration.

Platform specific.

  • VirtualBox / KVM:
  • Qubes-Whonix: Assuming that your Whonix-Workstation is named anon-bisq. In dom0, run:
    • qvm-prefs anon-bisq memory 600
    • Memory: 6GB: qvm-prefs anon-bisq maxmem 6000
    • Virtual CPU: 4. qvm-prefs anon-bisq vcpus 4
    • Storage: 5GB. qvm-volume extend anon-bisq:private 5Gi

Firewall Settings[edit]

Modify the Whonix-Workstation (anon-whonix) user firewall settings and reload them.

Modify Whonix-Workstation User Firewall Settings

Note: If no changes have yet been made to Whonix Firewall Settings, then the Whonix User Firewall Settings File /etc/whonix_firewall.d/50_user.conf appears empty (because it does not exist). This is expected.

If using Qubes-Whonix, complete these steps.
In Whonix-Workstation App Qube. Make sure folder /usr/local/etc/whonix_firewall.d exists.

sudo mkdir -p /usr/local/etc/whonix_firewall.d

Qubes App Launcher (blue/grey "Q")Whonix-Workstation App Qube (commonly called anon-whonix)Whonix User Firewall Settings

If using a graphical Whonix-Workstation, complete these steps.

Start MenuApplicationsSystemUser Firewall Settings

If using a terminal-only Whonix-Workstation, complete these steps.

Open file /usr/local/etc/whonix_firewall.d/50_user.conf with root rights.

sudoedit /usr/local/etc/whonix_firewall.d/50_user.conf

For more help, press on Expand on the right.

Note: This is for informational purposes only! Do not edit /etc/whonix_firewall.d/30_whonix_workstation_default.conf.

The Whonix Global Firewall Settings File /etc/whonix_firewall.d/30_whonix_workstation_default.conf contains default settings and explanatory comments about their purpose. By default, the file is opened read-only and is not meant to be directly edited. Below, it is recommended to open the file without root rights. The file contains an explanatory comment on how to change firewall settings.

## Please use "/etc/whonix_firewall.d/50_user.conf" for your custom configuration,
## which will override the defaults found here. When {{project_name_short}} is updated, this
## file may be overwritten.

Also see: Whonix modular flexible .d style configuration folders.

To view the file, follow these instructions.

If using Qubes-Whonix, complete these steps.

Qubes App Launcher (blue/grey "Q")Template: whonix-workstation-17Whonix Global Firewall Settings

If using a graphical Whonix-Workstation, complete these steps.

Start MenuApplicationsSettingsGlobal Firewall Settings

If using a terminal-only Whonix-Workstation, complete these steps.

In Whonix-Workstation, open the whonix_firewall configuration file in an editor. nano /etc/whonix_firewall.d/30_whonix_workstation_default.conf

Add. TODO: EXTERNAL_OPEN_ALL=true is non-ideal.

EXTERNAL_OPEN_ALL=true

Save.

Reload Whonix-Workstation Firewall.

If you are using Qubes-Whonix, complete the following steps.

Qubes App Launcher (blue/grey "Q")Whonix-Workstation App Qube (commonly named anon-whonix)Reload Whonix Firewall

If you are using a graphical Whonix-Workstation, complete the following steps.

Start MenuApplicationsSystemReload Whonix Firewall

If you are using a terminal-only Whonix-Workstation, run. sudo whonix_firewall

Get the Signing Key[edit]

On Whonix-Workstation.

Note: The user should take special notice that the Bisq signing key changed on 2023 09 02 without any explanation easily found by the author of this wiki page. [6]

  • Digital signatures: A tool enhancing download security. Commonly used across the internet.
  • Learn more: Curious? Learn more about digital software signatures.
  • Optional: Digital signatures are optional. If you've never used them before, there might be no need to start now.
  • No worries: New to digital software signatures? It's okay, no need to worry.
  • Not a requirement: Not mandatory for using Whonix, but an extra security measure for advanced users.

Securely download the signing key.

scurl-download https://github.com/bisq-network/bisq2/releases/download/v2.0.1/E222AA02.asc

Display the key's fingerprint.

gpg --keyid-format long --import --import-options show-only --with-fingerprint E222AA02.asc

Verify the fingerprint. It should show.

Note: Key fingerprints provided on the Whonix website are for convenience only. The Whonix project does not have the authorization or the resources to function as a certificate authority, and therefore cannot verify the identity or authenticity of key fingerprints. The ultimate responsibility for verifying the authenticity of the key fingerprint and correctness of the verification instructions rests with the user.

Key fingerprint = B493 3191 06CC 3D1F 252E 19CB F806 F422 E222 AA02

The most important check is confirming the key fingerprint exactly matches the output above. [7]

warning Warning:

Do not continue if the fingerprint does not match! This risks using infected or erroneous files! The whole point of verification is to confirm file integrity.

Add the signing key.

gpg --import E222AA02.asc

Bisq Version Number Choice[edit]

1. Check the latest version number and read the release notes herearchive.org.

2. Version number might be newer than the Bisq version number used on this wiki page.

3. Bisq stable versus beta software notice.

Whonix first time users warning

  • Bisq 1: Recommended. Stable version. Instructions on this wiki page for Bisq 1 might work.
  • Bisq 2: Discouraged. Beta version. Developers only! Instructions on this wiki page for Bisq 2 will probably not work. At time of writing, Bisq 2 was still in betaarchive.org. Additionally there have been two bugs Fix startup issues of Torarchive.org (issue says fixed but no new version containing the fix was available at time of writing) and Cannot run on Whonix 17archive.org. Upstream in the ticket, quote "added priority tor labels last week". So let's see what upstream is going to do and when. No additional information available. All communications happen in public.

4. Done.

Download[edit]

On Whonix-Workstation.

Download Bisq.

  • Bisq 1:
    • Download Bisq. scurl-download https://github.com/bisq-network/bisq/releases/download/v1.9.14/Bisq-64bit-1.9.14.deb
    • Download OpenPGP signature. scurl-download https://github.com/bisq-network/bisq/releases/download/v1.9.14/Bisq-64bit-1.9.14.deb.asc
  • Bisq 2:
    • Download Bisq. scurl-download https://github.com/bisq-network/bisq2/releases/download/v2.0.1/Bisq-64bit-2.0.1.deb
    • Download OpenPGP signature. scurl-download https://github.com/bisq-network/bisq2/releases/download/v2.0.1/Bisq-64bit-2.0.1.deb.asc

Verification[edit]

On Whonix-Workstation.

Verify OpenPGP signature.

gpg --verify Bisq*.asc

If the file is verified successfully, the output will include Good signature, which is the most important thing to check.

gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.

This message does not alter the validity of the signature related to the downloaded key. Rather, this warning refers to the level of trust placed in the Whonix signing key and the web of trust. To remove this warning, the Whonix signing key must be personally signed with your own key.

Tor over Tor Prevention[edit]

On Whonix-Workstation.

Follow these steps to avoid a Tor over Tor scenario.

  • Bisq 1:
    • Create folder the Bisq tor folder. mkdir -p /home/user/.local/share/Bisq/btc_mainnet/tor/
    • Create a dummy tor binary. sudo touch /home/user/.local/share/Bisq/btc_mainnet/tor/tor
    • Add the executable bit to the dummy tor binary. sudo chmod +x /home/user/.local/share/Bisq/btc_mainnet/tor/tor
  • Bisq 2:
    • Create folder the Bisq tor folder. mkdir -p /home/user/.local/share/Bisq2/tor/
    • Create a dummy tor binary. sudo ln -s /usr/bin/tor /home/user/.local/share/Bisq2/tor/tor

Why is this needed? Optional. See footnote for reasons why. Users can skip this step. [8]

xdg-desktop-menu Bug Workaround[edit]

On Whonix-Workstation.

Use the following workaround to avoid a known bug in xdg which fails to find a writable system menu directory. [9]

sudo mkdir -p /usr/share/desktop-directories

Install[edit]

Platform Specific Steps[edit]

On Whonix-Workstation anon-bisq App Qube.

You need to extend the bind-dirs configuration inside the VM.

  • Bisq 1:
    • sudo mkdir -p /rw/bind-dirs/opt/bisq
  • Bisq 2:
    • sudo mkdir -p /rw/bind-dirs/opt/bisq2
    • sudo mkdir -p /rw/bind-dirs/usr/share/desktop-directories
    • sudo mkdir -p /rw/config/qubes-bind-dirs.d

Bisq 1 and Bisq 2: Then create the configuration file:

sudo nano /rw/config/qubes-bind-dirs.d/50_user.conf

Paste.

## Bisq 1: binds+=( '/opt/bisq' ) ## Bisq 2: binds+=( '/opt/bisq2' ) binds+=( '/usr/share/desktop-directories' )

Save and exit.

Restart the App Qube to apply the bind-dirs settings.

Installation Command[edit]

On Whonix-Workstation.

Install Bisq.

sudo dpkg -i Bisq*.deb

Usage[edit]

On Whonix-Workstation.

Start Bisq.

  • Bisq 1: /opt/bisq/bin/Bisq --torControlPort=9051 --torControlPassword=notrequired --socks5ProxyBtcAddress=127.0.0.1:9050 --useTorForBtc=true
  • Bisq 2: /opt/bisq2/bin/Bisq\ 2 --torControlPort=9051 --torControlPassword=notrequired --socks5ProxyBtcAddress=127.0.0.1:9050 --useTorForBtc=true

Figure: Bisq Launch in Whonix

Figure: Bisq Client [10]

After version 1.9.8, the use of DAO became mandatory for everyone and the line --daoActivated=false now gives an error.

If the fonts are too small, you could alternatively use the following command. [11]

  • Bisq 1: GDK_SCALE=2 /opt/bisq/bin/Bisq --torControlPort=9051 --torControlPassword=notrequired --socks5ProxyBtcAddress=127.0.0.1:9050 --useTorForBtc=true --daoActivated=false
  • Bisq 2: GDK_SCALE=2 /opt/bisq2/bin/Bisq\ 2 --torControlPort=9051 --torControlPassword=notrequired --socks5ProxyBtcAddress=127.0.0.1:9050 --useTorForBtc=true --daoActivated=false

Refer to the official Bisq documentationarchive.org to learn about trading essentials, including:

  • an introduction to Bisq
  • quick start guide to trading in minutes
  • wallet information and security
  • backup and recovery
  • how to stay private
  • trading rules and dispute resolution
  • fees and security deposits
  • payments methods

Forum Discussion[edit]

Bisq - The P2P Exchange Networkarchive.org

Donations[edit]

After installing Bisq, please consider making a donation to Whonix to keep it running for years to come.

Bitcoin accepted here Donate Bitcoin (BTC) to Whonix.

1EXNNzqV6wmZ51gkVz7RTp9TL323Uw1EBn

Footnotes[edit]

  1. https://github.com/bisq-network/bisqarchive.org
  2. https://bisq.network/archive.org
  3. https://docs.bisq.network/exchange/whitepaper.html#introductionarchive.org
  4. A current limit of at most 1 Bitcoin per transaction applies.
  5. Security considerations:
    • By using Whonix, additional protections are in place for greater security.
    • This application requires access to Tor's control protocol.
    • In the Whonix context, Tor's control protocol has dangerous features. The Tor control command GETINFO address reveals the real, external IP of the Tor client.
    • Whonix provides onion-grater, a Tor Control Port Filter Proxy - filtering dangerous Tor Control Port commands.
    • When this application is run inside Whonix-Gateway with an onion-grater whitelist extension, this will limit Whonix-Workstation application rights to Tor control protocol access only. Non-whitelisted Tor control commands such as GETINFO address are rejected by onion-grater in these circumstances. In the event Whonix-Workstation, it can't determine its own IP address via requesting to Tor Controller, as onion-grater filters the reply.
    • In comparison, if the application is run on a non-Tor focused operating system like Debian, it will have unlimited access to Tor's control protocol (a less secure configuration).
    • If the (non-)Whonix platform is used to host onion services, then running applications are more vulnerable to attacks against the Tor network compared to when Tor is solely used as a client; see also Onion Services Security.
    In conclusion, Whonix is the safest and correct choice for running this application.
  6. bisq key change 2023 09 02 archive:
  7. Minor changes in the output such as new uids (email addresses) or newer expiration dates are inconsequential.
    • Users: Ignore this footnote
    • Developers: For an explanation which might be interesting for developers only, see below.
    Bisq installs its own version of Tor. From Bisq 2 log.
    16:06:19.474 INFO  [NetworkService.network-IO-pool-0] b.t.i.TorInstaller: Tor files installed to /home/user/.local/share/Bisq2/tor 
    

    Why sudo? To avoid /home/user/.local/share/Bisq2/tor/tor getting overwritten by Bisq.

  8. https://github.com/bisq-network/bisq/issues/848archive.org
  9. https://docs.bisq.network/getting-started.htmlarchive.org
  10. It is the same as above but prepended with GDK_SCALE=2. https://github.com/bisq-network/bisq/issues/1425archive.org

We believe security software like Whonix needs to remain open source and independent. Would you help sustain and grow the project? Learn more about our 12 year success story and maybe DONATE!