sbt-ethereum
June 10, 2019 5:49 AM   Subscribe

Ethereum for humans - "A bit pathetically, much of what I have been doing for the past two years is working on a software project called sbt-ethereum."[1]
Technological change has, thus far, been utterly eviscerative of civil society. In theory, we should all be able to communicate and coordinate so much more easily than before, this should be a wonderful golden age for community, cooperation, and coordinated action. In practice, quite the opposite has occurred. By removing the frictions that protected various localisms, we made a world so flat and seamless that mega-institutions, the kind that like to move fast and break things and make a lot of money, could easily dominate and have done so. Our lives and hopes are attention plankton in the baleen of the whale, and even while we are drawn into the suction, we know in our plankton hearts that it is killing us. What we need now is not an ever more open, ever more endless ocean of connection, but defensible reefs upon which durable human communities can deposit themselves and give themselves form. We need to be able to create barriers, to create stakes that render our attention committed and less susceptible to footloose “engagement”, we need to design structures and rules that regulate and sustain those communities, and mechanisms to enforce them.
also btw...

Guest speaker Peter Norvig, Google's director of research, issued the class of digital natives a different challenge: "to consume technology more consciously and ethically."
"In our society today software companies, along with the consumers, have constructed an ecosystem that makes it easy to get what you want. The problem is, after spending a few hours clicking around you might end up saying, 'Oh man, why did I waste all that time?' You might realize it's not getting you any closer to what you really need — peace, love, equality, fairness, a healthy environment — and what's worse, every one of your clicks is not just wasting your own time, they're also serving as recommendations to all your peers," Norvig said.

It's up to young people, he said, to not only become the next generation of engineers and scientists, but "to make the right ethical choices, to build the system we want for our society," he said.[7]
posted by kliuless (16 comments total) 4 users marked this as a favorite
 
I can't help but feel like the concept of smart contracts and similar instruments does not, in fact, upend social hierarchies the way that their proponents believe they do, but, in fact, reinforce them. I do not believe writing or interpreting a smart contract to be any less arcane than doing the same for a legal contract written in English; if anything the opposite is true. Smart contracts can be deceptive and used for the same types of exploitative relationships as legal contracts. Therefore, I imagine they will be used by those with more resources to exploit those with less resources in precisely the same way.
posted by thegears at 7:32 AM on June 10, 2019 [29 favorites]


Wait - the director of research at Google - a tech firm whose ethical and moral lapses are legion - is lecturing us about ethics?

Go fuck yourself, Peter. The problem isn't us - it's you and your fellows who seem unable to consider the ethical angles of your work. You created this mess - it's high time you took responsibility.
posted by NoxAeternum at 7:41 AM on June 10, 2019 [14 favorites]


I do not believe writing or interpreting a smart contract to be any less arcane than doing the same for a legal contract written in English; if anything the opposite is true.

Yeah, this is the rotten core at the center of the utopian smart contract evangelists. I'm coming up on 20 years of full time work as a software developer specializing in complex back-end systems. The last time I was enticed to look at code from a smart contract as a lark, I found it absurd -- the language used is hard to deal with even for a professional, with all sorts of insane conventions and syntax.

I have zero belief that a lay person will be able to get even half as good an understanding of a smart contract than legalese, even if legalese can contain traps (i.e. phrasing that common sense would make you think means X but actually means the opposite).

The only problem smart contracts solve is a problem only had by software devs -- specifically, "there's a domain where my existing training and predilections aren't privileged above all else".
posted by tocts at 8:04 AM on June 10, 2019 [21 favorites]


> What we need now is not an ever more open, ever more endless ocean of connection, but defensible reefs upon which durable human communities can deposit themselves and give themselves form. We need to be able to create barriers, to create stakes that render our attention committed and less susceptible to footloose “engagement”, we need to design structures and rules that regulate and sustain those communities, and mechanisms to enforce them.

So the author of this piece is talking about something similar to what James Scott talks about in Seeing Like a State, wherein Scott argues that the various Enlightenment and post-Enlightenment attempts to standardize and regulate measures, languages, real estate ownership, agricultural production, etc. etc. were a tool used by centralized power to crush local power. The reasoning is that if your community uses measurements, languages, systems of propertyholding, and so forth that are inscrutable to outsiders — if the rules for how things work in your community are meaningfully different than the rules for how things work outside of your community — your community has opened up a little zone of freedom from centralized power that centralized power can only access with the permission and guidance of people inside the group. But if you're made to use standardized measures, languages, and so forth, you're subject to the scrutiny of centralized power, and thereby to domination by centralized power.

By proposing etherium contracts as a method to construct "defensible reefs," the author of this piece is proposing a transparent standardized method for generating potentially obscure nonstandardized rules. The paradox at play here is very Silicon Valley, as is the author's apparent failure to recognize that they've set up a paradox. If you're using Etherium contracts to regulate your community, you are not establishing barriers to prevent the world's various leviathans (state power, corporate power) from penetrating your community, but instead opening up a vulnerability — a dependence on a software platform that the leviathans can easily exploit.

