Monday, August 31, 2015

The Regime Test - a Great Filter for the cryptocurrencies

The Regime Test - a Great Filter for the cryptocurrencies

Bitcoin is a decentralized cryptocurrency. Just like gold, nobody owns the system and no single entity controls the market. While some governments might try to restrict its use, at this point the Bitcoin network is so widely distributed that any attempt to shut it down is infeasible.

However, what about other cryptocurrencies out there? How can one be sure the network they use will stick with its tenants and not start acting like a centralized system? How does one know their coins are safe from being forked and erased?

One good indicator of whether a cryptocurrency will stay the course of remaining decentralized or caving in to government's will would be "The Regime Test" - waiting for the currency to be actively used by at least a few people in some sanctioned regime, bring it to the attention of both the system developers and their government and see whether they take any steps to prevent such transactions from taking place on the protocol level, or stand by their network needing to be completely decentralized.

One could see it as "a Great Filter for the cryptocurrencies" - every sufficiently successful cryptocurrency will have to face it on the road of becoming an ubiquitous, global currency. Whether the system passes the filter and remains a decentralized network or caves in to governmental pressures forces the project to take a stand on either side of the debate - it's not an issue that can be swept under the rug for long.

This test is especially important for the Crypto 2.0 systems that allow you to deal in your local currency directly. One can never expect when a new currency would appear from either a sanctioned regime or an extremist group that is suddenly traded against the more established currencies. Whether the system is then forced to ban the issuance of such currencies or lets the gateways deal with that on a case-by-case basis with their users can be an interesting precedent. If say, someone would send a Gold Dinar from a terrorist organization that then gets swapped for USD and lands in someone's account, would that person be potentially investigated as dealing with the terrorists? What about the trader that set up an order that allowed this transfer of funds? Or more interestingly - what if the trade went like this: Gold Dinar -> native token -> USD? Clearly, the native token - USD trader did not have bad intentions when enabling that trade, but the transaction couldn't have happened without them. It might be possible that suddenly the decentralized network would start requiring KYC on the blockchain for performing any sort of trade. Suddenly, the extra KYC Ripple Labs had to go through for their wallet start to pale in comparison.

All in all, the Regime Test is another gantlet for cryptocurrencies to separate the fragile ones destined to fade away from the antifragile ones that have a potential of standing to the challenge. It would be interesting to see some exchanges in places like Iran and Syria to challenge the status quo and show that in today's decentralized world, the money is like the Internet - it cannot be stopped and it flows around barriers. Similarly, it would be great to see a few cryptocurrency networks like Ripple challenged to take a stance on this issue.

PS: Stop the Bitlicense

Restrictive regimes - Iran, Syria, North Korea and New York ;).

Monday, August 24, 2015

 A legitimate reason for premining tokens

A legitimate reason for premining tokens

In the Bitcoin world, the term "premining" is a dirty word and for a good reason. There have been numerous preminted altcoins out there created with the sole purpose of being pumped and then dumped. Some other premined coins gain slightly more credibility by premining their tokens in order to create fiat-denominated cryptos. Then again, we had some big scams in that realm as well.

Over the last few years we also had a few token presales for various app-coins (Augur, MaidSafe, etc.) and platform tokens (Ethereum, Mastercoin, etc.). While the tokens have mostly been advertised as being sold to give you access to the platform / application (possibly to avoid securities regulations), it is clear that a lot of people purchase those tokens in hopes of speculating on their future price.

And lastly, we have the case of Ripple, a Crypto 2.0 platform that was completely premined and whose parent company still owns a vast majority of the XRP tokens. Some have been sold, some have been given away, but the fact still remains - Ripple Labs owns most of those tokens. Some maintain that it can be a long-term business strategy for the company - to hold onto the XRPs for a long time while building up the network to earn money from the appreciated value of the tokens. While this might be a useful stream of revenue, I think there might be a better use for such tokens for both Ripple and similar systems that might come along.

