Bitcoin Forum
June 19, 2024, 01:08:27 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: PlebNames: piggybacked names on Bitcoin  (Read 113 times)
MichiTheBitcoiner (OP)
Newbie
*
Offline Offline

Activity: 4
Merit: 4


View Profile
June 12, 2024, 11:21:22 PM
Merited by hugeblack (2), Vod (1), ABCbits (1)
 #1

I would like some feedback about an Idea, it sounds humorously and funny first, but is technically imho reasonable:
Having names that can be naturally spoken and remembered has some advantage, but there is no uncorruptible register yet that attaches information to names.
Bitcoin addresses are indexed by every Bitcoin node. When we encode names by repeating them as long as possible and suffix them with the checksum we get valid Bitcoin addresses. E.g. "Test" leads to "bc1qtesttesttesttesttesttesttesttestaylauu". This is deterministic, the same name always leads to the same "PlebAddress". As Bitcoin addresses are already indexed by every Bitcoin node or block explorer we just need a few lines of code to look-up who first sent to an Address.
Let's agree the one who first sent or burned satoshis to an "PlebAddress" claimed it and can publish information about the name with OP_RETURN transactions or transfer it. Not much information is worth to be written into the Bitcoin mainchain. Such information could be the current lightningAddress then wallets could resolve a name to an actual address by just looking into the Bitcoin mainchain.

No other infrastructure or sidechain is required, it is just Bitcoin. This would make PlebNames a simple, ubiquitous, uncensorable and fast Protocol.

I implemented a prototype that generates "PlebAddresses" and OP_RETURN scripts for Electrum, have a look:
https://github.com/MichiSpebach/plebnames (build and run with TypeScript runtime environment Deno, see readme)

What do you think about this protocol?
hugeblack
Legendary
*
Offline Offline

Activity: 2548
Merit: 3774


View Profile WWW
June 14, 2024, 11:41:56 AM
 #2

I don't think I will use an easy-to-remember Bitcoin address. The addresses can easily be copied/paste using a QR and then compared in less than a minute, but the idea seems good and may be suitable for donation addresses.
seoincorporation
Legendary
*
Offline Offline

Activity: 3192
Merit: 2979


Top Crypto Casino


View Profile
June 14, 2024, 07:32:14 PM
 #3

I don't get clear at all what the main use of this, i mean you can generate valid addresses but you don't have the private keys from those addresses, so, sending btc to them would be the same as burning coins.

So, what's the goal of generating an address easy to remember but without access to the private keys? maybe i didn't get right the main idea.

█████████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████
█████████████████████████
.
BC.GAME
▄▄░░░▄▀▀▄████████
▄▄▄
██████████████
█████░░▄▄▄▄████████
▄▄▄▄▄▄▄▄▄██▄██████▄▄▄▄████
▄███▄█▄▄██████████▄████▄████
███████████████████████████▀███
▀████▄██▄██▄░░░░▄████████████
▀▀▀█████▄▄▄███████████▀██
███████████████████▀██
███████████████████▄██
▄███████████████████▄██
█████████████████████▀██
██████████████████████▄
.
..CASINO....SPORTS....RACING..
█░░░░░░█░░░░░░█
▀███▀░░▀███▀░░▀███▀
▀░▀░░░░▀░▀░░░░▀░▀
░░░░░░░░░░░░
▀██████████
░░░░░███░░░░
░░█░░░███▄█░░░
░░██▌░░███░▀░░██▌
░█░██░░███░░░█░██
░█▀▀▀█▌░███░░█▀▀▀█▌
▄█▄░░░██▄███▄█▄░░▄██▄
▄███▄
░░░░▀██▄▀


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
MichiTheBitcoiner (OP)
Newbie
*
Offline Offline

Activity: 4
Merit: 4


View Profile
June 16, 2024, 11:51:14 PM
 #4

@seoincorporation: Yes, all satoshis that you send to that address are burned. It is just about that we can look-up very quickly with every block explorer who sent first to that address. So it is about the sender. Let's do an example:
With our Electrum wallet we send from address "bc1q88758c9etpsvntxncg68ydvhrzh728802aaq7w" to the generated address "bc1qtesttesttesttesttesttesttesttestaylauu" 546 satoshis.
Then also with Electrum we send again from "bc1q88758c9etpsvntxncg68ydvhrzh728802aaq7w" the script "script(OP_RETURN hex(test.lightningAddress=BOLT12b9ed1c9ad3374172f9178...)).

Now everybody can just with our short name "test" generate the burn address "bc1qtesttesttesttesttesttesttesttestaylauu" and look-up its history and see that "bc1q88758c9etpsvntxncg68ydvhrzh728802aaq7w" sent there first (and claimed the name that derives to the burn address).
Then in a second request the claimer address "bc1q88758c9etpsvntxncg68ydvhrzh728802aaq7w" is looked-up and we see the attached lightningAddress.
That's how we fetch the attached data of a name without running any extra infrastructure (and ensuring that the claimer attached this data).
Is it now more clear, what do you think now?

