Crypto's Ladder of Abstraction

Like all good blog posts, this one starts with a tweet. In this case, I can point to Nicola for spurring this one. Niraj and I previously collaborated on a post called “Merging Chains”. You can think of this in the same spirit as that post.


Portability has been a great side-effect of abstractions for computation, higher-level languages and will have the same effect for the decentralized world as well. In the centralized world, we have Dropbox, Google Drive, and Evernote. These all let us take our information wherever we want it. Whereas before, the existing model was a thumb drive or involved clunky data transfers. The internet helped pave the way for user side abstraction. When we wanted to upgrade devices, we didn’t have to worry about our data. On the dev side, we’ve seen the evolution of serverless. Preceding that were IaaS plays, namely AWS, and preceding that you had to rent out hardware and co-locate a hardware. 

Right now, a lot of effort is spent building on a base layer Turing(ish)-complete stack-based machine like Ethereum. While Ethereum remains a market leader right now, things might change. A 0day exploit might appear, someone very influential might die within their organization, or a switch to PoS might actually prove to have a bad security model. Those don’t necessarily reflect what I believe but rather are stated to show some “existential” type risks that might compromise a base layer protocol.

In theory, a mature dapp built on top of Ethereum, shouldn’t derive much of its value from the security model of Ethereum. In theory, a dapp should be able to move its contract state to another base layer protocol. Another way to look at it is again through the lens of history and greater abstraction previously mentioned. A user doesn’t really care whether Dropbox uses it’s own servers or is hosted on AWS. Of course, they care about getting their information lost or stolen, but that’s up to the developers to worry about.

As mentioned previously, developers today don’t have to deal with renting servers. Developers on Ethereum don’t have to write EVM bytecode either. We’ve already seen people build on different platforms. Kin moving to Stellar rather than building on Ethereum, at least initially. I do have a gut feeling that the switching costs may be less than people think, especially since new base layer protocols are taking the tack of enabling the EVM already, like RSKSmart. Also, the Ethereum state trie is already publicly available, and that lets people do airdrops and such, like EtherMint.

And of course, Ethereum abstracted away the messy world of bootstrapping your own blockchain, secured by miners.However, as we build upon this world of abstractions it’s easy to forget that these build on real components, while you can write in a high-level language, your code is still executed by self-interested miners, and that leads to interesting side effects and security concerns.

Ryan Shea and co spent time thinking about migrating state for onename, so this isn’t a thought that is completely out of the blue. Of course we’re seeing protocols such as Cosmos, Polkadot, and aelf now being presented as partial scaling solutions. Hopefully, they'll allow protocols now built only on Ethereum to work on other base world computers with ease.

In the formally-verified future, dapps and protocols will compile down to multiple VMs. Users and developers might not have to worry about a break down in the consensus mechanism of any one base layer protocol. A “meta”-token that wraps both the native ERC20 and whatever the token specification is for another base layer protocol will exist. Maybe these token prices will be pegged to each other, Or value will be accrued in proportion to the amount of state that they actually keep. In this way, the different base layer protocols may just be different shards on which protocols interact. Already, some tokens are looking at building on both Ethereum and NEO

If this vision of dapps on multiple chains does play out, competition between base layer protocols based solely on the dapps that they host may not be a long-term competitive advantage. Again, that hypothesis is premised on the belief that switching costs of state are low, and it does look like that is happening. If a protocol advertises the fact that they have a competitive advantage just because they’re building on a certain VM, that isn’t going to be a long-term advantage.

I don’t really offer up much in the way of analysis but just a bit of observation that we’re in the early days of crypto. There are so many rungs on the ladder of abstraction yet to be formalized and built. It's not immediately clear how scaling, where the points of friction and therefore economic value will be long term. You might say that the tokens that have the largest network effect will win out, i.e. Ethereum. Yet, the network effect argument is self-referential. It is intrinsically so, the more people use it, the better Ethereum gets. But the more people that leave an ecosystem, the more unstable it gets. With flows between addresses on chain and economic value exchanged cross-chain all available in real time on decentralized exchanges and on blockchains. We could see, in real-time, the shift in network effects from Ethereum to a hypothetical competitor. We won't have to wait for Facebook to release it's latest earning's report to show that it churn some X% of users. Please talk to me if you think I'm right or wrong :)

Merging Chains

Written by Niraj and Dillon

