Loomio
Wed 16 Jan 2019

Requirements for a protocol for agent-centric P2P economic networks

BH
Bob Haugen Public Seen by 259

Here's my current definition of agent-centric. I'll explain what I mean by protocol in this list of proposed requirements:
* Must be a protocol
* Must have an openly published specification.
* Any independently-developed software that follow the specification must be able to use the protocol to communicate with other software components that do likewise.
* Must be agent-centric, where agents can be individuals or groups, and each agent must be able to control their own identity, interactions, and data, and select their own software to use, as long as the software follows the protocol.
* Must either use a common economic vocabulary to communicate, or be able to translate their ingoing and outgoing communications into a common vocabulary.
* The protocol itself must be managed as a commons in the Elinor Ostrom sense.
* Must be able to provide reliable local [consensus](https://en.wikipedia.org/wiki/Consensus_(computer_science) among the participating agents in a scope agreed upon by the participants.
* More on this requirement in a comment.

Some people might disagree with this requirement, but
* I think, at this stage of the evolution of the general intellect, the protocol needs to work on the World Wide Web. Can provide private spaces as needed, but accessible via a Web browser.

There is no single protocol that satisfies all of those requirements at this time.

Several candidate protocols were mentioned and discussed in this previous thread. None of them is adequate by itself. Yet.

This google document discusses some of the pluses, minuses, and problems with three of those protocols.

If you don't like google docs, here is an open source framapad with the same info, but without all those comments. Altho that doc is also open for comments.

I don't want to repeat all of those arguments here. I want to discuss how to move forward and assemble a protocol that does meet all of those requirements, and any others that people want to propose. At some stage of discussion, I will create a poll or two to allow people to weigh in on the adequacy of the requirements and maybe, if we are lucky, on the proposals for moving forward.

BH

Bob Haugen Wed 16 Jan 2019

Must be able to provide reliable local consensus among the participating agents in a scope agreed upon by the participants.

I do not have enough knowledge and experience with local consensus mechanisms to be able to specify this requirement in detail. But I wrote "local consensus" to differentiate from "global consensus" as crypto-currency blockchains seek to provide.

My personal knowledge and experience is in the planning and operation of economic networks, and the requirement for a common vocabulary, and to some extent, what such a common vocabulary should look like.

GC

Greg Cassel Wed 16 Jan 2019

I strongly agree with your analysis and requirements. Thanks @bobhaugen for concisely articulating this.

BH

Bob Haugen Wed 16 Jan 2019

Re

The protocol itself must be managed as a commons

See this proposal to use federated ActivityPubs to manage ActivityPub spec changes

BH

Bob Haugen Wed 16 Jan 2019

My personal plan is to follow all the developments in Holochain and SSB, and learn from them, but focus on adding local consensus between ActivityPubs.

The first part of that will be figuring out the data and logic requirements for individual vs group agents, and how they need to interact. I'll start that somewhere in ValueFlows and report back here with the URL when I start posting something. If anybody wants to join me in that exploration before then, ping me here.

AW

Adam Waterhouse Thu 17 Jan 2019

Thanks so much for inviting me to this thread. I really appreciate the opportunity. I do not have a technical background but am working towards gaining an understanding of these topics as I recognise their immense importance

BH

Bob Haugen Thu 17 Jan 2019

@adamwaterhouse I am responding to a comment from you in that other thread here, because I am done with the other one.

Can you please expand upon what exactly is meant by "application-specific vocabularies" and what pragmatic value they can serve?

https://www.valueflo.ws/ is an example of a common vocabulary for economic networks. It came out of early conversations in this Loomio OAE group.

We will use that same vocabulary for economic network projects using Holochain, ActivityPub, and SSB. And maybe Solid.

One of the things that Nico said to me about crypto and distributed computing when I was staying with him was "I don't think that it's going to be a winner takes all situation."

We agree. I think that the economic network protocols in particular will either converge and interoperate, or those that don't will die.

BH

Bob Haugen Thu 17 Jan 2019

Looks like I already started exploring the diffs between personal and group agents in this issue: https://github.com/valueflows/vf-apps-agents/issues/1

So I'll just keep going there for awhile.

If it is not obvious to you that this exploration is necessary to think about local consensus mechanisms, I hope it will be by the end.

C

Christopher Sat 19 Jan 2019

Right. Thats the right kind of question in my opinion. I think there maybe more fundamental structures that are more dynamic and flexible. Maybe not. I have some designs in mind.

So the point of the "hashchain" as a basis for holding personal data is that it creates a sort of "quantum probabiliyt field", which can collapse - I have complete control over my sourceChain, so theoretically it can be in any state I like, and change state at any time to anything I like.. With a PNDHT, that field can collapse because enough nodes on the PNDHT hold enough of your personal sourceChain, that you cant really edit it without getting caught (the field collapses). The other way of doing that is to have real interactions with other actors cause a collapse in the chain - so there is no policing neighbourhood, but rather the network of real transactions is sufficient to collapse the state.

Each individual or organisation sourceChain collects information from many sources, and publishes it for that agent. Under GDPR style regulation, sources of data and processors of data only hold the hashes. This means that third party agents can query the various collective of agents involved in generating some entry in a source chain for the dates / times / agent of hashes of entries, and so cause waveform collapse.

I dont know Activity Pub well enough to present this in their language or even paradigm, nor SSB, but im pretty sure the twin concepts of "I own this data and have complete control of it" entails that there must be some mechanism to collapse the wave-form of uncertainty that creates to other agents.

C

Christopher Sat 19 Jan 2019

@pauldaoust1 Hi. Paul. Id very much appreciate your input on this thread. In the end, you represent the organisation with the most funding and time to develop this stuff. And at minimum it should be useful for you.

PD

Paul d'Aoust Mon 21 Jan 2019

@christopher7 busy this week, but I'm going to try to revisit next week or the week after. I've made a loose commitment to be a part of this discussion, but I haven't got a firm timeframe yet.

BH

Bob Haugen Mon 21 Jan 2019

My personal focus on this topic will be ActivityPub. If I focus on Holochain, there's too much already decided. In AP, not so much. I sketched out a tentative architecture for economic networks in AP at https://github.com/valueflows/vf-apps-agents/issues/1#issuecomment-456105864

ActivityPub will need something like the quantum probability field that @christopher7 is thinking about, but doesn't have so much of it defined and in process of development yet.

So it's more of a clear quantum probability field... :sunglasses:

BH

Bob Haugen Tue 22 Jan 2019

Another reason for focusing first on ActivityPub instead of Holochain, SSB or Solid, is that I think the coding skills required for AP will be more common than those required for any of the other candidates.

Here's a list of tested implementations, and they keep coming all the time: https://activitypub.rocks/implementation-report/

One of the reasons the early Web took off was view-source, copypasta, learn a little HTML. I want the economic web to be similarly easy to plug into. Don't know if it can be as easy as the early Web, but that's my goal.

BH

Bob Haugen Tue 22 Jan 2019

@christopher7 commented in that other thread,

there is another channel on loomio, now, which is for working on the specification of a PNDHT as an open project. personally I’m not comfortable putting out furtherspecifics without someone from Holo involved in the conversation, given my clear history as an employee there.

I assume he means this channel. I am deliberately starting over without copying Holo, and want to start by specifying the requirements that prompted the Holo PNDHT. I think a different design and implementation is possible in ActivityPub, but can't tell until the requirements get defined.

I don't expect people from Holo to help in that effort.

However, I am most likely not qualified to define those requirements, and so will be seeking help. We are working toward an AP economic network framework (as well as Holo and SSB), and will need to do it anyway.

The SSB crew includes people who understand all this stuff and so will not need any help from this thread, altho maybe we can get some help from them...

C

Christopher Tue 22 Jan 2019

Aye, Im not trying to be difficult, Im just trying to be careful about respecting other people's work. I would feel more comfortable if @pauldaoust1 was involved in the conversation so that anything that has come from Holochain, that might be useful from that project, can be fed back into it.

BH

Bob Haugen Tue 22 Jan 2019

He'll either get involved or I will point him to anything that anybody thinks should be fed back.

BH

Bob Haugen Tue 22 Jan 2019

But @christopher7 I understand and respect your carefulness.

BH

Bob Haugen Wed 23 Jan 2019

Who's interested in this topic? And of those who are interested, who feels like they know enuf to participate in defining requirements?

I need to do this anyway, sooner or later, for our ActivityPub track, but I am trying to gauge its current priority vs other work on my plate.

C

Christopher Wed 23 Jan 2019

im interested. I am busy. Certainly I have the skills... I dont know how to move forward .As usual in this space, everything seems to become vague and about "disagreement", rather than clear and about technology.

Be prepared to have your predictions come true

BH

Bob Haugen Wed 23 Jan 2019

I think I know how to move forward. Don't assume I will be vague and about "disagreement" until it happens.

But I intend to move forward first with requirements that could be implemented in more than one technology. Like tamper-evident, non-repudiation, and requirements from threat assessments. And some of those requirements will need to be interpreted along with with the other requirements I listed previously. Like, consensus is easier if everybody uses the same database with good transaction controls (or the same blockchain), but that will not be the case.

I'm also open to suggestions of improvement for any of the requirements I have listed anywhere.

Re disagreements, I plan on using Loomio's polling and voting features to see where we are at, depending on how many people join this conversation.

As for timing, I would start when anybody wants to start with me. Until then, I know I need to do this sooner or later but it won't be high on my current priorities.Yet.

C

Christopher Wed 23 Jan 2019

That sounds perfect Bob. Ill be around. Lets give it some time to see what comes out of Holochain about this stuff. And then we can look at the specific requirements of agent-centric truth proving in a decentralised manner
Be prepared to have your predictions come true

AW

Adam Waterhouse Wed 23 Jan 2019

Chris, what are we supposed to be making of this mysterious "be prepared to have your predictions come true" comment?

C

Christopher Thu 24 Jan 2019

it's my email signature.

try to stay grounded, in general, unless you are doing it for fun. it's relatively easy to do if you know what you are doing for yourself, and so the work to be clear about it to others

GC

Greg Cassel Fri 25 Jan 2019

I'm interested. My participation is time-limited and technically limited, since I don't code software and I'm only weakly familiar with ActivityPub and the existing WWW protocol stack which you want to interface with. With that said, thanks much @bobhaugen for focusing on the immensely important issue of agent-centric communications protocols!

BTW I haven't read all docs & links related to this topic, but this article quote caught my eye:

ActivityPub doesn’t support fine-grained access control checks, e.g. I want someone to be able to see my posts but not respond to them

^ I think that's a big problem. Separately-identifiable media resource access and edit rights are essential to all of my community models. I guess however that that ActivityPub limitation can and probably will be fixed eventually.

General personal context: I focus mostly on human-to-human protocols, such as Inclusive Network Governance Framework, which could interface (directly or indirectly) with computing protocols. My most relevant interests here are agent-based protocols for developing digital collective IDs, collective resources (including apps and protocols), and collective resource versioning systems. These interests are reflected in my conception of a collective resource description framework which can, theoretically, hold any digital media, supported (and updated) by any collective. This "CRDF" is conspicuous in my P2P Modular Organizing Framework model. Another prominent concept there is the distributed app, because I think that distributed computing (signaling, processing and hosting) is practically necessary to sufficiently support the inclusive p2p communities which I believe we'll all need.

IMO, another big element of effectively developing agent-centric p2p information will be something like Collective Media Markup Language. However, I doubt that much of CMML (or anything like it) should be built directly into a basic comms protocol. Most of it can and probably should be developed to add as a separate layer to data-items and their RDF annotations (which would include all machine-readable semantic links).

I perceive Bob that you're focused here on developing a requirements list for a p2p protocol which we'd all want. FWIW, the general technique I suggest for identifying shared design goals and agreements is based on Inclusive Design Framework. (Needs work though; as does Inclusive Network Governance!) I know you've seen that, but fyi (for everyone), some IDF elements:

  1. Identify and discuss each peer's positive and negative requirements and recommendations for the conceptual and structural features of the product (which can be a good, service or shared activity.)
    • negative requirement= prohibition; negative recommendation= dislike
    • Conceptual features are more basic than structural features. Structural features, including hierarchy, organize a product by developing components to (hopefully) support its overall conceptual features.
  2. Gradually clarify a mutually approved list of wanted and needed conceptual and structural features of the product.
  3. When #2 is reasonably stable, any number of designers (persons or teams) could research & develop compatible prototypes.
    • People can & probably will do R&D work before #2 happens. #2 is simply, IMO, highly advisable to reduce social risks, such as excessive commitment to deeply conflicting approaches.
  4. Each designer should engage the community via FYI and RFC announcements.
  5. If a designer seeks the full support of any specific collective, launch a formal proposal to approve a specific finished prototype as a collectively endorsed (and possibly co-governed) product.

Hope that's helpful co-creative framework.

I like to imagine that if we (or any group) can develop a stable compilation of mutually approved conceptual and structural features, we will effectively identify (in Bob's words) "a meta-protocol" where ActivityPub, ssb, Holochain, and more can all beneficially operate. I sure hope so!

BH

Bob Haugen Fri 25 Jan 2019

@gregorycassel

this article quote caught my eye:

ActivityPub doesn’t support fine-grained access control checks, e.g. I want someone to be able to see my posts but not respond to them

^ I think that's a big problem. Separately-identifiable media resource access and edit rights are essential to all of my community models. I guess however that that ActivityPub limitation can and probably will be fixed eventually.

Christopher Webber, one of the people who worked on the standard, is also working on access controls
https://dustycloud.org/blog/spritely/

The main dev of Pleroma, who has disagreed with Christopher a lot in the past, seems to agree roughly on the approach, but of course, devils in details:
https://blog.dereferenced.org/what-would-activitypub-look-like-with-capability-based-security-anyway

BH

Bob Haugen Fri 25 Jan 2019

Replying to myself, one of the diffs between ActivityPub vs Holochain and SSB is ActivityPub is a published standard with several different implementations while SSB and Holo either do provide, or intend to provide, whole integrated software suites for a unified user experience.

There are strengths and weaknesses in both approaches.

SSB also provides a published protocol and people are working on alternative implementations, but it remains to be seen how well they will all interoperate.

Several of the ActivityPub implementations are already interoperating.

BH

Bob Haugen Sat 26 Jan 2019

The downside of AP (published spec with many implementations) is that the people developing the different implementations, while they do interoperate, also disagree about some under-specified details and also about how to move forward. Some of this is because AP is a generalization spec, derived from several different previous protocols, as you can read about here https://dustycloud.org/blog/on-standards-divisions-collaboration/

And some of this is because the people who worked on the standard did not agree with each other on some of the details, as you can also read in that article.

Creating a standard is hard but necessary work.

C

Christopher Sun 27 Jan 2019

so the fractal space of each app being... an individual organism is that each group of people have a vision. the various interpersonal tools are equally important as the formalised expression as validation rules.

the progressions from one to the other are part of the responsibility of the group, not the software.

the simplicity of expression is available to each community as a set of choices, supported by their tech people.

the mechanism of "truth of honesty"is not limited to a sense that someone can be honest for a while, and then lie later. the pndht mechanism is more robust than that.

the core intention is to create a mechanism by which small agreements can grow. currently that mechanism is supported by (in most cases) by some sort of socially acceptable "formal" third party trust mechanism. but actually as it turns out, that mechanism had become less and less supportive of emergent concerns.

better software tools could help.

BH

Bob Haugen Sun 27 Jan 2019

Assume that the group of people has computer-readable models of:
* their organizational structure and relationships, along with some parameters about how those relationships work;
* their governance agreements and rules;
* their explicit agreements about all economic exchanges with other agents;
* in a framework that understands economic interactions.
* And so do all of the other agents in their economic network.

How much could that help with the trust mechanisms you have in mind?

C

Christopher Sun 27 Jan 2019

depends on the level of ideology on decentralisation

C

Christopher Sun 27 Jan 2019

also on the size and market awareness of the organisations involved

C

Christopher Sun 27 Jan 2019

if "full" decentralisation, and "unknown entities", then legal kyc is very valuable

without even that, "time of existence" becomes a significant factor

I suggest that people who want to be part of such mechanisms rent cloud space as part of their "natural" PERSON

BH

Bob Haugen Sun 27 Jan 2019

I suggest that people who want to be part of such mechanisms rent cloud space as part of their "natural" PERSON

That's part of our intended architecture for ActivityPub

https://apps.nextcloud.com/apps/social is now offering one-click installs of ActivityPubs. We'll be talking to them soon.

BH

Bob Haugen Sun 27 Jan 2019

if "full" decentralisation, and "unknown entities", then legal kyc is very valuable

Yup. Most of the groups we work with are relatively known to and trust each other, but that won't always be the case.

C

Christopher Sun 27 Jan 2019

so the sense of "third party authority" decomposes into the fractal of individual truth...

the larger the molecule, ... have you read "Lila" by Robert Pirzig

BH

Bob Haugen Sun 27 Jan 2019

One other factor is a whole network can be a scope and have its own database of all interactions that mention it. It's another space for rules and validations.

the larger the molecule, ... have you read "Lila" by Robert Pirzig

Nope. Should I? Would it help in this conversation?

C

Christopher Mon 28 Jan 2019

it's a pretty amazing decomposition of the idea of free will and quantum interaction. as a novel. I think it's useful. wonderful book.

I use that when viewing this stuff from a wide angle.

so, branches between different "networks" seem reasonable. I guess the most obvious question to me is, "are the branches the same kinda thing as people/agents, or a different kind of thing". I intuit that a properly designed network should be able to address data in other networks?

AJ

Amanda Jansen Mon 28 Jan 2019

@christopher7 does this anywhere relate (branches) to ppl inventing memetic currency in between other currencies to monetize ideas?

BH

Bob Haugen Mon 28 Jan 2019

@christopher7

branches between different "networks" seem reasonable. I guess the most obvious question to me is, "are the branches the same kinda thing as people/agents, or a different kind of thing".

I think branches would be either declared relationships between agents or resource exchanges without a declared relationship.

I intuit that a properly designed network should be able to address data in other networks?

You could address agents, if they are available thru federation, but addressing data could require a capability, which could be received from an agent in the other network, or could be available on request from a federated agent.

Linked open data would be another possibility but would need to be published by an agent in the network, which could be the network itself according to its agreed-upon rules.

This stuff gets snaky and we don't yet have enough experience with it to figure out all the angles. I wrote about some of the angles in the context of Sensorica in 2012: http://valuenetwork.referata.com/wiki/How_internal_exchanges_and_schedules_must_work_in_a_value_network

BH

Bob Haugen Mon 28 Jan 2019

@christopher7 and all: I am studying this right now: Keeping CALM: When Distributed Consistency is Easy.

AW

Adam Waterhouse Mon 28 Jan 2019

Did you have any contact with Ronen through the Holochain Mattermost community @christopher7 ? He's a huge fan of Robert Pirsig and writes about his ideas on his website www.iamronen.com You might like to check it out to get a bit of a taster @bobhaugen He's best known for his first book Zen and the Art of Motorcycle Maintenance which is a "cult classic."

C

Christopher Mon 28 Jan 2019

Ronen is an excellent person.

no my mattermost account and chat history were deleted.

I look forward to working with him in the future, as I am sure will come to pass. he has and is doing good work on himself, and lives in the real world.

AW

Adam Waterhouse Mon 28 Jan 2019

I had a brief amount of contact with him and really like him too. It doesn't surprise me at all that the two of you get on though I'm pleased, certainly. As regards working with him please keep me in the loop if anything like that should come to pass as I might like to be involved if there was a role for me.

BH

Bob Haugen Mon 28 Jan 2019

I know who Pirsig is and read some of Zen and the Art of Motorcycle Maintenance when it was popular with some friends a long time ago. I like zen dishwashing and zen firewood splitting. Am a little resistant to getting too cosmic with this protocol stuff, but could always be wrong.

SH

Steve Huckle Tue 29 Jan 2019

Forgive a n00b question, but where's the best place to start reading about ActivityPub?

SH

Steve Huckle Tue 29 Jan 2019

ps. just ordered Lila :) Thanks for the recommendation, @christopher7 !

C

Christopher Tue 29 Jan 2019

I never read art/zen/mc, but to me lila, it's very concise, using the metaphor to ground some very deep ideas. it doesn't feel crazy cosmic to me. tell me what you fink if you read it

C

Christopher Tue 29 Jan 2019

ok. thanks I'll look into it. I think what you say about branches makes sense. travel meetings with education people in Finland this week.

M

mike_hales Tue 29 Jan 2019

Who's interested in this topic?

Totally fascinated @bobhaugen :D But sadly, no technical skills whatsoever in this domain. I hang in here to learn more about the politic of 'protocolling', which is foundational. Looking forward to seeing you sklilfully chewing your way thro this Bob! Probably without needing to read read Pirsig?

BH

Bob Haugen Tue 29 Jan 2019

@stevehuckle

where's the best place to start reading about ActivityPub?

https://activitypub.rocks/
This might also help: https://fediverse.party/
AP was an attempt to standardize a protocol coming from several other protocols mentioned in that diagram. They all more-or-less federate with each other, and some of them have now implemented AP, altho there remains some unhappiness about the standard (as always...)

BH

Bob Haugen Tue 29 Jan 2019

To continue about AP: in terms of the criteria I listed in the heading, it is a protocol, and several independently-developed apps are using it, and they do now interoperate.

It is not inherently agent-centric, but can easily be made so.

It does work on the Web.

It does not satisfy any of the other criteria. Yet.

BH

Bob Haugen Tue 29 Jan 2019

@christopher7

it doesn't feel crazy cosmic to me.

That's re-assuring.

BH

Bob Haugen Tue 29 Jan 2019

@mikeh8 thanks for hanging in. And yeah, protocols are foundational, good word choice.

I make no promises about skill, I have a little knowledge of the requirements for consistency, validity, honesty, etc, in distributed systems, but you know what they say about a little knowledge...

I am studying and talking to people who have more.

SH

Steve Huckle Tue 29 Jan 2019

Thanks, @bobhaugen

C

Christopher Tue 29 Jan 2019

I suggest reading lila to create an out of band communication tool.

doesn't matter, but it's short and not weird, and very specifically on point

AW

Adam Waterhouse Tue 29 Jan 2019

Same here Mike - no technical knowledge but plenty of enthusiasm - so you're in good company (at least I'd like to think so)! :-) ;-)

