The blog post Beyond a copy of the Internet shows possible usages of multi ownership offered by safe network. The problem is that I don’t see how the MD structure allows this.
The post indicates that the machinery already exists and is based on MDs:
SAFE has multisig data types (the machinery is there, but not yet enabled), these data types are called Mutable Data (MD) and can be mutated by the owners.
It also gives some details on how this works:
With multisig this means ownership is the majority of ‘owners’. Now we have a data item on a network that is not owned by any of the companies involved, but editable by the majority of those owners.
The problem is that I don’t see in the code how this is implemented. There are 2 potential mechanisms but none of them seems to work for me:
owners field: The first problem is that any owner can change the owner set and another problem is that it only controls changes in the owner set, meaning that it manages itself but nothing else useful!
permissions field: Three permissions allow insertions, updates or deletion of entries. There is a fourth permission that allows modifications of the permission set. Someone having this permission can be considered an owner because it can grant himself the right to modify the entries and can grant the same permission to others. But there is the same problem here: any user having this permission can unilaterally grant it or remove it from other users.
In these two definitions of ownership, an owner can modify the owner set without needing a majority. So, I don’t see how this feature described by the post can be implemented.
A solution could be a centralized one where an entity has the “manage permissions” permission. This entity would then define the owners as the users having the right to modify the MDs entries. If would also create an app that allows these owners to vote for adding or removing a new owner. Then this entity would update the permission set depending on the result of the vote. But I am sure this is not what is planned by Maidsafe because this reliance on a controlling entity is contrary to the safe network principles.
I am certainly missing something because multi ownership with a majority control has been previously implemented in a trustless way with SDs. Can someone from Maidsafe clarify how multi ownership can be implemented with MDs?