Bitcoin Forum
May 06, 2024, 09:53:02 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: [1]
1  Alternate cryptocurrencies / Altcoin Discussion / Does Darkcoin's DarkSend trust model actually work? on: May 27, 2014, 05:39:17 PM
I just read the Darkcoin white-paper - it is good to see a coin implementing distributed mixing at a protocol level (as far as I understand it, the mixing is done partly at a protocol (using scripts), partly at a client level). However, I may be missing something, but I don't see the trust model being proposed being as solid as suggested. Network discipline is achieved through the arbitration of miners - the last two miners to work on the block decide whether a master node or whatever has handled the transaction properly, and if they both decide he/she hasn't they can take a forfeit from him (which is effectively held in deposit). The paper suggests that collusion between miners would be discouraged because: "In that case the pools users would learn of this and stop using that pool." - but this just doesn't ring true. Relying on pool members (who are making a profit from their pool's dishonesty) to make an ethical decision to switch pools? The users actually submitting the transactions - unless Darkcoin's infrastructure is substantially different from Bitcoin's - will have no say over who does and doesn't get to mine the block with their transaction on it, and so can't choose not to use certain miners; the only mode of volition available to them is to not use the coin, and it's a mode they'll willingly subscribe to. As I say, I may be missing something, but it looks like miner collusion can not be prevented.

Also, especially in the early days when uptake is low, the system seems to be relying on users voluntarily running scripts to send dummy payments to their own addresses, in order to fill up the slots in joined transactions, increasing anonymity and getting those transactions turning around faster. This seems not only highly optimistic, but also otiosely resource intensive - as well as accelerating difficulty increase and potentially shortening the march to the altcoin gallows. Though this be a pedantic grievance, and I'm certain in practice there shouldn't be too many problems if such scripts are by default enabled at a client level.

Lastly, forgive my ignorance, but the white-paper mentioned nothing about how those issuing transactions keep the exact recipient of their transactions secret from the master node - though I'd be very surprised if there isn't a mechanism for that built in; the details are probably in the CoinJoin paper.
2  Alternate cryptocurrencies / Altcoin Discussion / Re: Namecoin key generation on: March 05, 2014, 03:53:13 PM
The key generation algorithm for Namecoin and Bitcoin is exactly the same (i.e. the algorithm that produces the full public and private keypair). It is only the hashing algorithm that is different (i.e. the algorithm that produces a short Bitcoin/Namecoin address from the long public key).
3  Bitcoin / Bitcoin Discussion / Re: Should there be a BIP for tracking stolen coins and "dirtiness" percentage on: November 10, 2013, 05:18:36 PM
No - when you want/need to use a system where your money is protected from theft, chargebacks are possible and the proceeds of crime are hard to spend, use a bank account. When you need a decentralised, trustless currency with certainty of fate for payments where any coin is spendable, use Bitcoin.
4  Bitcoin / Development & Technical Discussion / Messaging layer built into the protocol on: November 08, 2013, 09:08:06 PM
Just a quick idea, any thoughts? I think some sort of message layer built into the protocol would be great (though how exactly it should be implemented needs some consideration). With the ability to send messages between users, people could design their own custom protocol extensions and clients to handle them. Three examples:

******************

1) Multi-pass contracts
Consider some sort of contract that requires a raw transaction to be passed around multiple users for signing before being broadcast. Traditionally this passing round would either have to be done manually, through a central service like Blockchain.info, or else through a client application that relies on a messaging protocol like e-mail/SMS/bitmessage or communicates with a central server or connects to a second P2P network (distinct from Bitcoin) to transmit and receive the messages.

With messaging, users could send special messages to each other's addresses which certain clients could parse and respond by opening a dialogue asking the user to sign, delay signing or reject the transaction (or for instance in the case of a 2-of-3 signatures transaction if the user who is to receive the funds by the transaction receives a message their client could automatically sign it because there is no risk). This could automate complex contract operations.

Example message:
Code:
<message protocol="#PROTOCOL">
<to>#ADDRESS</to>
<request>#SIGN_&_TRANSMIT</request>
[#RAW_TRANSACTION]
</message>



2) Trustless mixing

Rather than relying on a centralised server for mixer, or even a centralised server for collating outputs and signatures for trustless mixing, or having to connect to a second P2P network, a client (or a client add-on) could be designed that handles messages of a certain format/content.

A user would trasmit a message to the whole network of a certain form, containing only the output(s) of their intended mixed transaction, then other users wishing to participate in the mixing would add their outputs to the message and retransmit it, then when it had enough outputs (or a certain time limit had elapsed or whatever) it would (somehow) request all the participants to add their inputs, then would go round again asking for signatures. The exact mechanics of this are vague, I haven't really thought about this one in detail, but this is not the idea I'm proposing, just an example.



3) News and market data
Exchangers could transmit signed and time-stamped market price information every so often, which clients could pick up and display to users. Nodes with two messages signed by the same exchanger with the same id but with different time-stamps would simply delete the older one in favour of the newer one, meaning such updates would not bloat the "message chain" or whatever.

Similarly, Bitcoin/cryptocurrency news websites could broadcast news updates which expire after a certain time limit. Forums could even broadcast new posts which users could configure their client to look out for (e.g. threads started by certain users, new replies to certain threads). There are so many possibilities, this would be a really great feature.

**********

