OpenFlow is a tool designed to ensure transparency in financial transactions while preserving privacy. It leverages zero-knowledge proofs to allow organizations to audit transactions publicly without exposing the identities of the involved third-parties.
Whether you're managing institutional payments, political campaigns, or welfare transactions, OpenFlow ensures transparency without compromising privacy.
Explore the demo video and view an instance of the app here, showcasing real donation data from the Independiente Football Club fundraiser led by Santi Maratea in 2023. You can view donation amounts, dates, and verify each transaction made via Mercado Pago, all while keeping donor data confidential.
Find the different parts of this project in the links below.
- Demo: Find in this link a working demo of an OpenFlow campaing on a futbol club fundraiser.
- Front-end Code: This directory contains the source code for the front-end application, including UI components, state management, and API blockchain integrations.
- Smart Contract Code: This directory includes the NFT smart contract code. This contract mints the NFTs indexing by the CIDs. (Avalanche Snowtrace Verified Deployment, Polygon Amoy Verified Deployment, ZkSync Sepolia Verified Deployment).
- Back-end Code: This directory contains the source code for the back-end application.
- ZK Circuits Code: This directory contains the code for the circuits and all the zk-knowledge logic.
OpenFlow uses cutting-edge cryptography to balance transparency and privacy in financial transactions. The following steps, illustrated in the accompanying flowchart, summarize how OpenFlow processes an institution's transactions into a traceability report:
flowchart TD
A[.eml Email File] --> B[ZK Regex and ZK Email]
B --> C[Generate JSON]
C --> D[
JSON:
- name
- description
- image_url
- external_url
- attributes:
- proof
- amount
- type
- date
- reference_id
]
D --> E[Upload JSON to IPFS/FileCoin \n via LightHouse]
E --> F[Mint CID]
F --> G[Sign Transaction]
G --> H[Send RPC Calls]
H --> I[zkSync RPC]
H --> J[Avalanche RPC]
H --> K[Polygon RPC]
I & J & K --> L[NFT Indexing Instance]
style D fill:none,stroke:#333,stroke-width:1px,stroke-dasharray: 5 5
- Setup Campaign: Organizations setup and initiate an OpenFlow campaign. They determine on which blockchain the transaction certificates will be minted (e.g., Zksync, Avalanche, Polygon) and establish the payment method (e.g., Mercado Pago).
- Register Transactions: Transactions from third-parties that send funds to the organization, or receive funds from it, are registered by OpenFlow backend, which generates a JSON containing the details of the transaction email and zero-knowledge proof that the transaction occurred, all while keeping identities of these third-parties private.
- Upload to Decentralized Storage: The JSON associated with each transaction is uploaded to IPFS and FileCoin via LightHouse.
- Mint NFTs: NFTs corresponding to these JSONs are minted on the blockchain chosen by the institution.
- Real-time Public Reports: The public can access real-time, transparent reports showing how the funds move and eventually reach their intended destination, ensuring accountability.
OpenFlow is an open-source project developed by Nicolás Biondini, Yago Pajariño, Alejandro Almaraz, Nicolás Acosta and Arturo Beccar-Varela. With expertise in blockchain, cryptography, and front-end development, we aim to bring trust and privacy to financial transactions.
OpenFlow was initially developed as part of the Aleph Crecimiento Hackathon, 2024. We participated in this hackathon through the PSE Core Program, where we deepened our knowledge of programmable cryptography and zero-knowledge proofs.
In partnership with D&D Fundacion, we are committed to solving the transparency and privacy challenges that institutions face when handling funds of public interest.
This project is licensed under the AGPLv3 License - see the LICENSE file for details. Contact us if you're looking for an exception to the terms.