Bitcoin Forum
April 23, 2024, 03:18:06 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: A better Namecoin  (Read 2705 times)
Steve (OP)
Hero Member
*****
Offline Offline

Activity: 868
Merit: 1007



View Profile WWW
February 12, 2012, 06:17:37 AM
 #1

If no one implements this, I will.  I post it here in the hopes someone else will beat me to it (I've sat on it for a while because I had hopes that I could implement it myself, but alas, there is too much work and too little time).

I think the whole namecoin idea is flawed.  They've implemented a separate currency to trade for domain names.  However, as CommitCoin has demonstrated, it's possible timestamp any document using the bitcoin block chain.  If you further establish a depth first, left right rule regarding the merkle tree of transactions, then it's possible to establish a community agreed upon ordering of arbitrary documents.  These documents could be anything, including contracts for the initial claim of a domain name and the subsequent transfer of those domain names.

I think that should be all the clue anyone needs to implement a better namecoin system.

(gasteve on IRC) Does your website accept cash? https://bitpay.com
No Gods or Kings. Only Bitcoin
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1713885486
Hero Member
*
Offline Offline

Posts: 1713885486

View Profile Personal Message (Offline)

Ignore
1713885486
Reply with quote  #2

1713885486
Report to moderator
ThiagoCMC
Legendary
*
Offline Offline

Activity: 1204
Merit: 1000

฿itcoin: Currency of Resistance!


View Profile
February 12, 2012, 06:26:58 AM
 #2

I like very much the idea behind Namecoin...
The world needs a decentralized DNS.
Don't know if it will be Namecoin but, who knows?!
Remember remember the 5th of November
Legendary
*
Offline Offline

Activity: 1862
Merit: 1011

Reverse engineer from time to time


View Profile
February 12, 2012, 10:29:03 AM
 #3

If no one implements this, I will.  I post it here in the hopes someone else will beat me to it (I've sat on it for a while because I had hopes that I could implement it myself, but alas, there is too much work and too little time).

I think the whole namecoin idea is flawed.  They've implemented a separate currency to trade for domain names.  However, as CommitCoin has demonstrated, it's possible timestamp any document using the bitcoin block chain.  If you further establish a depth first, left right rule regarding the merkle tree of transactions, then it's possible to establish a community agreed upon ordering of arbitrary documents.  These documents could be anything, including contracts for the initial claim of a domain name and the subsequent transfer of those domain names.

I think that should be all the clue anyone needs to implement a better namecoin system.
Not sure what you want here. Your post is very vague.

BTC:1AiCRMxgf1ptVQwx6hDuKMu4f7F27QmJC2
coraz
Newbie
*
Offline Offline

Activity: 26
Merit: 0


View Profile
February 12, 2012, 04:59:42 PM
 #4

That's a great proposal, Steve. I wholeheartedly support the idea of implementing alternative blockchain uses on the Bitcoin blockchain itself as opposed to alternate currencies.
Steve (OP)
Hero Member
*****
Offline Offline

Activity: 868
Merit: 1007



View Profile WWW
February 12, 2012, 05:29:24 PM
 #5

I wish this hadn't been moved to Alternate crypto currencies.  It's not about namecoin, but about a better way to more directly use bitcoin to implement a decentralized DNS system.  So, basically, the way it works is:

1. you define several types of DNS transactions…a) initial claim of a name, b) update to the name->address mapping for a name, c) transfer of a name to a new owner (i.e. another address)
2. you come up with a standardized way of hashing those transactions such that they can be included in a bitcoin transaction and embedded in the block chain (like the CommitCoin approach)
3. you implement software that creates, distributes and validates those transactions…transactions are ordered accorded to the bitcoin block in which they appear and within a block according to their position in the merkle tree of bitcoin transactions (depth first, left right traversal)…if there are two conflicting DNS transactions in the block chain, the earliest one wins
4. you implement other software that provides the DNS resolution (based on the validated set of transactions)
5. you convince people that this is a better approach for DNS and to start using it

The cost of an initial claim would just be the cost of getting the bitcoin transaction into the block chain.  The cost of an update to the mapping for a name would also just be the cost of getting the bitcoin transaction into the block chain.  The cost of transferring a domain name to someone else would be the cost of getting the transaction into the block chain, plus whatever the seller is asking.  Note, because the DNS transaction only becomes effective once the corresponding bitcoin transaction is in the block chain, such a transaction would be the means of paying for a DNS transfer using bitcoin.

This concept can be generalized to any form of property.  I really think the block chain, and its ultimate use for this purpose, and the fact that you need bitcoins for all of these transactions, is the biggest asset that the bitcoin system has and will ultimately prove to be the thing that ensures bitcoin has intrinsic value.

(gasteve on IRC) Does your website accept cash? https://bitpay.com
finway
Hero Member
*****
Offline Offline

