Skip to content

feat: add first version of the prover of sent UTXO#903

Open
skaunov wants to merge 11 commits into
Neptune-Crypto:masterfrom
skaunov:theFirstNonConsensus
Open

feat: add first version of the prover of sent UTXO#903
skaunov wants to merge 11 commits into
Neptune-Crypto:masterfrom
skaunov:theFirstNonConsensus

Conversation

@skaunov

@skaunov skaunov commented Apr 9, 2026

Copy link
Copy Markdown
Member

this version is limited to native coin without the time-lock

it's the first Non-consensus Triton program in the system available to an user

it was already discussed in depth since I did not know with which part to start (the other part is the reserves proving)

@codspeed-hq

codspeed-hq Bot commented Apr 9, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 5 untouched benchmarks


Comparing skaunov:theFirstNonConsensus (a2aa823) with master (136f58a)

Open in CodSpeed

@skaunov skaunov requested a review from aszepieniec April 11, 2026 03:42
@aszepieniec

Copy link
Copy Markdown
Contributor

I wonder if there's a integration test that also verifies a successfully generated proof-of-transfer? I don't see it but I might be missing something.

@skaunov

skaunov commented Apr 14, 2026

Copy link
Copy Markdown
Member Author

@aszepieniec
An example, pls? Each time I get to this topic I receive no answer. 🙃 #799 (comment)

@aszepieniec

Copy link
Copy Markdown
Contributor

Have a look at neptune-core/tests/send_and_receive_basic.rs. I guess it doesn't cover the RPC layer but it does cover everything underneath that has to do with sending and receiving.

@skaunov skaunov force-pushed the theFirstNonConsensus branch 3 times, most recently from 3ee2de8 to 946a7d7 Compare April 17, 2026 23:22

@aszepieniec aszepieniec left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I should like to try to send you a proof-of-transfer of a payment that never happened.

  • If I fail, then that helps to convince me that the construction is sound.
  • If I succeed, then that ought to convince you that the construction is not sound.

However, as far as I can see, all changes are in neptune-core/. I don't see how you would process that proof-of-transfer, even if I managed to generate one. I would have expected a neptune-cli command, or a new option in neptune-dashboard. Just exposing a new RPC interface is not enough. It doesn't make any sense to have proofs-of-anything if no-one is capable of verifying them.

@skaunov

skaunov commented Jun 3, 2026

Copy link
Copy Markdown
Member Author

@aszepieniec

Let me add this there. Is there any way to see sent txs? I have not found last time I checked. An answer would help to make this smoother, as without that I could offer only what will come to my snall mind.

P.s. Probably it's because I struggle a bit to wrap my head around those starting from why it's a different crate instead of maybe a feature of the core. I guess I was trying to get it at #861 .

@aszepieniec

Copy link
Copy Markdown
Contributor

Is there any way to see sent txs?

Not presently, no.

I guess this is the down side of a privacy preserving ledger. There is no link between the individual user-initiated transactions and the aggregate transactions that appear in blocks on the blockchain. So a minimalistic client that deals just with blockchain data doesn't know what to show the user.

I recall articulating a desire once for a UiTransaction which has no mechanical effect except to track transactions initiated by the user and display them properly in the user interface. However, I can't find that term mentioned in the issues.

@skaunov skaunov force-pushed the theFirstNonConsensus branch from d072a6e to ea3fd05 Compare June 14, 2026 04:20

@skaunov skaunov left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added both commands (prove-an-transfer, verify-transfer, sorry for the names - just change any after merging). I started to document it too but stopped myself: probably something will change again, and you will be reviewing the code anyway which seems to be self-explaining. And I'm glad to provide docs/explanations if/where those would help. In short proving command takes optional args and without these it just proves all the coins (except change) for last sent via the tip of the node.

Let's try this out like you said, pls!

@skaunov skaunov requested a review from aszepieniec June 15, 2026 03:27
skaunov added 2 commits June 20, 2026 06:49
to save all succesful proofs in different files
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants