CIPs icon indicating copy to clipboard operation
CIPs copied to clipboard

fix(CIP-145): updates from forum discussion

Open smrz2001 opened this issue 1 year ago • 2 comments

Updates based on this forum discussion.

cc @m0ar

smrz2001 avatar Dec 15 '23 23:12 smrz2001

In general, these are the most important features from my perspective:

  • All known commits, pruned or not, are pinned by the node
  • A new node can learn about all known commits, pruned or not, from other nodes

The reason is that a historical shuffle should not prevent resolution of a once-valid commit, which we should be able to implement in the client using these two properties. Otherwise, there is an avenue for abusing late publish as an undo button. We would like to be able to rely heavily on deterministic resolution of state, and this is OK as long as the commits are preserved and communicated regardless of a consensus change.

If I understand this CIP correctly, I think the scope of a late publishing attack would be equated to just adding a new commit on the tip, which is anyway possible to do for the controller. What I'm not sure about though is what the merge of a divergent branch means for the state of the stream, but I'm not sure if this is relevant in this context.

m0ar avatar Dec 19 '23 09:12 m0ar

In general, these are the most important features from my perspective:

  • All known commits, pruned or not, are pinned by the node
  • A new node can learn about all known commits, pruned or not, from other nodes

The reason is that a historical shuffle should not prevent resolution of a once-valid commit, which we should be able to implement in the client using these two properties. Otherwise, there is an avenue for abusing late publish as an undo button. We would like to be able to rely heavily on deterministic resolution of state, and this is OK as long as the commits are preserved and communicated regardless of a consensus change.

If I understand this CIP correctly, I think the scope of a late publishing attack would be equated to just adding a new commit on the tip, which is anyway possible to do for the controller. What I'm not sure about though is what the merge of a divergent branch means for the state of the stream, but I'm not sure if this is relevant in this context.

The two big advantages of this CIP are:

  • The tip event is a discovery mechanism for and commitment to not only the prev-chain but the prev-DAG.
  • You can at any point in time account for which branches are pruned and which have been merged.

smrz2001 avatar Jan 12 '24 22:01 smrz2001