-
Notifications
You must be signed in to change notification settings - Fork 280
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
Create 1A-tor-address-encoding-and-encrypted-peer-info.md #172
base: master
Are you sure you want to change the base?
Conversation
@yusefnapora would you mind taking the lead in adjusting this doc to the new header format, and in identifying the appropriate members of the Interest Group? |
Definitely. Thanks for making this @Zolmeister, we should definitely get an Interest Group formed up around this. @Stebalien @jhiesey @bigs, would any of you be interested? To summarize a bit, it sounds like the end goal of this proposal is a more privacy-preserving IPNS, in which peers publish DHT records whose keys are a blind key (derived from their primary ed25519 identity) and whose values are encrypted peer info. @Zolmeister I wasn't quite clear on why this requires a new |
@yusefnapora I'm not sure it does, but it seemed like a way to avoid a similar situation as #138, #111 |
I see, that makes sense. The inlining of keys is a bit of a problem at the moment. I have a question for the group at large - are IPNS addresses required to also be peer ids? Or could this proposed encoding be considered a valid IPNS address, but not necessarily a peer id? That would let @Zolmeister define an encoding with as much metadata as necessary, and with the ed25519 key type restriction, which doesn't feel to me like it makes sense as part of the peer id definition. Anyway, this sounds like an interesting direction to explore. I'll be a bit delayed in my responses next week, as I'll be moving to a new house a few states away. But please |
Add libp2p spec header
Ping @vyzo @jamesray1 @daviddias @ivilata @richardschneider @lgierth @marten-seemann @dryajov |
How will this work in practice? It breaks compatibility with the existing system completely. |
@vyzo Yes, these changes will not be backwards compatible with existing nodes. |
Tor Address Encoding and Encrypted
PeerInfo
Authors: @Zolmeister
Interest Group: @yusefnapora, others TBD
See the lifecycle document for context about maturity level
and spec status.
Context:
IPNS addresses are encoded as:
And added to the DHT like so (~ I think):
The proposal is to encode IPNS addresses as Tor rend-spec-v3 onion addresses:
And added to the DHT like so:
Where
BlindKey
is derived from the ed25519 keypair using Tors derivation scheme, except without key rotationNote that
BlindKey
derivation only works for ed25519 keypairsEncrypt
andDeriveKey
follow Tors hidden service descriptor encryption key derivation (again without shared random)Motivation
Adversaries can:
PeerInfo
of all servicesPeerInfo
requests of other members in the networkScope and Rationale
IPNS address calculation, IPNS DHT read/write and validation
Goals
Significantly improve the privacy of IPNS services
Expected Feature Set: a summary/enumeration of features the spec provides.
Encrypted
PeerInfo
records and base32 IPNS addressing with inlined signing keysTentative Technical Directions
Add a ney
KeyType
to the public key protobufAddress Tradeoffs
Qm
) makes it much harder for people to distinguish addressesAdditional Notes
PUT(Hash(PeerID), Encrypt(PeerInfo, PeerID))
(proposed elsewhere)PeerID
to parties before inserting into the DHTBlindKeys
are not rotated daily using a shared random valueNUL
bytes to 10k, and 'stubs' extra fields to shield access controlled descriptors (which are longer)BlindKey
rotation, but could not find a suitable generation schemeHSDir
servers