The point is that rather than clients having to rely on external servers/p2p networks or else having to lobby the dev team for a major change to the protocol, a messaging layer would enable new functionalities to be developed independently. Rather than a centralised decision about what protocol extensions should go in, individual clients can offer different services (which obviously won't be compatible with all users necessarily to begin with), and the popular ones will be implemented by all/most clients/wallets. The really popular ones can become "canon" and considered part of the core Bitcoin protocol itself.

The use of Bitcoin purely for decentralised messaging is pointless and would be underused, as there are plenty of dedicated services out there already providing this. But a messaging layer within the Bitcoin protocol would be a major advancement.

I don't think messaging should be implemented directly into the block-chain; not only would this bloat it, but it is pointless: there is no need to have a full public ledger of all (probably encrypted) messages that have ever been sent. Only the ones that haven't been dealt with need to be available. There are of course other issues to consider with regards to messaging, such as how to prevent spam (tx fees seem like the most obvious answer, but will people be willing to pay even trivial fees just to sign a transaction?). Apologies I haven't presented a full working concept, but I definitely think it's something to be looked into.
5  Alternate cryptocurrencies / Altcoin Discussion / Could new currencies be pegged to digital resources? on: November 08, 2013, 08:49:17 PM
Any coin linked to a physical asset will have the problem of requiring a gateway step, translating it from its fiat/physical form to digital, perhaps with a restrictive interface - though for certain assets (e.g. teddy bears) AML laws will not be as strict. Coins pegged to digital assets however, such as disk space, bandwidth, instructions (for an off-site processing service) would require no such gateway step. The tokens could be traded freely through payment systems like Open Transactions/Ripple/Coloured Coins/Mastercoin/a new blockchain and then redeemed directly for services. If these services were themselves decentralised, then you would have a completely decentralised, asset-pegged currency, and I see this being the way to go for certain services (web-hosting, storage, cloud computing) - and by offering these resources yourself, you could generate coins that could be exchanged for other goods and services, or other currencies.
6  Bitcoin / Bitcoin Discussion / Re: Should we support altcoins ? on: November 08, 2013, 08:12:36 PM
Yes 100%

But its important to support the right coins.

For me these are Litecoin (silver to Bitcoins gold) and Peercoin.  Peercoin is a really nice alternative.

I agree that Peercoin is a really excellent alternative - it is based on a really good idea that cannot now be implemented into Bitcoin, and does have a decent supporter base (for that very reason) compared to some other altcoins. I'm not sure how big their development team is though, I wish more people would stop faffing about solo starting unoriginal coins and put their collective time and effort into developing radical new features for a project like this. At the very least, a successful altcoin needs a large enough pool of developers to be able to keep up with Bitcoin development - constantly evaluate and implement (where useful) all the advances being made to Bitcoin, and indeed other cryptos - whilst simultaneously trying out and implementing revolutionary innovations. Even if it does get in some brilliant new features, if it doesn't keep up with the comparatively tame but constant developments of Bitcoin then its advantage is significantly weakened. In terms of new features, I'd personally like to see a messaging layer (so that nodes/clients can communicate with each other directly over the network for more complex tasks like multi-signature contracts) and greater anonymity (e.g. ZeroCoin).

Litecoin on the other hand I don't really see the point of. It's only original feature (other than scrypt which really makes little difference to its usability) seems to be that it was the original clone-coin (discounting Namecoin, which btw is an excellent alt). They have a lot of backers, but mainly just people who hope that it will boom like Bitcoin - there doesn't seem to be much particularly radical going on with it, so personally I think it's a waste of time. Bitcoin will need to get huge before any other crypto gets a look-in, and by that time others (like PPCoin) will be big enough to take on LiteCoin. BitCoin's #1 spot is guaranteed for a long time yet, but I wouldn't be so sure about LiteCoin's #2 - especially considering that by investing in LiteCoin, one is accepting the premise that alternatives, with much lower market value and market share, can be worthwhile investments for the future - so what's to stop those same investors moving to an alternative alternative, if it starts to look significantly better. The #2 crypto will be one that offers superior function.
7  Bitcoin / Bitcoin Discussion / Re: Should we support altcoins ? on: November 08, 2013, 06:36:17 PM
Support them if they propose something useful. Namecoin, a scrypt coin, a coin based on the prime algorithm, these are interesting. But a bitcoin clone whose difference is only a different name? lol


Agreed. The ones with meaningful technical distinctions contribute to making the crypto ecosystem better. Bitcoin shouldn't incorporate innovations without lots of testing and debate, so alts serve a very valuable experimentation function, even in the bitcoin-centric viewpoint.

I just wish alts that are effectively clones of bitcoin (ie, with just the mining alg, issuance curve, or block times changed) would die faster. To the crypto-ignorant masses, having hundreds of alts makes the whole crypto space seem silly.

Me too - not only do the bit-clones need to die, but every time a genuinely novel crypto comes along people get upset they didn't get on THAT bandwagon either so that gets cloned, and those clones need to die too. Bitcoin doesn't lose much to clones - it has a large enough community of developers, supporters, users etc. that it gets on fine. But beyond the initial buzz of a good idea alt-coins suffer because users and developers are spread across hundreds of similar, mostly pointless projects. If people could get behind a few decent altcoins such that they are developed constantly and well then it would serve not only as a good real-life testnet for new Bitcoin features (as well as an impetus for a community and a Foundation now reluctant to innovate), but might also create currencies that are vastly superior to Bitcoin, at least for certain purposes. There are many coins out there, based on truly revolutionary ideas, that are still maintained and developed by a single person, egged on by a couple of investors and casual enthusiasts on Bitcointalk. There are other coins, like FeatherCoin, which have established comparatively impressive communities, and yet appear to do absolutely nothing innovative whatsoever.


Only bitcoin.

Spreading mining power out will weaking bitcoin.

As the mining difficulty of Bitcoin grows, many miners will have to drop out anyway. Essentially, all alt-coins do is give miners a "second wind" to make a little more profit before winding down their operations, rather than providing a serious blow to Bitcoin's mining capacity.


Namecoin is the only alt coin worth supporting.  The others were created because their creators missed the money train with bitcoins and are hoping to create an artificial market and get rich.

This is certainly the case with a lot of them. Even with many of the ones that are based on genuinely good ideas, the creators often delude themselves that in virtue of that their chance has come to get rich quick. As a purely speculative investment, there really is no point investing in any other cryptocurrency (for the foreseeable future at least) - there is not going to be anything like the kind of booms Bitcoin has experienced (and may yet). But there is still some modest money to be made in some alt-coins (especially from mining), and having modest, real alt-coin economies provides a much better platform for experimenting and testing new features.


Bitcoin will create the infrastructure for alt currencies to survive. Focussing on that is more important than trying to bring another currency in to do that.

Agreed. Trying to tout an alt-coin to a Bitcoin-ignorant audience (especially one with no significant numbers to back up its pitch) will be infinitely more difficult than trying to get someone who already uses/accepts Bitcoin to consider trying out an alt-coin as well. So I think all these clone-coins that go around advertising themselves as "a new anonymous, decentralised currency etc." without even acknowledging Bitcoin are not only being pretentious, but shooting themselves in the foot. The alt-coins that will get adopted will be the ones that campaign on the basis of why they're an improvement over Bitcoin. Anyone who wants to see any crypto-currencies take off has a vested interest in seeing Bitcoin do well. But I disagree that it is a waste of time focussing on alt-coins atm. People often dismiss alt-coins by claiming Bitcoin's market effect is too big to suffer an alt-coin any real oxygen. But by the same token, Bitcoin's market effect is large enough that it will suffer no serious ill effects if some people decide to focus on and develop alternatives. Bitcoin becoming ubiquitous is a pre-requisite for the success of any other alt-coin. But waiting for Bitcoin to become ubiquitous before seriously trying to develop an alternative would be the death of it - by that time Bitcoin will have been long stuck in its ways, scared to innovate for fear of shocking the market, and the notion of an alternative crypto will seem so strange that it will be extremely difficult to get a foot in the market, even if hands-down superior. We need viable, innovative, active and well maintained alt-coins ready for the day when Bitcoin (and cryptocurrency in general) becomes ubiquitous, and in order to keep Bitcoin innovating until that day.
8  Bitcoin / Bitcoin Discussion / Can fiat-coloured coins become a major internet currency or not? on: November 08, 2013, 05:10:51 PM
[I assume this goes here rather than "Alternative Cryptocurrencies" as coloured coins was originally suggested as an extension to Bitcoin rather than a currency in its own right. Move it if I'm wrong though.]

Fiat-coloured coins (or equivalent) are not a way to trade fiat on the blockchain. They are tokens representing fiat, and just like any other digital token one requires a gateway step to convert from "fiat" (in a bank account) to fiat-coloured coins. Unless being specifically used for reasons of anonymity or distrust of central authorities, fiat-coloured coins will not be viable if people are expected to pay exchange costs to buy/redeem the coins (negating the advantage of micro transaction fees) every time they buy or sell something online. They will only be viable if there is an incentive to hold onto the coloured coins and re-use them on other services.  This will occur only if there are enough services accepting the coins to make holding onto them rather than paying a fee to translate them back into universally accepted fiat-proper a good idea.


Comparison of different payment gateways:
********************

Fiat-coloured coins:
-(Negligibly) low fees for buyers (fixed ~10p atm for btc)
-No fees for merchants
-Pseudonymous
-No chargebacks (certainty of fate)
-Decentralised (trustless)
-No account requied
-Exchange costs (likely) in and out of currency

PayPal:
-PayPal has no fees for buyers or one-off transactions
-PayPal has fees for merchants
-Chargebacks
-Buyer-protection & seller-protection (essentially "free" insurance)
-Money can be spent directly from your bank account or payment card
-Legal protection as this is legally a "purchase"
-Non-anonymous (proof of ID required)
-Gateway can refuse transactions for political/biased reasons (e.g. WikiLeaks)

Visa/MasterCard debit cards:
-No fees for buyers
-Fees for merchants/receivers
-Can involve third-party payment processors for merchants
-Money can be spent directly from your bank account
-Legal protection as this is legally a "purchase"
-Fraud protection etc. (free insurance)
-Non-anonymous (proof of ID required)
-Gateway can refuse transactions for political/biased reasons (e.g. WikiLeaks)

Western Union/Moneygram:
-Fees for buyers
-No fees for sellers
-No chargebacks
-Can be more anonymous than PayPal/Visa/MasterCard

Centralised digital currencies like Ukash, Pecunix, Liberty Reserve (deceased):
-Often exchange fees in and out of currency
-Sometimes transaction fees for sender
-Sometime transaction fees for receiver
-Centralised (can go down and take everyone's money with them)
-Can be more anonymous than PayPal/Visa/MasterCard

********************

Sellers should be keen to accept payments in fiat-coloured coins because they offer advantages over the other four: they don't cost the seller anything like PayPal or Visa/MasterCard, they don't allow for chargebacks, they are less hassle (to send and to receive) and can then be used again by the seller incredibly cheaply and easily, so I would expect a quick adoption by service providers as bitcoin fever spreads.

Buyers who want greater anonymity (and large, respected merchants WOULD require proof of ID/account verification anyway) or else distrust central authorities (even though it's likely such coloured coins would need to be issued and backed by one) would be willing to pay a premium to use such a gateway so wouldn't mind paying the exchange fees to get their hands on them in the first place.

But "normal" buyers by and large would have no reason for choosing coloured coins over PayPal or debit cards. Though the transaction fees themselves are negligible, unless buyers had some source of income directly in coloured coins then they would have to buy some in advance of/at the point of sale, meaning exchange costs. Also, they throw away options like chargebacks, fraud protection, buyer protection whilst receiving no discount (they could pay more for these options from third-parties, but what's the point when they could get them free?). And because of the uncertain legal status of cryptocurrencies, they might have a much harder time invoking their statutory consumer rights if the seller was unscrupulous. Coloured coins present a distinct advantage for buyers over WU/MG and centralised digital currencies, but don't present a major advantage over PayPal and debit cards.

So while there is plenty incentive for merchants to adopt the payment system, there will be no major demand from most buyers yet, for whom using fiat-coloured coins for "normal" transactions will be no more than a gimmick. The only way this would happen would be if a bank (or some other institution) that allows you to withdraw/spend money by Visa/MasterCard (essentially acting as a gateway for the Visa/MasterCard payment network) would also act as a gateway/issuer on a decentralised payment network (coloured coins/mastercoin/ripple/open transactions) for no or negligible fees, allowing you to spend your account balance directly onto the blockchain. Such an institution would be almost impossible to set up in any country due to AML and needing Visa/MasterCard onboard (although if bitcoin REALLY takes off over the next few decades there could possibly be a reconsideration).

Coloured-coins will certainly have plenty of niche use cases, but in order to really challenge the status quo they need negligible exchange costs (if the demand for fiat-proper was equal to the demand for fiat-coloured, then in a fee-less P2P exchange the exchange costs would be negligible), a way to instantly transfer bank account funds into coloured coins and vice versa, legal status (so buyers are protected) and perhaps insurance against fraud/mis-selling offered as part of a bank account.
9  Economy / Economics / Re: The Problem With Altcoins on: November 08, 2013, 02:37:21 PM
How does PoW waste resources? I actually believe it will increase resources! You see energy is abundant (probably practically limitless), yet finding it requires innovation. How do you spur innovation? You increase demand!

While this does make some sense theoretically, I think that the increase in demand for energy even by the entire bitcoin economy is insignificant compared to the increased demand for energy in general and therefore will contribute very little in-and-of-itself to spurring on innovation in that sector. The main way that I feel PoW wastes resources is in terms of individuals - the electricity, hardware, floor space, time etc. they have invested in bitcoin could be being used more innovatively with the same return were they using PoS instead of PoW.
10  Economy / Economics / Re: The Problem With Altcoins on: November 08, 2013, 02:30:01 PM
I appreciate this whole PoS discussion is going a little off topic, but I didn't start it so I've no guilt joining in.

I think the main advantage of PoS (and one that many people neglect when considering it from a purely speculative investment perspective) is the fact that producing coins does not waste oodles of (irrecoverable) real world resources. This is what would make it attractive to miners (especially later on) - yet because current PoS coins (like PPCoin) are scrypt-hybrids, which are not easily ASIC mined, there is little incentive for new miners with lots of start-up capital but no PPCoin "stake" to start large mining operations, which would then provide an incentive for these companies to advertise/lobby on behalf of the coin; so it could take a while to really kick off, in particular it will require both the mining difficulty of bitcoin to increase much further and mining other coins to be less profitable.

The fear I have about proof-of-stake coins is this: imagine a miner holds a 10% stake of the entire economy, but the company has huge debts and needs to liquidate its coins to fiat in order to pay its creditors, so sells them off cheap, flooding the market with cheap coins and crashing the economy. This is of course a theoretical fear, and the in practice the larger and more distributed the network, the less likely this is to happen.

I think PoS coins haven't caught up yet because people aren't aware of it yet. I feel that the transition would be mainstream fiat currency to BTC then in the long run BTC to PoS coins but I may be mistaken.

Given that PoS will likely take a long time to come into its own (decades), there is a chance it could (possibly) challenge bitcoin - by that time bitcoin will be far more ubiquitous, thousands (millions) of services will be accepting it as a payment method and millions of people will be familiar with it (and the notion of digital currency), and with enough co-ordinated impetus behind another coin it should not be too difficult to get merchants/service providers to directly accept payments in that currency, especially if it becomes significantly more cost-effective for miners that they take action to actively promote it. But this is nothing like certain and the network effect of bitcoin could very easily prove too strong for a very similar crypto with no real difference in usability - and I shall remain sceptical until I see some real signs. If there is to be a transition, it will first require the wide-scale success of bitcoin.
11  Economy / Economics / Re: The Problem With Altcoins on: November 08, 2013, 01:55:24 PM
My guess is because people fundamentally understand that getting something for doing nothing (i.e. redistributing the new coins based on share of the collective) is communism. But let me hear the logic of others, because I want to understand this better.

 Cheesy By this logic, keeping money in an interest-paying savings account, investing in dividend-paying shares or government bonds, or owning a property in a period of rising house prices is communism. Also, the fundamental principle of communism is distributing wealth to match the distribution of labour rather than investment, the OPPOSITE of getting something for nothing (apart of course from the needy and infirm).

Seriously though, I doubt anyone is turning their nose up at free money for reasons of ideological taste.
12  Economy / Economics / Re: The Problem With Altcoins on: November 08, 2013, 01:41:54 PM
If the altcoin has sufficient demand (not even any where near Bitcoin) to generate a liquid exchange, then the altcoin can be converted on the fly to pay those who accept only Bitcoin.

So an altcoin doesn't need ANYONE to switch from Bitcoin, it only needs to grab a small percent of the market of new users. Bitcoin only has 350,000 users. There is a long way to go to 7 billion.

The key though is the altcoin needs to present something truly useful that Bitcoin can't copy. So it has staying power.

Agreed. The success of an altcoin is very unlikely to depend on it beating bitcoin (something most late-to-the-party altcoin peddlars don't seem to appreciate). If liquid exchanges exist for a coin then it is usable in every context bitcoin is.

Friction always imposes costs. No how matter how good you make your exchange, it will always be more expensive than not needing to make an exchange. A line is the shortest distance between two points.

This is only true when there is a dual-price bid/offer spread. Traders will be willing to pay the par value of the currency they're buying, plus a little bit extra for the added value they perceive in holding one currency rather than another. In a fee-less exchange, if there is more demand for one currency than another then costs will only be imposed one way (from the less desirable to the more desirable), with savings made in the other direction. Now in most cases it is natural to assume that demand for bitcoin will be higher than demand for any particular altcoin and therefore the cost of friction will always fall upon the shoulders of the person trying to spend altcoins on bitcoin services - but this is not necessarily the case. In some cases the friction will be negligible, making truly liquid exchanges a (pseudo-)reality for some alt-coins.

The issue then is whether there will be liquid exchanges for a coin, which depends on whether or not there is any incentive to hold the coin. Anonymint says that for there to be any incentive to hold an alt-coin then:
then the altcoin has to be appreciating faster than Bitcoin, else there will be a pernicious downward spiral.

This is not true. Faster appreciation of value of a coin is what will encourage purely speculative investors to hold/ditch the coin. But there are other reasons for holding certain coins, depending on the features they offer.

Simply offering something that bitcoin can't do however is not sufficient to imply that there is a good reason to hold the coin, because people might prefer to trade out of bitcoin just to use that feature then trade back into bitcoin afterwards, making adequate liquid exchanges unviable.


Let's consider then some current and possible future features of alt-coins:

***************************

Quicker transaction times - if coins with quicker transaction times were only purchased when needed, i.e. bitcoins were exchanged for them, then the wait for the exchange transaction would negate the gain in efficiency - thus people would hold onto coins if quicker transaction times (with the associated orphan-risk) was thought a desirable enough feature.

Smaller blockchain - the point of wanting a smaller blockchain is so that coins can be stored locally rather than having to trust a centralised service. If someone only exhanged bitcoins for this alt-coin when they wanted to use it, they would either have to store those coins centrally or store them locally with a large or else a centralised blockchain, defeating the point of having a smaller blockchain - thus people would hold onto coins if a smaller blockchain (with the associated risks of a likely smaller network) was thought a desirable enough feature.

In these two cases, if the feature was a desirable one there would be a reason to hold on to alt-coins and thus liquid exchanges. However, I personally do not feel either is enough of an improvement to produce a large enough demand.

Coloured coins - there is little difference between switching between coins of different colours within an alt-coin and just buying coins of a certain colour directly with bitcoin. Therefore there is no reason to hold them IN GENERAL: however if there is a particular colour of coin that is worth holding for reasons of usability and/or appreciating value, particularly one that doesn't have its own blockchain/distribution system, then there will be a reason to hold the alt-coin and thus liquid exchanges.

Anonymity - this is likely to (and WILL) be a very attractive feature of some alt-coin (the only reason bitcoin would even dream of implementing it would be if not implementing it would cost them SIGNIFICANT market share and threaten its future dominace, which is unlikely due to the network effect and the fact that most bitcoin users nowadays don't feel the need for ABSOLUTE anonymity). Many services which rely on or prefer anonymity would accept this currency directly, and users only using crypto for those services would hold the currency directly rather than buying bitcoins. Liquid exchanges would be very likely - decentralised, anonymous exchanges would make users of the anonymous currency even more confident.

Proof-of-stake - this provides its own incentive for holding coins, if and only if the growth rate of the held balance * the appreciation rate of the coin's value is greater than the appreciation rate of bitcoin (or some other coin or commodity). Whether the coins will find any significant direct use beyond being an occasional speculative opportunity for bitcoin investors is doubtful, but this alone is sufficient for liquid exchanges and therefore makes them spendable on bitcoin-enabled services.

Stable value - a coin with some sort of built-in automatic monetary policy that adjusts the amount of coins in circulation to keep the price stable would I think be able to attract a modest market share of risk-averse individuals who want a reliable, decentralised store of value. Also, having a stable price will give merchants/service providers an alternative currency to hedge their prices in. They could still use bitcoin as their primary mode of payment, but rather than calculating the bitcoin price based on a fixed dollar/euro price, they could set a fixed "stablecoin (e.g.)" price. Such a coin would function more like a currency than a commodity (which arguably is how bitcoin is behaving right now), though this is unlikely to make it topple bitcoin as people will still generally think in "dollars/euros" and see even a stable cryptocurrency as a medium of exchange. There is still an incentive to hold it as a store of value however.

Different inflationary principles - (demurrage, interest, different/no volume ceiling). There may be some limited situations where a coin with different inflationary principles from bitcoin is desirable, however this is extremely unlikely for the simple reason that any digital currency that doesn't automatically stabilise it's value or else sufficiently peg its value to some commodities/services will be seen as a secondary medium of exchange for other currencies rather than as a true currency in its own right. The article pointed out the flaw with currencies that provide a disincentive to hold on to them - people won't buy them in the first place. What about a currency that provides an incentive to hold on to coins, such as paying exponentially increasing interest (a flat rate of interest would increase the money supply uniformly accross all balances, leaving everyone in the same position value-wise)?. Provided it could gain some initial value, and interest was earned at a decent rate, there would be more demand to buy than to sell so liquid exchanges would be likely (and frictionless in the altcoin-to-bitcoin direction). How much of a userbase something like this could get in order to establish a value however (competing not just against bitcoin but also proof-of-stake coins) I'm unsure. When the supply of bitcoins (eventually) reaches its limit, then perhaps some less scarce altcoin (LTC for example) will become useful for sub-satoshi price differentiation (though even if bitcoin reached 1000x its current value 1 satoshi would be worth only $0.03 so the need for this will likely be very limited).

Name/value pairs (i.e. Namecoin) - obvious: if you want to keep the name/value pair (which is why you bought Namecoin in the first place), you have to hold the coin.

New features (e.g. messaging layer, completely re-imagined contracts) - a new coin built from the ground up, using the principles of bitcoins but offering completely new services, would function like an extension to the bitcoin protocol thus it is likely people would only trade out of bitcoin and hold these coins if they had an immediate need for one of these extended services. Thus liquid exchanges are less likely.

***************************

Of course, all of these features will likely appeal only to informed users who keep abreast of developments, know what they want and consider their options - there is not going to be any massive pull for "ignorant" users (meant in a non-condescending way).

Any feature that is so heavily demanded will be added to Bitcoin, because that is the most economically valuable solution.

The other factor that determines whether a feature is sufficient to make an alt-coin viable is whether it is easily integrated into bitcoin. Factors that can be implemented on a client level (and don't require changes to the protocol), such as coloured coins and smaller blockchains, are never going to give an alt-coin a unique advantage. In general, most new features which work well enough on alt-coins will likely be integrated into bitcoin, but there are four exceptions. Ideas that are controversial (like ZeroCoin/anonymity), impossible (like changing the reward system to proof-of-stake), involve a trade-off (like quicker transaction times at the expense of more orphan blocks), or aim to achieve something at odds with one of bitcoin's core principles (like different inflationary or distribution principles).

TL;DR:
In order for an altcoin to have long term success, it needs to offer unique features which a) bitcoin will not replicate and b) provide in-and-of-themselves an incentive to hold onto coins.

[Apologies for the length of the post.]
13  Bitcoin / Project Development / Re: colored bitcoins/distributed exchanges proof-of-concept on: November 07, 2013, 01:43:53 PM
I have heard of four (attempted) solutions to this, and none of them is perfect:

1. Gateways (à la Ripple)
Though exchanges themselves are decentralised, the "coloured coins" they exchanged need to be issued by a trusted (centralised) authority who will exchange for example 10EUR/USD for 10cEUR/cUSD which can THEN be exchanged for BTC or other currencies.

2. IOUs (à la Ripple)
Rather than trading actual currencies, people make interest-free "loans" and trade the debt. For example, you give me 1BTC for a 150GBP "IOU", which you can trade on to other people with the promise that I (or others trading IOUs in the same currency) will buy it back for 150GBP worth of BTC/some other currency. Of course this relies on people having confidence they will be able to trade the IOUs back to Bitcoins.

3. Magic (à la Harry Potter)
Some sort of coloured coins are distributed that by convention just happen to be pegged exactly to EUR/USD/GBP or whatever, and eventually the convention becomes so universal that people stop distinguishing between cEUR and EUR.

4. Automatic "monetary policy" (à la Mastercoin)
One suggestion I have seen, I think it might have been for Mastercoin but I'm not 100% sure, was that some sort of decentralised "system address" would hold an excess of for example cEUR, and when the BTC value of cEUR started to climb above EUR more cEUR would be released into the market, and if the value was below EUR then the system would buy back some cEUR for BTC to bring the value back up. How the system would track the value of the EUR however I don't know. Presumably it would be a mathematical system not relying on external feedback, so would try to approximate a certain value that was equal to the value of the EUR at the time of implementation, which obviously could change over time and the correlation become broken.
Imagine if there existed a low-friction, cross-border, P2P system for insuring arbitrary contracts via performance bonds.

It would make number 2 a lot easier to achieve in practise, wouldn't it?

I think the main issue with number 2 is this:
Person A issues 150cGBP for 1BTC to person B. EITHER cGBP can ONLY be traded back to A for bitcoins, in which case A is a centralised exchanger, OR multiple exchangers agree to accept each other's cGBP, in which case there is nothing to stop person C1 issuing 1500cGBP to their other account C2 for 1 satoshi, then trying to exchange those 1500cGBP to person A for 10BTC.

With a performance bond in the latter scenario, there will always be situations in which people can make a profit from being dishonest larger than the performance bond. There could be a rating system attached to it, but then either everyone is given a fair chance before their rating goes down in which case scams will still happen, or else everyone starts at zero in which case they will never be accepted into the system and the same few trusted players will control the market.

In the former scenario, where each issuer is a "centralised" exchanger, and for example A issues caGBP, C issues ccGBP etc., then the equivalence of those "currencies" will be purely circumstantial; value will depend both on the BTC price being offered by each exchanger, and on the trustworthiness of each exchanger; for example, A and C might both be selling 150caGBP/ccGBP for 1BTC, but if there is more confidence in A's ability to redeem the IOU then there will be more demand for caGBP in secondary markets and thus a higher price. Besides, these currencies would only correlate to real GBP by coincidence, rather than having any strong equivalence. In this scenario, how a "performance bond" would work I'm unsure, for how can you say that A is acting in a manner "truer to GBP" than C?

Perhaps the cGBP issue transaction could be backed by some sort of proof-of-stake/proof-of-burn, to ensure it was purchased for the "correct" number of BTC (but how that would be calculated I don't know).


EDIT:
There is another scenario, sort of like a hybrid of 2 and 3. The currency STARTS OFF being issued by a centralised exchanger (A) for say 1BTC = 150cGBP. These cGBP are traded around at roughly the same rate because everyone is confident that A will redeem them for bitcoins again. One day A vanishes, but so many of his cGBP have been in circulation for so long that people have been buying them for 1GBP worth of BTC by convention, and they continue to be traded at this value.
14  Bitcoin / Project Development / Re: colored bitcoins/distributed exchanges proof-of-concept on: November 07, 2013, 01:16:17 PM
I am still trying to wrap my head around how we get cash $ into and out of  a decentralized exchange.  If someone can help me there I would really appreciate it.
It's a difficult problem, which I have not yet seen anyone address properly.

I have heard of four (attempted) solutions to this, and none of them is perfect:

1. Gateways (à la Ripple)
Though exchanges themselves are decentralised, the "coloured coins" they exchanged need to be issued by a trusted (centralised) authority who will exchange for example 10EUR/USD for 10cEUR/cUSD which can THEN be exchanged for BTC or other currencies.

2. IOUs (à la Ripple)
Rather than trading actual currencies, people make interest-free "loans" and trade the debt. For example, you give me 1BTC for a 150GBP "IOU", which you can trade on to other people with the promise that I (or others trading IOUs in the same currency) will buy it back for 150GBP worth of BTC/some other currency. Of course this relies on people having confidence they will be able to trade the IOUs back to Bitcoins.

3. Magic (à la Harry Potter)
Some sort of coloured coins are distributed that by convention just happen to be pegged exactly to EUR/USD/GBP or whatever, and eventually the convention becomes so universal that people stop distinguishing between cEUR and EUR.

4. Automatic "monetary policy" (à la Mastercoin)
One suggestion I have seen, I think it might have been for Mastercoin but I'm not 100% sure, was that some sort of decentralised "system address" would hold an excess of for example cEUR, and when the BTC value of cEUR started to climb above EUR more cEUR would be released into the market, and if the value was below EUR then the system would buy back some cEUR for BTC to bring the value back up. How the system would track the value of the EUR however I don't know. Presumably it would be a mathematical system not relying on external feedback, so would try to approximate a certain value that was equal to the value of the EUR at the time of implementation, which obviously could change over time and the correlation become broken.
15  Economy / Economics / Re: The Problem With Altcoins on: November 07, 2013, 12:34:10 PM
I agree largely with the article, though I still feel altcoins could play a valuable role in the future.

However, once the dumb masses are in the main coin, it will become much more difficult to compete with that coin. Because the dumb masses don't care about decentralization, anonymity, and the benefit of mining on PCs can be offset with palm-scanning ATM machines for Bitcoin (the dumb masses will blissfully scan their palm). We are not yet there, but the window of opportunity is rapidly closing.

I think this underlines the true magnitude of the network effect (as discussed in the article). While most of the original bit-pilgrims were drawn by the decentralised nature of bitcoin, the anonymity it promised (including those with less-than-legal purposes), and idealistic/geeky aspects of its cryptography and its economics, many of the next wave were simply speculators marveling at rapidly rising graphs and sensing an opportunity. Since then, the "third wave" of bitcoin users have given it a try because they've seen it advertised, found it a convenient way of storing wealth and making online payments. Even if a new alt-coin emerged that was vastly superior to bitcoin in EVERY SINGLE ONE of its original goals, joe-public, investors and many service providers would probably feel no massive urge to switch.

Consider supercoin which has some radically better features than Bitcoin. Because Bitcoin has over $1bn riding on its success there is a significant investment by all the people who use it, own it, mine it, and otherwise profit from the ecosystem. So there would be huge incentive for Bitcoin dev to clone the software changes which make supercoin so super, even if it means a hard fork. Such a hard fork would be tolerated as all bitcoiners want to protect their own interests. As soon as these features are released in a new bitcoin version, then supercoin becomes irrelevant.

In this case, supercoin was not irrelevant, because it galvanised an otherwise reluctant bitcoin to innovate. Anyone who believes altcoins (in their current form) could rival or even supercede bitcoin is deluded. But (semi) thriving altcoin economies provide real-world stress testing for new ideas (more so than testnet) that could be used to improve bitcoin. I think if altcoins are to succeed (not necessarily match bitcoin, but run alongside as a significant alternative economy trading with bitcoin) then it will take one of four forms:

1. One or more of the current altcoins (or even brand new ones), instead of being minor twists on bitcoin, need to correlate several good ideas (and good developers) into ONE coin and aim to constantly innovate in ways that bitcoin (or at least the Foundation) are scared to, in order to attract enough "purists" over to make it viable.

2. A payment system (not necessarily a single currency) that allows decentralised, anonymous, CHEAP sending of fiat (or fiat-linked) "currency". Something like Ripple (which from my reading appears to be a lot more decentralised than they make out to be, perhaps to attract venture capitalists' investments) - it would be possible now the code is open source to build clients designed not to link addresses, tumblers would be possible etc, and it if the network grew big enough there would be no need to trust the company's own "validators" - I haven't however used the system so can't say much in detail about it. Something else that could take off is Open Transactions.

3. Something built as an "extension" to Bitcoin. #2 above could be achieved with something like "Coloured Coins" or "MasterCoin" built ON-TOP of the bitcoin architecture. MasterCoin, as well as NXT, plan on using an "exodus block" for coins moved over from BTC instead of a genesis block, utilising the ubiquity of bitcoin rather than competing against it, allowing people to trade out of bitcoin when they require special features, then trading back in again.

4. Something COMPLETELY different.
16  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN] Nxt :: descendant of Bitcoin on: November 07, 2013, 09:33:53 AM
This project could be really interesting - especially the way that rather than "starting again" like most altcoins, it works by "transferring" existing bitcoins onto a new, more feature-rich chain. A couple of things I would like to ask/points I would like to make however:

1. What marketing/incentivisation are you planning to ensure a plentiful userbase?
I appreciate you are still in the development stage atm, but do you have any solid plans about this yet that would give potential investors confidence?

2. Is the domain name registration really any different to Namecoin? And is having a competing system really a good idea?
Your sole grievance with NMC appears to be that it is not AUTOMATICALLY browser-integrated. But your solution seems to amount to no more than installing some sort of browser plug-in alongside the client - I fail to see how this is not (trivially) possible with Namecoin? Anyone could just make an installer package that includes a .bit DNS resolver plug-in as well as namecoind/Namecoin-QT client. Also, your "no transfer" of domain names between addresses probably wouldn't work in practice, because people would simply sell the private keys for the addresses themselves.

Additionally, though I appreciate yours is only the second such system, is directly competing (at the moment) against Namecoin really a good idea? Namecoin right now is massively underdeveloped and underused, and offering an alternative at this stage could not only split developers and users between the projects, but would also decrease the value of NMC (because if R160K.bit was already taken, you could just buy R160K.nxt) and thus lessen interest. Although I feel competition is a good thing for crypto-development, I think it would be best to try and get Namecoin realising its full potential to get a feel for what's possible with decentralised DNS before competing away its users and developers. After all, DNS is different than coins: an altcoin directly competes AGAINST bitcoin as a potential store of value; but two DNS systems can complement each other: it is not a strict either/or whether to buy R160K.bit or R160K.nxt, you could have both if you wished; therefore, waiting for Namecoin to come along much further will not necessarily reduce the likelihood of people using NXT for domain names if it's implemented the future.

3. Will the file storage only be for "official" files (like the client), or will anyone be able to upload files?
I like the notion of storing the client on the blockchain - although this of course will only be the official client, and will not include any third-party clients. Also, if file storage ON THE BLOCKCHAIN is available to everyone, even if it is expensive, then the potential for blockchain bloat is enormous (also it will preclude the possibility of implementing some sort of mini-blockchain system). There is possibly an alternative - an idea I came up with a few days ago, though only managed to work out a couple of features (it may yet be impossible). (https://bitcointalk.org/index.php?topic=326808.0). The basic idea is that peers contribute storage space (measured in gibibytehours) and are rewarded for it in coins (could be a "coloured" altcoin on the NXT chain) which they can then either use to pay for file storage or can sell via exchanges to other users who want to buy storage. How the reward system should work, or the paying-for-storage, I have yet to devise; but I have already found a way to link uploaded files to coin addresses. I should warn you though, that idea is very rough (and possibly impossible) to implement.

4. What protocol improvements (over bitcoin) are you considering implementing?
You've already mentioned faster transaction times, PoS over PoW, and some new types of contracts; I think you also mentioned somewhere about coloured coins (or equivalent). But what about things like "mini-blockchain" (or one of the equivalent proposals like CoinWitness)? (Though in fairness that is perhaps best done on a client-level: users decide how much of the blockchain they want to validate and store locally, and the rest they get from their peers). What about "ZeroCoin" (although the current proposal is quite impractical due to validation times etc.)? What about "micro-payment channels"?
17  Alternate cryptocurrencies / Altcoin Discussion / SwarmCoin - (possible) new cryptocurrency with decentralised cloud storage on: November 07, 2013, 07:13:23 AM
RE-POSTED FROM NEWBIE SECTION: (original post: https://bitcointalk.org/index.php?topic=320853.msg3435294#msg3435294).
[I originally posted this in the newbie section, but it didn't really generate any discussion. The idea is very rough, vague and generally will not work in its current form - nor have I developed it any further since my original post. I'm simply re-posting this very rough concept to try and generate some discussion about whether a decentralised cloud storage service (could possibly also offer file-sharing, web hosting, cloud processing) utilising a cryptocurrency would be in any way viable.]



I have been lurking around here for the past few days, so I thought I would sign up and make a post. I realise this post does not really belong in this forum, however I also realise that 1) it will be moved to an appropriate forum (where I cannot currently post) 2) it will raise my post count to 1, so four hours later I'll be able to go to the forum it's been moved to and post. Smiley

Though I have a bit of casual knowledge about cryptography (from reading about PGP, Bitcoin etc over the years), I'm certainly not an expert. Nor have I done any programming in years (and even then it was only amateur). This idea therefore is not fully formed (I literally only dreamt it up a few hours ago). I am only giving a very rough notion with many flaws, in order to generate some constructive discussion about whether something like this might be in any way viable, or if it is not doable at all.

The idea is not purely crypto-currency, though it does involve crypto-currency as a core element (and the non-crypto-currency bit involves P2P, decentralisation, crytography etc. anyway), so I thought I would post it here. The idea is a decentralised cloud storage network ("swarm storage" I'll call it) which relies on a new cryptocurrency whose value is pegged to a unit of storage in the swarm. I'll call that cryptocurrency "SwarmCoin" for now, for want of a better name (though the "Coin" moniker unhelpfully suggests it's another Bit-clone altcoin, which it isn't). SwarmCoin allows users to buy storage space on the network in a decentralised way.

A while ago I became aware of a distributed (but not decentralised) swarm storage solution called SymForm (http://www.symform.com). Users can either buy storage from the company, or can get some storage for free by allocating some of their own hard-drive space for use by the swarm. At the moment they offer 1GB of free swarm storage for every 2GB of hard-disk space sacrificed. They also require that anyone donating disk-space to the cloud be constantly connected to the cloud (the service is aimed more at businesses). I don't know on their system how many different nodes a file is distributed to, but I would imagine it would be at least two. This means that if you donated two gigs to the swarm, getting one free, and you used that whole gig, then your gig of data would be held by at least two nodes taking up at least two gigs of the swarm's capacity and thus cancelling out (or even negating) your two gigs contribution. If everyone used up their allowance to the max, there wouldn't be enough space to go around, and that's not even including the people who pay for storage without contributing any disk space! The reason that their business model works of course is that by and large users DON'T use up all their allowance - there is excess liquidity in terms of storage space so they are able to offer a multiplier of 0.5 for free to everyone donating space, as well as selling space on top of that.

In the system I am proposing, which should be fully decentralised, nodes will not have near 100% uptime, so files will need to be distributed across a much larger number of nodes, and the effective storage capacity of the network will not simply be the sum of all donated storage, therefore the amount of excess liquidity could be much lower - it would likely take some testing on a real or pseudo-real network to get a good idea of how much liquidity we could afford to lose. Every node that donated x amount of storage capacity would receive k*x free. Because the nodes in our network won't (likely) be "always on", we measure donated/used storage in gibibytehours rather than just gibibytes. And nodes would receive their free storage in the form of SwarmCoins (SWC). For ease of demonstration, I will assume that 1SWC = 1GiBh, though in practice it might be better pegged to a different number of GiBh (or MiBh, TiBh etc.) This free storage (in the form of SWC) is a node's reward for providing capacity to the network (just as tx fees and new coins are miners' reward in bitcoin for processing transactions). They can either use the SWC for storage themselves, or sell them for fiat, bitcoin or whatever at an exchange. [There is one obvious issue this could cause, see below #1].

I shall now explain how the system will work: each SWC is made up of a pair of keys, one "public" and one "private", with a certain hash of the public key being the "address". I shall loosely call both this hash and the associated key-pair the address. Each address in the swarm functions like an account: all the files uploaded by the same address are linkable to each other, but files uploaded by different addresses with the same owner are not (necessarily). When a user uploads a file to the cloud, he first chooses an address (that he owns) to upload it with. The file is encrypted using some keypair the user owns (could be the address but not necessarily). Then a (non-encrypted) header is generated which contains meta-data, including a file id (which identifies the file amongst all the files uploaded by this address) and a version number (which identifies the file amongst its revisions). The header also includes the address's public key (or perhaps just the short address if it's possible to verify a signature with just the hash). The encrypted file is appended to the non-encrypted header, and the whole thing is signed with the address's private key. Only the owner of the private key used to encrypt the file can access its contents, keeping files on the storm secure. If the user wants to replace the file with a newer modified one, he encrypts the new one, creates a header using the same address and file id but a greater version number than the old file, signs it with the same address and broadcasts it. When any node that is hosting the old file picks up a file with the same address and file id but a greater version number, it checks the signature of the new file against the public key from the header of the old file (which must be exactly the same as the public key in the header of the new file anyway) and if it's valid, then whoever broadcast the new file must control the address that uploaded the old file so the node can be sure this is a genuine revision by the owner and can replace the file it's storing. If the owner of a file wishes to delete it from the swarm, they could broadcast a header with no file appended, with the same address and file id and a greater version number than the file to be deleted. Nodes would not keep empty headers with no file content so would just delete the file. As files would associated with addresses which would also hold SWC, the values held by these addresses would deplete at a rate of 1SWC per hour for every gibibyte of storage used (assuming 1SWC = 1GiBh). These depleted coins could either be divied up proportionally amongst the nodes that actually contributed towards the hosting as an extra reward (on top of the reward they get simply for making that capacity available) or else could simply be destroyed (or could reward miners for processing transactions).

The mechanics of the P2P network, deciding which nodes should host which files and how those files are sent to those nodes is little beyond me at this present moment (as I say, the idea has just come to me). But that is not really the discussion I want to have right now. What I'd rather focus on is the viability of a crypto-currency system to allow decentralised purchasing of swarm storage as well as providing rewards to those lending storage capacity. How could and how should it be implemented? One thing is obvious: the value of the SWC needs to be such that users feel sufficiently rewarded for sacrificing their hard-disk space (this may also include large data-centres capable of starting their own centralised cloud if they wished), whilst also giving good, competitive value for money - if it's alot cheaper to buy storage from a cloud, then there will be no demand for the swarm (and thus no demand for swarmcoin, and thus no real reward for those sacrificing hard-disk space, and therefore the whole thing collapses). This problem is COMPLETELY different from the one that Bitcoin (and many altcoins) aim to solve; bitcoin creation is done in such a way that supply increases at a predictable rate for a limited period, then stops so that there is never any inflation. The challenge here is completely different, therefore the normal "coins created by mining" formula can't just apply. As I have said repeatedly, this is a brand new idea I haven't had time to properly consider in depth, so I haven't yet come up with any elegant solution to currency value problem, but I would be very interested to see some discussion.

So in order for this to be viable, we need some suggestions on how coins are created, how transactions are processed (should the tried and tested miners + tx fee model be rolled out here, or is there a way we could force everyone donating capacity (and thus receiving rewards) to also process some transactions?) Should there be a bunch of coins pre-created and held in reserve by a "federal bank" that will release and buy-back coins to keep the value stable to begin with (protecting against speculative investors, market shocks etc.) that could eventually commit suicide, after which point the coin would obey strictly mathematical laws? Perhaps the coin's value shouldn't be strictly pegged to a unit of storage, and node operators can set their own minimum prices for storage?

Also it would be great to hear if anyone has any ideas about how one could mathematically implement a mechanism that causes coins to decay as storage is used, or cause coins to be created/redistributed when storage is donated. This system would likely require a radically different infrastructure from Bitcoin/most altcoins.

#1 - returning to the paragraph above where I was talking about contributors being given their "free storage" reward in the form of SWC that they could sell: the problem this would cause is that it makes peoples unused storage capacity transferable; meaning that people can sell their unused storage capacity rather than just leaving it unused, reducing the extra liquidity of the system to zero (or less) unless there is some incentive to hold coins rather than redeeming them. However, the fact that storage is sold in gibibytehours (or similar) means that coins will not all be "redeemed" simultaneously - someone who buys enough to store 1GiB for 1 month will redeem his coins 1 per hour for a month, meaning he will be "holding onto" some of the coins for up to 1 month minus 1 hour. There could be a security vulnerability if an attacker uploaded files simultaneously with multiple addresses, "redeeming" too many SWC at once - though the network would need to have some sort of provisions in place for dealing with excessive demand.

#2 - there might also be a (theoretical) issue with the fact that SWC (albeit their exact method of creation is not yet defined), at least those "produced" as rewards, reflect past network capacity rather than current capacity, so if the network were to shrink there might be issues.

These last two points particularly have been fairly rushed; I'll try and think more about them and solutions and perhaps come up with small-network examples. Sorry for the very raw (and vague) nature of the idea, but I thought it might generate some interesting/useful discussion. IF (and that's a big if) there is anyway something even remotely like this could be viable, the next step might be to consider swarm-processing, decentralised file publishing/web hosting - but let's not run before we can walk (if in deed we can walk at all).

Sorry about the length of this (and the vagueness in parts), I am rather tired
18  Other / Beginners & Help / A (possible) new cryptocurrency with a decentralised cloud storage network on: October 29, 2013, 03:55:52 PM
I have been lurking around here for the past few days, so I thought I would sign up and make a post. I realise this post does not really belong in this forum, however I also realise that 1) it will be moved to an appropriate forum (where I cannot currently post) 2) it will raise my post count to 1, so four hours later I'll be able to go to the forum it's been moved to and post. Smiley

Though I have a bit of casual knowledge about cryptography (from reading about PGP, Bitcoin etc over the years), I'm certainly not an expert. Nor have I done any programming in years (and even then it was only amateur). This idea therefore is not fully formed (I literally only dreamt it up a few hours ago). I am only giving a very rough notion with many flaws, in order to generate some constructive discussion about whether something like this might be in any way viable, or if it is not doable at all.

The idea is not purely crypto-currency, though it does involve crypto-currency as a core element (and the non-crypto-currency bit involves P2P, decentralisation, crytography etc. anyway), so I thought I would post it here. The idea is a decentralised cloud storage network ("swarm storage" I'll call it) which relies on a new cryptocurrency whose value is pegged to a unit of storage in the swarm. I'll call that cryptocurrency "SwarmCoin" for now, for want of a better name (though the "Coin" moniker unhelpfully suggests it's another Bit-clone altcoin, which it isn't). SwarmCoin allows users to buy storage space on the network in a decentralised way.

A while ago I became aware of a distributed (but not decentralised) swarm storage solution called SymForm (http://www.symform.com). Users can either buy storage from the company, or can get some storage for free by allocating some of their own hard-drive space for use by the swarm. At the moment they offer 1GB of free swarm storage for every 2GB of hard-disk space sacrificed. They also require that anyone donating disk-space to the cloud be constantly connected to the cloud (the service is aimed more at businesses). I don't know on their system how many different nodes a file is distributed to, but I would imagine it would be at least two. This means that if you donated two gigs to the swarm, getting one free, and you used that whole gig, then your gig of data would be held by at least two nodes taking up at least two gigs of the swarm's capacity and thus cancelling out (or even negating) your two gigs contribution. If everyone used up their allowance to the max, there wouldn't be enough space to go around, and that's not even including the people who pay for storage without contributing any disk space! The reason that their business model works of course is that by and large users DON'T use up all their allowance - there is excess liquidity in terms of storage space so they are able to offer a multiplier of 0.5 for free to everyone donating space, as well as selling space on top of that.

In the system I am proposing, which should be fully decentralised, nodes will not have near 100% uptime, so files will need to be distributed across a much larger number of nodes, and the effective storage capacity of the network will not simply be the sum of all donated storage, therefore the amount of excess liquidity could be much lower - it would likely take some testing on a real or pseudo-real network to get a good idea of how much liquidity we could afford to lose. Every node that donated x amount of storage capacity would receive k*x free. Because the nodes in our network won't (likely) be "always on", we measure donated/used storage in gibibytehours rather than just gibibytes. And nodes would receive their free storage in the form of SwarmCoins (SWC). For ease of demonstration, I will assume that 1SWC = 1GiBh, though in practice it might be better pegged to a different number of GiBh (or MiBh, TiBh etc.) This free storage (in the form of SWC) is a node's reward for providing capacity to the network (just as tx fees and new coins are miners' reward in bitcoin for processing transactions). They can either use the SWC for storage themselves, or sell them for fiat, bitcoin or whatever at an exchange. [There is one obvious issue this could cause, see below #1].

I shall now explain how the system will work: each SWC is made up of a pair of keys, one "public" and one "private", with a certain hash of the public key being the "address". I shall loosely call both this hash and the associated key-pair the address. Each address in the swarm functions like an account: all the files uploaded by the same address are linkable to each other, but files uploaded by different addresses with the same owner are not (necessarily). When a user uploads a file to the cloud, he first chooses an address (that he owns) to upload it with. The file is encrypted using some keypair the user owns (could be the address but not necessarily). Then a (non-encrypted) header is generated which contains meta-data, including a file id (which identifies the file amongst all the files uploaded by this address) and a version number (which identifies the file amongst its revisions). The header also includes the address's public key (or perhaps just the short address if it's possible to verify a signature with just the hash). The encrypted file is appended to the non-encrypted header, and the whole thing is signed with the address's private key. Only the owner of the private key used to encrypt the file can access its contents, keeping files on the storm secure. If the user wants to replace the file with a newer modified one, he encrypts the new one, creates a header using the same address and file id but a greater version number than the old file, signs it with the same address and broadcasts it. When any node that is hosting the old file picks up a file with the same address and file id but a greater version number, it checks the signature of the new file against the public key from the header of the old file (which must be exactly the same as the public key in the header of the new file anyway) and if it's valid, then whoever broadcast the new file must control the address that uploaded the old file so the node can be sure this is a genuine revision by the owner and can replace the file it's storing. If the owner of a file wishes to delete it from the swarm, they could broadcast a header with no file appended, with the same address and file id and a greater version number than the file to be deleted. Nodes would not keep empty headers with no file content so would just delete the file. As files would associated with addresses which would also hold SWC, the values held by these addresses would deplete at a rate of 1SWC per hour for every gibibyte of storage used (assuming 1SWC = 1GiBh). These depleted coins could either be divied up proportionally amongst the nodes that actually contributed towards the hosting as an extra reward (on top of the reward they get simply for making that capacity available) or else could simply be destroyed (or could reward miners for processing transactions).

The mechanics of the P2P network, deciding which nodes should host which files and how those files are sent to those nodes is little beyond me at this present moment (as I say, the idea has just come to me). But that is not really the discussion I want to have right now. What I'd rather focus on is the viability of a crypto-currency system to allow decentralised purchasing of swarm storage as well as providing rewards to those lending storage capacity. How could and how should it be implemented? One thing is obvious: the value of the SWC needs to be such that users feel sufficiently rewarded for sacrificing their hard-disk space (this may also include large data-centres capable of starting their own centralised cloud if they wished), whilst also giving good, competitive value for money - if it's alot cheaper to buy storage from a cloud, then there will be no demand for the swarm (and thus no demand for swarmcoin, and thus no real reward for those sacrificing hard-disk space, and therefore the whole thing collapses). This problem is COMPLETELY different from the one that Bitcoin (and many altcoins) aim to solve; bitcoin creation is done in such a way that supply increases at a predictable rate for a limited period, then stops so that there is never any inflation. The challenge here is completely different, therefore the normal "coins created by mining" formula can't just apply. As I have said repeatedly, this is a brand new idea I haven't had time to properly consider in depth, so I haven't yet come up with any elegant solution to currency value problem, but I would be very interested to see some discussion.

So in order for this to be viable, we need some suggestions on how coins are created, how transactions are processed (should the tried and tested miners + tx fee model be rolled out here, or is there a way we could force everyone donating capacity (and thus receiving rewards) to also process some transactions?) Should there be a bunch of coins pre-created and held in reserve by a "federal bank" that will release and buy-back coins to keep the value stable to begin with (protecting against speculative investors, market shocks etc.) that could eventually commit suicide, after which point the coin would obey strictly mathematical laws? Perhaps the coin's value shouldn't be strictly pegged to a unit of storage, and node operators can set their own minimum prices for storage?

Also it would be great to hear if anyone has any ideas about how one could mathematically implement a mechanism that causes coins to decay as storage is used, or cause coins to be created/redistributed when storage is donated. This system would likely require a radically different infrastructure from Bitcoin/most altcoins.

#1 - returning to the paragraph above where I was talking about contributors being given their "free storage" reward in the form of SWC that they could sell: the problem this would cause is that it makes peoples unused storage capacity transferable; meaning that people can sell their unused storage capacity rather than just leaving it unused, reducing the extra liquidity of the system to zero (or less) unless there is some incentive to hold coins rather than redeeming them. However, the fact that storage is sold in gibibytehours (or similar) means that coins will not all be "redeemed" simultaneously - someone who buys enough to store 1GiB for 1 month will redeem his coins 1 per hour for a month, meaning he will be "holding onto" some of the coins for up to 1 month minus 1 hour. There could be a security vulnerability if an attacker uploaded files simultaneously with multiple addresses, "redeeming" too many SWC at once - though the network would need to have some sort of provisions in place for dealing with excessive demand.

#2 - there might also be a (theoretical) issue with the fact that SWC (albeit their exact method of creation is not yet defined), at least those "produced" as rewards, reflect past network capacity rather than current capacity, so if the network were to shrink there might be issues.

These last two points particularly have been fairly rushed; I'll try and think more about them and solutions and perhaps come up with small-network examples. Sorry for the very raw (and vague) nature of the idea, but I thought it might generate some interesting/useful discussion. IF (and that's a big if) there is anyway something even remotely like this could be viable, the next step might be to consider swarm-processing, decentralised file publishing/web hosting - but let's not run before we can walk (if in deed we can walk at all).

Sorry about the length of this (and the vagueness in parts), I am rather tired
Pages: [1]
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!