Monday, March 28, 2016

How not to do Proof of Reserves - a look at Uphold / BitReserve

Uphold, formerly known as BitReserve, recently came into some people's attention thanks to a Reddit user by the handle of askwhy10, who noticed the company might be somewhat insolvent according to their own Proof of Solvency. Anyone that has been around the Bitcoin world when MtGox has collapsed will know how important maintaining solvency is in our little corner of the world. But before we delve into that issue, lets have a retrospective on Uphold / BitReserve.

What is BitReserve?


BitReserve has been an interesting project for me to observe from a distance every now and then. Early on it was mostly a project about creating hedged accounts - you would deposit BTC, and then you could convert it over to USD or other currencies. In that sense it was similar to Locks from Coinapult or CoinJar's Hedged Accounts - BitReserve would dictate the exchange price, and it looks like you could only move money in and out of the system using BTC. One advantage it had over the other hedged accounts at the time was that one could transact directly in those hedged currencies, making it a bit more usable.

While lacking the free flow and exchange of money that systems like Ripple provided with their gateways, BitReserve still had a good idea to focus on the Proof of Reserves / Proof of Solvency to avoid insolvency:

"What people do with their money is their business,
what we do with people's money is everyone's business"

As BitReserve put it: "When you transfer your Bitcoin to your dollar card, we actually take your bitcoin and we sell it and we put those dollars in our reserve. And then, through our transparency system, we show that you are now actually holding dollars, not Bitcoin.", etc.

It is a very reasonable strategy for any financial service to take. In the Bitcoin world, you don't want to get caught in a swing holding the wrong currency and end up insolvent like MtGox. As long as you have 100+% reserves on all outstanding balances in all currencies, you can call yourself solvent. If you want to be strict about it, you combine Proof of Reserves with Proof of Liabilities, etc. So, how solvent is BitReserve / Uphold?

Uphold's solvency question


BitReserve, rebranded as Uphold in late 2015, seems to have shifted their focus away from Bitcoin and focus more on a PayPal-like model - allowing users to directly deposit and withdraw in fiat currencies as well as precious metals. They also seem to have expanded their trademarks to include such entries as bitdollar, bitgold, bitelectrum, reservechain, reserveledger, etc. and getting on the bad side of people like Andreas Antonopoulos. But lets go back to the issue of solvency.

Askwhy10 has made a post on 2016-02-15, in which he calculated that Uphold was insolvent at the time. It was short about $120k out of its expected balance of $5.6M (without Voxels, more on that later), so about 2% of total money was missing. But that was the total difference in balances. Looking at individual currencies, the company had only 4'594 out of 5'834 BTC (short 1'240BTC, 21%, or just shy of $500k). Missing 21% of your reserves in a currency that can swing by 10+% on a rough day is essentially gambling!

Uphold's BTC balance, 2016-02-14.
Columns: Currency, Obligations to our Members, Assets in Reserve, Exchange Rate.



Despite those glaring omissions, Uphold's transparency page on 2016-02-14 stated it had "101.0% Full reserve status". Most of that came in the form of Voxels, an "official coin of virtual reality".

Reading into this I am reminded of the timeless Bitcoin tale - "Story of Bob Surplus", wherein an altcoin pumper would create elaborate stories to attach to worthless currencies in order to pump them. Voxels looks like an altcoin looking for a problem - in this case, "wouldn't it make sense if Unity's Asset Store had it's own currency?", missing the point that you can just use Bitcoin...

Going back to our topic, with $350k worth of Voxels sold at the presale, Uphold evaluated that their share is worth, I kid you not, $110M. They hold 314 times the value of Voxels as were sold at the entire presale, with a surplus of $1.2M:

Uphold's Voxel balance, 2016-02-14

As the story went on, Uphold apparently became solvent again within a day of askwhy10's post, has removed Voxels from their transparency page, but they apparently are still going short on Bitcoin (holding 3'652 out of 4'944 BTC, 1'292 BTC or 26% short, worth $537k):

Uphold's BTC balance, 2016-03-27

While it may be understandable to hold some small imbalances between a few fiat currencies that won't swing more than a few percent per day in relation to one another, having such a short position on Bitcoin is a MtGox waiting to happen. At least Uphold is insignificant in the Bitcoin economy, but if I were someone holding Voxels...

Conclusions


Any company that doesn't hold at least 100% reserves on EVERY currency it operates in is gambling with their customer's money at least, and posing themselves to be the next MtGox at worst. Full Proof of Solvency is a requirement we should challenge all Bitcoin financial companies with and not accept any shortcomings or deficiencies. Lastly, if a company's CEO thinks Bitcoin won't exist in five years, especially if they are going short on BTC, they are not running a Bitcoin-friendly company and don't deserve your business.

Related discussions:


Wednesday, March 23, 2016

It's all about trust, context and timeliness - reinventing social media with blockchain

In the recent week after posting about my experience as /r/Bitcoin moderator, doing an AMA on the subreddit, and the subsequent discussion that followed in the related topics (1, 2, 3, 4, 5, 6), I've heard a lot of people voicing their opinion that the way Reddit works is rather broken. This further amplified by the recent research by BashCo into possible vote manipulation that might be going around in our subreddit, as well as a few people noticing that some of the most popular subreddits seem to be both heavily moderating the content about the Brussels terror attack, removing some highly-voted submissions and a lot of comments on the subject. Long story short - it looks like a lot of the discussion on Reddit is swayed and controlled by a handful of people controlling the subreddits (/r/Bitcoin notwithstanding). So would it be possible to reinvent Reddit and similar social media in a way that would make vote manipulation, trolling, spamming and centralization of power irrelevant?