@hugeblack: You can attach any data to your name, e.g. an URL or IP address and have a browser extension that looks this up and forwards you, e.g.: type in "test.btc/" and being forwarded to "https://bitcoin.org". I also implemented a prototype for a Chrome extension here: https://github.com/MichiSpebach/plebnames/tree/master/chromeExtension
ABCbits
Legendary
*
Offline Offline

Activity: 2912
Merit: 7565


Crypto Swap Exchange


View Profile
June 17, 2024, 09:16:29 AM
Merited by MichiTheBitcoiner (1)
 #5

Why do PlebNames abuse Bitcoin-Addresses?

Bitcoin-Addresses are indexed by every Bitcoin-Node. This makes it very easy to find out when a PlebAddress first occured.
It enables a very simple code snipped to look-up when a PlebName was first claimed.
This makes PlebNames a simple, ubiquitous, uncensorable and fast Protocol.

Actually Bitcoin full node only need to UTXO, where Bitcoin Core doesn't have address index feature. I also wonder what happen if two transaction on same block claim same name.

I don't think I will use an easy-to-remember Bitcoin address. The addresses can easily be copied/paste using a QR and then compared in less than a minute, but the idea seems good and may be suitable for donation addresses.

I can see it's used as donation addresses, although it's not ideal when we're talking about privacy. Everyone knows how much money donation to certain people or group, while blockchain analysis might discover how you spend your Bitcoin.

█▀▀▀











█▄▄▄
▀▀▀▀▀▀▀▀▀▀▀
e
▄▄▄▄▄▄▄▄▄▄▄
█████████████
████████████▄███
██▐███████▄█████▀
█████████▄████▀
███▐████▄███▀
████▐██████▀
█████▀█████
███████████▄
████████████▄
██▄█████▀█████▄
▄█████████▀█████▀
███████████▀██▀
████▀█████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
c.h.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
▄██████▄▄▄
█████████████▄▄
███████████████
███████████████
███████████████
███████████████
███░░█████████
███▌▐█████████
█████████████
███████████▀
██████████▀
████████▀
▀██▀▀
seoincorporation
Legendary
*
Offline Offline

Activity: 3192
Merit: 2979


Top Crypto Casino


View Profile
June 17, 2024, 01:21:23 PM
 #6

@seoincorporation: Yes, all satoshis that you send to that address are burned. It is just about that we can look-up very quickly with every block explorer who sent first to that address. So it is about the sender. Let's do an example:
With our Electrum wallet we send from address "bc1q88758c9etpsvntxncg68ydvhrzh728802aaq7w" to the generated address "bc1qtesttesttesttesttesttesttesttestaylauu" 546 satoshis.
Then also with Electrum we send again from "bc1q88758c9etpsvntxncg68ydvhrzh728802aaq7w" the script "script(OP_RETURN hex(test.lightningAddress=BOLT12b9ed1c9ad3374172f9178...)).

Now everybody can just with our short name "test" generate the burn address "bc1qtesttesttesttesttesttesttesttestaylauu" and look-up its history and see that "bc1q88758c9etpsvntxncg68ydvhrzh728802aaq7w" sent there first (and claimed the name that derives to the burn address).
Then in a second request the claimer address "bc1q88758c9etpsvntxncg68ydvhrzh728802aaq7w" is looked-up and we see the attached lightningAddress.
That's how we fetch the attached data of a name without running any extra infrastructure (and ensuring that the claimer attached this data).
Is it now more clear, what do you think now?

Thanks for the information MichiTheBitcoiner.

Now that i understand how it works i can tell you that i don't like the idea, the fact that users have to burn coins for an action is not the way, or at least that's how i feel. If bitcoin supply were infinite like the one of Dogecoin, maybe that could work better, but since bitcoin has a limit and there are a lot of coins already lost, i don't like the idea of burning them.

And if you want to claim a name with an address, then you can use vanity gen.

█████████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████
█████████████████████████
.
BC.GAME
▄▄░░░▄▀▀▄████████
▄▄▄
██████████████
█████░░▄▄▄▄████████
▄▄▄▄▄▄▄▄▄██▄██████▄▄▄▄████
▄███▄█▄▄██████████▄████▄████
███████████████████████████▀███
▀████▄██▄██▄░░░░▄████████████
▀▀▀█████▄▄▄███████████▀██
███████████████████▀██
███████████████████▄██
▄███████████████████▄██
█████████████████████▀██
██████████████████████▄
.
..CASINO....SPORTS....RACING..
█░░░░░░█░░░░░░█
▀███▀░░▀███▀░░▀███▀
▀░▀░░░░▀░▀░░░░▀░▀
░░░░░░░░░░░░
▀██████████
░░░░░███░░░░
░░█░░░███▄█░░░
░░██▌░░███░▀░░██▌
░█░██░░███░░░█░██
░█▀▀▀█▌░███░░█▀▀▀█▌
▄█▄░░░██▄███▄█▄░░▄██▄
▄███▄
░░░░▀██▄▀


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
MichiTheBitcoiner (OP)
Newbie
*
Offline Offline

