Bitcoin Forum

Bitcoin => Project Development => Topic started by: bytemaster on June 14, 2013, 11:26:10 PM



Title: Making BitMessage into a BitPostage alt-coin + Distributed Longterm Storage
Post by: bytemaster on June 14, 2013, 11:26:10 PM
BitMessage is great because it allows anonymous communication while preventing spam.  What it suffers from is an 'inability' to store proof of work.  So I was thinking of ways to make it 'profitable' to participate in the network and enable the creation of an interesting 'postage' chain.  Given 'postage' you would be able to send messages from devices without CPU power and without any delay.  The ability to send messages without delay is actually critical for may 'real-time' interactive uses.

Start with a normal 'blockchain' that mines BitPostage and allows it to be traded on the chain.   Then allow messages to be sent for a fee proportional to their size.   The challenge is in making sure there is motive and requirement to send the ENTIRE message broadcast through the network.    If it simply operated like BitCoin then there would be no motive for forwarding a large message, after all only the miner can profit.    To solve this problem we have the BitPostage network pay dividends from transaction fees.    The second challenge is preventing nodes from cheating and 'only sending the hash' of the message so they could collect the dividends without actually including the message.   This could be done by making the mining reward dependent upon hashing the coinbase transaction as a prefix to the entire message and thus prove that the entire message was present at the time the coinbase was generated.

Then there is the challenge of ensuring that the message is 'held' on the network for a certain length of time before being deleted.   This can be solved by allowing the same message to pay out fees over many blocks where the miner must *prove* they still hold the entire message.  Every other node in the network would also need to store the entire message in order to 'validate' the blocks.    The result will be that users could select how long they want a message 'stored' in the network based on the fee they pay.   All data would be on all nodes and all nodes benefit from keeping the data available and forwarding it on.  

Once the message runs out of postage miners no longer need to keep it around to earn fees so they can delete it.


Title: Re: Making BitMessage into a BitPostage crypto-Currency
Post by: BitcoinAshley on June 15, 2013, 12:13:50 AM
I'm no expert, but this sounds like an interesting concept. I've been using Bitmessage with no desire for any changes, but who knows, maybe this "BitPostage" can find a niche too.

*gasp*
An "alt-coin" with a purpose?  8)


Title: Re: Making BitMessage into a BitPostage crypto-Currency
Post by: mmeijeri on June 15, 2013, 12:26:54 AM
I suggested something similar on the Bitmessage subreddit a while ago, but people weren't enthusiastic about it.

http://www.reddit.com/r/bitmessage/comments/1csmxr/pros_and_cons_of_using_btc_postage_instead_of_pow/


Title: Re: Making BitMessage into a BitPostage crypto-Currency
Post by: greBit on June 15, 2013, 08:00:14 AM
Would this end up being something more general i.e. a distributed data store? where you pay for the amount of data being stored and for its desired lifetime on the network


Title: Re: Making BitMessage into a BitPostage crypto-Currency
Post by: bytemaster on June 15, 2013, 08:01:27 AM
Yes it would.   


Title: Re: Making BitMessage into a BitPostage alt-coin + Distributed Longterm Storage
Post by: greBit on June 15, 2013, 08:15:23 AM
Awesome. I see this having a wealth of possible applications, going far beyond simple messaging.


Title: Re: Making BitMessage into a BitPostage alt-coin + Distributed Longterm Storage
Post by: greBit on June 15, 2013, 09:08:43 AM
Just another thought ... would this go some way to achieving a stableish alt-coin/USD exchange rate?

Since the value of the alt-coin would be directly related to the cost of storing X bytes for a period of time, T.

Would the USD price of the alt-coin track the USD-cost-of-data-storage curve?



Title: Re: Making BitMessage into a BitPostage alt-coin + Distributed Longterm Storage
Post by: mmeijeri on June 15, 2013, 10:29:43 AM
Just another thought ... would this go some way to achieving a stableish alt-coin/USD exchange rate?

