getAlby / lightning-browser-extension

The Bitcoin Lightning Browser extension that connects to different wallet interfaces and brings deep lightning integration to the web
https://getalby.com
MIT License
522 stars 193 forks source link

[Feature] Support Sats Names to make lighting address easier to recognize, easier to read, easier to remember #2452

Open OliverThompsonOT opened 1 year ago

OliverThompsonOT commented 1 year ago

Feature description

If you don't know what is Sats Names, you can read this doc: https://docs.sats.id/sats-names/about Sats Names is a standard for writing names to Bitcoin using ordinals. The goal is to build a name ecosystem for Bitcoin, that is built by Bitcoiners, and developed entirely on Bitcoin.

it can make lighting address easier to recognize, easier to read, easier to remember, and most important, it's decentralized.

FAQs: https://docs.sats.id/sats-names/faqs

Why we need this?

Describe the solution

I'm not an engineer, but perhaps you can discuss with the author of Sats how to implement this. https://twitter.com/satsnames

My idea is as follows: for instance, an address that owns bitcoin.sats could mint an inscription declaring that the Lightning Network address/invoice corresponding to that bitcoin.sats is ****. Afterwards, when transferring to this bitcoin.sats via the Lightning Network, one could send to the Lightning Network receiving address corresponding to this bitcoin.sats

Describe alternatives

No response

Additional context

No response

Are you working on this?

None

reneaaron commented 1 year ago

for instance, an address that owns bitcoin.sats could mint an inscription declaring that the Lightning Network address/invoice corresponding to that bitcoin.sats is ****. Afterwards, when transferring to this bitcoin.sats via the Lightning Network, one could send to the Lightning Network receiving address corresponding to this bitcoin.sats

Invoices are not reusable and lightning addresses depend on a domain, so in your example bitcoin.sats would just be a proxy for the lightning address satoshi@example.com. I don't see why this would gain anything in terms of decentralization and why you wouldn't just give out your lightning address to others?

OliverThompsonOT commented 1 year ago

for instance, an address that owns bitcoin.sats could mint an inscription declaring that the Lightning Network address/invoice corresponding to that bitcoin.sats is ****. Afterwards, when transferring to this bitcoin.sats via the Lightning Network, one could send to the Lightning Network receiving address corresponding to this bitcoin.sats

Invoices are not reusable and lightning addresses depend on a domain, so in your example bitcoin.sats would just be a proxy for the lightning address satoshi@example.com. I don't see why this would gain anything in terms of decentralization and why you wouldn't just give out your lightning address to others?

now, we don't need to be a proxy for the lightning address satoshi@example.com, we don't need to use this kind of domain.

we just need to a decentralized indexer, like a bitcoin wallet that can read amount of my bitcoin address.

a bitcoin wallet can also know which Invoices this "test.sats" point to by reading ordinals.

actually, test.sats can also point to evm address, do not need to do any complex things. just need wallet to index.

reneaaron commented 1 year ago

Do you mind to elaborate with a concrete example of this use case and how this would fit into Alby?

OliverThompsonOT commented 1 year ago

Firstly, users can inscribe (mint) a valid inscription on Ordinals like this json: { "p": "sns", "op": "reg", "name": "test.sats", "lighting-invoice": "*******", "BTC": "bc1p*******" }

then as a wallet, wallet can index these inscription, so they can know which invoice a sats name points to.

so, when a user use lighting wallet, they click "send" button, and input test.sats, then wallet can know which invoice test.sats points to. then wallet can send bitcoin(sats) to this invoce.

also, there are many rules about what is valid inscription, you can see this doc: https://docs.sats.id/

This experimental protocol was recently proposed and has some incomplete aspects, such as the update procedure. However, it does provide us with a possibility to make Bitcoin addresses/Lightning Network addresses more readable and user-friendly in a fully decentralized manner.

If a wallet is willing to collaborate with the protocol author and the Sats community, it will accelerate the adoption of the protocol and also become one of the standard setters for the protocol. There is no project entity behind this protocol, and the project itself cannot generate any revenue. Once a user registers a name, they can use it permanently for free. Moreover, upon reading the documentation, you will know that it is fully decentralized, which is very cool and aligns with the spirit of the Bitcoin community.

most important, a readable address is useful and important for The widespread adoption of Bitcoin and the Lightning Network.

reneaaron commented 1 year ago

Thanks for laying that out. However that's not how lightning invoices work, they are not reusable so it makes no sense to inscribe them. This means you would have to inscribe something that can generate lightning invoices on demand (such as a lightning address) which brings us back to the original question:

What is the benefit of having a .sats name (that is resolved to a lightning address) over having a lightning address?

OliverThompsonOT commented 1 year ago

another thing, some wallets ( popular wallets in the Ordinals community ) have support sats names,

