4

How will ringct transactions use non-ringct outputs to use in a ring signature? Is there any trick that gets them to work together with ringct or is it pretty simple and I am missing something?

samwellj
  • 3,215
  • 4
  • 17
  • 32

1 Answers1

5

I'd say it's pretty straightforward. In the normal situation where input and output are both Pedersen Commitments, i.e.,

C_i = x_i G + a_i H
D_j = y_j G + b_j H

, the network confirms the consistency of the CT by checking

\sum_i C_i = \sum_j D_j + f H

where f is the fee. When converting non-RingCT outputs to RingCT outputs, you simply treat non-RingCT outputs just like the fee; i.e., the masks x_i are omitted and the network checks the following:

\sum_i a_i H = \sum_j D_j + f H

Put differently, the sender randomly picks the new masks y_j such that

\sum_j y_j = 0
kenshi84
  • 2,485
  • 1
  • 14
  • 33