-
Notifications
You must be signed in to change notification settings - Fork 23
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
Well Known directory for wallets address #5
Conversation
This protocol needs to be versioned so that it is easy to upgrade from the way that the addresses are currently hardcoded. I could imagine in future versions, the client could need to provide a proof of identity before the server would return an address.
This makes the version explicit and forces the client to state the version that they are expecting a response from. If the version is a query parameter or in the HTTP header, they can get away without setting it. It also makes using a reverse proxy much easier, I could imagine setting up a reverse proxy based on the HTTP path that sends the request to a different server that is responsible for managing the wallet service. This could even be outsourced to a company who manages the keys, making it very easy for existing websites to add this functionality by only adding a rule into their proxy. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ack.
Neat proposal.
I'm almost certain this is a silly question, but I'm going to ask it anyway for my own learning. I hope that's alright. :)
What is the difference between providing the address over HTTPS and simply publishing the address on-chain on a record, like TXT?
My thinking: 512 bytes is a lot to work with. While I'm aware of privacy concerns for the latter, I feel like ENS and others have gotten substantive adoption with solutions many HNS purists would consider flawed. If our wallet address standard can be designed to be extensible (not on-chain? okay, the wallet provider can make a request for the receive addr), I feel like we could start with something simple like on-chain records.
@sdtsui there's been some telegram discussion about pros and cons of doing it in dns. the main factors I can recall:
|
I like this. My only concern is that it requires HTTPS, whereas doing it on chain removes this dependency. I know it is a tradeoff wrt to privacy. But by having this dependency, there could be issues with resolving the address, or it could also be considered more insecure because it is more centralized (you need to have a web server running). |
Some additional thoughts: Note that a cryptocurrency address-in-DNS system has been propsed: https://openalias.org/ It is in use in the Monero community. Monero uses "stealth addresses" which means that the address you get is never actually revealed on chain. Such addresses can be reused because the sender actually uses that address to encrypt a blob that goes in the transaction along with an ephemeral key (or something like that). BTC and HNS could also use stealth addresses but they are not standard: https://github.com/bitcoin/bips/blob/master/bip-0047.mediawiki HNS users could easily just use openalias as well with a static address but it is considered bad practice. There are other issues with using TXT in the root zone: it takes up to 6 hours to update for one. I think the "referal only" root zone concept for HNS is a good guideline - we should be using HNS to point to authenticated servers and then use those servers for evreything else. Even if a user chooses to run openalias, they should do it from their authenticated name server, and then can still generate new addresses with each request. The well-known standard is essentially equivalent to posting an address on a website. It is extremely user friendly and can still be authenticated with https |
i don't think managing dns and dnssec is easier to support on either end. with the http option, this feature could be enabled by a lightweight wordpress plugin, or a wide range of low-barrier-to-entry alternatives opening it up for "everybody" relatively speaking. the population that has a website and wouldn't mind taking donations (if it were easy to do) is way larger than the population that can manage dns records safely (total non-starter for the vast majority). i do understand preferring consensus data to server data, when possible, but i don't think the tradeoffs here make sense when we want to cycle addresses on use, and enable widespread adoption. if you're ok with relatively static reused addresses, then i think it makes sense to follow the existing openalias spec as mentioned, rather than adding yet another standard for the exact same function. |
@brandondees TXT in the root zone on HNS is the only way to do this without DNSSEC. Using an authenticated nameserver to issue addresses requires DNSSEC Using HTTPS on a handshake website requires DNSSEC + DANE |
@pinheadmz fair point, i guess i'm thinking just about the address rotation management aspect, which will have to be manual for most individuals' websites where they can't run their own dns server. |
Just to keep track: this should be merged as |
No description provided.