There is no such thing as standardized difference.

Now you might at this point be thinking that even the most rigorously obscure anarchist community has to leverage broader social standards in some way — at the very least, people in your community are going to need a common language to communicate in. It's useful here to take a little detour into a discussion of language as a tool of power and resistance in order to show how this etherium scheme is more useful to power than it is to resistance.

So. Say you've got a community that you don't want the leviathans to penetrate, flatten, harvest and destroy. If you're lucky, your community will have a language that the leviathans don't know. This is a reason why power and its lapdogs demand that exactly one language be used within the state's territory; for example, when a supporter of white supremacy hears "press 1 for english 2 for spanish," they're reminded that some of the communities they'd like to oppress have a way of speaking that's obscure to them, and this makes them feel threatened.

But if your community doesn't have a language that differs from the languages understood by the leviathans, you'll find yourselves developing an argot that's inscrutable to outsiders — something like Polari or (to give an example from a less positive community) something like the oddball dialect used by channers.

Okay, let's return to Etherium. If we attempt to develop the rules and regulations for our community using Etherium, as the author of this piece suggests, we are specifically not developing a software argot for the definition and enforcement of community operations that differs from the language used by Silicon Valley power. Instead, we're taking one of Silicon Valley's off-the-shelf languages and attempting to bend it to our needs. We're not using inscrutable Polari, we're using perfectly scrutable English. We're not building a differentiated and defensible reef protected from Silicon Valley leviathans, but instead making ourselves more legible to Silicon Valley leviathans. We're swallowing a poison pill.
posted by Reclusive Novelist Thomas Pynchon at 8:13 AM on June 10, 2019 [10 favorites]


The reasoning is that if your community uses measurements, languages, systems of propertyholding, and so forth that are inscrutable to outsiders — if the rules for how things work in your community are meaningfully different than the rules for how things work outside of your community — your community has opened up a little zone of freedom from centralized power that centralized power can only access with the permission and guidance of people inside the group. But if you're made to use standardized measures, languages, and so forth, you're subject to the scrutiny of centralized power, and thereby to domination by centralized power.

Also, whether or not this is a good or bad thing to have happen is very much context dependent. For example, the federal government coming in to break up Jim Crow was very much forcing standardization by a central power, and it was something sorely needed. Local tyrannies can be just as oppressive as large scale ones, and central power can be wielded benevolently as well as maliciously.

As I've said before, the real problem was that technoutopians, being very much a monoculture made up of the privileged, discounted the role of government and governance with regards to the internet, and thus dismissed the need for online governance.
posted by NoxAeternum at 8:34 AM on June 10, 2019 [8 favorites]


Writing software is hard and proving it does what you say it does is really hard and having that software interact with the real world is incredibly hard.

It's tempting to try to, oh, eliminate escrow with smart contracts, but if you try to do that then someone will fuck up and the money will be stuck in limbo forever because someone accidentally wrote "A and B" instead of "A or B" (you may prefer "accidentally" to have quotes around it). If this happens in the real world then both sides hire a lawyer and it gets sorted out. If this happens in a smart contract world then you have bigger troubles.
posted by It's Never Lurgi at 10:01 AM on June 10, 2019 [5 favorites]


> Writing software is hard and proving it does what you say it does is really hard and having that software interact with the real world is incredibly hard.

If you're in an algorithms class or whatever, it's really hard to prove that your software does what it says it does. if you're in the real world using tools written by other people, it's in the final analysis not just really hard but actually provably impossible to prove that your software does what you say it does.
posted by Reclusive Novelist Thomas Pynchon at 10:11 AM on June 10, 2019 [3 favorites]


The problem is, after spending a few hours clicking around you might end up saying, 'Oh man, why did I waste all that time?'

Kind of like someone who makes liquor bottles, slot machines, and cigarette ad campaigns saying "Why do you people drink, gamble, and smoke so much?"
posted by RobotVoodooPower at 11:09 AM on June 10, 2019 [5 favorites]


The last time I was enticed to look at code from a smart contract as a lark, I found it absurd

The language design was what immediately told me that Etherium was strictly amateur night stuff. If you need a language for a thing, you should:

1. Avoid using something Turing-complete (i.e. a language that can write real programs instead of, say, a machine-readable description of some kind).

2. If you do need something Turing-complete, at least look into languages that are easy(er) to analyze at compile time (e.g. Haskell and friends).

3. Always use an existing language that people will already use. Its problems will be understood and there'll be an ecosystem of developers and tools available for it.

4. And if you can't do 3. because there's no language that does what you need, adapt an existing language to your needs. Turn Python into Ethereum-Python (for example) so you'll get the benefit of the millions of person-hours that have gone into Python.

What did they do? They created their own language, a mishmash of JavaScript and C++. One that has never been used to write a non-trivial program, other than the one that managed millions of dollars worth of cryptocurrency.
posted by suetanvil at 1:33 PM on June 10, 2019 [13 favorites]