If you posit that bitcoin has a network effect (the more people that use the currency to transact), the more valuable the coin becomes. The more valuable the coin becomes, the more users you get and the higher the network effects. Additionally, if longer chain history means better security and more miners mean better security, in the long run, is there a way to increase the network effect by merging chains?

Right now, we've only got people doing forks. Forks are important, they allow for experimentation on the rule sets, however, they potentially may reduce the overall network effect of any single token. Forks are really good because they align incentives between the people who have already done work on the master chain. In the example of ETH and ETC, we argue that it's a feature that the Ethereum Foundation automatically held ETH and ETC without their permission. They could gain in economic value of another development team. The new development team wins because they get an input customer set, the set of pub-priv key pairs that already holds ETH. This is a subtle shift in incentives, we'll write more about this later...

While we're not advocating for a maximalist approach, the idea that there should only be one token ever, it just seems like there needs to be a process to merge chains just as there is the process of forking. There is an argument to be made that "Core" or the Foundations bearing the base token name centralize development resources. In BTC and ETH respectively, only 5 and 2 developers make up the majority of commits. Forking seems to have to have become a way for talented devs to work on protocols. Just look at LTC and @satoshilite.

Additionally, we see that experimentation has been a net positive for society in other areas. Allowing for experimentation and merging isn't limited to blockchains. Just to name a few:
  • Policy experimentation within a federal system of government. I.e. adoption of a precursor to the Affordable Care Act before it became national law.
  • Startups as new entrants that can be acquired or grow to be large companies.
  • Spin offs from large corporations. Standard Oil became several smaller companies and Rockefeller was richer for it.
  • Mitochondria being swallowed to become the powerhouse of the cell.

In blockchain terms, you could conceive of merge mining as extended uncle resolution. In the GHOST Protocol, the individual uncle hash power is added to the winning block's score. Uncle miner still is incentivized, they get some proportion of the block reward. Likewise, people who contribute to the "losing token" are still incentivized. When you think of merging chains, you're still incentivizing a smaller chain's absorption into the larger chain. While protocols can directly implement the necessary hard/soft forks to include the rule set change of a fork, they won't have the now differentiated userbase etc.

How to Do Merges

