I am trying to create a peer-to-peer escrow system. I need to encrypt the private key of a wallet with a 2-of-3 secret-sharing function - the buyer, seller, and arbitrator will each have have one key.

The problem lies in the generation of secret keys on a p2p network, as there is no trusted server. What can I do to prevent a maliciously modified client from making a copy of the keys before distributing them to their rightful owners?

Thanks in advance!


If buyer, seller, and arbitrator are all using the same client and are all "peers", where peers are potentially untrusted and might use a malicious client, there is no one person to trust.

Also, the premise of having one client generate 3 keys and distributing them to others, and then deleting them is a weak premise. The client need only find one way of not deleting an item and this premise falls.

Another option might be to just encrypt something for each of the other 2 using public keys.

| improve this answer | |
  • That's exactly what I said. What I meant is: how can I generate these keys securely? Is it possible for a client to never see them? And what do you mean by "just encrypt something for the other 2"? That's what I'm trying to do, but like you said; anything being encrypted has to be viewable to the encrypter, who is in this case a possibly malicious client. – 36bitavi Dec 17 '19 at 0:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.