Monday, March 6, 2017

Some Thoughts Towards an Ontology for Smart Contracts

The concept of smart contracts has grown considerably since the birth of Ethereum. We've seen an explosion of interdisciplinary research and experimentation bundling legal, social, economic, cryptographic and even philosophical concerns into a rather strange milieu of tokenized intellect. Yet despite this digital cambrian explosion of thought, there seems to be a lack of a unified Ontology for smart contracts.

What exactly is an Ontology? Eschewing the philosophical sense of the word, an Ontology is simply a framework for connecting concepts or groups alongside their properties to the relationships between them. It's a fundamental word that generally is the attempt at bedrock for a topic. For example, it's meaningful to discuss the Ontology of democracy or the Ontology of mathematics.

Why exactly would one want to develop an Ontology for smart contracts? What is gained from this exercise? Is it mostly an academic exercise or is there a prescriptive value to it? I suppose there are more questions to glean, but let's take a stab at the why.

Smart contracts are essentially two concepts mashed together. One is the notion of software. Cold, austere code that does as it is written and executes for the world to see. The other is the idea of an agreement between parties. Both have semantical demands that humans have traditionally had issues with and both have connections to worlds beyond the scope in which the contract lives in.

Much of the focus of our current platforms such as Ethereum is on performance or security, yet abstracting to a more Ontological viewpoint, one ought to ask about semantics and scope.

From a semantical perspective, we are trying to establish what the authors and users of smart contracts believe to be the purpose of the contract. Here we have consent, potential for non est factum style circumstances, a hierarchy of enforceability and other factors that have challenged contract law. What about cultural and linguistic barriers? Ambiguity is also king in this land.

Where normal contracts tend to pragmatically bind to a particular jurisdiction and set of interpretations with the escape hatch of arbitration or courts to parse purposeful ambiguity, decentralized machines have no such luxury. For better or worse, there is a pipeline with smart contracts that amplify the semantical gap and then encapsulate the extracted consensus into code that again suffers from it's own gap (Loi Luu demonstrated this recently using Oyente).        

Then these structures presume dominion over something of value. Whether this dominion be data, tokens or markers that represent real life commitments or things such as deeds or titles. For the last category, like software giving recommendations to act on something in physical world, the program can tell one what to do, but someone has to do it.

So we have an object that combines software and agreements together that has a deep semantic and scope concern, but one could add more dimensions. There is the question of establishing facts and events. The relationship with time. The levels of interpretation for any given agreement. Should everything be strictly speaking parsed by machines? Is there room for human judgement in this model (see Szabo wet and dry code and this presentation)?

One could make a fair argument that one of the core pieces of complexity behind protocols like Ethereum is that it actually isn't just flirting with self-enforcing smart contracts. There are inherited notions from the Bitcoin ecosystem such as maximizing decentralization, maintaining a certain level of privacy, the use of a blockchain to order facts and events. Let's not even explore the native unit of account.

These concepts and utilities are fascinating, but contaminate attempts at a reasonable Ontology that could be constructive. A less opinionated effort has come from the Fintech world with both Clack's work on Smart Contract Templates and Brammertz work on Project ACTUS. Here we don't need immutability or blockchains. The execution environment doesn't matter as much. It's more about consensus on intent and evaluation to optimize processes.

What about the relationship of smart contracts with other smart contracts? In the cryptocurrency space, we tend to be blockchain focused, yet this concept actually obfuscates that there are three data domains in a system that uses smart contracts.

The blockchain accounts for facts, events and value. There is a graph of smart contracts in relation to each other. Then there is a social graph of nodes or things that can interact with smart contracts. These are all incredibly different actors. Adding relays into the mix, one could even discuss the internet of smart contract systems.

Perhaps where an Ontology could be most useful is on this last point. There seems to be economic value in marrying code to law for at least the purpose of standardization and efficiency, yet the hundreds of implicit assumptions and conditions upon which these systems are built need to be modelled explicitly for interoperability.

For example, if one takes a smart contract hosted on Rootstock and then via a relay communicates with a contract hosted on Ethereum and then connects to a data feed from a service like Bloomberg, then what's the trust model? What assumptions has one made about the enforceability of this agreement, the actors who can influence it and the risk to the value contained? Like using dozens of software libraries with different license, one is creating a digital mess.

To wrap up some of my brief thoughts, I think we need to do the following. First, decouple smart contracts conceptually from blockchains and their associated principles. Second, come to grips with the semantic gap and also scope of enforcement. Third, model the relationships of smart contracts with each other, the actors who use them and related system. Fourth, extract some patterns, standards and common use practices from already deployed contracts to see what we can infer. Finally, come up with better ways of making assumptions explicit.

The benefits of this approach seem to be making preparations for sorting out how one will design systems that host smart contracts and how such systems will relate to each other. There seems to be a profound lack of metadata for smart contracts floating around. Perhaps an Ontology could provide a coherent way of labeling things?

Thanks for Reading,


Tuesday, February 28, 2017

Some Thoughts on Lisk

Lisk has been a fairly controversial and frustrating cryptocurrency project since its inception. I wasn't involved in the Crypti community nor had met Max and Oliver prior to signing on as an advisor shortly after they had just finished their crowdsale. It was a hard decision to join and I feel that I need to elaborate a bit more on it to provide some context and more accurately explain my involvement

First, I mostly ignore other altcoins unless they have some unique piece of technology they they bring to the ecosystem. For example, IOHK recently published a comprehensive report on Dash and we later followed it up with another report containing a series of improvements. I think Tezos has its heart in the right place and just needs some TLC to make a serious impact on the space. Monero has started a great privacy conversation.

With respect to Lisk, it had all the right marketing jargon in its beginning- blockchain apps, sidechains, javascript, etc. But I honestly couldn't grok what the platform offered to developers and why it was unique and interesting to the space. Furthermore, the technology seemed to be a rehash of older ideas that have failed in the space such as the original DPoS and Crypti.

Hence, I initially completely ignored the project and happily went on my way to other things. Then a friend of mine participated in the crowdsale with a six figure amount. He asked me to try to be an advisor and help the project along. I generally reject these requests, but he is a good friend and thus I figured I'd meet Max and Oliver to see their vision.

I sent over a list of due diligence questions alongside some technical and roadmap questions. The answers were sufficient to warrant a meeting. Upon some discussions with Max, I realized that Lisk could actually serve a valuable place in the community.

Microsoft has been pushing a Blockchain as a Service platform. It seemed like Lisk could serve as a decentralized version of this idea by creating a marketplace for developers to consume blockchain related services for their applications where and when needed from immutable storage to oracle services. All these services could be priced in Lisk. I discussed this in more detail here.

Ok, so we have a decentralized version of something that Microsoft is doing and it's a marketplace. Sounds like a decent experiment to run. If anything, we could explore improving DPoS, sidechains and a lot of incentive schemes with the funds. Also, building a cryptocurrency in javascript is a really interesting pedagogical project.

Thus, we hammered out a deal for me to come onboard as a non-fiduciary advisor to Lisk alongside a lawyer friend of mine Steven Nerayoff. To be extremely clear what this relationship meant:

  1. I never had control over the funds lisk raised at any time 
  2. I never had control over management of the project nor HR decisions 
  3. I never had control over project governance, the roadmap or direction
I was hired to be exactly what my title denoted- an advisor. That meant to me that I would provide advice to Lisk's management when asked about any topic I felt comfortable discussing and also be available for meetings. As an advisor, I shared several concerns about the project from the very beginning. 

First, I recognized that they raised funds without an operating entity. I requested that they form a not for profit and aggregate the funds held their trust to it. Their original strategy was to accomplish this task from a German structure. I have no experience in German law and thus recommended a Swiss Foundation. Eventually the Swiss option was followed after many months of spinning in circles on a German ggmbh. 

Second, I requested an immediate increase in staffing. To facilitate the advice, I recommended several recruitment options from outsourcing some development components to a trusted Ukrainian shop to directly recruiting using some talent scouts that I've worked with in the past. 

The lack of a legal entity and lack of access to funds seems to have greatly slowed this process. I still cannot understand why they don't have more developers. For example, IOHK hired seven full time scala developers in three months time for ETC. 

Third, I requested that they get a security audit of the existing source and protocols. As it was inherited and written in a very dangerous language (javascript), I speculate that is a high probability there exists at least one ticking time bomb in the github repo. To the best of my understanding an audit hasn't been done. I could be wrong.

Fourth, I requested that a whitepaper and roadmap be drafted with explicitly clear goals and a solid value proposition for the project to focus on. Blockchain apps and javascript is not a business strategy. Lisk does not support smart contracts and to the best of my understanding does not currently offer app developers any reasonable support for their applications. 

The decentralized Microsoft play stated above is one example of a conceptual direction they could take and I believe there exist sufficient whitepapers and tech out there to make a push for it. I am uncertain exactly what Lisk is trying to do and honestly it hasn't been well communicated to me. 

As Lisk isn't my project and I just advise, it's perfectly ok for me to disagree with things or to say that I can't divine the reason for XYZ. It's Max and Oliver's project and they were entrusted with over ten million dollars. I'm just the guy in the back. However, what has deeply frustrated me throughout this process is the lack of communication and strategic execution.

I've always been just an email or skype message away and I have one of the deepest networks in the cryptocurrency space. My value as an advisor was to share that network at any time. It really wasn't used. For example, I was totally willing to help vet and hire candidates. This was never asked. I was totally willing to help get security auditing setup or assist in planning out a whitepaper. Again never asked.

Hence, I- like many in the Lisk community- was left on the outside looking on in hoping for progress. In the meantime, some in the Ethereum community blamed me for the failures of Lisk. I recall one post on reddit entitled Charles Hoskinson's CV and then posting a price chart of Lisk. It was hurtful, unfair and exactly what one expects from the cruel internet.

If there was a point to taking the criticism, I'd be willing to brush it off. But not being utilized, I can't honestly understand why it's necessary or fair. I've always wanted to see young entrepreneurs in this space succeed and I have spent hundreds of uncompensated hours answering emails and skype calls from dozens of projects providing advice. In fact, my entry point in the cryptocurrency space was through a free MooC Brian Goss and I created on Bitcoin.

While I really want to see Max and Oliver succeed and for Lisk to become a prominent project with real utility and good technology, I'm not sure I'm the best fit to advise them on how to get there for whatever reasons. Therefore, I'm officially resigning as an advisor.

This doesn't mean that I think Max and Oliver are bad people or that Lisk will fail. It just means that my role wasn't being utilized and thus I'd like to move on to not waste anyone's time or resources.

As a final point, I honestly do hope that the Lisk Foundation funds an independent team to develop a parallel client. I think competition would do the project a lot of good. I also hope they draft a whitepaper clearly outlining the goals and value proposition of Lisk.

If there is any technology in IOHK's portfolio that's useful to Lisk, they are of course welcome to use it (everything we have is open source). I'm also always willing to answer an email if it should come across my inbox.

Thanks for reading,

Saturday, February 25, 2017

Some Thoughts on ETC

As the past few weeks in ETC land have been filled with a bit of drama and uncertainty that is bubbling into the public domain, I've decided to collect my thoughts into a single document. First, it's always a rude awakening being reminded how much FUD, trolling and in some cases genuine hate the internet brings out in people. I suppose it's a toxic blend of anonymity and lack of social pressure to behave like reasonable human beings.

This said, I've seen a lot of good people step up over the last few days in particular with good arguments, support or at least constructive criticism. Such things give me hope. And I continue to hope that we can be civil as a community despite the idiocy of a few bad actors.

Now on to my points. There are three that I'd like to discuss. First, the ECIP 1017 monetary policy proposal. Second, IOHK's treasury proposal and future roadmaps. Third, a broader point on community management and governance.

With respect to ECIP 1017, I think Snaproll has done a great job producing something fair and timely for our community. I'm in full support of it and I'd like to see it approved and implemented. My reservations actually don't come from a desire to install a hook for a treasury, but this of course would be nice, but rather a lack of process for communicating with all the major stakeholders.

ETC isn't just Slack or Reddit. There are other communities that are directly responsible for the success of the project that either cannot or will not use our standard communication mediums. Second, they, in some cases, do not speak English. My primary reservation is that we cannot change the social contract of ETC without their consent or we have every right to expect a surprise fork just like the EF endured.

IOHK has been proactively trying to broadcast the need for a MP discussion in places like China and we've even sent Carlo there in person. I'd love to see both Snaproll and Elaine enter this market as well for several face to face meetings. Yes this process takes time, but it can and should be expedited.

In reality, if conversations began now, then unless there is strong opposition to ECIP 1017, I think we can get final approval in mid-March and then it's a settled matter. Things could go wrong, but as with Die Hard, I've been amazed at our ability to pull together when absolutely necessary.

Second, IOHK has recently released a treasury proposal. I would like to apologize for it's poor and confusing release to the general public. We intended on a soft discussion that would gradually solidify over time. It was not meant to be a papal bull encased in immutable canon law once given.

I want the community to understand a few points. First, we are all paying an inflation tax at the moment to miners. This tax is in the form of coinbase awards and it's a standard notion as we consider it for a common good. It's clear to those in the game theory business and those who understand that mining alone isn't sufficient to maintain a healthy network that we need to have a serious discussion about other incentivized behaviors.

