Smart contracts are neither.” Or such is the conventional wisdom among lawyers, if not technologists. I, too, have held that view. But even if a few highly-publicized setbacks contradicted the early promise, the intuitive appeal of smart contracts persists.
Early adopters are now investing financial and intellectual capital to develop an infrastructure of software tools and legal theories to bridge the real and virtual worlds in which smart contracts must operate. There is a momentum and sense that smart contracts are poised to move to a far broader level of adoption.
I have decided to invest my own time to learn the technology behind smart contracts, and perhaps to contribute to its development in some way. I’ve called this project the Blawqchain Project. In the remainder of this post I’ll explain my motivations for this project.
Some Ancient History
I learned to code in BASIC on a DEC PDP-11. The university computer center housing that magnificent machine was like a cathedral to me — pure white light, a raised floor separating the object of attention from us mere mortals, priests and acolytes attending to the machine’s every need, a chilly air of reverence and awe of the power we aspired to harness for ourselves. My holy book was BASIC Programming by Kemeny and Kurtz, and that first summer I studied that book more intensely than anything before or since. It was the early 1970s, my first mass storage device was a stack of punch cards, and I was totally hooked.
My love of programming, as coding was then known, has educated me, entertained me, informed my career choices, and opened countless doors. Armed with my BA in Physics from a liberal arts college, I joined a new team at the nation’s leading television brand to computer model the performance of yokes, the most analog of components. I learned to code FORTRAN on an HP 1000 minicomputer, HP-BASIC on an HP 9845B workstation, and some scripting for a remote IBM 360 mainframe that we interacted with through a Teletype machine (at 110 bps).
Not convinced that programming should be my profession and lacking the formal training required for more advanced roles, I switched gears entirely and went to law school. I continued to program as a hobby, however. I had purchased an IBM personal computer soon after it was announced (among the first 10,000, according to the serial number; I wish I still had that machine!) and the accompanying Technical Reference Manual, which included the assembler code for the BIOS. So as a diversion from contracts and torts, I taught myself assembler and wrote a full-featured text editor in assembler that compiled to just 10KB of object code. I even sold a few copies via shareware.
I continued to code after law school, learning C. I wrote a program for my law firm to calculate municipal bond amortizations and served as a technical editor for a couple of C reference manuals published by the company my sister worked for. But as my growing family and law practice became more demanding, MS-DOS transitioned to Windows, and C was superseded by C++, I could no longer devote the time required to learn and practice the coding techniques required to develop useful programs for a Windows environment. While I continued to fool around with Word macros, Visual Basic, and applescript, I haven’t written a serious line of source code for over 20 years.
Fast forward to early 2016. After more than 25 years in-house at global high-tech companies, I had joined a boutique law firm. We were looking for the next area of tech to add to our practice. Ethereum was about six months old and gaining notoriety. A fellow named Vitalik was speaking at a meetup at one of the local tech incubators. I attended and came away with a few contacts. A few weeks later, we had our first blockchain client.
Blockchain is fascinating to me because it is an intriguing combination of cryptography, technology, economics, and law. I read the Bitcoin white paper half a dozen times and marvelled at its elegance. I researched the cryptographic underpinnings of Bitcoin, learning the basics of hashes, digital signatures, and Merkle trees. I followed the debates about decentralization, scaling, performance, and consensus algorithms. I devoured all I could find on the nascent field of token economics. I read dozens and dozens of white papers. I upped my game on securities law, as it was not difficult to see that regulators were not going to ignore the crypto space for long.
And of course my research led to smart contracts. In those early days, it seemed that every second article about blockchains touted the amazing, immutable, incorruptible, self-executing-and-self-enforcing, code-is-law smart contract. There was seemingly no aspect of business and finance that would not be improved or disintermediated by the blockchain and smart contracts.
But then came The DAO hack, the Ethereum do-we-or-don’t-we fork, and much soul-searching about the future of blockchain technology. To its credit, the industry quickly moved on. In the fullness of time, The DAO hack was probably the best thing that could have happened, because it injected a note of realism into the smart contract hype machine. Although token sales exploded and bitcoin, ether, and other cryptocurrencies hit stratospheric heights in early 2018 before settling back to much lower but still historically high levels, talk of smart contracts receded into the background.
Throughout that time, I was looking for ways to become more involved in blockchain technology. Smart contracts were an obvious entry point, being nominally (even if, more often than not, erroneously) associated with the legal contracts to which I have devoted most of my professional career. But writing smart contracts involves hardcore blockchain development. And I knew that, as with Windows programming much earlier in my career, I would not have the time to become a hardcore blockchain developer.
Enter the Accord Project
For all its issues and annoyances, Twitter is great way to keep up with current events in the blockchain space. In late June 2018, I saw a tweet concerning the Accord Project’s release of Cicero 0.4.5, open source technology for “smart legal contracts”. The Accord Project is developing “techno-legal standards and open-source software tools for the future of smart legal contracting.” After spending a few hours nosing around the Accord Project’s website and GitHub repositories and various other resources referenced there, I decided that their technology would be my vehicle for a deeper dive into blockchain technology and re-entry into the world of coding.
Why the @accordproject and Cicero? Cicero is designed to serve as a bridge between lawyers and coders. There’s a natural language element, a data model element, and an executable logic element. Lawyers with very little or no technical expertise can contribute to the development of a smart legal contract with the natural language element. The data model element relies on IBM’s Hyperledger Composer Modeling Language (or “Composer” as I will call it from now on) to build a model of assets, participants, and transactions for a contract. The smart legal contract can then be coded in Ergo, a domain specific language also being developed by the Accord Project. This multi-element model with increasing levels of technical sophistication seems like an ideal way to ease back into the world of coding.
The Blawqchain Project
Finally, back to the main point of this post. The Blawqchain Project is my pesonal project to learn the technology behind smart contracts, or more specifically to learn Cicero and Ergo from the Accord Project and Composer from Hyperledger. My assumption is that smart legal contracts will become mainstream, and when they do there will be a demand for lawyers who understand the technology at a deep technical level. I also assume that the Accord Project will enjoy first mover advantage in this space. But even if those assumptions are wrong, I’m looking forward to the intellectual challenge of learning those languages and the environment in which they interoperate.
If you’ve read this far, many thanks. If you’re embarking (or have already embarked) on a similar project, I would be interested to connect. You can reach me at project [at) blawqchain (dot] io.