This is a good point. I didn't delve into the specifics of implementation due to the larger issues that I raised. Libbitcoin Server uses CurveZMQ, an implementation of CurveCP. http://curvecp.org http://curvezmq.org https://en.bitcoin.it/wiki/Libbitcoin_Server e On 07/22/2015 04:11 PM, gb via bitcoin-dev wrote: > Why RSA? > >> >> Here is an idea, inspired by TOR, on which I would like to have some >> feedback: We create an anonymous routing layer between Electrum servers >> and clients. >> >> * Each server S publishes a RSA public key, KS >> * Each client receives a list of available servers and their pubkeys >> * For each wallet address, addr_i, a client chooses a server S_i, and a >> RSA keypair (K_addr_i, k_addr_i) >> * The client creates a list of encrypted requests. Each request contains >> addr_i and K_addr_i, and is encrypted with the pubkey KS_i of S_i >> * The client chooses a main server M, and sends the list of encrypted >> requests to M >> * M dispatches the client's requests to the corresponding servers S_i >> (without the client's IP address.) >> * Each server decrypts the requests it receives, performs the request, >> and encrypts the result with K_addr_i >> * M receives encrypted responses, and forwards them to the client. >> * The client decrypts the encrypted response with k_addr_i