Filter bubbles and Web of Trust


We consume a lot of the media and news. The more relevant something is to our interests, the more likely we are to consume it, so logically a lot of companies try to give us "filter bubbles":


In short, a filter bubble personalizes the news and stories we see in our social media feeds based on what we enjoy and have consumed in the past. If we're pro Bernie Sanders, we might hear more news from /r/SandersForPresident/ rather than from /r/The_Donald/. Companies like Facebook do this more covertly, while Reddit is more explicit about allowing you to subscribe to whichever subreddit sparks your interest the most.

We could use the concept of explicit and personalized filter bubble to figure out what news would be relevant to us. We would have to pick which things we're interested in (tech news, pictures of cute animals, videogames, etc.) to create the "context" for our interests (more on that later). However, this would only be as useful to us as the quality of the content to consume, which can be filled with spam and manipulated. Here is where the idea of Web of Trust comes in.

Web of Trust is a formal way of stating who do you trust, and creating a network of trust-based relationships between the users. This applies to both finding trustworthy websites as well as money. In our context, we would create our digital identity (or multiple identities), and then state which other identities we trust or distrust. Whether it would be family members, celebrities or just some random stranger on the internet posting funny pictures, we could cherry pick who is relevant to our interests. Those people, and the people they are connected with would allow us to access the relevant data feeds.

The Web of Trust can also be resilient against sybil attacks and vote manipulation - it wouldn't matter if I created a million identities and they would all "Like" some post if you wouldn't trust anyone trusting those puppet accounts. Trust could also be diluted in a PageRank fashion - if I trust a million people, I might be less reliable than someone that trusts only a handful.

Context is also important for trust. While I might trust someone to provide me with animated book reviews, I wouldn't be taking technical advise from them. Similarly, if someone was blatantly in opposition to my views, I might explicitly distrust them in that field. This would allow us to mix and match who do we trust and under what circumstances to make our filters and web of trust more explicit. For example, my trust might look like:






[Self]
Videogames
Wrestling
Bitcoin
Astronomy
0.1
0.9
0
0
0
LukeJr
0
0
0
0.2
-1.0

In this example, I would value TotalBiscuit's opinion on videogames to a strong degree - he's a competent critic with years of reputation. While he might also be a fan of wrestling, I don't share his passion for the topic so I'm indifferent to anything he would share in that content. He's not an expert on Bitcoin, so I'd also give him a 0.

LukeJr's opinion on Bitcoin I would trust a bit - he's a competent developer, although his abuse of trust in the Gentoo story leaves something to be desired. Similarly, his view that the Sun orbits the Earth makes me distrust whatever he has to say on the subject of astronomy.

The [self] variable would be a category about the person - in this example I would be interested in hearing a bit about TotalBitscuit's general life (similar to a Twitter feed).

Evaluating content


By establishing our web of trust with the proper context, we can create proper filter bubbles for the content we want to consume. If the web of trust data would be public, say, living on an Ethereum smart contract, we could pre-compute all the values we would assign to everyone relevant to us on a given topic. People we directly trust would get full score, whoever they trust would be counted as a product of the two trusts plus some discount on how far they are away from us. Doing the same for further connection levels we would eventually tend towards zero trust - irrelevance.

Every submitted piece of content would have a context - just like hashtags on Twitter or subreddits on Reddit. Generic content would have a context of the person posting it - just like a Tweet without a hashtag. The content itself could be a post or a link like on Reddit.

Now, when someone would consume a piece of content, they would give it a upvote or a downvote, affecting how the people that trust them would view the content. For every person, the aggregate score of a given piece of content would depend on everyone in their web of trust, and only that. So if I trust say, 10 movie reviewers and they all upvote Cloud Atlas, it would have a score of 10 for me. If they disagreed on The Revenant, it might get a score of 2-3. If someone posts a picture of a cat in the "movie" category, that would get a score of -10 - it might still be a cute picture, but it's not a movie.

Just like on Reddit, the concept of timeliness also needs to be taken into consideration. A lot of people would be interested in getting the latest news and the newest cat memes, so similarly to Reddit the overall position of a submission should fade away with time to leave room for fresh content.

All of these things can be weighted depending on how one wants to browse the data feed. We could see the most relevant submissions, the newest ones, the most controversial, or the top submissions of all times.

Lastly, one's votes on various submissions might also slowly tweak the Web of Trust of that individual. Every upvote might add 0.01 to a trust for a given person in a given context, and every downvote would subtract as much. This way we would organically adjust our filter bubble based on the content we consume discovering new content curators as we go along.

Technical aspects


From a technical perspective, things might be a bit complicated. The biggest challenge I would see for a system like that being deployed on a distributed network with proper cryptography to run everything on would be the overhead. While a simple system would just tally a score for every submission and update it every now and then when new votes come in, here every vote would have to be registered and parsed separately. Seeing how Reddit can have ~30 million votes per month (over 10 votes per second) and 230 million unique visitors, that can mean a lot of data to synchronize. A lot of it could be broken down based on the context - if you're not interested in Bitcoin, you don't have to synchronize the Bitcoin sub-branch, etc.

Probably implementing something like segregated witness could strip a lot of data that could be later pruned off, making the overhead a lot smaller.

