1

For example, we have RCTTypeNull, RCTTypeSimple and RCTTypeFull.

If I were to make a change that was not backwards compatible to RCTTypeSimple, is this versioned in some way, or is another type of tx created?

I ask if another type of tx is created because we also have RCTTypeBulletproof and RCTTypeBulletproof2.

jtgrassie
  • 19,601
  • 4
  • 17
  • 54
WeCanBeFriends
  • 670
  • 3
  • 7

1 Answers1

2

Transactions have a version field (see here and here, which is currently 2, RingCT). However RingCT signatures also specify a type in rct_signatures.type. RCTTypeSimple etc, are the type of RingCT signature used and are defined here.

Therefore it depends what you intend on changing (transaction / signatures), that would determine which field(s) you should change to ensure backwards compatibility.

If you intend on doing away with RingCT altogether, you would of course change the transaction version field.

If you intend on creating a new type of RingCT signature, you would create a new signature type.

jtgrassie
  • 19,601
  • 4
  • 17
  • 54