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?

1 Answer 1


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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.