Holochain: an agent-centric framework for distributed apps

#22

Here’s some thinking about Holochain mutual and reputational credit: https://medium.com/@james.ray/holochain-economics-671ef4a66974 with a brief comparison to alternatives.

0 Likes

#23

Hi Alex,

Bruno França from Trinkler Software has these rebuttals to your comment:

Well, first he’s assuming that the notaries are chosen at random. That’s not a given… Second, if you continue that line of reasoning you’ll just reinvent PoS. Because you’ll then need a set of notaries that will validate all transactions, and then you’ll end up requiring some type of deposit from them to prove good faith.

Additionally, he also countered that reputational credit is prone to Sybil attacks (my additions are in brackets):

Mutual credit currencies are very susceptible to Sybil attacks.
They give a debit limit to everyone, including new accounts. That would mean that someone can create infinite accounts to get infinite credit. To solve that you need some way of tying a single account to a person, and that would ruin the anonimity of the blockchain. [Yes, it is true that Holochain doesn’t design for anonymity, although it states in the FAQs that it could be added on a layer 2 network, although there’s no detailed proposal for that.] Besides there’s no good system for decentralized identities so far.

Well, you can say that to create an account you need to provide some finite resource, like computational power or time. But then you are just doing proof-of-work, or proof-of-time, or proof-of-space, etc. [I.e., redesigning a consensus protocol.]

He also noted that Ethereum’s sharding approach appears to borrow inspiration from Holochain. I can see that where you have the central beacon chain (analogous to the DHT in Holochain) and the shards (which are somewhat analogous to agents’ individual chains in Holochain, although you can only go to 4096 shards before you would have to do quadratic sharding). Although if you can do 270k non-private or 27k private transactions theoretically with layer 2 rollup scaling with zk-proofs, quadratic sharding may never be needed.

Incidentally, he did comment that Eth 2’s sharding approach “just seems hacked together and inelegant. The holochain method of having one account = one shard is much more elegant.”

More dialogue between us:

Me: Problem is that a blockchain needs universal consensus, so it would be exceedingly difficult or seemingly infeasible to design one shard per account for a blockchain, unless you figure out a highly secure, feasible way of doing exponential sharding, or whatever.
Holochain doesn’t have the constraint of universal consensus, so one chain per account is possible.
Bruno: The only reason Holochain is not secure is because it lets the account owner choose the validators for its own account. If instead the validators were attributed randomly to each account, it would be safe.
Then you add some intra-shard communication, and you have a sharded consensus. But it would be kinda slow.
J: Yes, but attributing randomly in a decentralized way is not simple to do, hence things like PoW and PoS.
I.e., consensus on the randomness, and consensus on who is randomly assigned and what they submit.
B: Indeed, and that’s why I don’t have a paper on sharded consensus. :smiley:
J: Haha
Anyway, there is still plenty of merit to Katallassos’ approach of trying to integrate with cryptocurrencies, fiat currencies and other token-backed finance. [Bruno led the effort on designing and writing the Katallassos and Enso paper and works for Trinkler Software, as do I, starting just this Monday.]
B: Anyway, I think that we (the blockchain community) are still a few years away from having a sharded consensus algo that works well. Only now are we starting to reach the limits of what single-chain consensus can do.

0 Likes

#24

Well, first he’s assuming that the notaries are chosen at random. That’s not a given

The notaries are chosen at random based on the similarity of their public key hashes to the hash of the data being shared.

They give a debit limit to everyone, including new accounts. That would mean that someone can create infinite accounts to get infinite credit.

Holo fuel does not give a credit limit to everyone. A credit limit is earned by proving a history of hosting services, essentially giving hosts the right to “pre-sell” their own hosting-backed fuel.

On the topic of Sybil: yes it’s true there’s no good decentralized solution for identity verification yet. Holo fuel will require KYC, at least for hosts and app providers.

1 Like

#25

Okay, I skimmed this. I think we lose something when we brand everything as concentric to a given platform. Holo-* etc.

What the general form for this may be is Random Serial Dictatorship.

I won’t be able to address anything pertaining to mutual credit tonight.

1 Like

#26

Thanks for the link. From the last sentence of that page:

When agents can have weak preferences, however, no procedure that extends RD (which includes RSD) satisfies both efficiency and strategyproofness.

I would say that they can have weak preferences, e.g. if a transaction is invalid then a validator will be more likely (assuming an honest majority) to reject a transaction, otherwise they will be more likely to accept it. So yeah, I must concede that I’m skeptical about the RSD approach (and Holochain’s) suitability for financial transactions. Besides, and again, if sub-quadratic sharded consensus with layer 2 zk-proofed ‘rollup’ scaling can do 270k non-private or 27k private TPS, that may well be enough for a long time.

0 Likes

#27

My inquiry on this was from a year or so ago when trying to figure out the logic behind Verified Random Functions with regard to prospective validator rewards and incentives. Weak preferences here would refer to a model around economic agents and so is likely ill-posed for crypto-economic agents as is. I view it as a sort of round robin…

Without wishing to derail any conversation here, perhaps there would be interest in a study group for the text on Algorithmic Game Theory? I find much of this research fascinating but without having tested and discussed with the ETH research community, it seems underutilized. Economic agents and software actors often seem to be conflated in my opinion, to say nothing of the prospect for an intelligent agent as well.

0 Likes

#28

When agents can have weak preferences, however, no procedure that extends RD (which includes RSD) satisfies both efficiency and strategyproofness.

So yeah, I must concede that I’m skeptical about the RSD approach (and Holochain’s) suitability for financial transactions.

Weak preferences here would refer to a model around economic agents and so is likely ill-posed for crypto-economic agents as is.

Nevertheless and OTOH, inefficiency (up to an O(n^2) complexity) may be a necessary compromise in order to use a mutual credit cryptocurrency (rather than a fiat blockchain one), in order to gain more decentralization, with associated benefits of less inequality. After all, if we take a biomimicry approach, nature is often pretty inefficient, but adequate, cf photosynthesis.

Looks like an interesting book! I read up to the beginning of part one. I’ve added it to Pocket.

0 Likes

#29

Just a follow up from Bruno:

@jamesray1, a small correction. I led the effort on designing Albatross and Enso (not katallassos and enso), Katallassos was led by Reto. Credit where credit is due.
Regarding the comment from ethresearch you sent me, this is my answer:
That can be biased easily. The account owner controls the data that is in each transaction, so he can just try different combinations of it (by changing a nonce or a signature for example) until he gets a set of notaries that he likes. If I control let’s say 0.1% of all notaries and I have an account, I can create a transaction, slightly modify it until it gives a set of notaries that I control and send it. So I can effectively double-spend with a very small percentage of the notaries. Anyway, you’ll just say that this is not feasible because notaries need to pass KYC so I’ll concede to you. But that brings me to my second point.

“Holo fuel does not give a credit limit to everyone. A credit limit is earned by proving a history of hosting services, essentially giving hosts the right to “pre-sell” their own hosting-backed fuel. On the topic of Sybil: yes it’s true there’s no good decentralized solution for identity verification yet. Holo fuel will require KYC, at least for hosts and app providers.”

That’s a bit misleading. Hosts and app providers, are in a mutual credit system and need to pass KYC. Users, who do not need to pass KYC, have no credit and effectively don’t exist in a mutual credit system. So, the way that Holo solves the problem of new accounts creating money is by introducing KYC.
That is my main objection to this Holo system, it requires a central entity doing KYC and deciding who gets to be a host, or a notary or a app provider.
This is completely unacceptable in a blockchain. It is no longer open, because the central entity decides who gets in. So, Holo in practice is a permissioned blockchain. It is also no longer anonymous because people need to pass KYC and it is no longer censorship resistant because the central entity can expel hosts from the network.
Just imagine if tomorrow Vitalik came out and said: “Folks, we are going to start requiring that miners and dApp creators pass a KYC test with the Ethereum foundation”. The community would be outraged, it is completely against everything that a blockchain is supposed to be.
Look, I love Holochain, it is a very smart concept, like IPFS. But the Holo currency is a hack job. They realized that Holochain can’t support a token so they decided to do a mutual credit system on top and when they realized that mutual credit requires a defense against Sybil they just added KYC verification. It’s just bad and lazy designing.

0 Likes

#30

I spent a few months trying to elevate the mathematics behind Holochain and made some serious progress, but I’ve set it aside for now while I finish my dissertation. You can read some of my thoughts here on describing Holochains with sheaf theory, which is highly suited for agent-centric distributed systems in general and not necessarily Holochain specific: https://medium.com/the-advancedness-project/holochain-white-paper-and-the-road-to-sheafhood-9d5b159ee074 The work of David Spivak and Robert Ghrist and their collaborators on the use of sheaf-theoretic methods for multi-agent systems lends a lot of credence to this idea.

I think a sheaf-theoretic framework in general is the right way to both global consensus mechanisms a la blockchain, and local consensus of the sort Holochain does in a unified framework. Last year at the Second Statebox Summit https://summit.statebox.org/#/ we made a lot of progress doing this. I’m not sure where that project is at at the moment. I’m at least at the point where I can described distributed hash tables using sheaves (though I don’t have a paper to show you yet unfortunately, just notes - I’d like to write the paper after finishing my thesis). I think Holochain should be a natural extension of this formalism due to the compositionality properties of category theory, as could other potential distributed app platforms built on top of distributed hash tables.


One important aspect of the Holochain consensus mechanism that hasn’t been mentioned yet is that Holochains are capable of reaching global consensus by asking every node to be a notary for every transaction. The lead Holochain programmer, Nicolas Luck, was working on implementing Nakamoto consensus in an early version of Holochain. He has been swept up by trying to finish the software, but it generally confident that it can be done. This would work as a sign that Holochains may be a direct generalization of a blockchain, and the sheaf-theoretic formalism I was working on could act as a proof. Of course, if you wanted to do global consensus, a blockchain would obviously be the better tool for it.

This makes sense from the point of view of the sharding discussion above. I’ve frequently thought of Holochains as the limit of a sharded blockchain where the number of shards equals the number of nodes.

1 Like