One would also need to address the issue of bootstrapping new users onto the system - if only people that someone trusts would have their content viewed, it might mean a lot less content is posted in general. It could be solved for example by proof-of-burn - anyone joining the website could burn some small amount of money (or donate it to the network creators) to gain a bit of reputation from the generic account everyone would trust by default. This would allow users to start growing trust in themselves.

All in all, the concept might look a bit like Synereo, although a bit less focused on absolute reputation scores and tokenization:


Conclusions


The current social media can be heavily controlled and censored by a few individuals. Discourse on Reddit is further hampered by vote manipulation and spam. It might be possible to change how we discover content through the use of public Web of Trust and a decentralized network to submit the content through.

Monday, March 14, 2016

On /r/Bitcoin moderation - three years in review

In the past few months the moderation of /r/Bitcoin has become a contentious issue. Ever since the ban on discussion of alt-clients like BitcoinXT, the community seems to have fractured into a  few camps, sometimes vilifying one another. I was asked to clarify where I stand on this and a few other issues, so I might as well roll a few /r/Bitcoin-related topics into a blog post for future reference.

The XT censorship


As many /r/Bitcoin moderators might tell you, the decision to censor BitcoinXT was made solely by Theymos. Along with justification as to why this would happen, the message was pretty clear:

"[...] I currently intend to remove all XT submissions single-handedly if necessary, and to remove any moderator who undoes my actions, even if all other /r/Bitcoin moderators disagree."

Some moderators decided to quit out of principle, others found out later that Theymos wasn't kidding with the threat of removals.

So, the big question a few people have asked me - what is my stance on the matter?

My stance


I had a few phases of thinking as I learned more and more about XT. In my initial reaction - I was against the censorship of BitcoinXT - it was a project by a respected Bitcoin developer and it was proposing changes that needed to happen.

After debating it with Theymos and learning his point of view - I agreed with his logic that XT could be considered an altcoin that branches off of Bitcoin and that in future we could have similar forks by less reputable developers that change other contentious parts of Bitcoin - coin limit, redlisting, etc. However, that still wasn't the full story.

I've reached my final conclusions after discussing the topic with the community and learning that BitcoinXT would only fork when it is in the super-majority and becomes the de-facto Bitcoin network. For me, that was a good enough reason to not consider XT and similar clients altcoins - they don't just fork in a "revolution" and create their own network at a whim, but instead they take a reformist approach of winning the network over in a more "evolutionary" approach.

So in the end, my stance is - a client that attempts to introduce a hard fork into Bitcoin through super majority should be on topic for /r/Bitcoin.

As such, I have never removed any such topic or discussion, and I am participating in both the /r/Bitcoin subreddit, as well as the alternatives of /r/bitcoin_uncensored and /r/btc .

Unfortunately, even if I'm in favour of allowing discussion of BitcoinXT and similar clients, this decision is not in my hands. Which leads to another question - why don't I resign in protest?

Protesting


Some people have suggested that I and other moderators should resign in protest against the censorship rules. I personally disagree with this logic on the following basis - if you resign, you are showing that you don't support a given decision, but once you're out, you've basically done everything you could in the matter. You will get replaced by another mod sooner or later, and the capacity of a subreddit to function will be restored. The only difference you will make is to remove the voice of opposition from the pool of moderators, hurting your position in the long run.

So my approach is to remain a /r/Bitcoin moderator, continue moderating it like I was doing up until now, stick to my conviction of not censoring the discussion of BitcoinXT and similar clients, and voice my disagreement with the policy as appropriate in the future.

It might not be as glamorous as taking an umbrage, throwing a tantrum and leaving the moderation team as some would prefer, but this is the approach I prefer.

"Lets not moderate anything" - a day in life of a moderator


Every now and then, some people propose that we shouldn't moderate any discussion on /r/Bitcoin or similar subreddits. While the idea might be in-line with the semi-anarchist nature of Bitcoin, it doesn't really work. This is what moderation has to deal on a daily basis:


Sometimes, the spam is more organized - there are some communities that use Reddit for promoting their coin of choice. Over at /r/CryptoCurrency for example, we had to start limiting Reddcoin spam because the astroturfing was getting out of hand.

Some of the spam moderation can be automated - we have a fairly extensive automoderator script running on /r/Bitcoin that takes care of a lot of bad submissions for us.

When we're not dealing with spam, we're dealing with trolls. Some people would see this as more of censorship, but the truth is - too many trolls can spoil the community and drive away the good people you want to have around. A few years back I had a conversation with one of the "Bitcoin celebrities", and he told me that he doesn't post in /r/Bitcoin any more because of a number of trolls dogging him each time he posts. Trolls can also derail conversations and generally make the comment section a place you don't really want to venture into.

Initially /r/Bitcoin didn't ban anyone - Theymos was against it years back since the same trolls can come back again and again under new usernames. However, after getting a lot of complaints about a single, prolific troll, we started banning the trolls. The guy in question went through a lot of different usernames, got banned reddit-wide and even had to resort to switching IPs to avoid IP bans. While as it turns out - we didn't manage to drive him off completely (he resurfaced in some comment section a year or two after we started banning him to have a small chat), we did manage to make him lose interest in trolling every thread on the subreddit.

The last activity that takes up a bulk of moderation is answering to people complaining. Some rightfully so when their submission gets caught in some spam filter when it shouldn't, some less so when they decide to tell us that we can go and die since we won't be able to ban all of their accounts.

