Since this thread is not as active as before can you discuss it here rather than creating a new thread? It would be good for the community to know more about it. So much better if you will able to implement that feature in COMM. Expect that you will not only get a big bounty for it but also hefty donations from the community.
OK, makes sense, will give it a try. Although I think a thread would be better, but COMM forum seems closed.
----
The purpose of this message is to open a discussion for the development of a "
cold-locked minting" feature - a way to make PoS minting nearly 100% secure, even for non-technical users.
Every interested user (developer or not) should participate in the discussion. I was talking with communitycoin "communicators" in May and if there is interest to implement this feature there will be a pretty attractive bounty for the developer(s). Also, it should have a very positive effect on COMM's reputation (and price
).
What is Cold-locked-minting about and why it's important?Proof-of-Stake coins like COMM have a security problem which can affect mass adoption: When you have your coins in an online wallet to "mint" PoS coins the private key is often loaded into the computer's memory and therefore can be read by an attacker (e.g. with malware or through a backdoor). So in brief: If you are minting, your coins are not 100% safe, even if your wallet is encrypted. This is specially true if you have a large balance making you an attractive target for attacks.
Cold-locked-minting is a proposed feature which allows you to use the balance of a "cold wallet" (e.g. a wallet on an offline PC, an USB key or a paper wallet) to mint PoS coins using another wallet / client (the "hot wallet") which is connected to the internet. With this feature enabled, the private key of the "cold wallet" is never at risk, so your balance is safe.
With cold-locked minting also individuals with large balances worth thousands of dollars can participate safely in PoS minting. This is important as the security of a PoS coin depends on the participation of the coin holders. So cold-locked minting can increase greatly the security of the system.
How would cold-locked-minting work?There are several proposals for now. Most come from the Peercoin (PPC) community. Peercoin is the base of most PoS coins, including COMM. Currently only NXT is testing a similar feature (which has some disadvantages, see below).
All proposals have in common that they provide a way to "associate" two wallets: a "cold wallet" and a "hot wallet" connected to the internet. The "hot wallet" can use the balance of the "cold wallet" for minting, but can not spend coins from the "cold wallet". The "association" is done with a special message type signed with the private key of the "cold wallet" (this message can be generated offline if you don't want to expose the private key).
What are potential dangers or problems with cold-locked minting?A cold-locked minting implementation should not decrease the incentive to maintain the client online to support the network. This can be a problem specially if a cold-locked-minting implementation leads to "PoS minting pools", or wallets which receive the "right to mint" from several other wallets. This should be avoided, as these pools could theoretically accumulate enough coins for a 51%-PoS-attack, as it occurs actually with some mining pools in the PoW cryptocoin world.
So the implementation of cold-locked-minting should cointain a mechanism to prevent the formation of this kind of pools or limit its size (=accumulated coin-age), or alternatively not provide incentives for COMM holders to give the "right to mint" to a pool.
Would it benefit Communitycoin's value/price?If Communitycoin community implements cold-locked-minting, it's pretty sure that it would have a positive effect on COMM's price, market cap, and above all, reputation, as it is an important feature which would make a real difference to other PPC/NVC-based PoS coins. It would allow very safe storage of coins without having to resign to the "PoS interest", so it would make COMM appropiate for big investments.
What are the actual proposals for cold-locked-minting?The most important proposals at the moment are:
-
The OP_COINSTAKE proposal of "sigmike": A special kind of address, "cold minting addresses", is created. These addresses have two private keys: a "spending" private key and a "minting" private key. People can add the "minting" private key to another wallet via a special message and this wallet can then use the balance of the "cold-minting address" to mint PoS coins. The main advantage is that there is no incentive to form "minting pools" as there is no possibility to accumulate the balances of more than one address as every "minting key" has its own coin-age.
-
The "cold-locked transaction" proposal of PPC creator "Sunny King": A special transaction type is created that sends coins to another address that increase the balance of the target address but only allows these coins to be sent back to the original address (spending to other addresses with regular transactions is locked). So you can accumulate "balance" in your hot wallet that cannot be spent by an attacker and mint using its coin-age. With another transaction type you can send the coins back to the "cold address". This would allow the accumulation of coin-age and so would allow minting-pools with higher chances to get the reward.
-
The "leased forging" feature of Nxt (currently being tested): It's similar to cold-locked transactions, but instead of having to send the "balance" back to the cold address to spend it, when you send the balance you must specify a duration of the "leasing process". After that time balance is sent back automatically. The disadvantage: Incentives to form "minting pools" (called "forging pools" in Nxt) are very high, as large accounts have advantages when minting.
Other proposals are listed here:
http://www.peercointalk.org/index.php?topic=2467.msg22366#msg22366In my opinion, the OP_COINSTAKE until now is the best proposal, as the incentive to send your minting key to a "pool" is very low and the implementation seems to be relatively easy. However, with the other proposals, it would be theoretically possible to implement a "limit" for accumulation of keys, e.g. if one wallet can only mint on behalf of one (or two, or three) another wallet(s), so it would not be practical to form "minting pools".
I'm interested! What must I do? How much is the bounty?If you are a developer, you can start implementing it now
(read the links above to get practical advices for implementation). But a period of discussion would be good as there should be a large consensus in COMM community to implement this feature.
As of the bounty: I have proposed one million COMM, which should be given away by the COMM devs (they have confirmed me that they would do it if the project progresses). Other COMM users can obviously enlarge this number by donations. If there is enough interest I or the devs can set up a donation address.