Post
Topic
Board Project Development
Re: New release of MultiCoin client a branch of the BitCoin client
by
sacarlson
on 10/07/2011, 11:50:05 UTC
Alternate Chain Licensed Mining addition ideas
I would like to get into more detail of how I would like to implement an alternate block chain method using licensed miners.   And start to answer some of the questions that might be asked.

What is licensed Mining?
Licensed mining as I envision it would be an alternate chain method with some small modifications to the present bitcoin chain rule method.  The Lic. Miner method would only allow certain miners that hold certain private keys to be able to mine as an option in some of the newly created alternate block chains of new currencies or other type data chains.  And allow networks to change the rules later if and or when they get big enough to no longer need lic. Mining.

Why would we ever need Licensed Mining?
First of all you should ask why not just make a small network clone of how bitcoin does it?  Well with a small network I have seen with my own eyes for example in testnet that my transactions I did yesterday magically disappeared.  This is what can happen in a very small underpowered network like testnet and others.  Not that I really cared in this case as I was only testing something.  But in the real world if you wanted to start a small network and start using it for something of real value you would run into problems.
    I feel small side block chains could be very useful for many different things including trust share trade transactions,  gaming score keeping and many others like something similar to namecoin for open secure methods of data keeping and transaction.  It is also useful to open up new methods of transactions sooner like P2P escrow and to provide a platform for developers to work from in a smaller scale and still be provided security even in a very small underpowered network.  And yet keep any government or other entity from having the ability to disable it by shutting down a site or stealing a computer server system.

What are the advantages?
The biggest advantage that I see is that you don't need a large powerful power hungry network to develop and test new smaller network secure methods of trade and transaction.   To accomplish some of the future goals of crypto chain transaction of speed of transaction combined with improved security between transactors with added contract embedding into the chain transactions without having to wait for these edge ideas to be accepted into the main stream bitcoin network.  To open up testing of these new methods and to prove there usefulness or possibilities for failure.  Also as I presently see it this method of distributed secured data storage would not require as much power to secure.  In this model at the very small end you only need 2 or 3 redundant miners that only require to run at about 1 hash/minit. Wow I't a GREEN idea?  In this model we don't need to burn tera flops of power to be relatively secure. for example if some government agency tried to shut a server miner down or someone steals one of the servers they wouldn't  be stopping anything and getting nothing since it would be a requirement of a miner system to use a luks encrypted partitioned system similar to something like this https://sites.google.com/site/remotekeyencrypt/home to make it difficult to even obtain one of the miner keys if stolen.  and the other miners would continue to operate as if a single miner in bitcoin network was shut down, no problem.  Even by chance the government or thief after obtaining one of the encrypted miners found a way to crack the luks encypted partition and obtained one of the miner keys out of it, that miner key could be removed from the list of accepted miners and again we would be back to normal.

What are the disadvantages?
Well in this case your talking to the wrong person oh the disadvantage is we don't have it yet.
ok I was asked how would you provide for distribution with such a method of currency?  you can't have only some miners get all the money they mine.  How could you store value in such a thing?  well I'm not sure about this part as each group would be doing different things in different ways but for example http://forum.bitcoin.org/index.php?topic=9493.0 was one of many possible alternative methods of distrubution. I'm sure there will be others that come up with better ones. (06:58:36 AM) gmaxwell: sacarlson: What is the disadvantage? Come on. The disadvantage is that it's distributed but not decentralized.  If you're worried about secondary chains getting easily reversed, why not bind them to bitcoin via the alternative chains stuff?  (07:00:11 AM) gmaxwell: Well, it's not for no reason. I mean— there are problems with small bitcoins.. basically the bitcoin security model only works if there is only one hashchain, or just a few nearly equally sized ones.  (07:00:26 AM) gmaxwell: But binding to the bitcoin chain solves that neatly. I've also been told that this idea isn't even close to what bitcoin is and is totally unrelated and that this could be done with other methods other than bitcoin or bitcoin like methods.

How does it work?
I gave you the basics above in what is Lic mining.  The how it works part is a bit more complex but I'll try to keep this in as simple a form as possible here.  First we can setup a miner with very low difficulty (07:25:58 AM) lfm: hradly, put a sleep in the mining loop and reduce the difficulty to 0.00000001.  When a miner creates a block in about the same manner as in bitcoin he adds something extra into the data of the block that includes a published nonce (an almost never to repeat incrementing number) or  just the hash of the block data  would be good enough and he signs that nonce/hash with his private key and also publishes this signed nonce and his public key number into the data.  Much the same way that we do proof of identity in bitcoin-otc with signed random number we can prove that this is one of the accepted miners for blocks.  So now on the client side when we do a scan for proof of work we add a stage that also looks at the nonce/hash  data and it's signed data and published public key,  and verify that to see if it has been signed by one of the miners by checking it against the list of public keys for each accepted miner that the client keeps in his config.   The list of accepted miners public keys could be one or many and they could be turned on or off at any time by changing the contents of the list in the configs of the clients software.  These configs could be distributed in many different methods to be decided by in the group that plan to use it.   Probably by publishing the configs at some https site would be one possible method or in the distribution method of the clients software would be another.  But it will also require that with a syncing rule that all  clients change the list of accepted miners at the same block count time so at some interval of a block counts would require update change over on the client side would have to be performed and be setup to change before the transition of the update mark block count.  This however could be overruled in the event of a rouge minner that needed to be shut down.  In that event a forced upgrade of the config at some random time might be required but hopefully never or very rarely.

Anything Else?
At this point this is only a rough draft of an idea.  I await others to provide input and corrections to this and I will continue to keep editing this post as newer better ideas come to me by others.  I hope to see even totally different methods to accomplish the same thing in a different way.  If it's too different I won't add it to this post but create another.  I am hoping to see example software patches to MultiCoin or MultiCoin-qt  or any of the other branches from Bitcoin or Bitcoin-qt for ways of doing something like this.   I will publish links to anything I find like github code that appear to be moving in a similar direction.  I don't have any money to offer you in exchange but only an added ora of love from the universal conciseness.   Thank you for your interest.