The remaining 1% of time of being a mod is where everything else happens - discussing rules, answering some questions, etc.

All in all, moderation is a pretty boring, thankless job.

A comic on Reddit moderation

Bitcoin memes and my biggest mistake


Now that we've talked about /r/Bitcoin censorship and how moderation works, let's talk about memes. Reddit and memes seem to go together hand in hand. However, this doesn't always work for every situation. If you want to have a subreddit focused on having serious discussions, memes can have a detrimental effect.

Checking out a photo or reading some short, witty meme can take a few seconds, after which a user would be able to vote confidently whether something is good or not. Page-long thought-provoking discussion about the meaning of live, the universe and everything on the other hand can take minutes to read before someone can say whether they consider the submission good or not. Because of this, memes get more upvotes faster, meaning they bubble up to the front of Reddit, getting even more exposure and votes, drowning bigger posts in their wake.

Worse than that, people then turn around and proclaim "memes seem to get a lot of upvotes, which must mean this is what the subreddit wants!". This can create a further self-fulfilling prophecy. The argument also ties to the above mentioned notion that we should just use votes to decide what should be posted on a given subreddit. Here is a comic explaining this.

This is why some communities choose to ban memes altogether - moderation and removing submission is not about what gets the most / least votes, it's about what fits the given subreddit. How does this fit in to /r/Bitcoin?

Bitcoin memes


Bitcoin and memes have a complicated relation. Some people believe that Bitcoin should be all about serious business and memes have no place in /r/Bitcoin. Others embrace the internet culture and the light-hearted nature of Bitcoin that has been around ever since the Alpaca Socks (heck, a meme is the origin of Dogecoin). As far as anyone can tell, the community is pretty evenly divided on this issue - none of the sides are in a decisive majority. So while we have a meme-centric Bitcoin subreddit, /r/Bitcoin is also welcoming of the memes and silly photos.

Most of the time, the subreddit is fairly balanced and you don't have a flood of memes. This, however, changes every now and then....

Price memes


Bitcoin price meme, circa late 2013

When the Bitcoin price swings rapidly, the Bitcoin subreddit tends to fill with numerous posts of either elation or woe. There are numerous posts shouting out the newest price (usually 5-10 of very similar posts at a time). Understandably enough, there were a lot of people that didn't like when this happened and called for ban on memes. One such person, with his post on 2013-12-07 was /u/ShakeThatBass .

For those that haven't been around /r/Bitcoin in 2013, that username might not mean much. ShakeThatBass was an anonymous early Bitcoiner that organized one of the biggest Bitcoin givaways in history, giving away 350BTC (worth at the time $7000) through Bitcointip to people that donated to various charities. The giveaway was held on 2013-03-04 on /r/Bitcoin. This act of generosity has earned him a lot of respect from a lot of people, myself included.

Back to price memes. So having read his highly-upvoted post 11 days prior, on 2013-12-18, when the "news" of China cracking down on Bitcoin was swung he price plummeting down to about $500 from the high of $1100 just two weeks prior, a number of Bitcoin price memes started to surface again. Then, I made a decision that I still consider my biggest mistake in my /r/Bitcoin moderating career - I issued a temporary ban on memes and price posts that lasted for about a day.

The decision came only from myself (no other mods were consulted), driven by the will of the community. When the dust settled and everything got calmer, I learned an important lesson in moderation and added another rule for myself to follow - don't make big decisions single-handedly. Everyone makes mistakes and at the heat of the moment a decision might seem justified, but other peoples may disagree. This is why when it comes to important moderation decisions I consult with other mods to hear their opinion and see if they agree - now even if I'm the second most senior mod I wouldn't do such things again without another mod's backing. While not necessary for the mundane mod chores like approving / removing submissions or banning obvious trolls, it is useful for the big decisions.

Moderation consistency


The last rule I follow is moderation consistency. /r/Bitcoin is currently moderated by 10 people and one bot. Everyone can have their opinion on various matters, but at the end of the day we have to act consistently to avoid moderation wars:

Months of moderation wars for Tonal Bitcoin discussion page between Luke-JR and AleÅ¡ Janda.

To avoid such petty squabbles, moderators should first discuss a contentious issue and then apply the consensus in practice (or at least, become a conscientious objector, rather than engaging in mod wars), even if they hold an opposing view. Whether it comes to banning trolls, removing spammy websites or the like, consistency is important.

Conclusions


Being a subreddit moderator is a thankless job. It takes a lot of work to remove spam and trolls. Sometimes we make important moderation decisions, and sometimes we make mistakes in our judgement like everyone else.

Overall, my personal moderation stance is as follows:


  • Moderation is essential for combating spam and trolls, as well as keeping the subreddit on-topic
  • Moderation consistency is very important and mod wars should be avoided
  • Important decisions on moderation and the direction of a subreddit should be made by at least two moderators, or a consensus for really big decisions
  • I disagree with the ban on BitcoinXT and similar clients, but for moderation consistency, I remain a conscientious objector
  • I don't believe in leaving a moderation team over a disagreement on moderation policy as it can remove the voice of opposition from the future discussions
  • Everyone makes mistakes, admitting to them is not the end of the world


I hope this covers some of the questions people might've had over the last three years of me being a /r/Bitcoin moderator and gives something for other cryptocurrency subreddit moderators to think about.

Monday, March 7, 2016

Big blocks, small blocks, side-blocks, off-blocks...