Activity: 4
Merit: 4


View Profile
June 18, 2024, 01:21:30 AM
Last edit: June 18, 2024, 01:34:01 AM by MichiTheBitcoiner
 #7

Actually Bitcoin full node only need to UTXO, where Bitcoin Core doesn't have address index feature.
Thanks for the clarification, I read now about it (will correct it on GitHub). So how does a wallet display the funds of an address? Just by gathering all UTXOs? Is there a way how a Bitcoin node can get from an address to its UTXOs (without trawling the whole chain)? Otherwise PlebNames rely on block explorers (which there are plenty of).

I also wonder what happen if two transaction on same block claim same name.
That's a good question, I also thought about it but did not resolve it yet. We would need to come to an agreement, either the transaction with the lower id or the one that shows up first in the block. Do you know what (most) block explorers would list first?

it's not ideal when we're talking about privacy
Yes, it is for convenience but what is with lightning BOLT12 addresses, could their history also be chain analysed?

the fact that users have to burn coins for an action is not the way
I think compared to wallets that were lost (and will be lost in future) burning these few satoshis will not fall into account. I also know the argument about creating unspendable UTXOs, but looking whats going on with ordinals it is also minimal afaik.

if you want to claim a name with an address, then you can use vanity gen
Then we only have the beginning of an address, where can we search for the beginning of an address?
ABCbits
Legendary
*
Offline Offline

Activity: 2912
Merit: 7565


Crypto Swap Exchange


View Profile
June 18, 2024, 10:09:21 AM
 #8

Actually Bitcoin full node only need to UTXO, where Bitcoin Core doesn't have address index feature.
Thanks for the clarification, I read now about it (will correct it on GitHub). So how does a wallet display the funds of an address? Just by gathering all UTXOs? Is there a way how a Bitcoin node can get from an address to its UTXOs (without trawling the whole chain)? Otherwise PlebNames rely on block explorers (which there are plenty of).

At least for Bitcoin Core, it scan new blocks and mempool for relevant transaction. If you import address or wallet.dat file, you'll need to use rescanblockchain command.

I also wonder what happen if two transaction on same block claim same name.
That's a good question, I also thought about it but did not resolve it yet. We would need to come to an agreement, either the transaction with the lower id or the one that shows up first in the block. Do you know what (most) block explorers would list first?

Behavior between block explorer when showing transaction in a block usually are different, for example

  • mempool.space sort by fee rate.
  • btc.com use default sort "Tx Block Id".
  • blockchain.com use default sort "First".

I didn't perform detailed research, so i don't know what those website mean by "Tx Block Id" and "First".

it's not ideal when we're talking about privacy
Yes, it is for convenience but what is with lightning BOLT12 addresses, could their history also be chain analysed?

The answer should be no. On-chain history only reveal initial and last/final balance of addresses on certain LN channel.

█▀▀▀











█▄▄▄
▀▀▀▀▀▀▀▀▀▀▀
e
▄▄▄▄▄▄▄▄▄▄▄
█████████████
████████████▄███
██▐███████▄█████▀
█████████▄████▀
███▐████▄███▀
████▐██████▀
█████▀█████
███████████▄
████████████▄
██▄█████▀█████▄
▄█████████▀█████▀
███████████▀██▀
████▀█████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
c.h.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
▄██████▄▄▄
█████████████▄▄
███████████████
███████████████
███████████████
███████████████
███░░█████████
███▌▐█████████
█████████████
███████████▀
██████████▀
████████▀
▀██▀▀
seoincorporation
Legendary
*
Offline Offline

Activity: 3192
Merit: 2979


Top Crypto Casino


View Profile
June 18, 2024, 02:40:58 PM
 #9

if you want to claim a name with an address, then you can use vanity gen
Then we only have the beginning of an address, where can we search for the beginning of an address?

Well, you can download all the address with balance from Loyce page: http://addresses.loyce.club/

And then search for the address with a command like grep, it would be something like this:

Quote
$ cat AllAddressWithBalance.txt | grep 1MyVanityAddress

And that way you can search for the beginning of an address if it has balance, i mean, with your example the address must have balance too. But with my example, we keep the private key from the address and this way we don't have to burn the coins. 

To be clear,i like the idea in general, but i don't like the burning coins way, that should never be an option for any blockchain process.