As we have seen recently, a lot of big institutions are waking up to the idea of "a blockchain" and its usefulness for accountability and so on. Ripple is among one of such blockchains pushing for being adopted by big companies like banks or Western Union.

However, from what I heard chatting with some people in the industry talking to such institutions, the hard sell in a lot of cases is the token / coin. Perhaps this is why we see banks not wanting to adopt Bitcoin but being enamoured with a more bland and generic "blockchain" - you need bitcoins to use Bitcoin, and the price of bitcoins fluctuates wildly. The institutions don't want to get exposed to the price swings, so they opt away from such platform. However, what if we could remove that uncertainty altogether? Well, in some cases we might just be able to...

Imagine we have a company that wants to get onto a blockchain and is weighing its options. One of their concerns would be whether a system they build today will hold up in a few years time, both in therms of technical capabilities (will the system be able to expand to meet the growing needs of the network, or will we have another block size debate) and pricing (will the costs stay the same or go up). While the earlier is always up in the air since you can't predict everything, the latter might have a more concrete solution.

If we took a company like Ripple Labs with their big supply of XRPs, they could possibly offer a good solution to the pricing problem for an important enough customer. All they would simply need to do is offer that company a long-term option to buy the tokens at some fixed price. This way, the company could be certain they won't pay more than X to use the system in the future, no matter where the price of XRPs might go in the future. Whatever Ripple Labs might be losing by entering the option contract and possibly selling a fair amount of tokens at a low price years down the line, it could make up in other areas - either integration fees or the rest of their XRPs appreciating in value due to the high profile of customer they brought on.

So all in all, while there are many reasons why premining is a bad practice and should generally be avoided, there are a few reasons why it might be useful for the growth of the system.

Sunday, August 16, 2015

Reverse BitPay - receive fiat payments, get paid in Bitcoin

Reverse BitPay - receive fiat payments, get paid in Bitcoin

There are a lot of projects in the Bitcoin space that act as Bitcoin to fiat bridges - they accept Bitcoin and sometimes other currencies on your behalf and pay you in fiat at the end of the day. However, there doesn't appear to be anything out there that does the reverse for you - allow you to accept fiat payments and pay you in Bitcoin (the closest would probably be BitWage, but that project is aimed at employers paying their employees, rather than anyone being able to accept wire payments seamlessly). A project like that may be a useful part of the "rebittance" space.

So how might a project like this look? I would imagine it would be a mix between a bank and a Bitcoin exchange. You would sign up for an account, probably verify your identity for KYC purposes, and then you would be ready to start accepting payments. You would receive a segregated bank account number, similarly to what you would get in a bank or a credit union, and whatever funds would be deposited to the account through a wire transfer (or whatever other means commonly used in US and other countries that are averse to wire transfers for some reason) would be instantly converted into BTC at the current rate.

This approach, if deployed in some key countries, would allow for much easier flow of funds internationally. Perhaps paired with a mailbox rental service, you could potentially create a virtual presence in any country, receive local payments and get paid internationally. This would allow you to tap into the global marketplace from anywhere in the world and still get paid in a timely and affordable fashion. You could either keep your earnings in Bitcoin, or convert it on the spot back into your local currency through a rebittance service or perhaps a local exchange.

Now, if you extend this solution into the Crypto 2.0 space, the service would essentially work as a fiat -> fiat-denominated crypto gateway. This would allow you to receive payments in any currency while still having an easy way to convert between everything, rather than using Bitcoin as the intermediate currency.

How likely is it that we will see a project like this any time soon? Pretty unlikely in the form described. You would probably need to start with some forward-looking bank or a credit union that has access to the legacy banking system, figure out whether it is legal for them to set up accounts for entities in another country and see if they would be willing to take the risk associated with handling money like this. Maybe once the crypto space is better established we would see something like this come about, but that can be still ways away.

EDIT:

Relevant discussions:

  • https://www.reddit.com/r/Bitcoin/comments/3hack0/reverse_bitpay_receive_fiat_payments_get_paid_in/
  • https://www.reddit.com/r/CryptoCurrency/comments/3hack1/reverse_bitpay_receive_fiat_payments_get_paid_in/
  • https://twitter.com/MeherRoy/status/633180115183235072