In the recent week Bitcoin has experienced another "stress test" in form of a lot of transaction spam (see below for a chart of the amount of transactions in mempool), although this time the spam was not scheduled and it's not clear who was responsible for it. Along with the continuous debate on whether or not to increase the Bitcoin block size, a lot of people have started looking at what are the potential outcomes of the situation. I have covered a similar topic over a year ago, but it might be a good opportunity to revisit the topic and bring everyone up to speed.

A mockup of "Bitcoin surge pricing", inspired by Uber.

The problem


As some of you know, the Bitcoin blockchain was initially designed to have a limit of 1MB per block. This was done due to prevent the bloat and abuse of the network. However, if this limit is strictly enforced, the Bitcoin network would only be able to support a small number of transactions, about 7 transactions per second (compared to Visa's 2000 tps). Clearly, this won't be enough for a payment network that is supposed to replace the banks and credit cards. Either we will increase this size in some way, or we will see Bitcoin become a much different network.

The outcomes


Depending on whether the block size is increased or not and by how much would dictate how the Bitcoin network is shaped. Lets look over some possibilities.

Block size remains rigid


In this approach, the 1MB block size is rigid and remains unchanged. When we start hitting this limit, the miners will be able to pick and choose which transactions to include in the block. Rational miners will pick the transactions that pay them the most in fees (proportionally to their size), thus there will be a bidding war to get into the next block.

Due to the increased cost, fewer people will opt to send transactions themselves, either leaving Bitcoin entirely, or by performing some off-chain settlement. Wallet services such as Coinbase could become more like banks - offering their customers settlement with other people on their platform and other platforms that accept off-chain settlement.

In this scenario, Bitcoin becomes a settlement method for large bank-like wallets and large corporations.


Block size limit is abolished


A polar opposite of the previous approach. The block size limit is completely abolished and miners can create arbitrarily big blocks. While anyone can create a transaction for cheap, the network would soon be attacked by malicious entities trying to push the limit. Someone could decide to generate a 1GB block for example and cause the network to grind to a halt while synchronizing.

Quite quickly running a full node becomes a luxury or a business. We see more reliance on Stratum-like supernodes. The functionality of the network is dictated by them.

In this scenario, the Bitcoin network turns into something like the modern Internet - only big players can access it directly and everyone else has to rely on something like Bitcoin-Internet Service Providers.

Middle of the road


The most likely scenario would be somewhere in the middle of the road - raising the block limit, but doing so gradually. Dedicated users could run their own nodes, but most of us would rely on third parties for helping our wallets function.

Alternative solutions


Bitcoin is both an independent currency and a settlement network for that currency. Whether the block size increases or not, there are a lot of ways one could try enhancing the settlement aspect of Bitcoin.

Soft forks


There are some proposals on how to improve the scalability without hard forking the network. Some of them include softforks such as Segregated Witness , or Sidechains (allowing value to be moved in and out of the Bitcoin network without a trusted third party).

Segregated Witness, or "SegWit" is a solution focused on slimming down the transactions by moving the signatures off-blockchain. This can slim them down to about a quarter of the size, essentially allowing the Bitcoin network to process 4MB of transactions in 1MB blocks. The idea appears to have a lot of support, but since it's mostly streamlining what Bitcoin can currently do rather than creating a whole new solution, there isn't much left to explain without going into technical details.All in all, SegWit can buy Bitcoin some breathing room with its current block limit.

Sidechains is an idea focused on on being able to move the value in and out of the Bitcoin network without depositing the coins with a third party. While this doesn't sound like much, sidechains can lead to a lot more than just scaling Bitcoin - they have a potential of recreating networks with the features of Ethereum or Ripple without having to bootstrap those networks with new coins. These sidechains could be used to settle BTC transactions outside of the network while still not having to worry about the counterparty risk.

Payment channels


Payment channels in general or Lightning Network specifically are an interesting approach to allowing a large amount of transactions to take place outside of the Bitcoin network while everything would still be settled on-chain. The idea was discussed as early as 2011, and today we have some companies that even start advertising it on their websites:


21.co advertising their payment channels right above telling everyone how many blocks it might take to confirm various transactions during the recent spam attack

A payment channel is a way for two nodes to pass payments back and forth between one another using unbroadcasted Bitcoin transactions. Each payment adjust the balances between the nodes - shifting the balance back and forth accordingly. Only the final transaction gets published to the whole world, thus potentially saving a lot of space in a block. While the use case for this solution might be limited (who sends another person multiple transactions over a short period of time?), it gets more interesting when you add the network effect to it.

A simulation of 6 networked payment channel nodes

Now, when you introduce a few "supernodes", possibly in form of Bitcoin exchanges and big companies, you start mimicking the Gateway model of Ripple:

An illustration of the Gateway model of Ripple

Instead of settling directly on the network, anyone can potentially save a bit of fees by connecting to one of the supernodes and establishing a payment channel with them. This would allow you to transact with anyone in the network fast and cheap, while still being able to settle your balance on the Bitcoin blockchain as needed. If the payment channels are open for a long period of time, a lot of people could begin to operate solely within the network. This might be especially important for cross-exchange settlement, or for shared ewallets like Coinbase or 21.co.

Alternative networks


Last but by no means least, we have the alternative networks. A lot of them stand to benefit when the Bitcoin network falters.

Simplest ones would be the altcoins - Litecoin and the like. They reason that if Bitcoin blocks are full, people will join other networks and use other coins instead. I'd take that with a grain of salt, after all, Bitcoin is a better currency in terms of price and market cap than its alternatives, but the other networks might have a higher throughput.


A much more compelling alternative would the the Crypto 2.0 networks and permissioned blockchains - Ripple, Open Transactions, Liquid. Those networks can use the above mentioned Gateway model and move the settlement completely off the Bitcoin network. The only transactions that would need to be included in the blockchain would be deposits and withdrawals. While certainly more rigid and centralized than the payment channels, there are ways of preventing the gateways from stealing one's coins (such as Voting Pools). Moreover, such networks could also be used to issue fiat-denominated IOUs, which might be very attractive for some applications.

Conclusions


The Bitcoin block size debate is still going on, while the blockchain limit is being hit more and more often. Either the Bitcoin network will scale to larger blocks, or higher fees. There are many solutions out there focused on providing alternative means of settling with BTC without having to further burden the Bitcoin network. Only time will tell how our current problems will be addressed and which solutions will be used.

Monday, February 29, 2016

An Ethical AdBlocker - a Bitcoin killer app?

An Ethical AdBlocker - a Bitcoin killer app?

Ads suck. TV ads suck, internet ads suck, pretty much all ads suck (well, perhaps except for some Super Bowl ads and a few rare gems). Moreover, ads don't work as well as they used to, so they have to get more aggressive. We hate ads, so we create software to block ads, and the software creators then charge a toll to let companies display us ads anyway.

A lot of content creators need ads to support their work, they appeal to their viewers not to use adblocks, and some websites make half-assed attempts at getting us to pay instead of viewing ads.

If you don't use adblocker, your viewing experience on most sites is abysmal, and the loading times, especially on mobile, are abysmal. If you use adblock, you feel bad for not supporting the content creators. Perhaps instead you decide to use "ethical adblocks" and only view websites that are not ad supported?

All in all, the current ad industry is a struggle between ad creators that want you to see their ads, content creators that don't want to show you the ads but have to to earn a living, and the viewers that don't want to watch the ads but still want to support the content creators.

Perhaps there is a way to support the content creators AND not have to rely on ads? There have been many approaches to this in the past, so lets see what we can learn from them and what can be improved...

Tip-based support


One of the first ideas that come to mind when one thinks how to support a creator is tipping. The idea is not new - companies like Flattr have been around for many years.

The problem with tipping, is that quite often you have to set a tipping jar up first and hope your users will be using the same platform. Without critical mass, you don't have much. This seemed to be the reason Flattr failed - it hasn't reached a critical mass, so it fizzled out mostly.

A better idea came around with BitcoinTip and later ChangeTip - tipping solutions where you could tip anyone, even if they haven't set up an account with the company. Combining that with being able to tip anyone on various social websites like Reddit, Twitter, Twitch, etc. Now suddenly you were able to even tip famous people, such as Garry Kasparov, and know they would receive their bits.

However, tip-based support also has a downside - you can't make a predictable living with them. They are by their very nature a flash in the pan. Moreover, just like upvotes on Reddit, short, witty jokes and memes might get content creators more tips / upvotes than large submissions of substance. We need something better that encourages creation of "wholesome" content, not just pictures of cats.

Patronage


An alternative to tip-based support is patronage, made especially easy through such platforms as Patreon or SatoshiVote. This form of support is suitable for a much broader set of work - from hobbyist book reviews up to high-quality educational videos.

This models fosters consistently high-quality work. Creators get paid more the more people enjoy their work on a regular basis. One-hit wonders don't translate directly into money as it would with ads on a highly-popular video, but the extra exposure can translate into a bigger stream of money down the line.

While this model is good for continuous series, it might not be ideal for infrequent releases that get a lot of views over time (say, the song "Friday" by Rebecca Black is getting a good amount of searches every week on Friday), or frequent but very minor releases (such as most of the top contributors to Reddit).

Subscription model


Similar to the patronage model, in the subscription model every user pays a certain amount per month to view a website (usually, but not always ad-free). While this model can work pretty well if the user consumes a lot of content from the same website, it doesn't work well if someone visits a page only a few times per month. Since one can only pay for so many subscriptions per month, it tends to promote only the biggest, most established content hosts (similarly to subscription-based MMOs being replaced by free-to-play ones).

A tipping adblocker


A possible solution to most of those problems could be a combination of a few of the above technologies.

The starting point for the solution would be an ad blocker - not necessarily designed to sell your data nor to take bribes to get ads through, but focusing on being the best ad blocker out there - no compromises, user experience comes first.

From there, the software would start tracking which pages its users visit and for how long. All of the time would be divided based on the content consumed - length of the video watched, which submissions on Reddit were upvoted, etc.

Once the data is aggregated, the users would be able to donate a certain amount of money per month. Like on Flattr, the donations would be divided up between the content consumed, but without the extra hassle of having to click on special buttons and so on. Some portion of the money could go to the company maintaining the whole software product.

The content creators would receive the aggregated donations of everyone from the system. If they provide a Bitcoin address - the money can be sent automatically. For websites that support it, the money could be deposited to user's account like through ChangeTip. Other websites could embed payment details directly into the html code, which can be easily scoured like ProTip appears to be doing. If a website doesn't have a payment setup yet, the donations could be stored for the time being. Websites hosting content could divide the revenue up - YouTube could get a cut of the tip, while the video creator could get the rest.

Everything could be optimized through some Interledger-like cross-currency payment protocols if someone doesn't like Bitcoin. Users could also add weight to various sites they are tipping - perhaps prioritizing blog posts over Reddit and so on.

All in all, this setup would improve the user experience by eliminating ads, replacing the revenue stream content creators and hosts lose from the removed ads by essentially donate-per-view (which could be more than a few cents an active user is generating per month). This means a user doesn't have to commit to a subscription if they don't visit a site frequently, they reward the content creator whenever they view the media, not "once-per-video" like Patreon would, and adding an extra tip every now and then would be seamlessly integrated into software (since it already tips everyone anyway, might as well make it easy to tip a bit extra).

Conclusions


Nobody wants to watch ads, thus adblockers are popular. If the adblockers would incorporate some universal tipping solution to replace the revenue stream from ads to support the content creators, it could be a win for both the creators and the users (although not so much for companies that need to advertise). Bitcoin could allow for anyone to receive tips, but different payment solutions could be introduced as well.

Tuesday, February 16, 2016

Breaking dollar's fungibility

Breaking dollar's fungibility

In the modern world we rarely make a distinction between the money in our banks, the currency in our pocket, or our balance in a digital wallet like PayPal - a dollar is a dollar, pretty much fungible. However, that's not really the case - money deposited in a bank means the bank owes that money to you (it's not "your cash"), digital wallets also own your money and can easily freeze your balance. Transferring money from one bank to another is always done at par, even if that bank in question might be Lehman Brothers about to go down back in 2008. Perhaps it is time we break the dollar's fungibility and start putting a price tag on the credibility of banks?

Private notes


Over 150 years ago in the "free banking era", any bank could issue its own banknotes. You would see a number of different notes in circulation - you could have $2 from The Bank of Chattanooga, The County of Polk, or The Lawrenceburg Bank of Tennesee. Same in Canada. While it created a lot of hassle for anyone wanting to use the currency, especially if they would travel beyond where those notes would be redeemable, it also allowed for a market to form and put a real value on the currency based on how credible the issuing bank was - good notes would be valued at par, bad ones - at a discount.

While banking nowadays is certainly simpler and safer with uniform currency issued by one entity per country, FDIC deposit insurance to prevent people losing money in case a bank goes bust, etc. However, this means we also lost the ability to evaluate bank's trustworthiness, usability, etc. and arbitrage it.

Bank arbitrage


In the Bitcoin world, it is fairly straightforward to judge the health of an exchange by looking at its exchange rate. Back when MtGox was going bust, its rates deviated from its competitors by 15+% even early on. When withdrawals out of the exchange became impossible, there was even a secondary market that traded MtGox BTC for real BTC by using MtGox's inter-account transfer capabilities. You can track arbitrage metrics today.

How would this apply to banks? Well, you could start with the currency issued by the government as the base - one dollar here would be redeemable to one dollar in banknotes (this is what MintChip aimed to do for example). Banks would use that as their reserves for fractional-reserve banking and issue their own debt-based currency. All of it could be tracked on a shared "bankchain" to allow market for various bank debt to form. The price difference of the debt could stem from various factors - how stable the bank is (FDIC insurance is all well and good, but nobody wants to go through the stress of having your saving locked up for who knows how long), how cheap and easy it is to transact to and from a bank (say, USD-demoniated bank account in Europe might be valued less due to the extra cost of transferring money overseas), how accessible is the bank (branch opening hours and how common they are), as well as how their customers share the banks values (banking for millennials, sharia-compliant finance, etc.).

Setting up such simple metric for each bank would allow anyone to easily compare various banks and put that metric on everyone's mind. If one day your money would go down to 95 cents on the dollar, perhaps you would ask your bank "what is going on?" and find out that HSBC enabled Mexican drug cartels to launder money. Maybe it would enable some people to demand all of their deposits to be covered 100% by the government-issued currency, rather than allow for fractional reserve banking? Or perhaps it would allow some people to move their money to their local credit union to support the grassroot company and earn 1-2% on the conversion rate.

Conclusions


Banking in the modern world is pretty homogeneous - currency dictated by the government, fungible money no matter where you go. Perhaps it might be useful to bring the market back into the equation and allow us to see see the bank's worth by checking the value of their dollars?


Related links:


Monday, February 8, 2016

The Dark Wiki

The Dark Wiki

This blog post is inspired by some "what if" videos made by Tom Scott, in which he explores a theoretical futures when Google forgot to check passwords, the dystopian view of the singularity ruined by lawyers or what happens when privacy dies. Here is my take on what might be built in the future on top of the existing blockchain technology.

Any names or examples used in this story are meant for purely illustrative purposes only and are not meant to condone or condemn any actions, companies, governments, technologies or the like.

----

Knowledge is power, and a lot of money can buy you a lot of information...

The years is 2025, there are almost 20 million bitcoins in circulation and they are valued at $5'000 per coin. While not as fast a growth as many would've predicted, it still puts Bitcoin as the world's 8th biggest currency in circulation, ahead of Canada's dollar, but behind the United Kingdom's pound. For all intents and purposes, Bitcoin and crypto have succeeded - they are used by a lot of people in all walks of life.

The biggest story of the year's first quarter turned out to be the busting of a US-based criminal organization creating superbills - high quality replicas of the "counterfeit-proof" polymer banknotes. What stood out about those bills is not that they were good, but that they were perfect replicas of the banknotes, down to the microprint, security ribbons and the colorshifting ink.