such as unisat, [url] (https://chrome.google.com/webstore/detail/unisat-wallet/ppbibelpcjmhbdihakflkdcoccbgbkpo?utm_source=chrome-ntp-icon)

image

you can try it.

reneaaron commented 1 year ago

For on-chain addresses that could work of course, however keep in mind that the full transaction history of those names will be recorded and publicly accessible forever.

OliverThompsonOT commented 1 year ago

Thanks for laying that out. However that's not how lightning invoices work, they are not reusable so it makes no sense to inscribe them. This means you would have to inscribe something that can generate lightning invoices on demand (such as a lightning address) which brings us back to the original question:

What is the benefit of having a .sats name (that is resolved to a lightning address) over having a lightning address?

this is a good questions, but now, we have bolt12, https://bolt12.org/ with bolt12, we can reuse an "involce" if I understand correctly, they call it "offer", it can create static Lightning Network invoices

OliverThompsonOT commented 1 year ago

what does this mean? I can not understand.

reneaaron commented 1 year ago

what does this mean? I can not understand.

That the full transaction history of this .sats name will be publicly visible to anyone?

OliverThompsonOT commented 1 year ago

what does this mean? I can not understand.

That the full transaction history of this .sats name will be publicly visible to anyone?

what is transaction history? you mean Transaction history in the trading market?

OliverThompsonOT commented 1 year ago

what does this mean? I can not understand.

That the full transaction history of this .sats name will be publicly visible to anyone?

or the mint/update history in Ordinals? It is completely public, just like Bitcoin addresses. so what impact?

OliverThompsonOT commented 1 year ago

@reneaaron so what's your opinion?

reneaaron commented 1 year ago

No, I was just trying to point out that any payments you receive to your .sats name will be publicly visible and that address reuse is something to avoid.

OliverThompsonOT commented 1 year ago

No, I was just trying to point out that any payments you receive to your .sats name will be publicly visible and that address reuse is something to avoid.

Your statement is rather arbitrary, neglecting user needs. Why should Bolt12 support static fixed addresses? There are real user demand scenarios for this, such as tipping. Avoiding the use of fixed addresses caters to the needs of some people, but there will still be other demographics or use cases that require fixed addresses.

if you are product designer, you should not neglect some use cases.

reneaaron commented 1 year ago

Why should Bolt12 support static fixed addresses? There are real user demand scenarios for this, such as tipping.

I wasn't referring to bolt12, but to on-chain payments. Sorry for not being clear about that. With bolt12 that could be an interesting use case for sure.

OliverThompsonOT commented 1 year ago

Why should Bolt12 support static fixed addresses? There are real user demand scenarios for this, such as tipping.

I wasn't referring to bolt12, but to on-chain payments. Sorry for not being clear about that. With bolt12 that could be an interesting use case for sure.

I do not understand, bolt12 is useful, if give it a readable name, it also should be useful! also, may be I misunderstand your questions, if you use sats names, it also can not be publicly visible. because the anonymity of sats names and bolt12 is the same.

OliverThompsonOT commented 1 year ago

Why should Bolt12 support static fixed addresses? There are real user demand scenarios for this, such as tipping.

I wasn't referring to bolt12, but to on-chain payments. Sorry for not being clear about that. With bolt12 that could be an interesting use case for sure.

Do you have any other concerns?

MoritzKa commented 1 year ago

The main advantage is that a user can have a moritz.sats address that can be resolved to a lightning address such as moritz@getalby.com? Do I get that right? And the idea is Alby works like explorer to find the inscription with the lightning address. How can Alby know which moritz.sats to pick from the blockchain?

reneaaron commented 1 year ago

The main advantage is that a user can have a moritz.sats address that can be resolved to a lightning address such as moritz@getalby.com? Do I get that right?

I think for lightning addresses the benefits are not too compelling as they are already human readable identifiers. It probably makes more sense for Bitcoin addresses / BOLT12.

And the idea is Alby works like explorer to find the inscription with the lightning address. How can Alby know which moritz.sats to pick from the blockchain?

You need to scan the blockchain for this particular inscription. Since we don't have blockchain data locally in the extension, we can only rely on APIs to that do that for us (or maintain our own indexer):

https://api.sats.id/names/satoshi.sats

OliverThompsonOT commented 1 year ago

now the lightning addresses has problems, it is centralized. for example, if lots of users use test@btcpay.com, then someday, btcpay.com is able to Steal all the money from his users. Or Hackers can steal all the money from their users, we need to believe this company.

you are right, BOLT12 + sats names, maybe it's a good solution.

Bolt12 is experimental now? not public?

reneaaron commented 1 year ago

I think all major node implementations are working on it, might still take some time until this is widely available and also wallets start supporting it.