Tuesday, August 11, 2015

Bitcoin and Beyond - a presentation

Bitcoin and Beyond - a presentation

Recently, I was invited to be a speaker for the 2015 Annual Gathering of Mensa Canada. Instead of doing the usual "What is Bitcoin" talk and walking people through the basics of how Bitcoin work from a technical standpoint, I decided to do things a bit differently. Instead, I decided to briefly talk about a lot of diverse topics and projects surrounding Bitcoin to hopefully spark some interests and inspire people to research further.

Here is my presentation - Bitcoin and Beyond

It was aimed to be a 40 minute presentation with 20+ minutes to spare for questions and conversation. Some of the projects covered I'm personally not a fan on (I'm looking at you in particular, BTCJam), some are mainly place holders for more general ideas (like ProTip), but I think overall I managed to cover a wide variety of interesting topics.

The presentation itself went fairly smoothly. We had some discussions on the topic of sending money over email (some people weren't aware only some banks can do it through a proprietary technology of Interac and it's not an international service), the question of who do you really buy domains from on Namecoin, etc.

I hope you enjoy the presentation slides and perhaps they inspire you to give a similar presentation yourself in the future ;).

If you'd like me to give a talk at your conference however big or small, let me know and we can figure out the details.

Saturday, July 25, 2015

Fighting Bitcoin theft - law enforcement block explorer

Fighting Bitcoin theft - law enforcement block explorer

Recently I had a chat about what would be some good features for a block explorer to have. One thing I don't really see implemented too well is a tool for helping fight the theft of bitcoins. The idea isn't anything new really - I discussed something similar back in 2013 - a block explorer focused on tracking officially reported thefts of coins and providing a tools for exchanges to cross-reference their inputs with the database. Here is how it could work...

The stolen coin tracker


The tracker would essentially be a block explorer focused on tracking coin taint - nothing ground breaking there. However, if you pair that with allowing law enforcement from around the world submit exactly which coins they want tracked, it can become a quality tool for figuring out whether some coins are "tainted" or not.

However, the taint shouldn't be permanent. If the stolen coins are recovered, or they end up very diluted in a legitimate place of business, the outputs might need to be whitelisted as "clean" to stop the tracking. This way, the coins could go back into circulation without triggering any more flags in the future. This whitelisting process should also be carried out on request of the law enforcement.

The reason why we would focus on law enforcement is to limit the amount of false claims of thefts. If someone really lost their coins, rather than only claim to have lost them, they wouldn't mind filing a report and being liable in case they lied. Similarly, when tainted inputs are reported but they are deemed too diluted by whoever is responsible for the local AML enforcement, they would be the ones responsible for that decision.

Knowing which outputs to track, the rest is trivial - follow the coins each time they are spent, keep a track of how the taint might be diluted down the line and record everything for later reference.

Who is going to use this?


Any company that is required to follow AML regulations, like any Bitcoin exchange, would want to start using the service to make sure they are not liable down the line. The exchanges would either want to ask the tracker about every deposit they receive to check its taint, or if they are very privacy conscientious, they might just want to poll for any recent movements of tainted coins and do the cross-referencing themselves.

Any transaction that contains tainted coins could be reported to the authorities, or there could be a threshold of the minimal taint for reporting (say, above 10%). Depending on the regulations, the coins would either need to be frozen by the exchange, or if the taint is small, the authorities could whitelist the transaction on the tracker.

The implications


