Proxxy

From xx network wiki
Jump to navigation Jump to search
This is a team contributed page

Welcome to the Proxxy wiki page.

Proxxy is a technology that leverages the xx network's cMix network to provide metadata protection to users of web3.

With Proxxy, any wallet can integrate better privacy, in order to avoid user's data being collected by RPC providers.

Currently, in order to use Proxxy, users have to install a desktop application, which will act as a local proxy to supported blockchain networks.

In principle, any wallet that supports adding custom networks will work with the Proxxy App, but for now MetaMask is the main wallet being targeted.

In the future, Proxxy technology will be made into an API that can be integrated directly in any wallet. However, this will always be dependent on developers of said wallets doing the integration, potentially in partnerships with the xx network.

You can use Proxxy now by downloading the Desktop App, navigating to the Proxxy webpage, and following the connection flow.

Why is Proxxy needed?

Anytime a user interacts with a blockchain using a website or mobile wallet connecting to anything other than the RPC endpoint of a personally operated full node, it is leaking data that can be gathered.

This data might not be collected by RPC providers, but it can be. This lack of privacy has been known and acknowledged for a long time (Coindesk article) and remains one to this day with RPC providers:

"MetaMask must have an RPC provider to work, and an RPC provider must collect your IP and wallet address to work" [1]

When a user connects to a public RPC endpoint, of any blockchain, the owner of that endpoint can see all the traffic coming and going.

Metadata such as IP address can be used to determine location, date & time can be used to find routines, and often more, such as tracking data from a browser that can be used to create social graphs, user profiles and personal information, etc (Understanding browser tracking).

The following image represents how user metadata is leaked to the RPC provider when using MetaMask.

Regular MetaMask.png

By collecting the metadata and transaction data, Infura can associate a source address of any transaction with information that might help identify the user, effectively breaking the pseudonymity provided by the blockchain.

With Proxxy, users are safe to interact with a public RPC endpoint, and their metadata and/or browser data does not end up in the possession of the company operating the RPC infrastructure.

How does Proxxy work?

Proxxy uses a pair of client / server applications that communicate over the cMix network.

The client receives RPC requests from the wallet application interacting with a given blockchain and sends them over cMix to the Relay server.

The Relay server then forwards the request to configured RPC endpoints according to the blockchain network the user is interacting with.

The RPC endpoint replies to the request and the Relay server then forwards it back to the client over cMix, which then responds back to the wallet application.

The source code for Proxxy client / server applications can be found here.

The Proxxy App wraps the client side application, so that the user is presented with a simple interface and experience, instead of requiring the use of a command line application.

The source code for the Proxxy App and Website can be found here. [add link]

The following image shows how user metadata is protected when using MetaMask with the Proxxy App.

MetaMask with Proxxy.png

Infura can still collect metadata, but now this will always be information about the Relay Server, so there is no way to associate source addresses to user information, thus maintaining the pseudonymity properties provided by the blockchain.

How does the app contact a Relay Server?

The Proxxy App can contact any number of Relay Servers, and the only information required is the Relay server contact data, which is generated by the server when connecting to the cMix network.

The xx foundation maintains a file with the contact data of active Relay Servers.

It's important to note that even if the xx foundation was malicious, and changed the contact information of the Relay Servers, user's metadata is STILL PROTECTED by cMix. This can be seen in the image above, as the Relay Server can only pick up messages

from the cMix network, which have been stripped of all metadata.

This is a clear contrast to some privacy protecting technologies, which rely on a relay server that is contacted directly by the wallet application. In those technologies, a malicious relay server provider will be able to gather user metadata, the same as an RPC provider.

Metamask Recommendations

Before setting up Proxxy with MetaMask, it is recommended to disable multiple settings that reduce the user's privacy.

In order to disable these settings, open your MetaMask wallet, go to Settings -> Security & Privacy and disable the following:

  • Show balance and token price checker
  • Show incoming transactions
  • Autodetect tokens
  • Batch account balance requests
  • Participate in MetaMetrics