While not an unheard of story (North Korea is said to have done something similar in the past), over the following days of media attention a surprising finding has caught everyone's attention - the criminals got all of the information they needed to make the superbills from "The Dark Wiki" - a Wikipedia-like website residing on the Dark Web, created with the sole purpose of "cataloguing the world's forbidden knowledge".

The Dark Wiki contained detailed articles on many subjects that would land anyone in jail - recipes for narcotics, 3D printer files for military-grade weapons, interrogation manuals from a number of international agencies, copies of standard keys used in "back doors", the complete smallpox genome, or "how-to's" on accessing military GPS signals or the aforementioned printing process of superbills, from 3D prints of various master hubs, etc.

The website was not only dealing with standard articles, but also featured a prominent section on "kickstarting" / requesting information, with the bounties anywhere between a few thousand dollars for creating some malicious scripts to break into some computers, through a few hundred thousand dollars for pharmaceutical recipes of some major drugs, up to a few million dollars for schematics of nuclear weapons.

While the website seemed to lack a single owner, there were a number of prominent "experts" on the website serving as third party escrows on a number of bounties to verify if the information delivered was accurate and precise. They also curated one of the more bizarre part of the website - a scientific journal on "the dark sciences".

While a number of traditional scientific papers have been written on criminals and their illegal activities (such as Steven Levitt and Sudhir Venkatesh studying the economics of crack dealing), the Dark Wiki's journal was focused more on scientific research that was itself illegal or borderline illegal - designer drugs, human cloning, synthetic organisms, or experimenting on humans and infants. While so far only the first category had any traction, going so far as having some research grants, the other categories were open for submissions.

With a little help from the Streisand effect, hundreds of millions of people have heard of the website and it became the most searched for topic of the moment. Among the wave of new users that came across the website for the first time then, was a disgruntled 30-something NSA software engineer. Stuck in a dead-end job working on some machination that would further make the agency's reputation worse if it ever was revealed.

What he saw in that website struck a chord with him. When he was a teenager, Wikileaks broke the news. In his early 20s, Snowden's revelations shook the world. This year, he would make both history, and a lot of money for himself.

A month later, the Dark Wiki broke into the news again. A high six-figure bounty was awarded for delivering the information required to access NSA backdoors embedded in billions of devices world-wide. That day would later be known as "the day the Internet broke". The massive-scale hacking that occurred with that information was an order of magnitude higher than the 2014 Heartbleed bug, and it brought down a number of key servers around the world for a few hours before some of the vulnerabilities could be patched and the Internet reconnected.

The following days the governments were dealing with a few major issues. First, any US-based manufacturer was distrusted overnight, with many world governments revving up production on their non-backdoored hardware. But due to the nature of how hardware is manufactured, it would take years for the industry to adjust.

Second major issue was figuring out who leaked the information. The bounty was paid in bitcoin, but since the 2019 halvening hard fork introduced confidential transactions to the network, it became impossible to figure out which address received the funds. An internal investigation was under way at various government agencies to see if some leads could be found...

Lastly, the Dark Wiki had to be shut down - it attracted too much unwanted attention and could cause global security concerns if it was used by large criminal organizations or corrupt governments. With some busy work and exploiting some weaknesses of the Tor network, the website was finally traced to a server sitting in some country with abundant legal loopholes and lax prosecution laws for hosting illegal content. However, the biggest surprise came when it turned out there were only two notable pieces of software on the server - a small wrapper serving the website's frontend and an Ethereum client...

As it turns out, the website was running as a smart contract on the Ethereum platform. All the required information and logic was stored in the distributed ledger, with payments being handled through a sidechain connection onto the Bitcoin network. Editing rights were only given to users that created a high enough proof-of-burn pledges (by donating the coins to the contract itself) and the little governance there was was mostly handled through anonymous users building their reputation by contributing to the website and being recognized by the community. Anonymous donations from people benefiting from the wiki as well as the pledges and other fees allowed for the contract to become a self-sustaining DAO.

After the website was shut down, multiple other mirrors cropped up along with the source code required to access the data locally. Attempts to shut the network down only strengthen it due to the antifragile nature of crypto.

On the 10th anniversary of its genesis block creation Ethereum was no longer seen as a quirky distributed state machine, but as an avatar of unstoppable quest for knowledge in all of its forms paired with the cold machinations of cryptographically untouchable capitalism.

If the Dark Wiki has taught us anything in its following years of operations is that security through obscurity is a joke and that we can't rely on any secrets to keep us safe. In the end, backdoors had to be closed, strong cryptography became the default and the attitude towards cryptocurrencies has changed. Just like you cannot kill an idea, neither can you stop a decentralized network or currency.

----

What I have described above could be implemented today, at least technology-wise. It would probably still take some time before the technology becomes popular enough for people to start using it as described, but we have some kernels of that already in the form of the assassination market or the now-defunct Silk Road. In due time perhaps we would see some dark web information market develop and turn into some wiki for people to use. Pair cryptocurrencies with the sort of money drug lords or a small government can amass and you might have to be keeping a closer eye on disgruntled or low-paid employees with access to secret information...

I used Ethereum as an example of a platform to host the Dark Wiki, but the same project could be hosten on any platform that supports smart contracts. Please don't read it as condemnation of Ethereum either - I see it as one of the more innovative crypto projects and see it being useful for a number of good projects in the near and far future.