Inspiration

I was inspired by a problem that I faced on a daily basis when using PayNow, an inter-bank instant fund transfer service in Singapore. In a PayNow point of sale (POS) transaction, the buyer is expected to produce the payment screen, in the form of a screenshot as proof of fund transfer to the merchant. This screenshot shows the payment screen upon a successful PayNow transfer via the DBS PayLah app.

However, there exists no safeguard to protect merchants from fraudulent transactions as a malicious actor can simply produce a falsified payment screen as proof. Merchants are especially susceptible to this attack during peak business hours as they lack the time and manpower to manually vet through every transaction. As a result, some may choose to simply glace through the payment screen without scrutinizing it. Hence, I designed ProveNow, an application that aims to make PayNow POS transactions cryptographically verifiable while keeping sensitive data off chain.

What it does

ProveNow replaces payment screenshots with cryptographically verifiable proofs. A sample workflow would be as follows:

1) Upon a successful POS transaction, a QR code containing a cryptographic commitment will be generated.
2) The QR code will be sent to both the buyer and the seller.
3) Both parties can scan the QR code to verify the transaction's authenticity on the Midnight Blockchain zero-knowledge proofs.

Thus, the need to present a payment screen as proof of purchase will be abolished which prevents the tampering of payment screens.

How we built it

ProveNow was built using the Midnight blockchain and Compact smart contracts to store confidential invoice commitments and verify them using zero-knowledge proofs. The frontend is a single-page application built with React and TypeScript, allowing users to create invoices and verify QR codes through a simple, intuitive interface.

Challenges we ran into

The biggest challenge was understanding Midnight's privacy model and designing a workflow that preserved confidentiality while remaining publicly verifiable. I also had to rethink traditional invoice verification by replacing visible payment information with cryptographic commitments and proofs.

Accomplishments that we're proud of

I am proud of creating an end-to-end proof-of-concept that demonstrates how zero-knowledge proofs can improve everyday payment experiences. ProveNow shows that invoice verification can be both privacy-preserving and tamper-resistant without sacrificing usability.

What we learned

This project deepened my understanding of confidential smart contracts, zero-knowledge proofs, and privacy-preserving application design. I also learned how to design around privacy from the ground up instead of treating it as an afterthought.

What's next for ProveNow

ProveNow is still in its infancy with bare bone functionality. As a result, the next step is to polish ProveNow and develop into a full-fledge solution that can be seamlessly integrated into the existing PayNow workflow so both customers and merchants can verify real-world transactions without relying on screenshots. A dedicated mobile or web app diminishes the pros of ProveNow as it disrupts the workflow by introducing an external system that requires user interaction. Hence, the natural solution is to partner with financial institutions including the major local banks in Singapore such as DBS, OCBC and UOB, as well as POS systems namely, Qashier and Eats365.

Built With

Share this project:

Updates