Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Checking and generating proof that the RSA key can be used for blinding #72

Closed
NicolasDorier opened this issue Jun 12, 2017 · 18 comments
Closed

Comments

@NicolasDorier
Copy link
Contributor

@EthanHeilman

@goldbe
Copy link

goldbe commented Jun 12, 2017

I'm working on the spec for this protocol right now, will post soon.,

@NicolasDorier
Copy link
Contributor Author

@goldbe any progress? This is last piece missing.

@goldbe
Copy link

goldbe commented Jul 11, 2017

We are actively working on it now. We had to design a whole new protocol for this.
Give us a couple more weeks.

@goldbe
Copy link

goldbe commented Jul 11, 2017

As an update on our progress:
We have the new protocol.
We have one half of it implemented but not tested yet.

@goldbe
Copy link

goldbe commented Jul 13, 2017

Hey, one question for you. What values do we plan to include in the setup protocol?

We need the RSA public key for the Tumbler, and a hash of two zero-knowledge proofs (that we're currently specing out) but what else? IP address/onion address/any networking information?

@goldbe
Copy link

goldbe commented Jul 13, 2017

We also need key validity (time) periods, of course.

@NicolasDorier
Copy link
Contributor Author

NicolasDorier commented Jul 13, 2017

so here is what we give to the user:

http://testnet.ntumblebit.metaco.com/api/v1/tumblers/7c762c3dc672d440a9a0ed3082a2fc5fbfcc51db

The tb client will then download

http://testnet.ntumblebit.metaco.com/api/v1/tumblers/7c762c3dc672d440a9a0ed3082a2fc5fbfcc51db/parameters

And verify that the hash of the parameters is equal to "7c762c3dc672d440a9a0ed3082a2fc5fbfcc51db".
Your proof will be included in the parameters. And verified (along with legit cycle and the other parameters)

The parameters are then saved locally and never requested/verified again.

There is no validity period, it is unclear to me how to renew keys trustlessly.

@goldbe
Copy link

goldbe commented Jul 13, 2017

The first link is a 404.

I'll think more about validity periods for keys, and see if I can come up with an argument on why they are needed. (Or not.)

@NicolasDorier
Copy link
Contributor Author

NicolasDorier commented Jul 13, 2017

The first link is 404, this is normal, it is not browsable by the user, this is only needed to communicate to the user the hash of parameters, as well as the server.

@EthanHeilman
Copy link
Collaborator

We need the tumbler to commit to a particular communication method/address. We should avoid DNS hostnames as a clever Tumbler could use DNS resolution differences to reduce the anonymity set e.g. tumbler says tumbler.com = 1.1.1.1 to some parties and 2.2.2.2 to others. TOR provides an effective solution to this in the form of .onions.

@goldbe
Copy link

goldbe commented Jul 13, 2017

Yes I agree with what Ethan said. Especially if i classic mode where Alice and Bob are the same person. If the Tumbler gives each Alice a different IP address from everyone else, and Bob (who is the same person) uses it too, then it is trivial to link Alice and Bob. So we need to force the Tumbler to give everyone the same network address by having him commit to the network address on the blockchain.

@NicolasDorier
Copy link
Contributor Author

TumbleBit server require you to have Tor already (except if you use -allowinsecure), it auto register itself as hidden service.

@NicolasDorier
Copy link
Contributor Author

NicolasDorier commented Jul 14, 2017

http://ye33yfa66xpqsjdu.onion/api/v1/tumblers/2fc0fba4f88fae783dd6e8f972920d51586e3084 (same tumbler, the hash changed because of my numerous changes in 2 or 3 days)

@NicolasDorier
Copy link
Contributor Author

Should I include the URL into the hash?

@NicolasDorier
Copy link
Contributor Author

TB shared link are now

ctb://blabla.onion?h=confhash

Confhash is the hash of everything inside ClassicTumblerConfiguration. It does not include the onion URL.

@goldbe
Copy link

goldbe commented Jul 26, 2017

Just one more thought : Even if the Tumbler requires you to have Tor, I think one could still carry out a similar attack to this one:

Suppose Alice and Bob are the same person. If the Tumbler gives each Alice a different IP address from everyone else, and Bob (who is the same person) uses it too, then it is trivial to link Alice and Bob. So we need to force the Tumbler to give everyone the same network address by having him commit to the network address on the blockchain.

Except we replace IP address with .onion address. This, the Tumbler attacks by giving each user a different .onion address. So we should include the .onion address on the blockchain.

@goldbe
Copy link

goldbe commented Jul 31, 2017

@osagga and I are happy to post a first version of the implementation of the TumbleBit setup protocol!
https://github.com/osagga/TumbleBitSetup/

@NicolasDorier we are waiting for your review and PR that would make the API easier to use. You can find the spec of the protocol here: https://github.com/osagga/TumbleBitSetup/blob/master/setup.pdf

CC: @EthanHeilman

@NicolasDorier
Copy link
Contributor Author

Done!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants