We are long-time supporters of Bitcoin. We spent almost a year and a half of our lives building routed payment channel technology for Bitcoin in order to make micropayments on Yours possible. Our technology is similar to the Lightning Network, but does not depend on segwit. We were the first group to demonstrate a routed micropayment on Bitcoin.
Unfortunately, in early 2017, fees on Bitcoin got so high (at about $3 per transaction) that even with payment channels we couldn't get fees low enough for micropayments. The cost of opening a channel was about $5, which is a lower bound cost for onboarding a user. That is far too high for a social network. That doesn't even include the funding of the channel itself, which would have to be at least $50 to make the fees economical. See this review of the economics of payment channels for more information.
We realized that Bitcoin no longer made sense for our use-case, so we went shopping for an alternative. Ethereum was the next largest candidate, but it was so technically different from Bitcoin it would have taken too long to pivot our infrastructure.
Litecoin was the largest Bitcoin-like blockchain which meant pivoting our infrastructure would be simple. Furthermore, Litecoin had an extensive economic infrastructure including vast support from wallets, exchanges and merchants meaning it would be very friendly for our users. In May we announced we were switching to Litecoin, and then we launched our alpha shortly thereafter. Charles Lee, the inventor of Litecoin, became one of our first users.
However, the alpha was just an alpha, and we had a lot of work to do to make our payment channel technology work well for users. We have now been through three iterations of the payment channel system in order to make it work as intended: Be able to cash in, be able to send payments with one click, and be able to cash out.
There are several technical properties of payment channels that make them challenging for user-friendliness:
  • Opening a channel cannot happen instantly. You must wait for the funding transaction to confirm before being able to use the channel in order to have strong security. We worked around this by indicating to the sender that the payment had succeeded even though it had only just started. In about 50% of these cases, the recipient never received their funds due to being offline.
  • Closing a channel cannot happen instantly. You must wait for the CSV delay to be able access your funds after closing a channel. For security reasons this must be a long time, such as many days or weeks, which are painful for users who want to access their funds immediately. We chose to set this to 30 minutes, which was about as low as we could possibly justify from a security point of view, but it was still irritating to users.
  • The user must be online to receive a payment. This is an unrealistic assumption for a social media app, so we invested enormous effort into our protocol and infrastructure to make this matter less, but it is not possible to fully allow recipients to be offline while preserving the economic advantages of payment channels.
  • The user must continuously be online in order to monitor for the broadcasting of old commitment transactions. (This can be solved by moving some of the monitor logic to a server, but that was a technical challenge that we never got around to due to the abundance of other issues that had higher priority).
  • Payment channels can be in weird states where payments are not possible for reasons than seem obscure for the user. For instance, users could not make micropayments as the first payment across a channel or the value would be below dust and thus the channel could not be closed. Another common case was that the number of outputs could increase greatly due to too many recipients being offline, increasing fees beyond the point where payment channels made economic sense.
  • Payment channels require much more state than a normal bitcoin wallet, which has to be backed up somehow and synced across devices. We never fully implemented backup or sync during our alpha due to the technical complexity of doing so, which meant that the user's wallet could not be accessed on other devices and funds would be lost if their browser database were cleared. (This problem can be solved with a greater investment in backup and sync).
  • Payment channels are at least 10 times more complicated than a normal Bitcoin wallet and require at least 10 times as much code. Although this would theoretically not lead to problems for end-users, in reality in meant we had many hard-to-fix bugs in our web of complicated code that lead to many minor problems for users. The result was that our payment system was only about 50% reliable. We estimated it would have taken another six months of full-time effort to fix all of the subtle issues to improve reliability to 99%.
  • Web browsers have the technical capability to do client-side payment channels, but we had to use unusual advanced web technologies in order to make this possible, such as service workers. Due to legacy issues on the web, these advanced technologies have unusual APIs which lead to complicated and buggy code that was very hard to understand for those of us who wrote it, and virtually a complete mystery to anyone looking at the code for the first time. This is a unique problem for web technologies, but the only work-around would be to use native apps, which introduces a requirement that our users would have to download an app, which is a usability barrier we were doing everything to avoid. Furthermore, many of these web technologies (service workers in particular) do not work on all browsers, leading to a poor experience for most users.
The most important takeaway is that although we had payment channels working, there was still an enormous challenge in front of us to make them work well. This meant that our product all but stagnated while we spent at least 90% of our time fixing payment channel edge cases and usability problems.
We watched the launch of Bitcoin Cash with great interest, because the commitment of the Bitcoin Cash community to on-chain scaling was music to our ears. Theoretically, with sufficient on-chain capacity, fees for on-chain transactions would be low enough to not need payment channels at all.
When it became clear that Bitcoin Cash was viable and could not die due to the EDA, we announced we were switching to Bitcoin Cash. We swallowed our pride and archived 10,000 lines of payment channel code and started using on-chain Bitcoin Cash transactions. This immediately improved our payment reliability to 100%, and relieved us of so much development burden that we have been able to move about 10 times faster iterating our product. We called the new product our beta and began adding features as quickly as possible, such as voting, paid comments, editing, a new UI, and a lot more.
The primary difference between Bitcoin Cash and Litecoin is that Bitcoin Cash has fees for on-chain transactions that are about 0.15 cents most of the time. That is 0.0015 USD. Litecoin has fees of about 5 cents. Although Litecoin's fees are low by most payment system standards, they are not low enough to support native micropayments. Litecoin still needs payment channels for micropayments, which means the cost to our company is enormous to continue to develop and maintain the payment channel technology.
Furthermore, the Litecoin community has a philosophical overlap with Bitcoin and is not committed to on-chain scaling. The Bitcoin Cash community, by contrast, is fully committed to on-chain scaling and intends to increase the block size as needed in order to ensure that fees remain low. This is a critical difference. By switching to Bitcoin Cash, we know we can rely on low fee transactions indefinitely without the need for payment channels. But with Litecoin, it was possible we would end up in the same situation we are today with Bitcoin, which is with fees so high that even with payment channels they are cost prohibitive for micropayments.
We consider ourselves blockchain agnostic and will use whatever technology gets the job done best for our users, which means reliable payments, low fees, and easy onboarding and offboarding. Bitcoin Cash is the best choice for Yours.
The argument for Bitcoin Cash is severalfold:
  • Fully p2p payments between users, where our users hold their keys and our company does not, meaning Yours Inc. is not a custodian of user funds. This gives our users sovereignty over their funds and means that our business has a substantially lighter regulatory burden saving us millions of dollars in legal fees and hassle.
  • The wallet works on every device, including iPhone and Android, with no need to download an app.
  • The wallet is backed up and synced across devices (after encrypting it with a hash of the user's password). This is trivial for a Bitcoin Cash wallet because the wallet is just a mnemonic and has no state. This means the user can access their funds simultaneously on many devices.
  • Fees that are so low they are all but unnoticeable to end users and work for all human-scale transactions all the way down to 1 cent and even lower. (Payment channels may still be necessary for streaming payments and other payments that are so small they are below the human threshold).
  • A community committed to on-chain scaling which ensures (or at least makes it very likely) that the blockchain will continue to function as promised indefinitely.
  • A rapidly growing economic infrastructure that is only slightly behind Litecoin. That means most wallets and exchanges support Bitcoin Cash for easy onboarding and offboarding. The economic infrastructure is continuing to grow rapidly and we expect it to achieve parity with Litecoin by early next year, including eagerly anticipated support from Coinbase.
Litecoin is our second favorite cryptocurrency after Bitcoin Cash. We currently use Litecoin to enable credit card onboarding via Coinbase by automatically Shapeshifting Litecoin to Bitcoin Cash. We also support direct Litecoin onboarding via Shapeshift. If we ever add additional cryptocurrency support to Yours, Litecoin would probably be the first, albeit only useful for larger payments as we would rather defer work on the payment channel system and focus on simple on-chain transactions. We expect Bitcoin Cash to continue to be useful for payments as low as 1 cent indefinitely.
See behind the pay wall for the other reasons why we chose Bitcoin Cash.
 

$20.65
$1.50

Reviews
39 of 41 reviewers say it's worth paying for

2 of 41 reviewers say it's not worth paying for

Comments
  spent 10.0¢
;-)
0.0¢
   1yr ago
11.8¢ 11.8¢
  spent 10.0¢
Great post!
0.0¢
   1yr ago
11.8¢ 11.8¢ 10.7¢
  earned 65.0¢
That paid blurb is great. Well worth the spend. I really liked the article so I was going to pay even without anything else in there.
I do not know when I've ever read an account of payment channels like what is described here, as most discussions do not stem around something that was implemented. Your story about removing 10k lines of code though makes a lot of sense and its great to hear it allowed you to increase the development of this platform tenfold after that with actual features and not just infrastructure.
75.0¢
   1yr ago
50.0¢ 10.7¢ 11.8¢ 11.8¢ 11.8¢ 11.8¢ 11.8¢ 11.8¢ 11.8¢ 11.8¢ 10.7¢ 25.0¢
  spent 10.0¢
You're cool Ryan. That's the point. Free market and competition vs centralized decisions and mass thinking manipulation.
The ends do not justify the means. Proof of work, not twitter polls. Skin in the game.
0.0¢
   1yr ago
11.8¢ 10.7¢ 10.7¢
  spent 8.6¢
Anytime I read about the lightning network and channels, I want to see a breakdown of the end user experience that someone perceives it eventually having. Instead what I hear about is always online clients that presumably suck phone battery life and even automatic channel management which presumably incurs on-chain costs without user consent. And it kind of sounds like it has to, to hide some of the complexity.
The recent user interface I've saw (http://blog.lightning.engineering/announcement/2017/10/12/test-blitz.html) is horribly unusable and talks nonsense like "channels are tubes you send money through." And even this is stated elsewhere to be the result of usability discussions at some conference!
Why are there so many people who cheer this on? What is it they are seeing I am not?
0.0¢
   1yr ago
11.8¢ 10.7¢ 10.7¢ 10.7¢ 10.7¢ 10.0¢
  spent 10.0¢