As with many things Bitcoin, the solution is not clearly good or bad. On the positives, this can discourage people from stealing bitcoins as they would have much harder time spending or converting them (who knew infinitely traceable currency can be so hard on criminals?). As for the negatives:

  • We would be dealing with many jurisdictions with different laws, making the blacklisting and whitelisting process complicated
  • This idea may lead to the Bitcoin redlists, where all coins would be considered tainted unless they were whitelisted - clearly not a desirable path for Bitcoin to be heading
  • The tracker would only be useful if a lot of international Bitcoin exchanges would choose to use it. Having a few big exchanges ignore it completely would just mean everyone with tainted coins would just visit them instead circumventing the tool
  • This tool would negatively impact Bitcoin fungibility, which makes the system less desirable overall
  • A lot of independent vendors and casual users accepting bitcoins wouldn't be able to effectively report all suspicious activities, possibly forcing them to switch over to using big payment processors instead, going against the Bitcoin idea of being one's own bank

Conclusions


All in all, do the benefits outweigh the drawbacks? Possibly. Then again, if someone that understands Bitcoin won't create a tool like this and run it responsibly, we might end up with someone from outside that doesn't know how the Bitcoin ecosystem work come in and force something worse upon us...

Monday, July 13, 2015

Who stands to benefit from a spam attack on the Bitcoin network?

Who stands to benefit from a spam attack on the Bitcoin network?

As discussed earlier, the Bitcoin network has recently been flooded with a lot of spam transactions. While at least some of this was an honest stress test, it brought more attention to the fact that the Bitcoin network can be pushed to its limits with relatively low cost by anyone. While the network should be resilient against zero fee transaction spam attack, putting some money and effort into the attack can make it seem like a lot of honest transactions with relative ease.

Now, since we know how the Bitcoin network could be destabilized, let us ponder who might benefit from such actions.

DISCLAIMER: while I will be mentioning a lot of specific examples of peoples and projects that might benefit from such an attack, please treat them only as illustrative examples. I have no evidence of their involvement in the attacks, nor do I believe any of them would employ such a strategy.

The usuals


Since we're talking about an attack on Bitcoin, lets get the usuals out of the way - governments, big banks, PayPal, etc. wanting to bring Bitcoin down since it challenges "the old ways". There isn't much new to add to these speculations or motivations, so might as well skip this part of the debate for expediency's sake.

The direct competitors


Bitcoin has been copied so many times people lose count. There is never a shortage of copycoins out there. Since Bitcoin has a throughput issue of handling a lot of transactions, you can easily see someone creating an altcoin with higher block sizes and faster blocks to sell itself as the solution to Bitcoin. More ambitiously, you can look at coins that have added some improvements to the protocol to combat spam, like Litecoin for example. Sustain a spam attack on the Bitcoin network long enough to sell your story of being the savior of cryptocurrencies and you might just be able to push up the price of your coin high enough to turn a profit.

The speculators


Just like you can speculate on the price of altcoin alternatives going up, you can also try speculating on the price of Bitcoin being affected by the spam. Alternatively, you could try to cause something similar to "trade engine lag" on the Bitcoin network and try to game some exchanges while other traders would have trouble moving their coins onto the exchange to cash in.

The solution evangelists


Even if we don't look at the altcoin space, we can see a lot of people with an agenda of where the Bitcoin code should move towards. Whether they are doing it for profit or for personal satisfaction, there is a potential for those evangelist of their own solutions to attack the network and push their code onto others.

Below are some examples (again, only illustrative examples, read the disclaimer) of potential solution evangelists.

Sidechains is an interesting concept of how to move a lot of transactions off the Bitcoin blockchain while still having a currency tightly tied into the Bitcoin itself. As (to the best of my knowledge) sidechains are still impossible to fully implement into the Bitcoin network without a soft fork, using the spam attack as an opportunity to push for a fork would be beneficial to them and enable sidechains to come to the Bitcoin network.

The debate over Bitcoin block size increase has been a hot topic for a few months now. The topic has been pushed most notably by Gavin Andresen, with some people even speculating on "gavincoin" becoming a reality (read more here). More so than Sidechains, the concept is not possible without a hard fork to the Bitcoin protocol, thus pushing the block size increase amid the spam attack would make the core developers more urged to consider going through with the fork to solve the issue.