That's a very interesting idea! The same might be true of other real-world blockchain-based services like domain name registration (like NameCoin if it ever gains wide adoption), timestamping, and - ironically - bytemaster's idea for a payment system for P2P communication services. A basket of a number of such alt-coins (or coloured coins?) could track fiat currencies, but would compensate for inflation.


Title: Re: Making BitMessage into a BitPostage alt-coin + Distributed Longterm Storage
Post by: mmeijeri on June 15, 2013, 12:58:05 PM
I think some of bytemaster's BitShare ideas could work with this. Let's take NameCoin as a starting point and see what needs to change. I think the block reward would have to become variable so the prices in NameCoin can remain fixed, with the exchange rate adjusting to arrive at the market price for domain name services. This may need a minting rule coupled to a blockchain-based distributed exchange, where new coins are minted in response to bids that cannot be filled.


Title: Re: Making BitMessage into a BitPostage alt-coin + Distributed Longterm Storage
Post by: bytemaster on June 15, 2013, 03:14:06 PM
you cannot 'price fix' things and this system would not track the price of dollars or any fiat.

Here is what this system would do, it would eliminate the need to 'price-fix' domain name storage and lookup like namecoin currently does.   Instead, the 'fees' demanded by the miners who have to store your domain records would go up.  You would know it was time to 'renew' when 50% of new blocks generated failed to contain proof they have stored your domain record.   You would then have to 'rebroadcast' a transaction with more fees to make sure people kept and distributed your domain record.    The end result is that the price of 'owning and maintaining' a domain name will approach the distributed cost of storage and be very 'cheap'.  

Now the domain names would have to keep up with demands for other kinds of storage.  For example, you could store these forums and your posts to them.     Now this is where it gets interesting.   *other people* could pay to 'top up' your storage and as a result you could receive a commission.  If you divided all data chunks into 1MB chunks then what you would end up with is a GIANT paid-for torent-of-everything.    Every chunk would be 'encrypted' and thus the information about what data was in any chunk would have to be exchanged 'off-chain'.  

The network could check ever 1MB chunk for 'randomness' and not allow any 'non-random' data to be stored.  

This new chain would probably become known as 'PirateCoin'  due to these features... but it could be marketed as a legitimate P2P web-hosting service.

Note:  All mining nodes would have to store all data in order to validate new blocks.  Users of the system wouldn't have to store anything other than the data they want to keep published and the transaction history of the coins.

Now there is one bit of scalability to be concerned about:  to 'prove you hold all of the data' and thus collect the fees would require you to HASH your entire database just to mine a block.  This hashing process ALONE would become the entire proof of work because hashing 1 TB of data with sha256 would take over 3 hours.     You could scale it up a bit by allowing the fee to be collected only once per day, week, or month instead of every block.    This would cause all nodes to focus on the 'oldest profitable' unproven data instead all data.    With this approach I think the network could scale to store 1024 TB of data proved on average about once per month.    If the fees went up then I suppose it could scale to any amount of data by increasing the interval of proof.

You could then organize the nodes in a KAD hash-table to facilitate rapid and efficient lookup of data without actually requiring all nodes to store all data except for the 'window' when they are competing to win the mining award / transaction fees.


Title: Re: Making BitMessage into a BitPostage alt-coin + Distributed Longterm Storage
Post by: mmeijeri on June 15, 2013, 03:24:02 PM
you cannot 'price fix' things and this system would not track the price of dollars or any fiat.

Why not? Why couldn't you fix the fee at 1 NMC for a lease of a month, with all fees being destroyed?


Title: Re: Making BitMessage into a BitPostage alt-coin + Distributed Longterm Storage
Post by: bytemaster on June 15, 2013, 05:42:43 PM
Well, the value of 1 NMC would change over time and thus that wouldn't be price fixing.  Price fixing is attempting to force a particular relative valuation between two 'floating' goods.  If the network defines 1 NMC to be the price of a 1 month lease and there is NO OTHER way to purchase a 1 month lease then the unit of value that would fluctuate would be a 1 month lease and thus not price fixing.


