# How do ringct transactions use previous non-ringct outputs in a ring signature with ringct?

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?

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