great use of that 50c paywall here...
0.0¢
   1yr ago
10.7¢ 10.7¢ 10.7¢ 10.7¢ 10.7¢ 10.7¢ 10.7¢
  spent 10.0¢
love the 50c paywall tip! keep it up, Yours. this article prompted me to fund and tip for the first time.
0.0¢
   1yr ago
10.7¢ 10.7¢ 10.7¢ 10.7¢
  spent 7.5¢
Glad I paid for the extra at the end. This is the first piece I've seen from a company which has actually invested time and resources in to payment channels. It confirms what many have been saying—that layer 2 solutions (such as the proposed lightning network) are kludgy solutions which aren't ready for prime time. The way forward has always been big blocks w/ cheap and quick transactions. Bitcoin Cash is the money of the Internet Nation. To the moon!
0.0¢
   1yr ago
10.7¢ 10.7¢ 10.0¢
  spent 10.0¢
Excellent post Ryan! I feel the same way intuitively about Bitcoin Cash. Its going to do really well in the future.
0.0¢
   1yr ago
10.7¢ 10.7¢ 10.7¢ 10.7¢
  spent 10.0¢
Great article, I will translate it to Chinese.
Thanks Ryan
0.0¢
   1yr ago
10.7¢ 10.7¢ 10.7¢ 10.7¢ 10.7¢ 10.7¢ 10.7¢
  spent 10.0¢
Your pointed use of “indefinitely“ makes me a bit uneasy. I understand that the Bitcoin Cash community is committed to big blocks, but are they committed to fees as low as $0.0015? You don’t have any control over the fees and it seems an increase could hurt your system.
Very interesting description of the hurdles of implementing channels though!
0.0¢
   1yr ago
10.7¢ 10.7¢
  spent 10.0¢
It's the people I met in Arnhem that impressed me (kind of ordinary user - and music innovator) and made me to dig and be hungry for the truth about bitcoin. Now I consider myself as Bitcoin Cash enthusiasts and supporter. May good things keep happening.
0.0¢
   1yr ago
10.7¢
  spent 10.0¢
This paywall tip is a little Easter egg! This is the first time I actually used Yours, the funding was easy and swift (using Bitcoin Cash). I was able to tip nearly immediately after sending a funding payment. Great user experience!
0.0¢
   1yr ago
10.7¢ 10.7¢ 10.7¢
  spent 10.0¢
Excellent post! It's great to hear some technicals about payment channels that have not had too much open discussion. I agree, unfortunately, with what you put behind the pay wall. Great job on the website!
0.0¢
   1yr ago
10.7¢ 10.7¢
  spent 20.0¢
I know Yours.org is as coin agnostic as OpenBazaar is at the moment, which is using the built in Shapeshift (or choosing to use Changelly.com or Blocktrades.us), but is there ever plans to incorporate coin choice by the user? I imagine much like OpenBazaar this might take a little help from devs of each coin if they would want to participate, but just wondering if this type of thought has crossed your mind as something possible or probable?

I know I'm replying to an old post but just read a Tweet with this link. As someone who has been following Yours.org for a little bit now, the site is that much better than it was literally just weeks ago, keep up the great work.

0.0¢
   1yr ago
  spent 5.0¢
Yes, coin choice is a possibility, but like OpenBazaar requires extra infrastructure. It's not a priority for us. We intend to continue using Bitcoin Cash exclusively for the foreseeable future.
0.0¢
   1yr ago
10.0¢ 10.0¢
  spent 10.0¢
I really liked your detailed explanation, and especially the insight into how complicated the off-chain solutions can be. It makes me even happier that Bitcoin Cash was forked to save Bitcoin from the atrocities of Blockstream. I hope the Bitcoin Cash development teams continue to keep Bitcoin Cash agile and its financial overhead low.
Did you consider Dash or any "privacy coins" at any point?
0.0¢
   10mo ago
  earned 0.0¢
why should i pay? im a student of a third world country
0.0¢
   7mo ago
  earned 0.0¢
So- those who have money can only read this great article? is that the case, in this world?
0.0¢
   7mo ago
  earned 0.0¢
qqxc3trfujs9grh6hsduk05v66fphv26ag24ww5nzm can sombody donate for the price of this article? thanks
0.0¢
   7mo ago
  earned 0.0¢
Austrian economists migrate to BCH. People with a commie streak and an affinity for central planning with 1mb blocks and socially engineering to push people onto LN and make their hard work relevant stay following the sheeple with BTC. The banks and governments will love LN - will be a lot easier to monitor and track everything through those mega LN hubs.
0.0¢
   7mo ago
  earned 0.0¢
Your arguments notwithstanding, I really liked the oracle model you originally designed and I am sure would be of interest to many. Are there plans to OSS those 10k lines of code?
0.0¢
   6mo ago
  earned 0.0¢
I realize this is quite an old post...but I just recently joined, and I was wondering why Yours had chosen Bitcoin Cash. Now I've got my (thorough, well explained) answer. Thanks, @ryanxcharles. 😃 Cheers!
0.0¢
   5mo ago