Skip to content

Restrict content curator deletion powers #4589

@bedeho

Description

@bedeho

Background

Currently, moderators can do the following deletions

  1. delete_video_as_moderator: requires that video has no NFT
  2. delete_channel_as_moderator: requires that channel has no videos, and also in the future no creator token.
  3. delete_channel_assets_as_moderator: can always be done
  4. delete_video_assets_as_moderator: can always be done

There is a big distinction between 1&2 vs. 3&4. The former group really means that a publisher who wants to can effectively block curators from removing these objects by making sure requirements are not satisfied (have NFTs, videos and creator tokens). This group also the most contentious forms of moderation, where you basically accept that the DAO can remove, in principle, anyone for any reason. The latter group not only cannot be blocked by the publisher, but it is also the case where lack of moderation could not even be an option in theory. Even leaving the side of the economic ROI of certain content being possibly so low as not being worth while, other content would be effectively toxic for the entire system, and it would be catastrophic for the infra operators to have to host or distribute.

This combination of characteristics leads me to think that its best to deprecate 1&2. Their presence undercuts the immutable ownership property the ledger can offer - which many will find attractive, while simultaneously not actually protecting the ledger against an active adversary. The worst thing someone could do when 1&2 is removed - which they still could do if it was there, is to have metadata which somehow is considered out of policy, for example by linking to resources outside the Joystream Network itself, e.g. a hyperlink somewhere. This seems to me to be both unavoidable, but also not really a problem at all.

Proposal

Propose plan for how to most gracefully deprecate 1&2, with full consideration of possible requirements to migrate permissions, featuring blocking and other representations that currently assume their presence.

┆Issue is synchronized with this Asana task by Unito

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions