However, most people wouldn't consider "email" (SMTP) to be a blockchain, even if it's (sorta) decentralized.

But nearly every definition of blockchains does contain an append-only cryptographic log called a "merkle tree". Everything from there gets fairly vague.

This vaugeness leads to the joke: "blockchains are the 'cloud' of merkle trees". This refers to both the similarity to the hype and vagueness around the term "cloud", but with blockchains.

But git is a merkle tree. Is a signed git tree a blockchain? Well, yes and no...

"Blockchain" evolved to describe the space of "bitcoin-like-things". But the exploration space followed in its wake is large, and the evolutionary tree diverges dramatically.

This is similar to how "Roguelike" describes the space of "rogue-like-things", departing dramatically.

Thus you see people on here complaining about how blockchains will burn down the planet because of resource consumption, by which you mean "proof of work", which Bitcoin had.

But many newer "blockchains" use other mechanisms which don't chew planetary resources...

And so there's a disconnect. "I don't like roguelikes because I hate turn based games"... well, is Blazing Beaks a roguelike still?

"Blockchains are bad because they burn down the planet." But what about blockchains with proof-of-stake or a small permissioned quorum?

Since there's no agreement on whether PoW is essential (many might not even know an alternative), two sides arguing about things might actually be arguing about *different things*, thus "shouting past each other", which we do see on here all the time.

I think there's a good "shape" for what we might call a blockchain, but before we get to that, let's get to the other big argument that's happening on here: "blockchains" as an identity space... and a proxy war for other cultural dynamics!

"Blockchain bros": are they real? Yes. Is it everyone in the space? No, but it feels to most outsiders to be enough so that there's good reason for many to be put off.

It's even worse now that NFTs have polluted the space with people ignorant of what they're actually buying.


Side note: NFTs are not copyright, and actually I don't even think copyright (which bottoms out in state violence) is even a good *idea*, but people are being sold something which isn't what they're getting, and it's no wonder that people are mad about it.

That said, broad brush dismissals of this entire space as being white dudebros are *false*, and I have friends who are not dudes and not white who are hurt by broad-brush characterizations.

But on the other hand, don't use my words here to complain about "virtue signaling":

"Virtue signaling" is itself a virtue signal! It's like hipsters being the people who were most worried about hipsters a decade ago.

But "virtue signaling" is a thing everyone does because humans have limited time to assess, so yeah...

Let's get back to architecture again.


ActivityPub is a decentralized protocol, but it is not a blockchain.

However, it's another area in the space. Actually, there's *two different kinds*: "convergent decentralization" and "decentralized cooperating agents"

Almost all the focus of decentralization is in the "decentralized convergence", or sometimes if i'm smug, the "decentralized centralization" space. This is the world of blockchains and "quorums" (we'll come back to that)

Well *that's where the money is*! So... shocker!

However, most of the *important work* that needs to be done doesn't require a ledger, it's in the "decentralized cooperating agents" space. This is the realm of ActivityPub, the "actor model", and distributed capability-secure programming (CapTP!)