Download and Install

  1. Refer to the detailed instructions below for your operating system.

    1. Windows Instructions (WIP).

      1. Download the Proxxy .exe file for Windows HERE.

      2. In the file browser, navigate to the folder where the application was downloaded to; this will most likely be your downloads folder.

        Downloaded Proxxy exe file
      3. Double click on the downloaded Proxxy exe file to run. The Proxxy application will load; it may take some time to load so do not be concerned.

        Proxxy app as it is loading. (This may take up to 30 seconds.)
      4. Click on the "START" button to begin connecting the Proxxy application to CMIX on the xx network.

      5. Now, you may get a notice saying "Windows protected your PC" preventing you from running the program. This is common with newer applications that have not yet been registered with Windows OS. To get past the SmartScreen filter, click on the "More info" link.

        Screen capture of the Windows SmartScreen window with a red arrow pointing at the More info link.
      6. Next, click the Run anyway button and the setup will launch.

        Screen capture of the Windows SmartScreen window after the More info link was clicked now showing the Run anyway button.
      7. You may also encounter a UAC (User Account Control) prompt will appear asking if you want to allow the app. Click "Yes" to continue.

        UAP Dialogue for Wallet Generator GUI
      8. Wait for the connection to finish. This FIRST connection may take up to 60 seconds to connect to CMIX because your application is registering with the xx network.

      9. When Proxxy successfully connects to CMIX you then go back to https://proxxy.xx.network and click "NEXT" to continue the metamask connection process in your web browser.
        Proxxy connection is finished and now you can click "Next" on the Proxxy website.
      10. On this page you will need to "Verify Connection" BUT before you do make sure that your browser is not blocking connections to the web page.(This example is using brave browser). Once you are connected then you can go ahead and "Connect To Metamask".
        1. Check that your browser is not blocking connections on the page. 2. Click "Verify Connection"
      11. At this point you can simply follow the prompts to connect to Metamask and any network you want to transact over. Enjoy!
    2. macOS Instructions. (WIP)

      1. Download the binary for macOS and for your CPU architecture, which you can check on the "About This Mac" page. The Intel version (x64) will work on Apple Silicon devices (arm64) as well.

      2. Open the Finder, head to Downloads, and double click on the file to unzip the application.

        Open Quantum-Ready Wallet Generator .dmg from Dock
      3. Now that you have the Proxxy application unzipped, you can drag it to the Applications folder on the left side of the finder.

        Proxxy to applications folder.png
      4. Go to the Applications folder, find the Proxxy app in the application list, and double click to open.

        Context Menu Open Quantum-Ready Wallet Generator
      5. A warning will appear saying that the developer cannot be verified. Click the OK button. This warning might look different on older macOS versions, which could have a Cancel button. If so, press that button instead.

        Click cancel on Quantum-Ready Wallet Generator App develop cannot be verified warning.
      6. Next, click on the Apple icon in the top left corner of your screen in the menu bar. In the drop-down menu, select System Preferences….

        Select System Preferences from Apple drop-down menu.
        If your machine is running macOS Ventura (version 13 and up), you should select "System Settings..." instead.
        System settings.png
      7. The System Preferences window will show up. Click on Security & Privacy.

        Click on Security & Privacy in the System preferences window.
        If your machine is running macOS Ventura (version 13 and up), the menu is now called "Privacy & Security"
        Macos privacy and security.png
      8. Scroll down on the settings until you find a prompt where it says "Proxxy" was blocked…, click the Open Anyway button.

        Click the Open Anyway button to allow the Quantum-Ready Wallet Generator app
      9. You might be prompted to insert your password or use TouchID in order to confirm this action.

        Touchid confirm.png
      10. In the window that opens, click the Open button and the Proxxy app will launch.

        Click the Open button the launch the Quantum-Ready Wallet Generator.
      11. When launching the app for the first time after unblocking it in the Security settings in some machines, it will stay black and not load. If this happens, close the app and open it again. It should now work.

    3. Linux instructions.

      1. Download the file.

      2. Open the defualt file manager (Ex. Gnome/Files, KDE/Dolphin, etc.).

      3. Browse to the location of the file.

      4. Right click the file and select "Properties".

      5. A window will appear, (Example of Gnome/Files shown below) select the "Permissions" tab, check the "Execute: Allow executing file as program" box and close the window.

        Screen capture of making an file executable.
      6. You can now launch the Proxxy application by double-clicking the file right from the file manager.

  2. After the App launches, head back to the Proxxy webpage and follow the rest of the instructions.

    Screen capture of Proxxy