AW

Adam Waterhouse Tue 29 Jan 2019

Me too! And yes, thanks @christopher7 It's going to be a fun discussion methinks! :-) ;-)

SH

Steve Huckle Wed 30 Jan 2019

I suggest reading lila to create an out of band communication tool.

What does that mean?

C

Christopher Wed 30 Jan 2019

A tool to aid communication, as in the metaphor of it, that is "out of band" as in about a different subject than the core disucussion

A useful metaphor
Be prepared to have your predictions come true

SH

Steve Huckle Thu 31 Jan 2019

I just read that - thanks - although, I'm not certain it gave me any great "Aha!" moment; more the "vaguely interesting" feeling :wink:

SH

Steve Huckle Thu 31 Jan 2019

I note, however, that there appears some momentum behind Bloom, the programming language that CALM paper promotes. Indeed, this paper on the subject seems to have attracted a fair degree of interest...

C

Christopher Fri 1 Feb 2019

"latching point"

"simplicity of freedom vs scope of power" - "electron to organic molecule"

BH

Bob Haugen Thu 7 Feb 2019

Here's a scenario that might test whether a distributed P2P protocol and application software could handle the requirements for an economic network: https://github.com/valueflows/valueflows/blob/master/use-cases/who-spoiled-the-yogurt.md

I said in that use case that Holochain could handle the requirements, but I am not yet sure of that. I'm pretty sure that ActivityPub and Scuttlebutt will require some extensions.

C

Christopher Thu 7 Feb 2019

ok. I'm on an overnight bus, meetings throw and Saturday... will hope to be around next week.

by "holochain" do you mean what they are describing they are doing, or what they have done?

BH

Bob Haugen Thu 7 Feb 2019

@christopher7

by "holochain" do you mean what they are describing they are doing, or what they have done?

I mean, we have an active Holochain project in motion, and I will learn more about how it all works and can probably have a better idea of whether they can handle those requirements or not. But your analysis would probably be better.

I just thought it was a sorta fun use case and it had some good examples for ValueFlows and maybe for local "truth telling".