Finally, something that doesn't require a hard fork - transaction filtering. This approach relies on being able to identify which Bitcoin transactions are spam and which are legitimate use cases and prevent the spam from propagating through the network. If enough nodes in the network would stop spam transactions, the network as a whole could develop herd immunity against spam. However, the same mechanism could be used to deny some Bitcoin businesses' transactions from reaching the miners. Such transaction censorship has been tried to pass unnoticed in the past by Luke-Jr, and could possibly be tried again along with more honest spam filtering.

The off-chain alternatives


Since moving transaction on the chain can be a problem, some people might propose solutions based on transactions being processed off-chain instead. Examples of such alternatives would include the Lightning Network, Ripple, Open Transactions or shared wallet providers such as Coinbase. If the off-chain solution can deliver bitcoins to people faster than the real network and some people don't know or don't care how they receive the coins, they might appear as a legitimate replacement for sending real Bitcoin transactions to some people. This might be also the case when Bitcoin transactions are too pricey to be included in the blockchain.

Crypto 2.0s eliminating competition


There are a lot of Crypto 2.0s out there. A good deal of them rely on the Bitcoin network to function - Colored Coins, Omni or Counterparty for example. There are also some emergent platforms that offer services tied to the Bitcoin blockchain, such as Factom. If the transactions for those networks can't make it into the Bitcoin blockchain, the network itself performs worse and suffers as a result. Their alternatives on the other hand stand to benefit from people potentially switching over. Ripple could benefit if Omni is not performing well, Ethereum stands to benefit from Counterparty being slow, etc. While being on the Bitcoin blockchain has been a selling point for a lot of companies, it can turn into a detriment if the Bitcoin network is overloaded.

Extra: bribing the miners for their compliance


As a side-note, it might be interesting to consider how some parties might want to even further push their agenda onto the network by essentially bribing the miners for their compliance.

Say, if someone wanted to eliminate some "spammy" transactions from the Bitcoin network, whether it's SatoshiDice's dust transactions or perhaps Omni transactions. They could easily set up an anonymous website claiming they will pay every miner X amount of bits for every block they create that complies with their spam filter. As long as they offer more than the miners stand to earn from the transaction fees, there is a benefit to them complying. With the excuse of excess spam, the miners can't be entirely held accountable for some transactions not making it into the block. Since the miners can be paid directly to their coinbase address, everything is transparent and nobody needs to agree to collude.

Conclusions


A stress test of the Bitcoin network can be all about preparing for the higher transaction volumes that are to come in the future, but it can also be a way for some people and organizations to further their agenda. While it might be still really early for such high-level politics to surface around Bitcoin, who knows what the future might hold?

Thursday, July 9, 2015

Fighting Bitcoin spam with Bitcoin Days Destroyed

Fighting Bitcoin spam with Bitcoin Days Destroyed

As many of you might've noticed, the Bitcoin network has recently been flooded with a lot of spam transactions. While the problem is nothing new, essentially a plain old DOS attack, the Bitcoin network doesn't appear to have much in a ways of contingency attack if the attack is sustained. I would like to propose a possible solution to at least mitigate the attack somewhat using Bitcoin Days Destroyed.

For those of you who might not be familiar with the concept, Bitcoin Days Destroyed is an interesting metric for transactions. For every input, you multiply the coin age (when the transaction was included in a block) by the amount of coins being spent. You add up all of the results for the whole transaction Nd you get your BDDs. So, spending 1BTC a day after it was received gives you 1BDD. A week after it was received - 7BDD. 0.1BTC after a year has 36.5BDD and so on.

Now, if the order transactions are priorities for inclusion in a block was dependent on their BDDs as well as fees and size, it could limit the effectiveness of the spam attack - since the spammer relies on sending a lot of transactions often, unless they have a lot of coins, their transactions will have a very low BDD score. Standard users should have higher scores by default, provided they don't cycle their coins all the time.

Of course, this method only works if the mining pools would follow the rules. Seeing how many pools still mine blocks that aren't full gives one little hope the situation will be resolved quickly.

Side note - this solution isn't all that new either. I did write it down broad strokes in my master thesis (pages 42-43) back in 2011-2012 ;).