Title: Re: Making BitMessage into a BitPostage alt-coin + Distributed Longterm Storage
Post by: mmeijeri on June 15, 2013, 05:45:16 PM
Exactly, and I suspect the price of a one month lease wouldn't fluctuate as wildly as BTC. A basket of digital goods could probably do even better. It wouldn't track any particular currency, but it should be relatively stable in the short term in terms of purchasing power. Essentially, it would be like a digital services commodity.


Title: Re: Making BitMessage into a BitPostage alt-coin + Distributed Longterm Storage
Post by: bytemaster on June 15, 2013, 06:19:11 PM
True, assuming the demand for such a service was steady and didn't fluctuate too much.

But BitShares solves this particular problem in a better / more useful manner.


Title: Re: Making BitMessage into a BitPostage alt-coin + Distributed Longterm Storage
Post by: mmeijeri on June 15, 2013, 06:25:15 PM
Would there be a useful way to combine the two?


Title: Re: Making BitMessage into a BitPostage alt-coin + Distributed Longterm Storage
Post by: bytemaster on June 15, 2013, 07:14:35 PM
The merged-mining strategy and cross-chain trading would be useful for this and I do need a secure message system for BitShares escrow disputes.


Title: Re: Making BitMessage into a BitPostage alt-coin + Distributed Longterm Storage
Post by: BitcoinAshley on June 16, 2013, 05:13:15 PM
This smells of P2P encrypted cloud storage  ;D

"Giant paid-for torrent of everything"

Bytemaster is indeed master of the byte.

I'm all for not fixing any prices whatsoever. It is indeed a limitation of Namecoin that the prices are fixed in such a way. You just need to intelligently design the system so that incentivary mechanisms work properly.

Sounds like mining nodes will need a lot of SSDs. Any way to support partial nodes or lite nodes, in the way that trust-free lite node is being designed for Bitcoin? I don't think it's a serious limitation but it might cause growing pains if a lot of people start using it and the mining community can't scale fast enough.


Title: Re: Making BitMessage into a BitPostage alt-coin + Distributed Longterm Storage
Post by: Jaxkr on June 17, 2013, 03:16:09 PM
I could implement something like this into Frog. When you send a message normally, your browser does the proof-of-work. However, the user could pay, like, 0.0001 BTC for the work to be done by a Frog server.
Just an idea.


Title: Re: Making BitMessage into a BitPostage alt-coin + Distributed Longterm Storage
Post by: greBit on June 20, 2013, 10:02:08 AM
Any ideas about how a node can prove to the network that he still stores a particular message?


Title: Re: Making BitMessage into a BitPostage alt-coin + Distributed Longterm Storage
Post by: bytemaster on June 20, 2013, 01:09:30 PM
Any ideas about how a node can prove to the network that he still stores a particular message?

Calculate the hash of the previous block concat with the full message


Title: Re: Making BitMessage into a BitPostage alt-coin + Distributed Longterm Storage
Post by: greBit on August 05, 2013, 09:59:46 AM
Could nodes just decide to store loads of data, profit from mining / dividends but then decide to not bother responding to requests for that data?

Since bandwidth can be quite costly, this would be quite a rational thing to do.

How to have economic incentives to prevent this behaviour?


Title: Re: Making BitMessage into a BitPostage alt-coin + Distributed Longterm Storage
Post by: TierNolan on August 05, 2013, 12:46:21 PM
Calculate the hash of the previous block concat with the full message

The whole point of POW is that it is easier to check than to create.

How would simple verification nodes check the chain?


Title: Re: Making BitMessage into a BitPostage alt-coin + Distributed Longterm Storage
Post by: bytemaster on August 05, 2013, 01:30:48 PM
This system is not scalable because all nodes require all information in order to validate the chain.  After running the numbers it became clear that the maximum user-base-per-chain would be too small to support a currency.