█████████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████
█████████████████████████
.
BC.GAME
▄▄░░░▄▀▀▄████████
▄▄▄
██████████████
█████░░▄▄▄▄████████
▄▄▄▄▄▄▄▄▄██▄██████▄▄▄▄████
▄███▄█▄▄██████████▄████▄████
███████████████████████████▀███
▀████▄██▄██▄░░░░▄████████████
▀▀▀█████▄▄▄███████████▀██
███████████████████▀██
███████████████████▄██
▄███████████████████▄██
█████████████████████▀██
██████████████████████▄
.
..CASINO....SPORTS....RACING..
█░░░░░░█░░░░░░█
▀███▀░░▀███▀░░▀███▀
▀░▀░░░░▀░▀░░░░▀░▀
░░░░░░░░░░░░
▀██████████
░░░░░███░░░░
░░█░░░███▄█░░░
░░██▌░░███░▀░░██▌
░█░██░░███░░░█░██
░█▀▀▀█▌░███░░█▀▀▀█▌
▄█▄░░░██▄███▄█▄░░▄██▄
▄███▄
░░░░▀██▄▀


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
MichiTheBitcoiner (OP)
Newbie
*
Offline Offline

Activity: 4
Merit: 4


View Profile
Today at 12:21:15 AM
Last edit: Today at 12:56:06 AM by MichiTheBitcoiner
 #10

Behavior between block explorer when showing transaction in a block usually are different
Thanks for the concrete answers. Then there is no clear winner and we should choose the simplest and most obvious rule. What do you think is the most simplest and obvious rule?

it's not ideal when we're talking about privacy
Yes, it is for convenience but what is with lightning BOLT12 addresses, could their history also be chain analysed?
The answer should be no. On-chain history only reveal initial and last/final balance of addresses on certain LN channel.
PlebNames can be claimed anonymously. And by making Bitcoin and Lightning more convenient so that people do more on the bitcoin network instead of on centralized servers it would imho overall increase privacy.

if you want to claim a name with an address, then you can use vanity gen
Then we only have the beginning of an address, where can we search for the beginning of an address?
Well, you can download all the address with balance from Loyce page: http://addresses.loyce.club/

And then search for the address with a command like grep, it would be something like this:

Quote
$ cat AllAddressWithBalance.txt | grep 1MyVanityAddress

And that way you can search for the beginning of an address if it has balance, i mean, with your example the address must have balance too. But with my example, we keep the private key from the address and this way we don't have to burn the coins.  
It is a cool idea to solve this with vanity addresses, I like the idea of needing to burn energy to find a vanity gen address, but bootstrapping this protocol is more difficult:
We would need to run extra infrastructure to make addresses searchable with their beginnings, this makes bootstrapping this protocol with vanity addresses more difficult and easier to attack as long as the infrastructure is not ubiquitously distributed.
Furthermore we have to run vanity gen on our own hardware that is not connected to the internet (or directly transfer names via OP_RETURN to secure wallets)

To be clear,i like the idea in general, but i don't like the burning coins way, that should never be an option for any blockchain process.
I also dislike that the amount of spendable satoshis is not constant but shrinks slowly. But looking at it rationally it does not matter.
Let's say there would be 1 billion (10^9) PlebNames (what is unlikely as at some point in future second level names would be derived from PlebNames (like with TLDs <secondLevelDomain>.com) that live in more scalable sidechains). This would burn 546 * 10^9 satoshis or about 5500 bitcoins. This is only 0.1% of the bitcoins that are already lost (about 4 million) and 1 billion PlebNames on the mainchain is farly exaggerated. So it is really minimal. (Maybe with quantum computers in 100 years these old address formats can be remined anyway Wink )
ABCbits
Legendary
*
Offline Offline

Activity: 2912
Merit: 7565


Crypto Swap Exchange


View Profile
Today at 08:41:11 AM
 #11

Behavior between block explorer when showing transaction in a block usually are different
Thanks for the concrete answers. Then there is no clear winner and we should choose the simplest and most obvious rule. What do you think is the most simplest and obvious rule?

I would say to choose transaction with highest fee rate. People already aware miner prioritize TX with higher fee rate or higher fee rate TX leads to faster confirmation.

█▀▀▀











█▄▄▄
▀▀▀▀▀▀▀▀▀▀▀
e
▄▄▄▄▄▄▄▄▄▄▄
█████████████
████████████▄███
██▐███████▄█████▀
█████████▄████▀
███▐████▄███▀
████▐██████▀
█████▀█████
███████████▄
████████████▄
██▄█████▀█████▄
▄█████████▀█████▀
███████████▀██▀
████▀█████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
c.h.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
▄██████▄▄▄
█████████████▄▄
███████████████
███████████████
███████████████
███████████████
███░░█████████
███▌▐█████████
█████████████
███████████▀
██████████▀
████████▀
▀██▀▀
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!