(It's also where my focus is.)

"Decentralized cooperating agents" work great with peer to peer systems... objects communicate with each other might cooperate despite being opaque to each other!

Surprised? Consider: you and I can cooperate without me reading your mind!

So: are blockchains essential to decentralization?

No! In fact, decentralized approaches dramatically predate Bitcoin! In fact, blockchains often lead to "reproducing" centralized structures because it's just too easy to "throw the centralized mindset on top of a blockchain"!

BUT! Does this mean that "decentralized convergence" and "decentralized cooperating agents" are at odds??

ALSO NO! I'm about to apply a *different* definition for "blockchain" and then let's think about how they might work together.

What if "blockchain" just meant "a single machine that many people run"?

The idea here is that a blockchain isn't a bunch of decentralized machines... it's a bunch of machines building *one unified abstract machine*. Useful for decentralized agreement on sequential operations.

Except we might actually want to split this up: there are "public" blockchains, like Bitcoin, Etherium, ZCash, and then there are smaller intentionally assembled sets where "here are the five participating machines, if three out of five agree this is the next action, then it is"

It might actually just be better to call the former ones "blockchains" (public-participation convergent machines) and the latter ones "quorums" (private-participation convergent machines).

But those are both "decentralized convergence", but wait a minute, if we're building *one abstracted machine*, can we hook it up as just another machine on something like CapTP?

And oh my god you *CAN* and this is exactly what Cosmos's IBC and Agoric's systems are

So okay, the two worlds can play together and we can re-approach what these things mean.

So the question is... what do *I* think about blockchains?

I think people aren't talking about the same thing, mostly! But no wonder: detailed analyses like these are long and boring (???)

But I also think *convergent decentralization* is being dramatically over-hyped. And that's no shocker because that's where the $$$ is. But it's not where the most important research needs to go.

So okay, for the rest of it, well that's what @spritelyproject is for...

Well, thread over. I hope you enjoyed this session of "Jay Graber challenges Christine to be less verbose and for the most part Christine fails".

What can I say, I'm an engineer! I like to get into the details. But maybe you learned something! I hope you had fun!

@cwebber I haven't seen a proof-of-anything blockchain yet that doesn't either use more resources than it's worth, or creates/maintains a weird power structure between participants that will only be net positive for a minority. I've looked, argued about it, and so far, nobody has managed to show me something working.

I'm all for the git-as-blockchain kinds of systems where that doesn't exist, but that's not what people call blockchain. So I'd rather stay away from the term.

@jens @cwebber
There's FairCoin, HyperLedger, and Holochain. FairCoin is mathematically a Bitcoin-like blockchain that uses only 12 democratically elected nodes for signing, so blocks gets signed consistently, but there's low competition and minimal redundancy so it's very efficient. Holochain is software that creates multiple small chains where only the participants in the transaction participate in signing blocks, similarly reducing overhead. HyperLedger is a collection of blockchain software with various trust profiles for industrial use managed by the Linux Foundation for IBM and other providers; this is how Walmart avoids throwing out all their lettuce when there's salmonella contamination from one or two sources

For white westerners, blockchain is waste, currency speculation and art fraud. For others, it's freedom from colonizer currencies and a path towards markets free from monopolies like Steam, the App Store, Belgian chocolate manufacturers, Cristie's and Sotheby's, the CBO, and others. Neither perspective is wrong, just incomplete in itself

@yaaps @jens @cwebber "art fraud" 😂, I was thinking we *really* need to separate the "selling viewing rights at ridiculous price points" part from the "a hopefully less abusable artist-centric trade platform" part - NFTs are affected by the shouting match problem as well imo.

And more thick clients to help with the latter part!

@yaaps @jens @cwebber One part of me is really into technologies which allow communication with spotty, minimal infrastructure - how do you do digital transactions, messaging, and more when there isn't a reliable network, let alone the Internet, where you are? And what happens when someone tries to do that across two disconnected groups?

Most cryptocoins won't be able to handle that. Holo is on my radar because it just might. Scuttlebutt is literally built for this use case.

Show newer

"intro to distributed computing" ramblings 

> only the participants in the transaction participate in signing blocks.

makes some sense. both parties could sign nonsense transactions that would essentially make new money, but since there would be a ledger, the party receiving the money wouldn't want to do that because when they tried to spend more than the ledger permits no other right-behaving clients would accept their fake money.

does Bitcoin not work that way? (never read the specification for Bitcoin) I recall something about needing several clients to check the transaction or block of transactions before they're official. i guess you'd still want something like that though, otherwise every client, for every transaction would need to check virtually the whole log of transactions for every exchange. consensus on past blocks means you can say, "ok, we're good from here back, so I can accept this transaction based on my own verification from here forward". not sure about "blocks" though: seems like you would register your approval of all individual transactions until you found "enough" signatures on the set of transactions leading to the one you participate in directly.
(IDK how you "register approval" though: maybe that's just part of what's exchanged for any transaction. you give to other participants your signatures of all transactions back to that agreeable consensus point and they reciprocate if they're all good.) still there's the problem of whether the ones who sign into the consensus are "good guys" vs some cadre of baddies who all collude to make bad txns for money or lulz: I don't know how you select that quorum or size it because I don't know how you count all of the population... that's a tough one in a "public ledger".

I think the expensive part is in minting the money in the first place because, if you don't want a central entity to say what's money, then you need some way for anyone to generate it, but it can't be too easy or the money won't be worth anything, hence proof-of-work. personally, I guess I don't care much about the other decentralized alternatives: I'd rather have actual central banks backed by governments minting the money and signing it into the system. across currency systems, we can have currency exchanges like we have now with govt backed currency.

@jens @cwebber

Show newer

@yaaps @cwebber That's not really a reply that addresses both of my concerns. Which is fine, I'm not trying to challenge you to do that. But I am looking for blockchain that passes both categories; one isn't sufficient.

Faircoin's proof-of-cooperation is great, I suppose I have to direct you to my thread from yesterday why it's not a great approach. Which of course you may disagree with. Better than repeating myself here, at any rate.

Good threads, though! Bookmarked both of them.


the distinction between the convergence to cosntitute a single distributed machine and the communication among distinct machines (distributed or not) is, to me, something new

it's enlightening and insightful

I still don't understand the PoW/PoS thing and the Catp thing

But at least now I have a geography of the continent, if you allow me this analogy

everything attempted to read previously was, frankly, too abstract, rethorical and lenghty

So... (continues)


so this is a substantil progress, a fundamental bit

I think this should be consoldated in a blog post somewhere


I find the convergence interesting personally. It devises a strong solution to the "consent" aspect of "consensus", as in, "here is why I'd bother to participate". That's a carrot and stick problem. Most of computing has added consensus sticks(systemic enforcement and monitoring mechanisms) and an occasional carrot(video gam, cat picture), while "Blockchain" adds a whole lot of carrot($$$) with very few sticks.

That specific incentive is wildly suited for people who can "think" in finance - and, lo and behold, the financial industry is really the one sector that's all over it and leading the way; not the rest of tech or other markets. While outsiders are indifferent or hostile to seeing new finance carrots, insiders looking for disruption are jumping up and down in excitement. This is their chance to reset the board and the rules. It's not very principled, but it does let them try new stuff, like any useful tech.

I agree there's no tech that decentralizes everything. We're mostly just accumulating options for centralizing at different scales.

@cwebber this has the potential to get confusing in discussions around stellar's "quorum slices," as they've basically found a quorum based mechanism that works with open membership.

Good thread.

You can have shared ledgers without blockchains, too. The first shared ledgers I knew about were by Todd Boyle:

Could be implemented actually-decentrally by ActivityPub and Spritely.

@bhaugen There were also probably Merkle Trees before Merkle got to claim the name :)

This might be a side trip, but do you think that Merkle Trees are a necessary part of a workable non-blockchain shared ledger?

@bhaugen define "workable", and define "merkle tree" I guess! But this is an interesting question. My first response was going to be to say that merkle trees are necessary, but then I remembered just how much when it comes to ocap-oriented distributed-object abstractions, one can upend one's normal assumptions of how things which are normally built with cryptography can instead be built with object interactions and object references.

@bhaugen It's possible to build one, I've thought of a design. I'm not sure you'd *want to use it* though.

It resembles my suggestion of how multiplayer terminal phase might work in the article that opened this thread.

But I'm not sure it's *useful*, so I'm not sure it's worth elaborating, but I will think about it. Maybe there's a surprising usefulness application.

> how multiplayer terminal phase might work in the article that opened this thread.

This thread has meandered and crisscrossed enuf that "Expand this toot" does not find an opening article...but if I found it, I would read it.

(It has been a fascinating tangle of threads, though....)

@bhaugen I accidentally split it, see the article linked in which is the longform of these threads

@bhaugen yup

the terminal phase bit is pretty interesting but got dropped out of the threads on here

@cwebber @bhaugen
My game genres of choice tend towards resource management, so I have Opinions™ about what constitutes a usable ledger. You need to 1) record transactions, 2) verify the contents of the open record and close it out in such a way that you can 3) treat any closed record the same as you would treat as a single transaction. I wouldn't say you need a Merckle tree to do this since double entry accounting and other ledgers predate Merckle at least 6,000 years, but it's possible that Merckle trees could be the only construct for maintaining a working ledger over an asynchronous network. You don't need Merckle trees to close out on a clay tablet when your supervisor is in the same room, but you need something like that when other interested parties are on a different continent

