-
Notifications
You must be signed in to change notification settings - Fork 6
Description
Overview:
The Moderation Spec and the Protocol are apparently out of sync, and need some adjustment to align well enough to implement the trust signals portion of the moderation (labelling) spec and to fully address threat/risk mitigation for the complete supply chain as required by business rules for potential stakeholders before they can adopt FAIR.
Terms:
To clarify some of the terms used here for things which may be used inconsistently within FAIR,
- "Node" could be anything connected to the FAIR network/ecosystem that uses the FAIR protocol (i.e., it's a non-specific collective term for Aggregators, Repositories, and Client/Installers.
- "Client/Installer" refers primarily (for now) to the FAIR Plugin, AspireExplorer, and AspireUpdate; generally, software used to browse, download, or install packages.
- "Author" is the creator of or contributor to a package, which may have multiple authors. By default, the author holds the copyright, unless it has been assigned to a Publisher.
- "Publisher" refers to the entity which presents the package for publication & download. A publisher may also be an author and/or operate a Repository to distribute packages. A publisher may be a vendor if a financial transaction is involved, but the broader term is preferred. A commercial plugin like Yoast or Elementor, a theme shop like Elegant Themes, and organizations like the FAIR Web Foundation or Automattic would all be Publishers.
- "Labeller" refers to what is elsewhere described as a moderation service. Labels applied as described under the Moderation Specification (colloquially here, "mod spec") may or may not carry the connotation of content moderation. Since these may present simple neutral descriptors, I'm using the neutral term derived from "Label", which the mod spec describes as its basic mechanism.
- "Trust Signal" refers collectively to specific indicators of authenticity, security, identity, or other factors used to establish trust in an entity or package within the federated network. This is a helpful descriptor for the Labels applied by the Labeller which FAIR plans to operate as a required service for all federated nodes, and helps make clear both its scope and intent.
- "Business Rules" in traditional software development (if not in webdev) these are a set of requirements determined by business operations, which a software development project must support and enforce reliably in its final implementation. These are operational rather than technical in nature, but must be resolved by the technical solution the software delivers.
The Issue:
1. Protocol Support for Moderation Spec
In discussion with @rmccue, he indicated that the protocol would need significant changes in order to support the concept of Publishers as an entity, though the specific changes required have not been identified. The protocol does not have (or require) that a package be linked to its author, whether an individual or an organization. From a technical standpoint, trust centers on the package (or its DID). The protocol does not require an entity to have a DID, as for the client/installer, trust only needs to exist in the package, with all other nodes in the chain being somewhat transparent.
On the other hand, the moderation spec requires the ability to assign trust labels not only to packages, but to Aggregators, Repositories, and potentially to other types of network nodes or entities. From the moderation spec:
Our moderation tools and systems are intended to provide federation participants with the ability to:
- Flag known malicious or harmful content.
- Label Repositories, packages or other content, and aggregators with meaningful trust signals (e.g., “verified,” “deprecated,” “security-risk”).
- Enable Aggregators to apply transparent and consistent filtering based on community-defined criteria.
- Offer users control over the moderation standards they subscribe to and follow.
Per @Ipstenu, the moderation spec does conceptually anticipate that a package may derive some types of trust signal from the repository. Although this could be extended to apply to the Author or Publisher as well, the FAIR Protocol does not address any of these entities in this context, as it does not conceive of as many types of specific entity as the moderation spec attempts to addresses. An unspoken assumption (more explicit in item 3 below) is likely that each entity has a DID to which labels may be applied, but the FAIR Protocol neither requires or uses DIDs for these.
Protocol: https://github.com/fairpm/fair-protocol
Mod Spec: https://github.com/fairpm/fair-protocol/tree/main/docs/moderation
2. Security: Supply Chain Threat/Risk Mitigation (Business Rules)
This relates to issues #4 which indicates a potential supply chain attack which could be mitigated by signing metadata. Also related are issues #43 & #45 both of which discuss tracing provenance to the Author rather than to the Package. The Protocol is designed to track provenance to the Package; Author is not an entity in the protocol, just a potential attribute (meta) for the Package. Issue #42 is also related, though somewhat indirectly.
In identifying supply chain risks and threats and how these are mitigated, it becomes apparent that some potential stakeholders (primarily hosts) may be looking for trust or accountability to be established for each node in the supply chain, from author to end user.
For example, the risk exists that a package could be published by someone who holds neither the copyright nor a license permitting its distribution. The moderation spec states that Repositories are responsible for the content they host and for verifying it, but the protocol does not assist in the process. At the same time, the Repository and other nodes must be able to have labels assigned to them under the moderation spec, but the protocol does not necessarily treat these as distinct entities which can be labelled or which need specific trust signals, at least on a technical level.
While the protocol is fully able to securely deliver and confirm the requested package, some of the types of non-technical (read: human) trust signals needed for stakeholder assurance will need to go beyond what is strictly required at the technical level.
Fundamentally, the protocol and the moderation spec are each written with a different concept of the business rules or needs they serve. Neither document fully specifies these business rules or “user stories” as applications of different use cases that they address.
3. Ozone Labeling Platform
Relates to issues #11 #35 & #44 regarding the architecture design for Labelling services. (Note the proposal outlined in #35 had general agreement, but the issue remains open since the architecture itself is only shown as a conceptual diagram so far. The technical implementation of the moderation spec plans are to use Bluesky’s Ozone labeller, which assigns labels to “Subjects”. As described there,
Subjects can be either entire accounts (referenced by a DID), or individual pieces of content (referenced by an AT-URI, and possibly a CID to specify which version). Note that an account profile record (including description, avatar, etc) is a distinct subject from the overall account. Subjects have state, are impacted by events, and can be reported.
By default, the Ozone labeller would presumably treat a package as “content”, which doesn’t need a DID, but may have a version. It's likely that anything with a DID could be treated as an “account” for the purpose of labelling, including packages, which would seem to be a different approach than Ozone's default design. Even if Ozone will work for us out of the box, we'll need a description of how we plan to use it, given the fundamentally different treatment of "content".
For an introduction to Labelling in Bluesky, see https://github.com/bluesky-social/proposals/tree/main/0002-labeling-and-moderation-controls
Next Steps
Resolving the issues referred to above, some of which may be considered duplicates, will all be blocked by this overarching issue.
Further analysis is needed to create a better assessment of the specific business rules surrounding risk mitigation and establishment of trust signals. It’s imperative we identify points at which the moderation spec and the technical aspects of the protocol may need adjustments to fully align with each other around addressing the necessary business rules, which will need further description in order to effectively implement them in a manner that addresses all stakeholder and user requirements.
With requirements defined based on (1) the necessary business rules and (2) any necessary changes identified for the FAIR protocol and moderation spec, the technical requirements for applying trust labels can be determined. Testing and analysis of the Ozone platform will be needed to determine whether it can be used as-is for a FAIR labelling service or to determine what changes it would require in order to meet FAIR’s needs for labeling, and whether the scope of any necessary changes would outweigh the utility of building with Ozone at all.