Activity: 714
Merit: 500


View Profile
February 12, 2012, 05:36:42 PM
 #6

Good idea.

coraz
Newbie
*
Offline Offline

Activity: 26
Merit: 0


View Profile
February 12, 2012, 07:39:07 PM
 #7

This concept can be generalized to any form of property.  I really think the block chain, and its ultimate use for this purpose, and the fact that you need bitcoins for all of these transactions, is the biggest asset that the bitcoin system has and will ultimately prove to be the thing that ensures bitcoin has intrinsic value.

This.

The blockchain is simply a way to reliably establish ordering among the sequence of events without relying on a trusted authority. Incidentally, ordering of transactions is the central element of a digital currency system, but it can also be used for many other things. All of them can easily use the same blockchain without interfering with each other.

Come to think of it, even alternative currencies may probably be implemented ON TOP of the Bitcoin blockchain and come with the security of 10 terahash network out of the box.

doublec
Legendary
*
Offline Offline

Activity: 1078
Merit: 1005


View Profile
February 12, 2012, 08:11:04 PM
 #8

This concept can be generalized to any form of property.  I really think the block chain, and its ultimate use for this purpose, and the fact that you need bitcoins for all of these transactions, is the biggest asset that the bitcoin system has and will ultimately prove to be the thing that ensures bitcoin has intrinsic value.
Bitcoin developers were actively against storing data in the blockchain. Or is the name data you are proposing stored elsewhere? Mike Hearn outlined an approach for doing merge mining using naming as the example where it doesn't use its own blockchain if you're interested.
coraz
Newbie
*
Offline Offline

Activity: 26
Merit: 0


View Profile
February 12, 2012, 09:10:49 PM
Last edit: February 12, 2012, 09:24:44 PM by coraz
 #9

Quote
Bitcoin developers were actively against storing data in the blockchain.

Meh I did a quick forum search and it seems all those things have been discussed back in 2010, and developers mostly agreed it was a bad idea to use bitcoin for anything but digital cash. Satoshi though wasn't against hash-sized arbitrary data in the blockchain.

EDIT: there was even the exact same proposal of DNS on top of the bitcoin blockchain: http://privwiki.dreamhosters.com/wiki/Bitcoin_DNS_System_Proposal
This article even discusses overcoming potential resistance bitcoin developers/community Grin
Steve (OP)
Hero Member
*****
Offline Offline

Activity: 868
Merit: 1007



View Profile WWW
February 13, 2012, 02:29:02 AM
 #10

You're not storing the actual DNS (or other) transaction data in the block chain, you're only storing the hash of those transactions.  As for whether anyone is for or against such use, it's not really for anyone to decide…it can easily be done and there's nothing anyone can do to stop it from being done.  The block chain is a distributed time stamping service.  It timestamps bitcoin transactions, but it can also timestamp anything else.  To use this time stamping service requires that you pay with bitcoins (either in the form of the 50BTC block reward, or a transaction fee, or fees paid directly to miners).  If this use grows in popularity, it will drive the cost of transactions up as such transactions start to compete for space in blocks.  It will also push the price of bitcoin higher since there will be demand for the bitcoins necessary to timestamp things.  These developments are probably inevitable and in my view, very good for bitcoin.

(gasteve on IRC) Does your website accept cash? https://bitpay.com
Steve (OP)
Hero Member
*****
Offline Offline

Activity: 868
Merit: 1007



View Profile WWW
February 13, 2012, 02:37:06 AM
 #11

Quote
Bitcoin developers were actively against storing data in the blockchain.

Meh I did a quick forum search and it seems all those things have been discussed back in 2010, and developers mostly agreed it was a bad idea to use bitcoin for anything but digital cash. Satoshi though wasn't against hash-sized arbitrary data in the blockchain.

EDIT: there was even the exact same proposal of DNS on top of the bitcoin blockchain: http://privwiki.dreamhosters.com/wiki/Bitcoin_DNS_System_Proposal
This article even discusses overcoming potential resistance bitcoin developers/community Grin
I skimmed the proposal…it seems to be actually putting the name mapping data into the block chain.  You don't need to do this.  All you need to do is put a hash of a DNS transaction into the block chain.  There would be a completely separate p2p DNS software that communicates and remembers DNS transactions.  It would only interact with bitcoin by hashing those transactions down to something that looks like a bitcoin address (but actually isn't) and creates the bitcoin transaction necessary to timestamp the DNS transaction.  I believe outputs in bitcoin transactions can have a zero value (which means you don't even have to burn any bitcoins to implement it).  All of this will work without any modification to the current bitcoin protocol or software.  See CommitCoin for how it works:
http://eprint.iacr.org/2011/677.pdf

(gasteve on IRC) Does your website accept cash? https://bitpay.com
Steve (OP)
Hero Member
*****
Offline Offline

Activity: 868
Merit: 1007



View Profile WWW
February 13, 2012, 02:52:02 AM
 #12

Actually, I think the CommitCoin protocol may even be over designed.  All you need to do is hash the DNS transaction to something that looks like a bitcoin address and use that hash value as an output in the transaction (with zero coins if bitcoin allows it).  Alternatively, there are other places that you could put such a hash (in a scriptSig for example).  In the DNS p2p software, you just keep track of the bitcoin transaction where the DNS transaction was committed.  The Bitcoin transaction itself can also include any payment desired (such a payment for a transfer of ownership of a name).  This works beautifully because that transaction must make it into the block chain for both the bitcoin payment and DNS transfer to take effect. 

There is a "double transfer" hole that would need to be solved in some way.  Someone could create a DNS transfer transaction that they distribute, and a second one they keep to themselves…they create the bitcoin transaction for the secret DNS transaction and get it into the block chain before they distribute the fake DNS transfer transaction…after someone has paid them money for the fake DNS transfer, they announce the secret one that undoes it.  I've not given it any thought how to solve it.

(gasteve on IRC) Does your website accept cash? https://bitpay.com
JDBound
Full Member
***
Offline Offline

Activity: 150
Merit: 108



View Profile
February 13, 2012, 03:31:03 AM
 #13

Sub'd

This concept can be generalized to any form of property.  I really think the block chain, and its ultimate use for this purpose, and the fact that you need bitcoins for all of these transactions, is the biggest asset that the bitcoin system has and will ultimately prove to be the thing that ensures bitcoin has intrinsic value.

This is fascinating from a legal perspective. I'm thinking title and public notice/recordation ramifications.
allten
Sr. Member
****
Offline Offline

Activity: 455
Merit: 250


You Don't Bitcoin 'till You Mint Coin


View Profile WWW
February 13, 2012, 08:52:15 PM
 #14

I've been doing merged mining for some time and every 100 NMC I mine I change for BTC for the very reason of the OP.

If someone starts an official thread, I will commit some BTC as a bounty for the successful solution/implementation to this problem.
gmaxwell
Staff
Legendary
*
Offline Offline

Activity: 4158
Merit: 8382



View Profile WWW
February 13, 2012, 10:31:21 PM
 #15

If you further establish a depth first, left right rule regarding the merkle tree of transactions, then it's possible to establish a community agreed upon ordering of arbitrary documents.

This is actually pretty much crap, for this purpose at least— the idea that you _only_ need time stamps means there there no way to produce a (even semi-)secure lite resolver: every node would have to evaluate the whole history for itself because anyone could add rules violating commitments later (e.g. registering an already taken name).  This is one of the reason bitcoin nodes validate the txn they include rather than just timestamping them and letting everyone sort out validity for themselves.

It's also really unfortunate that they promote a completely unscalable commitment scheme which requires O(N)*bitcoin_nodes storage, bandwidth, and processing when O(1) commitments are perfectly possible in Bitcoin— which is what merged mining uses.

marcus_of_augustus
Legendary
*
Offline Offline

Activity: 3920
Merit: 2348


Eadem mutata resurgo


View Profile
February 18, 2012, 12:59:42 AM
 #16

Quote
There is a "double transfer" hole that would need to be solved in some way.  Someone could create a DNS transfer transaction that they distribute, and a second one they keep to themselves…they create the bitcoin transaction for the secret DNS transaction and get it into the block chain before they distribute the fake DNS transfer transaction…after someone has paid them money for the fake DNS transfer, they announce the secret one that undoes it.  I've not given it any thought how to solve it.

So it is admittedly NOT better than Namecoin, which includes natively the same double-spend protection as bitcoin ... by your own admission.

Back to the drawing board?

Red Emerald
Hero Member
*****
Offline Offline

Activity: 742
Merit: 500



View Profile WWW
February 18, 2012, 01:04:14 AM
 #17

I don't see the problem of maintaining a separate block chain.  Not everyone who needs a wallet needs names and not everyone who needs names needs a wallet.  We already have merged mining making multiple chains not too difficult.

pent
Hero Member
*****
Offline Offline

Activity: 490
Merit: 500



View Profile
February 18, 2012, 06:37:13 AM
 #18

Hello, please consider reading my proposal
https://bitcointalk.org/index.php?topic=64279.0

http://dianna-project.org/dianna_en.pdf
phelix
Legendary
*
Offline Offline

Activity: 1708
Merit: 1019



View Profile
February 18, 2012, 09:50:09 AM
 #19

I don't see the problem of maintaining a separate block chain.  Not everyone who needs a wallet needs names and not everyone who needs names needs a wallet.  We already have merged mining making multiple chains not too difficult.

+1  namecoin works just fine - come and join
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!