Hard to overstate how difficult it is to write secure Ethereum code. Last time I tried it even the simplest equivalent of a “hello world” app, when written naively, had flaws that could allow all the money to be stolen. They’ve fixed some of this i think but a lot of it is due to the fact that their programming language is designed to be easy to learn rather than fit for purpose.

The company Digital Asset, which incidentally was founded by the inventor of the synthetic CDO, is selling a smart contract language called “DAML” that is sort of smart contracts done “correctly”. It’s not Turing complete and it was designed by a bunch of functional programming theorists from ETH Zurich to be amenable to some formal verification.

They are marketing it as a way of managing settlement on stock exchanges, though, with the authority and ultimate recourse coming from normal law, rather than being immutable like Ethereum.
posted by vogon_poet at 4:39 PM on June 10, 2019 [3 favorites]


DAML here. It is basically as you say -- Haskell and friends.

There is some benefit to having contracts that can be formally verified -- especially if you have lots of them interacting, it might be good to catch conflicts (whose debt is more senior? etc.) at compile time rather than "run time", i.e. litigation. At the same time surely some of the appeal must be the idea of forcing lawyers to learn Haskell.
posted by vogon_poet at 4:44 PM on June 10, 2019 [1 favorite]


As I've said before, the real problem was that technoutopians, being very much a monoculture made up of the privileged, discounted the role of government and governance with regards to the internet, and thus dismissed the need for online governance.
My experience is suspicion and/or contempt of the exercise of government and governance has a U-shape across privilege within a state. The extremely privileged are sceptical (as a threat to their own power, or because of their close-up observation of its behaviour), the middle-class is broadly favourable, the extremely disenfranchised are extremely leary.

If you could class the privilege of the technoutopians -- at least the generation that made up the group that I *think* Nox is talking about -- it would be technologists alienated from their fellow technocrats in positions of power. If you read works by the Usual Suspects: Ted Nelson, Stewart Brand, Barlow, Ellsberg, and so on, what you get is the idea of people sceptical of the deployment of government because they are extremely close to the people with that power, and they'd rather trust the distribution of power using machines than to continue to with the status quo. I don't get the sense they were unaware of the nature of power, just that they themselves believed themselves to have the privilege of walking away from it, and felt that they had a chance to permanently re-distribute it in such a way that it would be harder to re-aggregate.
posted by ntk at 5:28 PM on June 10, 2019


At the same time surely some of the appeal must be the idea of forcing lawyers to learn Haskell.
posted by vogon_poet at 18:44 on June 10


Eponysterical?
posted by PMdixon at 7:23 PM on June 10, 2019 [5 favorites]




There is some benefit to having contracts that can be formally verified

also btw :P
-Conexus
-RChain[*]
posted by kliuless at 12:21 AM on June 17, 2019


oh and...
The Coming Software Apocalypse
An algorithm written in TLA+ could in principle be proven correct. In practice, it allowed you to create a realistic model of your problem and test it not just thoroughly, but exhaustively. This was exactly what he’d been looking for: a language for writing perfect algorithms.

TLA+, which stands for “Temporal Logic of Actions,” is similar in spirit to model-based design: It’s a language for writing down the requirements—TLA+ calls them “specifications”—of computer programs. These specifications can then be completely verified by a computer. That is, before you write any code, you write a concise outline of your program’s logic, along with the constraints you need it to satisfy (say, if you were programming an ATM, a constraint might be that you can never withdraw the same money twice from your checking account). TLA+ then exhaustively checks that your logic does, in fact, satisfy those constraints. If not, it will show you exactly how they could be violated.

The language was invented by Leslie Lamport, a Turing Award–winning computer scientist. With a big white beard and scruffy white hair, and kind eyes behind large glasses, Lamport looks like he might be one of the friendlier professors at the American Hogwarts. Now at Microsoft Research, he is known as one of the pioneers of the theory of “distributed systems,” which describes any computer system made of multiple parts that communicate with each other. Lamport’s work laid the foundation for many of the systems that power the modern web...

“I needed to change people’s perceptions on what formal methods were,” Newcombe told me. Even Lamport himself didn’t seem to fully grasp this point: Formal methods had an image problem. And the way to fix it wasn’t to implore programmers to change—it was to change yourself. Newcombe realized that to bring tools like TLA+ to the programming mainstream, you had to start speaking their language... he presented TLA+ as a new kind of “pseudocode,” a stepping-stone to real code that allowed you to exhaustively test your algorithms—and that got you thinking precisely early on in the design process. “Engineers think in terms of debugging rather than ‘verification,’” he wrote, so he titled his internal talk on the subject to fellow Amazon engineers “Debugging Designs.” Rather than bemoan the fact that programmers see the world in code, Newcombe embraced it. He knew he’d lose them otherwise. “I’ve had a bunch of people say, ‘Now I get it,’” Newcombe says.
proof checkers!
posted by kliuless at 1:06 AM on June 17, 2019 [1 favorite]


« Older Brazil: Massive leak proves Lula's trial was a...   |   “No one is going to stop me from playing,” Newer »


This thread has been archived and is closed to new comments