-
Notifications
You must be signed in to change notification settings - Fork 5
RFC for multi-sig terms #16
base: master
Are you sure you want to change the base?
Conversation
This RFC will specify the multi-signature terms for Shelley, including their low level format.
9705eff
to
844c925
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good.
text/0000-multi-sig-term.md
Outdated
- `RequireSignature kh` where `kh` is a hashed key | ||
- `RequireAllOf [msigs]` where `[msigs]` is a list of multi-sig terms | ||
- `RequireAnyOf [msisg]` where `[msigs]` is a list of multi-sig terms | ||
- `RequireMOf m [msig]` where `m` is a natural and `[msigs]` is a list of |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
typo: [msig]
vs [msigs]
text/0000-multi-sig-term.md
Outdated
- `RequireMOf m [msig]` where `m` is a natural and `[msigs]` is a list of | ||
multi-sig terms | ||
|
||
This forms a tree-like structure where each node is of the form |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
node / leaf
text/0000-multi-sig-term.md
Outdated
`RequireAnyOf [msigs]` and `RequireMOf 1 [msigs]` are logically equivalent, just | ||
as `RequireAllOf [msigs]` and `RequireMOf (length msisg) [msigs]`. From a point | ||
of readability and to a lesser part also for encoding size, it makes sense to | ||
have the special case terms for _any_ and _all_. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
And it'll be more directly useful with later extensions, e.g. time locks and hash locks.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I added this
text/0000-multi-sig-term.md
Outdated
``` | ||
|
||
*Note* the encoding of `m` into a major type `0` single byte allows for a | ||
maximal value of `23` for `m` in a `m` out of `n` multi-sig scheme. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think we need to restrict it to the one-byte form. We just need to limit the overall script size.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks, was left-over from an initial version that used raw bytes description only
|
||
The presented scheme does not resolve the problem of the communication that is | ||
necessary for parties to agree and collectively sign a transaction for a | ||
multi-signature scheme. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
And we've not yet addressed limiting the overall script size, or any relation to fees.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I added this. Should we make this that "... any relation to fees apart from the additional size of the encoded script in bytes. As using multi-signature terms might incur significantly higher computational cost, this will require a specific cost-model." ?
This RFC will specify the multi-signature terms for Shelley, including their low
level format.