tari-project / rfcs

RFC documents for the Tari protocol
3 stars 18 forks source link

feat: add aggregate signatures to transaction inputs and outputs #14

Closed hansieodendaal closed 2 years ago

hansieodendaal commented 2 years ago

Description

Added aggregate metadata and script signatures to the transaction output and input (RFC-0201) and multi-sig opcodes (RFC-0202).

Motivation and Context

This is handy for multiple parties (m-of-n) to create outputs and spend outputs.

To create a multi-party output n-of-n receiver parties need to:

To spend an m-of-n input, m parties need to agree on the m-of-n TariScript input out of band and create an aggregated script signature.

Main additions to RFC-0201 text is shown below


image

image

image

image


How Has This Been Tested?

mdbook serve renders fine

CjS77 commented 2 years ago

This is interesting, but it is should be in its own RFC.

hansieodendaal commented 2 years ago

This is interesting, but it is should be in its own RFC.

Thanks for the review, but I do not think I agree with this request, as the multi-party considerations section cannot be read on its own or without continuously referring back to RFC-0201, making it haphazard. The main theme of this PR is the impact and changes to the metadata and script signatures.

CjS77 commented 2 years ago

as the multi-party considerations section cannot be read on its own or without continuously referring back to RFC-0201, making it haphazard.

This is not true. It not haphazard to bring in applications after the basics -- you don't teach Calculus when you're introducing algebra based on the argument that calculus uses Algebra.

The key point I was making is that a newcomer reading this for the first time is already dealing with some novel concepts just to grasp TariScript. The reference to multiparty txs throughout the text makes this completely overwhelming.

The other problem is that the MP discussion is more about secret sharing than it is about TariScript.

tl;dr I still favour a separate RFC dedicated to applications of multiparty transactions. As a compromise, just remove references to multiparty txs in the main text.

Having reviewed the layout of this RFC, I see there are a few sections that are core to TariScript that have been buried in the Examples section that need to be moved up (ex cut-through and security); but we can do that in another PR.

hansieodendaal commented 2 years ago

tl;dr I still favour a separate RFC dedicated to applications of multiparty transactions. As a compromise, just remove references to multiparty txs in the main text.

Accepted, thanks

stringhandler commented 2 years ago

I am going to merge this PR, but then split it out into a new RFC