Rebooting Informatics

Posted on Jan 17, 2021

What do we need computers for?

  • Communication with our loved ones
  • Taking notes, organizing our thoughts and ideas
  • Gathering data for ourselves or organizations we belong to
  • Organizing collective action
  • Finding out about what others think about ideas, products or services
  • Getting services and products delivered

All these are different variants of how to organize matter, energy, and information between us humans. But there’s a lot of clutter around these activities: in general, they are conducted through massive systems of information that mostly serve other purposes: in particular, the advertising economy. That is undeniably an important feature of our everyday life, but it’s subject to invisible biases (consumers can be influenced against their best interests). I think we can have an alternative system that solves for discoverability of goods and services in the marketplace, but in a way that is more protective of individual will; without storing huge amounts of data. How can the market for attention be humanized? Can the market-based model of generation of signals be changed in a way that balances the scale towards individuals and not corporations?

This short essay doesn’t have any solutions, but explores certain subjects around the problem. How efficient are markets or how much do we relinquish our attention in mindless infinite scrolling?

I found my internet tribe in a vitual forum, a particular piece of software used in common by other fellow netizens. Within Hacker News (https://news.ycombinator.com), that community shaped the person that I am right now more than any other tool: its community shares a lot of values that I care about personally. It helped my curiosity and it continuously feeds me with information and signals about things that I care about deeply. A strange combination of DIY, software development, startup life, quantified self, economics and politics, and overall how to use technology to be a better human being.

Using a computer smartly means using it for your personal advancement. But we don’t live in isolation from our environment: our society, our biosphere, our every day activities. I made the subject of most of my professional life something very much attuned to what HN preaches: conscious understanding of how we can improve our society by using software and hardware.

We’re reaching a dead end, I think, as a feeling of “everything has been invented” started to arise around 2015. An insane amount of time you spend on your phone, you spend it on apps that have been built before 2017. It’s as if innovation died with Jobs.

Most of the things that catch my attention have been things that don’t scale: things that can only grow by becoming federated and decentralized. Barcelona and Berlin became very interesting locations to me, mostly for the political unrest in Barcelona, and the fervent youth of Europe moving towards Berlin to try and find the place from where to share ideas and thoughts about where to go next, a neutral ground of sorts, the last bastion of explorers in an aged population, trying to keep it relevant even though the global center of geopolitics shifted towards the Pacific Ocean.

In the last few years, a project that I heard about from HN and summarized most of my thoughts on how we should reboot the internet (or at least our usage of it) has been Urbit. Unfortunately, I think the execution got in the way of a massive idea: stop thinking about apps, let’s create a different operating system that puts the user in charge. The problem is that it asks of the user to understand a wholly new way of communicating with computers, something that might be too much to ask for.

Another other big idea (that I also heard about from HN) is Bitcoin. I remember a post back in the day in which someone commented that “One Bitcoin is now worth One Dollar”. And it blew my mind. I had previously dismissed it as a cool hack; but I now thought it was a force for change, something that other fellow netizens found useful. So I started to go down the rabbit hole, and I became obsessed with it around 2013. But it took one more thing: a neighbor and friend of mine, while we were living in NYC, bought weed with it. That closed the deal. This could be used by anyone, and has utility. It’s here to stay

Bitcoin at its core has two concepts:

  • The capitalist idea of individuals using the network for their own benefit: the only thing in common in the community is that “The Chain of Blocks Must Go On”.
  • The communist idea of warning about that if one single individual (or cartel) becomes too large, they can influence the system at the expense of some or all the other individuals in the network.

In 2015-2017, the most interesting social experiment of Bitcoin happened: a cartel of miners and companies wanted to do a Hard Fork. This hard fork was essential for one view of the project, but critically impossible for another view. Proponents of “Big Blocks” (bigblockers) wanted the size of a Bitcoin block to increase, so more transactions could fit in, lowering the cost of transactions so that small payments could continue to be made on the existing infrastructure. Proponents of “Small Blocks” considered a Hard Fork a “Very Bad Thing (tm)” because it would open up the social consensus around Bitcoin on Hard Forks.

Pretty much all the other big chains have had hard forks as part of their development. Ethereum most notably, but also Monero, ZCash, and others. They have a social consensus around making hard forks that allow for those things to happen. Most notably, they don’t have a Satoshi Nakamoto. They don’t have the luxury of lacking a central leader that can turn the tide one way or the other. Vitalik, in my opinion, suffers a lot personally because of this. I think he wishes to disappear, but can’t reasonably do so without harming others — thus he won’t do it. I believe that under his nerdy appearance, we’re very lucky as humans to have him — he’s a really good guy with very strong morals and good intentions.

But Bitcoin can’t do a hard fork without compromising its core value proposition: complete and utter decentralization and safe from a small group controlling the network itself. As such, it’s incredibly valuable that no group can decide to extend the amount of Bitcoin that ever will be in circulation, or that it doesn’t change the supply its miners receive, or that funds can be seized by some party.

The advent of personal computing and internetworked computing did not come at the same time as programmable, censorship-resistant, no-permission needed “bit” money. Now we have it, with the corresponding Lightning Network improvement as the missing P2P technology to achieve fast, nearly-instant, with reduced finality risk of small amount transactions. Thus, Bitcoin was a missing part of a new era of personal computing, where value flows are free from pre-existing pacts about how value should be sent from one party to another.

Free (as in libre) exchange of value doesn’t come for free (gratis). It does make enforcing the law as we currently know it harder. But there are workarounds and state representatives are making a good effort to make sure innovation can continue to happen while fending off bad actors. After all, it’s easier to track a Bitcoin user than a shady state-sponsored drug kingpin.

So, here comes my biggest bet on the future of computing:

Data will become increasingly local, and societies of the future will organize using liquid democracy, in decentralized systems with insurance on data availability.

What is insurance on data availability?

Bitcoin as a economic technology solves a problem that Proof-of-Stake networks are finding very hard to grasp: how to align data availability with economic incentives. A malicious actor in a PoS network (or some other Layer2 solution) has the ability to withhold information from its peers, making it harder to detect some kinds of fraud that can be beneficial to the malicious actor. In 2017 and 2018, ethresear.ch was filled with ideas on how to solve data availability on Plasma Sidechains . In Bitcoin, data availability is the first step for miners to earn their profits (assuming the miner doesn’t hold a majority of the network hashing power, or as recent studies suggest, at least 25% of it). But the use Bitcoin has for Data Availability is not the same use that we as individuals in a society might need.

Personal Data laws are trying to fix the problem: How can one person control what others know about that person? It’s a very difficult problem to solve, because “Information wants to be free”: the idea that information entropy grows virally. If I convey a message to you, as long as you remember that (even unconciously remember that), your future interactions with the world and other persons will necessarily be affected by that information that you got.

In the frame of Web 2.0 monopolies owning a vast amount of information about your behavior, with neural networks storing data about your preferences in ways that the creators of such networks can’t possibly know, these Personal Data Laws are trying to fix leaks in the boat with their fingers. Information is extremely cheap to store, and worse of all, there is no such thing as “proving nobody else knows this”.

But the opposite, proving that at least someone knows something, is a very interesting cryptographic primitive. In early 2013, a project named “Dark Leaks” started by famed bitcoin developer Amir Taaki, [source: https://cointelegraph.com/news/will-darkleaks-incentivize-the-next-snowden] was the incarnation of a protocol named “PayPub” that allowed crowd-sourcing of information in such a way that the author of the leak remained anonymous, and the public crowdfunding the leak was safe in knowing that the leak is legit. The project did not prosper, for it was too ward to use and their UX was very much unappealing.

Personal Data Insurance policies can have a market in the future. Let’s say that I have a medical condition that I don’t want the world to know. I could get insurance against public knowledge of this (fraud detection would be very important). I think this is the next big step for decentralized systems: finding novel ways to help people to understand how much information is known about oneself out there. We’re already seeing the first massive movements about privacy laws and freedom of speech: I think this will lead to more awareness about how our data is being used.

But the best solution to a problem is never having it in the first place: how about rebooting our computing systems in such a way that no data is shared by default? In a way such that we know “exactly” what information is out-flowing from our devices, with perfect auditability of the messages our computers sent to other computers?

In the beginning, there’s no information going out of our newly rebooted information system computer. One would have to protect against side-channel attacks that might leak data from a computer. The Ethernet links to the outside world would have to be severely intercepted by a number of independent devices verifying that no information is exiting our “information contagion bubble”.

Then, it starts to communicate with other computers. The messages computers send to each other should be auditable by the user, in the sense that it has to be transparent to the user exactly which companies it is interacting with.

Current networking stack:

  • Physical layer
  • MAC layer
  • IP Layer
  • TCP/UDP
  • Security
  • Application

This description of messages sent from one device to another is too technical. The information stack of the future should look like this:

  • Device networking layer
  • Source attribution layer
    • Originator of the message
    • Chain-of-custody
  • Trust layer (how much is the source credible for the subject of the message)

This stack should should come with some properties:

  • Revokable signature of the message by the sender’s device
  • Perfect forward-secrecy
  • Verification that the signatures match all your previous interactions with the sender
  • Chain-of-custody of the message: intercepting devices involved in the exchange (your ISP, the sender’s ISP, and all mediators)
  • All of this metadata encrypted on first opportunity for doing so
  • All metadata bound by a non-disclosure smart contract that insures no logs are being kept of the conversation (other than legally required)

But that doesn’t cover the totality of a system that respects your privacy and your data best. “Personal Data Ownership” — I think this is an oxymoron: data can not be owned. Data can be kept as local as possible, but you don’t own data — nobody owns data, other than in the practical sense that they can choose not to share it.

So, the easiest way to “own your data” is by not sharing it. When choosing to share it, social constructs can be created around the terms of the social contract under which you’re sharing this information:

  • If it’s a private message, insurance against unveiling the contents of the message to unrelated third parties
  • If it’s a blogpost or publication, permission to re-publish under such-and-such circumstances, with some royalties maybe, and with an insurance against re-publication without payment of royalties (but then again, trying to stop a leak that can’t be stopped — information wants to be free)
  • If it’s some public disclosure, no insurance is needed, but maybe some metadata giving explicit content to the data being redistributed, maybe in a Creative Commons ShareAlike license or similar.

Now, this is all ok for outbound communication. But what about inbound communication? I just want to access some website… Well, in that case, one has to make a request for such information, the original HTTP idea of a request/response. Accessing a resource has been the purpose of the HTTP protocol all along, and its inventors have always had the idea that request negotiation was a big part of the protocol (this never came to fruition at a human level, only in machine-to-machine communication).

Now that I have established a concept of more transparent communication protocols and social contracts, I want to go back to:

Data will become increasingly local, and societies of the future will organize using liquid democracy, in decentralized systems with insurance on data availability.

Liquid democracy is the idea that now that we have very powerful information systems, we can change our democracy tools to better elect functionaries for our institutions. Imagine a world in which you don’t vote for a president or congressman/woman but instead you periodically adjust your opinions and ideas about a set of interests for which the government has institutions. Let’s say I don’t know shit about the Health industry: but I delegate my vote on health-related subjects to a friend of mine in the Pharma industry. But I definitely know something about computers, and my friend delegates their vote on me to elect who should be the Secretary of Cybersecurity. But they do so at the local level, because on a country-wide level, they trust better the opinion of somebody else.

This idea calls for a number of questions:

  • What about voting secrecy? Couldn’t people be coerced to vote?
  • Wouldn’t this form a number of cartels around each industry?
  • In this echo-chamber world of information, wouldn’t this reinforce extremism?
  • I don’t want my neighbor to know whom do I trust in “transportation”

Fortunately a big question is no longer asked: “How can we ensure the transparency of this system (who watches the watchers?)” because we can code this system in a matter of weeks in an Ethereum-like blockchain.

I think this is a search worth the effort. The 200-old system of electing presidents is due for a change. Remember that before this system we didn’t elect things at all. Is electing more efficiently, with data, and with transparency about where do we want our society to go towards a loable goal?

I think so. But even though most of the building blocks are here, I think we first need to change our relation to computing systems to prove we are worthy of such a system, to prove we can reboot computation in such a way that we are in control of how the data in our devices flows, and where does it flow towards, instead of the mess of megabytes of data that we daily send in and out without ourselves being aware.

Data will become increasingly local

With your “shell” device, a device protecting data from going in or out without your concern, data you generate will have the default of not getting shared with anyone. On top of this, you could code your system to enhance functionality if you wish to. Consent is the first principle of shell devices.

How many applications are sharing directly or indirectly your geolocation with third parties? I bet it’s a lot more than you thought. This permission is usually given once, and revoked never, for most of the applications. That time you wanted to take a picture with Twitter? Now it allows the app to access the microphone at any time, without asking for your consent again.

And the elephant in the room is the number of HTTP requests you make when you visit a website if you have JavaScript enabled. It can be insane. That’s mainly because the websites we normally visit are transmitting two things: the data you requested for, and a set of arbitrary code that gets executed automatically by your browser without any explicit consent on your part.

Once I read that Richard Stallman browses the web very differently than a normal internet user: he sends an email to a bot he runs, which downloads the URL and strips away any extra JavaScript or CSS that goes with it. I think we should start browsing the web in that way more often. It would help to retain the privacy on how we actually engage with websites. I started downloading the YouTube videos I watch so that information about how I explore the data in the video differently. I don’t want Google to track how I pay attention to videos. I also hate the “automatic play” of the next video that they offer (which can be turned off, I know).

Using our computers more consciously will become a new kind of hygiene practice that has some resemblance to the data sharing awareness others are starting to practice, specially around notifications and interruptions the apps are imposing on users. Data locality also means that your usage information of the tools doesn’t necessarily have to be shared with the developer. This is one of those things where it is low-cost (seemingly to you) but actually on aggregate they are making for the dystopian data reality of services. Using a kindle sends all sorts of information about you. I want my reading to be private, and I don’t trust Amazon with all that information about my reading habits.

Data Locality for health apps is also alarming. I refuse to use a device that tracks my health and shares that information with a central repository. What if in ten years, some AI decides that my exercising shall be declared an act of terrorism?

Starting a new system from scratch

I’m doing an experiment on data hygiene. I’m setting up a new computer without any default service. I’m thinking on using Gentoo or NixOS, because in the past I liked the control I felt I had on my system: nothing runs there unless I think about it thoroughly. And I keep updating my configuration, and re-thinking about the decisions that I made in the past, revisiting and rethinking them.

In this new computer, I will not use a browser. I will try to replace any mechanism I currently use with free software. I’m setting up a mail server on infrastructure I can control, so I know how long will my data be stored and for how much time. I’ll import all my email from Google servers, and start using an alternative email address that will become my primary one.

This comes with a lot of challenges, as security has become increasingly complex to manage in the past few years, but also more streamlined setups and the DIY community around it seems to be growing, at least from my echo chamber of thoughts that I receive from hacker news.

I mainly have to replace my communication from Slack, and I will stop using Google Hangouts for videos (or keep a separate computer for that purpose only). I will need to find an alternative for Google Docs, something we use extensively but have found some alternatives to in some areas of our organization.

Growing from one shell to many

Will people join me in my quest for data hygiene? Probably not at first, but it seems to be one of those frontiers that I’m very willing to explore how can life be different there.

I will start to use Matrix with a custom home server and a number of bridges to other services (most notably, WhatsApp and Slack). I think the protocol is simple enough to allow me to do this. I think I can make this work.

I will research (or code) an alternative way to consume media; most notably exporting my data out of Kindle, Spotify, and Audible. I think I will go back to pirating shows (I already pay for Netflix, does it matter if I see the same thing I would under Netflix terms of use or with my own VLC player?).

I will have to research (or code) an alternative way to read the web. I have grown to hate Chrome and the browser landscape, but guess what: there’s an alternative. And you can check out the HTML code of this blogpost — it’s as human readable as the rendering of that HTML.

And, I will check back on Urbit in a number of years. It’s a cool idea, but I think it sets the bar too high for users that really want to get the best out of the experience of actually knowing what the system is doing on your behalf, landing in a complicated mid-way spot that is worse than the current status quo.

And then, politics

After my trail of bits diminishes significantly and no other third parties know more about me than I want them to, I think I’ll shift my focus to working with those that follow me on this path of personal computing taken seriously. And looking for local-first alternatives to decide and act on actions needing collective consensus. I really do think that the end-game of fixing our political systems lies on more conscious computing, but this needs to be a real grass-root movement and not something imposed from above. We can uproot this by working together, forming a mesh network of conscious citizens that care for how we use technology in our lives.

Cheers,
Claude