People need to store the blockchain for the system to work. People need to relay data upon request. There needs to be bootstrap nodes. There needs to be developers maintaining the protocol. There is community management and marketing. There are DApp developers who need capital to deploy contracts on our network.

If the protocol cannot make financial accommodations for these actors, then we face either the unpredictability of volunteerism, which has never historically scaled (Here's a great article providing an elucidating example) or we endure the soft federation of patrons buying influence through subsidies. The latter is more likely and inevitable.

My purpose in bringing up the treasury discussion is to make sure we in the future social contract of ETC understand the need to diversify incentives beyond mining. A treasury gives the stakeholders of the system a much larger role and provides the competitive advantage of guaranteed capital for long term projects. More abstractly, let's try to cut the inflation pie into more than a single piece for a single group.

My second point is that I do not believe that it is wise or sane to implement a treasury system with a smart contract. It will take likely 6-12 months of research and development to build a proper peer reviewed and tested treasury system (something the DAO never did) and we will likely have to introduce new cryptographic primitives, data structures and other pieces of complexity to implement this system. The earliest it can be safely done would be Q1 of 2018.

Utilizing a smart contract for a global system would make it bloated, force development in a sub-optimal language solidity and greatly restrict our flexibility. It makes no more sense to me to embed a treasury's mechanics into a smart contract than to embed our consensus algorithm into one.

Third, I would like to remind everyone that one of the reasons the hard fork occurred is that the core entity pushing it has absolutely no accountability to the stakeholders of Ethereum. The EF cannot be defunded or compelled to behave in a certain way from the holders of Ether. It's effectively like a supreme court justice in power for life without fear or recourse for actions beyond brand damage.

Decentralizing the capital available to the ecosystem and making it flow in stages with contingencies and revokeability would completely change the social dynamic. An entity like the EF would be forced to ask have they really achieved proper consent from the community for an action. Lack of consent wouldn't breed anger, it would remove capital.

This mechanism is an extremely powerful governance tool and ought to be explored. ETC was founded with the goal of minimizing centralization and strongmen pushing us into bad directions.

My last point, with respect to the treasury, is that we should dream big with ETC. The reality is that smart contract competition is going to get extremely tough in 2017. Tezos is launching with smart contracts. Rootstock will be a player in the second half of this year. Ethereum continues to evolve rapidly. There will also be many more.

If ETC wants to stay relevant and survive, then we cannot be the litecoin of smart contracts. We need to seriously differentiate ourselves from Ethereum and the rest in class. This means we need to get used to discussions about new consensus algorithms, better and more secure smart contracts, decentralized funding and other topics. The advantage is that we have the total freedom to pursue any path, but we need to pick one.

To me, the worst thing we could do is be overly conservative. I cannot understand how just being Ethereum that stuck to mining will make us competitive at all. Rootstock will have far more hash power, the stability of the Bitcoin network and one of the top InfoSec minds in the world behind their client (which is also five times faster than the original EthereumJ client they forked and modified).

I've had a chance to read so many great papers that provide a lot of cool insight into how we can do something special. For example, here's one on adding concurrency to smart contracts jointly published out of Yale and Brown. Loi lou and his co-authors published a wonderful set of recommendations for smarter smart contracts here. There are dozens more.

IOHK has two research centers and soon more. We have some of the best cryptographers and PLT folks in the world working with us on a daily basis. We are willing to put in the legwork to build out an extremely competitive roadmap for ETC to be a best in class protocol, but we can't and won't invest the time and effort for this work if the community simply wants to litecoin.

In any event, we'll continue developing and release the Grothendieck client without any divergent code from the Geth and Parity clients maintained for ETC. Whether we continue supporting this client through 2018 and beyond will be totally dependent on the roadmap ETC settles on.

Now on to my final topic, community management and governance. When ETC first began, I quickly hired two people. Christian Seberino and Carlo Vicari. They serve totally different, yet complimentary roles. Christian is subsidized to write at least one article a week on a blockchain topic related to ETC. We have no editorial control over his work nor have ever asked him to support a particular idea.

I realized that as our roadmap evolves, it's going to be important to have several people in an objective explainer role similar to Andreas for Bitcoin. Our relationship with Christian is to bootstrap the development of these characteristics in the community.

Carlo is a traditional community manager. He's responsible for accurately broadcasting news and events, creating more positive interactions between community members and also dealing with crisis control when bad events happen like unexpected bugs, security flaws or hacks. We have limited oversight over Carlo and he mostly operates autonomously. The exception is usually when I ask him to travel to places like England, Japan or China to talk to a particular group like the London MP event for example.

It's important to understand that while I pay Christian and Carlo, they ultimately work for you. They are resources for the community and exactly the type of roles that a treasury could eventually cover.

The last thing I'll mention is the core/reference client issue I've had with the Geth team. It's extremely distasteful to me that some members of this community have decided to view the formalization of this team to mean the IOHK is somehow on the peripheral of core development or is less important to the community than Splix or Elaine.

Let me be blunt. Taking someone else's code, making some modifications does not make you a core developer of a project. No one has nor should have a mandate to be in charge of the reference client for ETC. As the weekly Grothendieck stand-ups should make very clear to the general public, Ethereum is an extremely complex protocol.

While I have tremendous respect for the work the ETC devs have been able to accomplish, it's necessary to point out that it took Jeff, Vitalik and Gavin nearly two years to launch the Frontier client with the aid of dozens of contributors and much security auditing. Even still, they got a lot wrong that had to be fixed over another year.

No one in our community has publicly demonstrated an equal level of competency as the EF's core developers. This observation is not an insult or an attack on intelligence. It's a merit based fact.

In my view, the only way to demonstrate competency is to build a client from scratch or spend many months of heavy refactoring of the original source base. Perhaps this view is misguided, but it's the one we adopted at IOHK. We could have hired Go or Rust developers and contributed to the currently used clients, but I felt it would eventually lead to a disaster where a lack of experience led to a bad update.

This view means that Grothendieck has not been able to participate in the recent two hard forks or contribute code yet to the clients currently in use. Some have inferred from this lack of contribution that we are thus worthless to the effort or do not deserve to be considered core developers. It's hurtful and counterproductive to the community.

Seven full time Scala developers each with a decade or more of development experience is not a cheap proposition. IOHK made this commitment and will see it through. I personally spent many hours- usually late at night- reviewing resumes of candidates for the Grothendieck team. I didn't have the time for it, but I found it because I really do care about this project.

My point here is that there is no core client or core developers. Anyone who claims this mandate or infers or implies it is trying to centralize the project. I am directly asking the geth team to stop using core or reference when discussing their efforts. I am also directly asking the community to reject any attempt to establish a reference client.

There is a formal specification for Ethereum. It's Gavin's yellow paper. We will work to improve it and also add more detail and content. But to assert there is a reference client, in my view will lead to a small group of people having near totally control over the roadmap and direction of the project.

Thanks for reading,



Monday, June 20, 2016

Some History, Some Musings and My Take on the DAO

I recall the mid-summer Virginia afternoon back in 2013 being filled with copious conversations ranging from how to achieve value stability for a cryptocurrency to this strange idea Stan Larimer had called a DAC - a decentralized autonomous company. His drafts contained terms like Steely Eyed Geeks and a nice list of rules definitely inspired by Arthur C Clarke and Isaac Asimov, but with the boyish enthusiasm only Stan could muster. The article (Bitcoin and the Three Laws of Robotics) eventually found its way to Bitcoin Magazine and the Let's Talk Bitcoin's blog as well as Vitalik's September series (1).

I'd like to believe that we were all after the same goal in those more innocent and lower stakes days. All cryptocurrencies, and protocols for that matter, suffer from a fundamental meta problem of governance. Eventually changes will need to be made to accommodate some unforeseen complication, the burning march of ever changing technology and social pressures, or even a black swan event. Furthermore, how do you pay the selfless (sometimes not so much) people who are maintaining the protocol? How do you balance the different interests of various stakeholders from regulators to service providers such as exchanges and miners.

The foundational premise of Bitcoin can be encapsulated succinctly as people suck so just trust a protocol. This line of thought has lead to numerous problems from a lack of recourse for theft (see MtGox and the dozen other exchanges) to dark market operators such as silk road using Bitcoin as their payment network. Furthermore, the rewards to miners are not connected to any external reality- just hard locked and unresponsive to the needs of the network. The protocol marches on like a silent, yet diligent sentinel uncaring in judgement, but utterly fair.

We were interested in DACs because the sentinel needs some method of getting an update and if one appointed a centralized body or even a federated one, then one has completely defeated the ultimate purpose of these systems. With more time given for clarity, when one abstracts the idea, one can notice that most businesses are a collection of systems that decompose into protocols. Thus, it stands to reason they too can be transformed into sentinels and if only we had a DAC, then they too could be fair, yet dynamic. Hence, DAOs were born.

Back in 2013, we didn't have Ethereum. Sergio Lerner had created a wonderful turing complete system intended for gaming called Qixcoin, but it wasn't well known or funded. Thus, DAOs didn't have the requisite technology nor a clear commercial path forward. Yet with the dawn of the crowdsale and Ethereum as a platform, this reality has changed.

Now up to this point, it is reasonable to assess what progress has been made. The existence of the crowdsale our space has been using for the last few years has created a funding mechanism for all kinds of interesting projects ranging from Maidsafe to Swarm. Whether these produce utility or are attractive places to store value is yet mostly unproven; however, it's truly amazing to see the amount of passion and enthusiasm. Of course, never forget that people suck so yes a lot of fraud seems to be seeping in (See Hoskinson Doctrine).

Ethereum has created a way of deploying distributed protocols with a host network that has known and probably strong security guarantees about the execution of the code. Whether this system can be made secure under some reasonable formal model and associated proofs and also made efficient is another story. Yet we should at least concede that it's a pretty fun sandbox to run experiments.

The DAO is one such experiment, which brings us to the ultimate point of this article. and their affiliates apparently wanted to create a large pool of capital that could be used to fund interesting projects (sound like any type of structure you could think of?), but make the pool a sentinel without a master. Just some helpful curators and the Ethereum network's guarantees behind it.

Ideally, a Surowiecki utopian wisdom would envelope the DAO making it the smartest way to allocate capital or something along those lines. To be honest, I mostly ignored the original proposal thinking that people wouldn't invest much time or money into it.

Common sense seems to yield a litany of concerns from the fidelity of the code controlling this concept to the creator's utter unwillingness to stand behind the DAO from a legal sense. If something goes wrong, then no one is responsible? Do we have sufficient faith in our ability to do things perfectly right the first time that we are willing to invest in a blameless system? Imagine if planes worked this way. Would you fly?

Furthermore, there was a reckless desire to maximize the size of the fundraiser without any concern to factors everyone should be wary of in some capacity. Why wasn't the DAO milestoned with the majority of the funds stored in a large multi-signature feeder contract that gradually released money into the main fund given progress and investment success? Who was responsible for maintaining, upgrading and auditing the code long term? What metrics should the DAO be held accountable for over the long term? Apparently, having a dream team means that we should abandon basic due diligence and the ability to imagine bad events happening. Does anyone recall a certain other company called Theranos?  

So now we are faced with the predictable nightmare scenario only yielded from grand hubristic endeavors such as the unsinkable titanic. The DAO has been looted by a hacker who potentially has enough pithy gall to claim that the theft actually conforms to the DAO's terms and conditions. Lawyers, please bookmark everything you find on Tual and his friends. This class action lawsuit is writing itself.

So why should Ethereum care? The point of the system is to be a sandbox for ideas to succeed or fail. It's a lab for experiments. That's why Ethereum is worth so much money as a system. Following this line of thought, Ethereum SHOULDN'T CARE.

You don't change the lab when someone performs a poorly formed experiment. You blame the chemist and move on. We can make a fair argument for better safety equipment (which has already been proposed), but you don't change the nature of a facility to accommodate someone who screwed up.    

Yet Vitalik and others close to the Ethereum Foundation are advocating to do just that. They want to fork the protocol in order to prevent the theft. Bruce Fenton and others have already done a good job explaining why this proposal is an extremely bad idea. It's pointless to add another argument to the pile. Rather I'd like to take this opportunity to explain what has really failed in the Ethereum ecosystem. It has a governance problem.

Several of the Founders have scattered across the seven seas and created new commercial ventures ranging from Consensys to Ethcore. Each has its own blend of fiduciary obligations depending upon their investors and stakeholders, yet these are not directly aligned to the needs of the Ethereum ecosystem. The closest thing Ethereum should have to a neutral body ought to be the Foundation.

You know those bodies that don't pick winners and losers and try to just protect the protocol itself? Except for the time when its leaders join multiple ventures, plaster their name everywhere and seem to have a very comfortable relationship with companies like Deloitte and Microsoft for "Projects".

Yes helping the DAO investors get their money back is a noble knee jerk reaction. But what about Gatecoin and the theft that occurred there? What about the ether purchasers who experienced an event that prevented them from redeeming their ether they fairly purchased? What about all the ether lost to defective smart contracts? DAO gets precedence, yet the others don't? Is this because its failure would invite regulatory scrutiny to the Foundation members as they have too close a relationship to it?

Returning to the core thesis of bitcoin and its children - people suck; trust the protocol - applied to the bailout of the DAO, we have people who are trusted to be neutral who cannot be due to whatever obligations that have encumbered upon themselves. As we should expect given human nature. They now want to change the protocol to prevent in part personal harm to themselves given the damage the DAO has done.

The argument of wanting to help cannot be sensibly made given their lack of interest in the other thefts and bad events in the system. I honestly can't fault them for this behavior, but I have to point out how dangerous this act is for sentinel that is the Ethereum protocol.

Stan Larimer had the foresight to imagine events like this occurring, which is why he wrote his article. The ethereum community needs to embrace this tragedy and accept it as a failure we can learn from. We need a DAO, but not one to store money to make some investors rich. We need one to help us make these kinds of hard decisions in a responsible way.

Ethereum is the first platform in human history that can transcend this predictable cycle of betrayal of integrity for person preservation and emerge into something far better. It won't be nice. It won't be kind. But It will be fair. That ultimately is why I signed up for this wild space. To build something beyond our nature, yet always accepting- sometimes painfully so- it won't always work out for me.



Friday, January 15, 2016

Goodbye Mike and Some Thoughts About Bitcoin

On Mike

After reading Mike Hearn's farewell letter to the community, I've decided to finally draft my thoughts on the blocksize debate, but first a few things about Mike. Hearn, joined the Bitcoin community back in May of 2009 and has been an active contributor for as long as I can remember in some capacity or another. He's also an incredibly bright and creative person who brought a lot to this ecosystem in its earliest days.

The point of decentralized systems is never to reach ubiquitous consensus about truth. Settling upon a final truth is pyrrhic at best and almost certainly a sisyphean endeavor. The goal is to facilitate the free flow of ideas and provide an effective framework to actually test them with something at stake.

Mike was a voice for a certain philosophy and regardless of whether you feel that philosophy is correct, it is a terrible tragedy that our community descended into the murky swamps of censorship and personal attacks. I will miss Mike and want to extend a profound thank you for all he has done and good luck on future projects.

All this said about Mike's contributions and positive influence on the space, I would be remiss if I didn't comment on his core argument that the Bitcoin project has failed. It's not only wrong, but utterly offensive to the thousands who have contributed weekends, painful explanations about the nature of money to their friends at bars and the repeated scorn of having to endure the scams, exchange failures and regulatory misunderstandings.

Burt Wagner was arrested for legally selling bitcoin and had to spend his life savings to have the State of Colorado accept its own laws. He's still in the Bitcoin space. Many of the thousands affected by the collapse in MtGOX are still in the space. There are hundreds of meetup groups actively evangelizing, onboarding their local communities and coming up with creative solutions to various problems. A colleague of mine even paid for a recent meal at the Shard with Bitcoin thanks to the magic of Xapo (American beef is still better :) ):

Mike thinks we don't matter :(
In Pounds; Paid in Bitcoin 
 Furthermore, the state of Bitcoin technology has never been better. One has to look no further than the Princeton bitcoin paper to see the amazing diversity of interesting problems being examined in academia and industry. A recent redditor posted a database of over 600 papers on Bitcoin or related to cryptocurrency technology. IC3 is a joint research group of two major US universities lead by some of the top cryptographers in the world and they have received a 3 million dollar NSF grant to study cryptocurrency technology. And yes those scaling bitcoin conferences were very productive and included a lot of wonderful industry support:

Mike thinks we don't matter :(

Bitcoin has hundreds of thousands of passionate people, over a billion dollars in VC money and the support of ideas from over a thousand altcoins running experiments including Bitshares and Ethereum. The fact that we are having a transaction crisis is a symptom of success not coming doom!

 So Mike I'm terribly sorry that you lost the XT fight and it's definitely true that it wasn't a fair fight, but don't take your anger out on Bitcoin the experiment nor the Bitcoin community:

Darth Vader on Mike Hearn

Some Basics About Blocksize

Now on to blocksize, there is already a great deal of detailed content floating around the interwebs on the various issues thus I will quickly summarize the crux of the matter. Bitcoin blocks have an arbitrary size cap of X MBs and each transaction takes on average Y bytes. As the network grows, we will (and have) hit this cap and the result will be an overall reduction of performance, reliability and robustness of the Bitcoin network.

So how does one resolve this seemingly intractable problem? The naive and kicking the can down the road solution is simply to increase the blocksize from X to a new arbitrary amount- say X(1). If Bitcoin continues to grow, then we'd have the same debate all over again in a few months or perhaps years (see US Debt Ceiling Debates). This said, one could develop either an algorithm to scale blocksize via some set of network parameters or increase it at regular intervals similar to how coinbase awards are cut in half every four years.

One could also increase the rate of block production (referred to as the block interval). There have been several proposals to do this in a way that wouldn't increase the amount of stale blocks and Ethereum even implemented one called GHOST developed by Zohar and Sompolinsky. The basic concept is turn Bitcoin's blockchain into a directed acyclic graph from an append only linked list. This path is reasonable, but doesn't resolve the issue of data bloat (more on this later).

We could approach the problem from the other side by examining transactions. Again the most naive approach is to reduce the size of transactions from Y to something smaller say Y(1). Again this approach doesn't solve the fundamental problem that future growth will push blocks to their cap.

Along the same line of thought, one could create a mechanism to gradually retire transactions (called pruning) or reduce the amount stored on chain. There have been some interesting ideas proposed like segregated witnesses and Pieter Wuille has been a great mind in considering pruning. It's a nice efficiency improvement and something that could definitely help the network, but again doesn't solve the core issue of long term growth.

Finally, one could push transactions off-chain so they don't appear in the Bitcoin network at all or eventually in a reduced form. This idea is seen in efforts like the Bitcoin Lightning Network and the Sidechains project. It's the most politically friendly of all proposals as there are already many projects exploring how to facilitate the offchain infrastructure without necessarily requiring a fork of the Bitcoin protocol (or at least a dramatic hard fork). As a side note, It's probably not an accident that a large pool of the Bitcoin core developers happen to work for the company spearheading these approaches.

Blade Runner's take on Transaction Pruning and Off-Chain Solutions
Off-chain is compelling, but still has a lot of unresolved questions about trust models, security concerns, centralization issues (in certain cases) and also unpredictable privacy (for example, if transactions are moving to a new network, then the gatekeepers of that network could attach metadata to the transactions for KYC/AML and other such things). Furthermore, the practical question of why bother seems to be looming? We are going to solve the issues of Bitcoin by using federated or centralized actors?

I recall the argument to get merchants to adopt bitcoin is to use services like Bitpay, yet then we go back to the solution to asset volatility of our decentralized network is to connect all the merchants to a centralized service provider? The same applies for transaction scalability solutions for the Bitcoin network. Seek decentralization wherever possible!

What the Bitcoin movement is trying to do in a nutshell

Solutions in a Technological Context

I created this graphic on Gliffy. Gliffy is pretty Spiffy!
The diagram above presents a rough idea of what the Bitcoin blockchain actually looks like. There are two components: a block header and the block body storing the actual transactions.

All the parts are wired together with some form of crypto. The block body is connected to the header via a merkle tree data structure. The headers are wired together via hash pointers. And proof of work provides a mechanism for validating a given collection of blocks (the proposed blockchain) is the correct one via the notion of algorithmic weight (the proposed chain with the most work wins).

So we have been given a menu of options to change the core protocol to reflect the goal of more transactions. Increasing the blocksize makes the block contents heavier (larger merkle tree), but has no impact on the block header. It's an interesting question to consider the impact of larger blocks on block propagation times. I'd highly recommend this excellent paper studying propagation in general by Decker and Wattenhoffer.

Reducing the block interval will likely involve changing the structure from a single hash pointer to multiple hash pointers to different blocks, but no impact on the block contents. Inclusion of double spend transactions and longest chain selection rules are the topics of primary interest here. I'd recommend two papers to get a deeper understanding. First, Sergio Lerner's DAG-Coin proposal and then Lewenberg et all Inclusive Blockchain Protocols.

Pruning means that over time certain leaves in the merkle tree should be removed or perhaps even entire blocks replaced with different representations. It's also interesting to consider what other authenticated data structures could be put into the block headers to improve scalability or better facilitate pruning schemes without compromising trust. The Bitcoin wonderkid researcher Andrew Miller has done some foundational research with Katz and others.

And finally off-chain means that we are effectively wiring something more onto the block via the header or more likely in the block contents. The concept here is separation of concerns and layering. For example, rootstock is discussing how to do smart contracts via a sidechain of bitcoin. This area reduces the need for whole sets of transactions by simply having them done outside of the main Bitcoin blockchain in different domain. It also modularizes the set of things a client has to download.  

The Hidden Demons Behind the Debate 

The original design of Bitcoin was to have a completely decentralized network of equal actors with no barrier to entry for participation. Mining was done on ordinary CPUs (in fact Satoshi mined more than a million bitcoins using CPUs). Maintaining a full node wasn't a serious commitment. It was less taxing than running bittorrent with a few HD movies.

The separation of block headers from the block contents does suggest a path to heterogeneity via light nodes holding only the header collection; however, again this action isn't forced upon anyone. 

Now enter 2016, Bitcoin is a very different animal. The Bitcoin blockchain has grown considerably. Mining is heavily centralized:

These Guys Own More than 51 Percent of the Mining Power
There are millions of dollars of value floating around every block. There are numerous, well-funded business interests and even a cabal of powerful bankers scheming in a sufficiently NWOish named group called R3CEV:

Totally not trying to co-opt the ecosystem!

Thus things have really changed over the past seven years beyond the humble beginnings of Hal and Satoshi trying to get the wallet to work in order to send a single transaction (It was block 170 BTW- a whole 10 bitcoins!). 

I feel that this debate has exposed more than certain people's inability to work productively with each other or the need for a new set of reddit moderators. It has exposed that Bitcoin is basically at a philosophical impasse. There really isn't a clear direction for the Bitcoin ecosystem to take. Is it supposed to be the ultimate payment system with a super cool deflationary digital gold coin backing it? Is it a settlement layer for many systems to eventually clear upon? Is it the arbiter of digital truth providing a cryptographic beacon, notary services and a logical clock? Is it a system for decentralized governance?

Fair arguments can be made for any of these directions and there is a legion of good tech to sneak into the protocol to make Bitcoin better suited for these tasks. In general, Bitcoin could basically be the entire financial stack:

Bitcoin could be the whole stack
We simply cannot productively move forward until the meta-question of what does bitcoin want to be when it grows up is answered. There is no measuring stick to say ok this is good enough. For example, 3 transactions per second is absolutely fine if our goal is settlement of large contracts between multibillion dollar actors, but it's terrible if we are trying to replace VISA. 

Should Bitcoin be blind and deaf to other systems and cryptocurrency or does it need to talk to them on a regular basis? Are we going to tokenize all assets like gold and USDs and trade them in a decentralized network? Or are we going to trade them on exchanges and move them between exchanges using some connection to the Bitcoin blockchain? If there is a dispute, then is arbitration connected to the data held on a blockchain? 

Each of these questions and the hundreds more have a dramatic impact on what needs to go into a transaction, how of many per second we need to include in the Bitcoin blockchain and also the intended set of users. Let's be intellectually honest, have we answered them? Where do you even go to start that process? Who gets to decide? 

In effect, we don't have a blocksize crisis, we have a governance and philosophy crisis. And the pain will continue until this crisis has been resolved either out of some cabal gaining control of the network or by a new mechanism to decide things in a decentralized manner (See DAOs). 

My Proposal to Solve the Debate

Since everyone has a proposal, I might as well throw my hat into the ring. First, we need to solve the immediate crisis at hand. Let's take Kryder's Law of storage growth and combine it with Nielsen's law of bandwidth to produce a reasonable rate of block growth in regular intervals. The basic idea is that blocks will grow at a rate that scales with local storage and the rate of bandwidth increases of internet connections.

Second, adopt the plan devised at the scaling bitcoin conference. It's reasonable and doesn't require dramatic action. Segregated witnesses in particular are a very solid concept. Furthermore, scaling bitcoin should really be a bi-annual event moving forward- get people talking to each other on a regular basis. 

Both of these actions will take the pain off of the network and give us some breathing room. We have to then move on to phase II, which is investing in some foundational technology to radically improve the entire network. 

  • Sidechains is a fundamentally sound and reasonable idea. It's a conversation about getting blockchains to talk to each other and move value without needing special actors. The project is also incredibly well funded and backed by some of the best people in the space. Sprinkle some soft fork on that shit. In the absence of soft forking, BTC-Relay is pretty cool.  
  • Reducing the block interval is a really good idea. Ethereum's implementation of GHOST serves as a great example of a path to do this and the researchers behind DAGs are solid people. Faster settlement with the same level of security as the slower interval is frankly good for us all.
  • Change Bitcoin's consensus algorithm from proof of work to something else. Mining centralization is a problem. The original idea was that the network was to be secured by many different people not a small cabal of anonymous mining corporations floating around Asia. Furthermore, we have a lot of cool things that can be done with different consensus algorithms like voting and allowing for many assets to exist concurrently on the Bitcoin network in a scalable and mobile friendly way. 
  • Invest in Blockchain sharding. There is an interesting project by Professor Shirer that has some legs. The point here is that Bitcoin's data model is 1 byte requires N bytes of total storage with N being the set of full nodes. It's terribly wasteful. Increase the dataset from D to D(1) via erasure codes and then chop up the blockchain into reasonable sets of shards. We could have a many petabyte blockchain that is in 50 MB pieces. Changes to Bitcoin's consensus algorithm and fundamental data structures could dramatically help here.      
  • Develop more productive federation technology for service providers in the Bitcoin space to interact with the Bitcoin blockchain. The reality is that we'll still have a lot of services off-chain entirely for privacy, cost or performance reasons, but we shouldn't have to completely trust the people running those networks. Ideas like Pavel Kravchenko's Infraproject and Blockstream's Liquid are movements in the right direction as are concepts like proof of solvency. 
  • Create a mechanism to incentivize data relay on the Bitcoin network. As the network scales, there will be enormous amounts of data floating around and it needs to be economically optimized or else you'll have centralized hubs acting as relays to millions of dependent nodes. Eric Lombrozo has been a great voice of reason in this respect. 

The final phase is to make Bitcoin a self-funding evolutionary system. There needs to be a DAO that integrates into the core protocol that provides a framework to discuss and implement BIPs as well as cover their associated costs of implementation. 

Until the development of Bitcoin is free from outside corporate influences, it can't be discussed in an objective and fact based way, and the stakeholders of the system are able to decide instead of a cabal of well capitalized actors, we aren't going to gain the resilience of the crowd. 

This phase is probably an innovation of the size and scale of Bitcoin itself and thus is unlikely to materialize immediately, but organically over a collection of hundreds of experiments. And like Bitcoin, it would fundamentally change the very nature of organizations, their mandate and the flow of funding. 

Thanks for Reading!


Wednesday, December 30, 2015

How to Save (Or Destroy) the Bitcoin Foundation

I've been thinking about the Bitcoin Foundation over the last few months. After I left as the first chairman of the education committee back in late 2013, I dismissed the Foundation as a mostly inept attempt by some business interests in the community to gain an edge over their competitors.

The actions of Peter Vessenes and Mark Karpeles alongside the board's indifference to the Foundation's membership as well as the mainstream Bitcoin community made it seem likely that the Foundation would simply go bankrupt and collapse under its own weight like a great battleship built for a war that would never happen and then left to rust in neglect (see I can be poetic too). Sure enough, they are functionally bankrupt having burnt through about 7 million dollars worth of Bitcoin (they even spent a million dollars on that spiffy Amsterdam conference!).

So why the sudden interest after my self-imposed exile? After traveling extensively throughout the world, I've notice that there is still an impression internationally that the Foundation is relevant and in some way represents Bitcoin- especially among the international press. It's not accurate and probably similar in spirit to the headlines stating Bitcoin's CEO has been arrested.

We also have a larger, but somewhat related problem that the blocksize debate has made blatantly clear- governance. It seems nearly impossible to get the community to agree on anything outside of trying to increase adoption and the underlying value of the bitcoin token.

Hence, I think we have an opportunity to solve two problems at once. The Foundation can be productively reborn preventing another media boondoggle and at the same time we have an excellent opportunity to explore new types of governance, algorithmic regulation and social consensus.

So assuming it's somehow a good idea to rebuild the Foundation (I fully agree that there are solid arguments to simply let it burn), let's explore what it would take to do so. As a side-note, I would be equally happy with seeing the Foundation shutdown if it didn't harm the Bitcoin brand and community.

First, the Foundation has lost any form of legitimacy. It's broke because prior leaders looted it. It's undemocratic by forcing out elected board members and replacing them with appointed ones. It's utterly unable to listen to outside opinions and conduct basic affairs such as managing board meetings, elections or produce a viable road-map.

Thus these issues need to be corrected before any future progress can be made. So let's start with an independent audit of the Foundation's books, relationships and accomplishments. Hire an auditor paid from an outside pool of capital (hell I'll throw some money into that fund) and give him a mandate to do the following:

  1. Build a timeline of all major events since the Foundations inception
  2. Provide detailed financial records on the Foundation's expenses and income
  3. Annotate all business relationships the Foundation has had since its inception and their association (if any) to current and past board members and executive directors 
  4. Provide an HR database of all personnel that the foundation has retained and their compensation. Also build a social graph showing the relationship between the Foundation employees and the board members past and present including if they worked for or with the board members in previous or current ventures
  5. List the major efforts the Foundation has embarked upon and rate their success based upon the Auditor's best judgement and whatever objective metrics can be established
  6. Give each executive director- past and present- an opportunity to write an explanation for the findings of the auditor.
Once drafted, then release the report to the general public- unless criminal conduct is discovered, then first release the evidence to the relevant agencies and let them choose when to release it.

Here's what an audit accomplishes:

  1. It divorces the Foundation from its past by bringing everything out into the light and exposing any corruption from past or present leadership. If anyone is responsible for criminal acts, then they will be exposed and I'd hope prosecuted      
  2. It acts as a basis for the Foundation to re-engage the Bitcoin community. The Foundation can say ok this is what we did wrong so tell us how we can be better in the future? 
  3. Those who are asking for the Foundation to be shutdown can now have a fair debate. The audit will provide an independent assessment of where the Foundation has been and what it has accomplished given its resources
At the end of this process, my hope would be for the Foundation to work with the Bitcoin community towards either shutting itself down or some form of reconstruction. The point is that its now done with reason, evidence and consensus instead of a shouting match. In my experience, people get angry when they feel like they've been deceived or aren't being heard. There is a very strong perception in the Bitcoin community that the Foundation has been historically dishonest and deaf. An audit strikes at the heart of the anger.

Second, let's say the Foundation somehow survives an audit and the community -or a wealthy patron(s)- seeks to continue the Foundation's existence, then the next step is to solidify the organization behind a new mission and values. This action is a wonderful opportunity to work with several ventures such as Colony and Boardroom focusing on DAOs and other algorithmically enforced structures of governance.  

But it's natural to ask to what end? I don't think Charles Hoskinson should decide that. More to the point, no one person should. Instead let's make proposals and draft a candidate constitution. Then have the Bitcoin community vote on proposals. In my view, the core value proposition for continuing the Foundation is to experiment with technology that allows for decentralized governance. If the Foundation should continue under an unelected or pseudo-elected board, then just shut it down. We created Bitcoin to get away from these things.

This process could be amazingly beneficial. It- like Bitcoin was and still is-  serves as an experiment driven by a well intended community instead of the mandate of an overlord seeking power or control (also drop Satoshi from the board, it's insulting). We would also gain tangible data on how to discuss controversial ideas within a productive framework with the aim of eventually reaching a community consensus (can you think of any debate Bitcoiners are having right now?). Finally, the community can also explore how to regulate a custodial entity using cryptography instead of trusted founders (wow, think of all those smart contracts and prove of solvency proposals that people have been preaching about- someone call Peter Todd!). 

And now comes the objection: But Charles there isn't enough money to do this stuff! And I say: Aren't Mirror, Coinprism and other Bitcoin companies incredibly well funded, and don't they need a good showcase for their tech? Wouldn't the good press and community goodwill serve as excellent advertisement for their platforms? 

Money is never the issue. It's vision and the ability to forge partnerships around it. If the current board can't accomplish this task, then fire them or shut the whole thing down. I'm extremely tired of hearing that we can't accomplish something. The entire point of Bitcoin has been doing the stuff that people have been saying we can't do on a consistent basis. 

The argument above showcases my primary issue with the Foundation. It just doesn't lead. It lacks any notion of a vision or a purpose. Let's not blame them for it. Let's just install one that benefits the entire community. 

Third, let's discuss management and global representation. Traveling around the world, I've had the privilege to meet some exceptional people from Switzerland to Japan. I'm headed to Argentina next month and will have a chance to spend some time with one of the most passionate Bitcoin communities that you can find. It utterly disturbing to see the passive level of commitment that the current (and former) members of the Foundation's leadership have outside of Bruce and a few others.  

There are legions of Bitcoiners who would work with the Foundation full or part time with both enthusiasm and zeal if only given a chance. If the Foundation is going to continue existing, then it should reach out to the existing Bitcoin communities. More specifically, the Bitcoin meetup groups. They are run by passionate volunteers who love this space, the technology and its rich philosophical roots. 

The Bitcoin meetup groups are also largely responsible for Bitcoin's growth from a novel technology to a global movement. I'd love to see the Foundation serve as a hub connecting them together and recruiting from within their ranks on a global basis. When people are given a great vision and a purpose, they aren't motivated by money to do work. The open source movement has proven this truth time and again. 

Alright, so in conclusion, audit the Foundation, turn over any evidence of criminal conduct to the relevant authorities, draft a constitution via community participation, govern using tech from well funded Bitcoin startups, and link all the Bitcoin meetup groups together to act as the execution engine, talent farm and source of great ideas (See Social Physics).

It's really not that hard to accomplish something great. It just takes vision, persistence, honesty and leadership. If the Foundation has it, then it should survive. If it doesn't, then don't worry it will eventually collapse.  


Friday, May 29, 2015

Thoughts on Ross

From time to time, I enjoy investing an afternoon considering politics and the state of affairs here in the United States. Our country is the first hyperpower forcing all other nations to consider us in whatever policy happens to be the day's grock. This reality is divorced from ethical or moral metrics and the war on drugs is no different.

For whatever reason (religious, practical, dystopian, etc), policymakers in the United States have continuously decided to label a behavior or substance as dangerous to the social fabric™ of our society. Prohibition is the standard example and its spectacular failure is somehow forgotten. We saw and acknowledge the rise of the modern mafia. We saw the decentralized nature of resistance through bootleggers (some say one who's kid become president) and the FBI form to stop the bootleggers empowering J. Edgar Hoover to terrorize two generations of Americans via illegal spying and blackmail (including Martin Luther King). Yet why have no lessons been learned?

The war of drugs is a leviathan that has imprisoned millions of Americans (vastly disportionate for minorities), formed massive bureaucracies such as the DEA and their state equivalents, and like Hoover's FBI slowly transformed society to both militarize the police and make their actions somehow ok. Where in this process have we asked what the goal exactly is? Why are we as a country destroying families, imprisoning millions and treating addicts as hardened criminals? Why have we created an industry that robs us of our constitutional rights and turns our police force into something resembling the Stasi?          

I honestly don't have a good answer. There is perhaps an historical context that could be explored and used to synthetically explain why we are somehow comfortable as a nation using a plato like ideal social fabric™ to justify incarcerating millions for non-violent crimes. Yet this leaves a putrid taste in my mouth. 

The United States drug policy is simply put immoral to the core. If drug use results in damage to one's relationships, then hold people accountable for their actions. But instead we say that Heroin somehow is more damaging than alcohol? Marijuana is a gateway to personal destruction (except for when our presidents smoke it [1][2])? I guess Colorado is doomed then :).

Now enter Ross Ulbricht the dread pirate roberts. He isn't a very nice person. No one running a drug cartel really is a nice person. But he isn't a Zetas Cartel kingpin proudly displaying the heads of his enemies. He is a programmer who saw an opportunity to use emerging technology to enrich himself without regard to the current egregious law. He believed that he could stay hidden thanks to the nature of Tor and Bitcoin. He also believed that a decentralized marketplace could reduce the violence associated with the drug trade (which is fair considering that violence comes from the prohibition not the other way around). 

And the fruits of his labors were a modest marketplace that was the safest and lowest violence drug exchange in the world. It also allowed suppliers to directly sell to consumers cutting out the middleman who usually end up being pretty evil. Compared to the Golden Triangle, a relatively small amount of funds changed hands and consumers got their substances. The vast majority didn't go crazy and grab chainsaws for some Tony Montana action. The vast majority didn't destroy their families and social networks. The vast majority are still living their lives amongst us going to work, church or vacations. Somehow the social fabric™ the government must protect hasn't been torn.

Yet Ross now gets to spend the rest of his life in prison as a living symbol of the war on drugs. He has effectively become its Nelson Mandela. The Silk Road won't go away. Those who are knowledgeable about cryptography and the nature of the internet will cite technology like Openbazaar and other such systems as the bittorrent moment of online drug trade. Ross's imprisonment will send no message contrary to what the prosecutor suggests, it just increases the stakes for anonymity and the amount of potential profit from the trade.

The countermeasures will inevitably be a war on cryptography (I should trademark that one) and internet anonymity. To protect the social fabric™, the United States must rob us of our privacy and autonomy. We must accept that all packets need to be inspected. Secrets are illegal. And no doubt massive government budgets must be increased. Think of your children! 

I'm really done with this madness. We supposedly have a republic and have the right to change things. At this moment, I'd like to divide the bitcoin space into two groups. Those that complain about the injustice of Ross's sentence and those that do something about it. I'm going to do something about it. My company is going to build some great tools to preserve personal privacy (that thing we have a constitutional right to) and make sure they are open source and well distributed.

I'm also going to ask everyone in this space to be in the second bucket. Do something about this injustice. Think about the software you could write. Organize meetups and spread the word. We didn't like our money or the banks so we made new money. Is in inconceivable that we can make a new society with a social fabric that's actually worth protecting?