I'm currently studying about security about Monero, and I found something weird.

I know that the ouputs of Monero transactions are identified by amount and indices (amount 0 for RingCT), and the transactions are using this format.

I recently checked that "6f6f2eea2e549a69ad10246511ccc720193f1d41c9fa2c7aae0e47cb9884d898" transaction with 1,220,517 height of block is the first RingCT transaction in Monero. However, the blockchain data is showing that the output indices of the transaction is not starting with 0 index, rather starting with the index of 2. It seems to be no index 0 output within RingCT transactions.

enter image description here

Furthermore, I found that other transaction is using the 0 index of RingCT output as a mix-in in an input. I wonder what the situation is and what I am missing is.


From v4 at height 1,220,516, where rct becomes allowed, coinbase outputs are stored as pseudo rct outputs. There is one such output in block 1,220,516 and one in 1,220,517.

  • If than, I just wonder why blockchain data is not storing them with a pseudo outputs? It seems doing that way would be more clear and easy. Does the version 2 coinbase transactions can be used as inputs of RingCT and non-RingCT, and thus using pseudo indices and real indices for each, respectively? – Ilak Jan 4 at 2:58
  • They can only be used as inputs to rct txes. – user36303 Jan 4 at 17:43
  • Thank you for your answer. Can I ask you some related document if exists? or Do I have to see the code? – Ilak Jan 5 at 2:03
  • Can't think of anything beyond code. – user36303 Jan 6 at 1:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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