The Terminal Phase demo is relevant because, in order to close out a transaction in the ledger, all parties involved need to be at a singular point in space-time (even if it's virtual) or you need an undo stack. I proved this for my own requirements a couple years back. It doesn't have to be a Merckle tree, but you do need scoped undo levels and having a vocabulary to identify specific states (as opposed to relative levels) is very useful

You don't need double entries a la both a debit and a credit in the same ledger for the same event, you can generate those later if anybody wants them, but in a distributed environment you do need a record for each of the participants including their signatures.

Holochain recently worked thru a detailed demo, which I can find if wanted.

I don't know Merckle trees well, but the Scuttlebutts discussed them at length recently and I can find their discussion if anybody wants it.


@bhaugen @cwebber
Right. The actual requirement for a working ledger is an agreed upon degree of redundancy to assure the ongoing accuracy of the system, not adherence to double entry accounting as that particular methodology or standard. The clay tablet containing the world's oldest known math mistake was a ledger, not double entry but generally sufficient for their purposes

With modern information theory it should be possible to reduce the space and processing requirements for this overhead compared to double entry. Since that's not what's happening with blockchains, we need to challenge that

Double entry (as a debit and a credit in two accounts in the same ledger recording the same event) does not deal with double-spending or many other problems. The purpose was to satisfy the
Assets - Liabilities = Owner Equity
or in manual systems to make sure the accounts balanced.
As soon as computer database business systems took over, nobody needed to enter any event twice anymore. ERP systems don't do that, they generate the debits and credits later.


@bhaugen @yaaps Beancount and Ledger are still two great double-entry systems.

You still need to enter both *accounts*. However, Ledger and Beancount do allow you to enter the deduction and addition both within the same transaction, but one can be auto-calculated from the other.

Show newer
Show newer

> Mark S. Miller, who was standing next to me, smiled and gave a very interesting followup: "There is only one case in which you need a blockchain, and that is in a decentralized system which needs to converge on a single order of events, such as a public ledger dealing with the double spending problem."

Great quote! I will re-use it often, citing both of you. Hope that is ok.

@cwebber While CapTP is the long-term goal, I've been thinking about proposing a system for collectibles using the existing @activitypub protocol (e.g. Offer/Accept/Reject plus collections Add/Remove). Would you be interested in collaborating? The goal is to provide an NFT alternative that avoids financialization but keeps the fun of collecting & ability to trace artist provenance. More like achievements than trading cards

@datatitian @activitypub I'm not interested in building that on AP myself, but I'm interested in doing a writeup in terms of "supporting artists and programmers on the internet" which will include the idea of "digital trading cards" (and attempting to kick the term "NFT" into the trash, and then light the trashcan on fire). If you're interested in providing feedback on that and maybe even helping with it, and maybe we could even include your examples (and i could review them), then great!

@cwebber @activitypub yes, great! What I'd really like your expertise for is validating the usage of ActivityPub and the sequence of Activities. Leave the building up to us implementors 😁 Right.

Ultimately, blockchain is equivalent to the "eternal log file" as on

What Bitcoin adds on top, is defining what contents of each "log message" (which is called a block) mean, verification of those properties, and a decentralized consensus mechanism as well as protocols to collect more than one piece of information into each block.

What Git adds on top, is defining what contents of each "log message" (which s called an object, and can be one of multiple types) mean, merges (a trivial but important addition) and a centralized consensus mechanism (branches, tags, both being just "refs").

Sign in to participate in the conversation

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!