There are two methods for potentially doing a merge for tokens (and probably more that we haven't thought of).

The first method is pegging a token A to token B.
  1. Agree on a price/exchange rate for A:B
    1. Oracle to determine price
    2. Hash power signaling/ratio
    3. Market pricing on exchanges
  2. Hard fork both protocols to have the same block + rule set
    1. Enforce a specific block height for the rule change, include the pegged price ratio
    2. Price converges
  3. Before the rule set is implemented, people are free to trade out of token B
  4. Allow for atomic cross chain swaps
    1. Using Decred or 0x → hard code this into the rule set change
The second method involves one chain "absorbing" the value of the other. Meaning that token A remains and token B is never used again.
  1. Agree on a price/exchange ratio for A:B
    1. Oracle to determine price
    2. Hash power signaling/ratio
    3. Market pricing on exchanges
  2. Acquire buy out funds for A to purchase B
  3. Post a public address where all B tokens can be sent to
  4. Before the rule set is implemented, people are free to trade out of token B
  5. Burn the B tokens, each B token holder, will get the amount of agreed upon amount of token A proportion to how much they sent to the specified address

Roadblocks to putting this in practice.

Both of these scenarios involve a lot of coordination. Imaging trying to do a protocol merge without some kind of explicit voting mechanism other than hash power signaling induces a headache right away. The future of decentralized governance will definitely play a large part in how these things happen.

Also, as we see in centralized mergers and acquisitions, the larger company often has to purchase the shares of the smaller company at a price premium. We'll have to establish a better pricing mechanism beyond hash power and other matters. Ari Paul and Chris Buniske have been doing a lot of great work in fundamental valuations for this.
Additionally, atomic cross chain swaps are not the only potential way to transfer a token from one chain to another, using a protocol such as Polkadot or Cosmos we might allow for this sort of thing as well.

Real World Procotols That Could Benefit.

These wouldn't just have to be currency tokens, you could potentially also merge utility tokens as well. For example, looking at Sia and Filecoin. If Filecoin were to establish a dominant market cap and share position, it might behoove them to purchase the Sia network. An additional step would need to be taken. Individuals would need to, before they can acquire any of token A, transfer their files over to the new blockchain. Once this is performed, they can claim their Filecoin token.
  • Small cap token mergers
  • Prediction markets (Augur and Gnosis)
  • File storage markets (Filecoin, Sia, and Storj)
  • BTC variant mergers (BTC, LTC, BCC)

----

Look here as well

The Great Firewall of Facebook

Media when concentrated in a few individuals or the state has always been subject to censorship/influence whether by direct action or inaction. Western Union, China, and Napoleon are a few prominent examples. Now we have Facebook. The press lauded Facebook and Twitter when it influenced the Arab Spring, but is chafing at social media’s power now that it’s come to influence our politics in the States. 

Facebook and any social network has de-facto censorship through their use tweaking of newsfeed algorithms. Facebook is just the largest and easiest target. Of course unlike China, Facebook’s aim is not to achieve certain any certain political goal. The aim as a public company is to create long-term shareholder and user value. Therefore, any tailoring of the newsfeed algorithm will be made towards those ends. It is a bit scary that Zuck controls the majority of Facebook’s voting stock, control of the board, and further downstream of the algorithms that control our news feeds, and sheer scale of Facebook’s users. And when shareholder value seemingly comes into conflict with our user value in the most valuable walled garden in the world has a frightening influence when a country is just a medium sized audience in terms of their scale. Facebook has always been a walled garden, killing off any products (Facebook Platform, access to media, etc) that captured too much value from the all important newsfeed. Much like Facebook, the internet in China is also a walled garden. With the Chinese internet, we know the aims of censorships are to achieve political goals. 

As it’s started influence our domestic politics, there have been proposals in the tech community, within Facebook, and in the broader community to tweak the Facebook algorithm in various ways. These have been proposed solutions that I don't feel like are permanent fixes:
  1. Users proactively change feed, because people don’t shift from their default option.
  2. Tweaking the algorithm. We’ve seen with SEO and Google, this is just an arms race.
  3. We can use traditional anti-trust regulation. 
    • Iron rules of information economies, everything tends towards monopoly because of network effects and zero marginal cost of distribution
    • Smaller groups of people might become more of an echo chamber
  4. We could turn Facebook (and Twitter) into public utilities/non-profit
    • This returns to issue of who controls it. If it the government, this would always be at risk of turning into a propaganda machine.
    • If it another rich billionaire, it runs the same issues as traditional media organizations (as well as Facebook).
The core problem with Facebook, Twitter, Linkedin, is that they need to aggregate their data and users. That’s why they’ve closed off their APIs to developers. They know their graph is what makes them special. Twitter used to be open with their data, but closed it after they saw different clients like Tweetbot/Tweetdeck and like the like potential a threat to their data moat. They can’t relieve the tyranny of the algorithm

Yes, IMAP and access to emails is one example where multiple parties have access to data, and where companies can still make money.

However, the blockchain and app coins might provide a better solution to ending censorship by algorithm and still incentivizing people to create open products.. Just as we have in email, we can use multiple clients to look at our email, and as well as incentivize creators of these protocols.



Facebook Email Blockchain Social Apps
Front End One (Money made up here with ads) One (Money made up here with ads) Many
Algos One Many Many
Token/access to data None None Money made down here with increasing data/users
Data/Blockchain Have to guard this Free to share Share freely/forkable

We can tie together a token that directly read/write access to data. The token should rise in value just as Bitcoin has risen in value as more transactions, more data is added to the ledger. When we tie the business model of the token directly to data, we don't have the same problem of not allowing Facebook to share their data. 

Just as we can view our email with multiple clients, we'd be able to view our friendship graph, the stories and links they post with multiple front ends. On the front-end, it doesn’t matter which UI/UX experience the user sees, or which algorithm the user sees*. Different entities can A/B algorithms for sorting newsfeeds. We can have ones that allow users to see fake news, ones that allow users to be exposed to more long-form content, or even ones that promote argument. Cryptocurrency based social networks can end the de facto censorship that Facebook holds over what news a user sees. And some people have already built prototypes of these social networks: Squeek.io and Eth-Tweet. To me, this seems like a potential solution that aligns everyone’s incentives. It’s a way for technology to solve problems created by technology.

Facebook represents a centralized model of social networks. They’ll still remain very important. While a great utility, it also runs counter to the spirit of the open web. Perhaps blockchain social networks can return us to the open-source past of the web, while still allowing creators to satisfy their self interest.

* Gating access to the underlying data doesn’t have to mean that the average user will have to pay access to use the service as different token distribution mechanisms can be used so that top users (which will be advertisers or celebrities) will subsidize access for the average user.