metadata: {"type": "project", "title": "Proof of Innocence", "logoImg": "bafkreigkrd3u77ez5uhhy4rd55eeofvztltudlehilowj3spo7gcxrpqy4", "website": "https://poi.chainway.xyz", "bannerImg": "bafkreigbzpgjt57pgkkj4dro5gy3zgmm7eyl44zzmpqyj7nbjqz6vwewhe", "createdAt": 1681846905354, "userGithub": "ekrembal", "credentials": {"github": {"type": ["VerifiableCredential"], "proof": {"jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..fHQHnx8JJGdLCDMsG0ya6z_nWBtZHyU8MHyALd-_vXGjo76DYY0U1cJRczLGek_5vMRimNHMusreL4OzjNexCA", "type": "Ed25519Signature2018", "created": "2023-04-18T19:18:29.802Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC#z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC"}, "issuer": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC", "@context": ["https://www.w3.org/2018/credentials/v1"], "issuanceDate": "2023-04-18T19:18:29.802Z", "expirationDate": "2023-07-17T19:18:29.802Z", "credentialSubject": {"id": "did:pkh:eip155:1:0xbd81B82C00ab5abADC9D33097EbEda5f5773D3A5", "hash": "v0.0.0:RA0bdVyFNMEmFCA3gF7RUhqeXvJuXrxcmkONeuY1AoI=", "@context": [{"hash": "https://schema.org/Text", "provider": "https://schema.org/Text"}], "provider": "ClearTextGithubOrg#chainwayxyz#29926881"}}, "twitter": {"type": ["VerifiableCredential"], "proof": {"jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..02AuJSN7YOFBHtrqk4YN3hXbeNBzLmhG15KBnxc7ZfE7RhJZEde2rJ2qAnJbHDiT8o7_iKe3U6KTui2H_6VhBQ", "type": "Ed25519Signature2018", "created": "2023-04-18T19:18:04.044Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC#z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC"}, "issuer": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC", "@context": ["https://www.w3.org/2018/credentials/v1"], "issuanceDate": "2023-04-18T19:18:04.044Z", "expirationDate": "2023-07-17T19:18:04.044Z", "credentialSubject": {"id": "did:pkh:eip155:1:0xbd81B82C00ab5abADC9D33097EbEda5f5773D3A5", "hash": "v0.0.0:6K1S4AdAT2XOkLLv0H7md1m4yzKjcCD0j+XF1FH4V2M=", "@context": [{"hash": "https://schema.org/Text", "provider": "https://schema.org/Text"}], "provider": "ClearTextTwitter#chainway_xyz"}}}, "description": "Tornado Cash is a popular protocol on Ethereum that allows users to make private transactions by breaking the on-chain link between the recipient and destination addresses. However, there may be instances where a user wants to demonstrate that their use of Tornado Cash is above board and not related to any illicit activity.\n\nThat\u2019s where Proof of Innocence comes in. Proof of Innocence is a tool that allows users to prove that their withdrawals from Tornado Cash are not from a list of specified deposits, selected by the user themselves. This allows users to clear their name and demonstrate their innocence without revealing their identity.\n\nCheck our [Medium Post](https://medium.com/@chainway_xyz/introducing-proof-of-innocence-built-on-tornado-cash-7336d185cda6) and [Github Repository](https://github.com/chainwayxyz/proof-of-innocence)\n\n## How it works\n![](https://miro.medium.com/v2/resize:fit:1400/0*G5QI1LMXNxLRikCY)\n\nWhen making a withdrawal from Tornado Cash, users provide a zero-knowledge proof to demonstrate that their commitment (i.e., their deposited funds) is securely held within the Tornado Cash system and has not been withdrawn. This proof, which is based on the use of a Merkle Tree data structure, allows the user to confirm the existence and status of their commitment without revealing any identifying information about themselves or their transaction history. The zero-knowledge proof therefore ensures the privacy and security of the user\u2019s funds while also enabling them to access and withdraw their commitment as needed.\n\nThe \u201c**Proof of Innocence**\u201d protocol adds an additional layer to this process by allowing users to prove that their commitment is not in a given list of commitments. This helps to ensure that the user is not a hacker or other bad actor who has been sanctioned or flagged for illegal activities.\n\nTo create this proof, the user provides the blacklisted commitments and constructs a Sparse Merkle Tree of this blacklist. This allows the user to easily and efficiently prove that their commitment is not in the blacklist. This proof can then be verified by anyone.\n\n\n## Future Plans\n\nThe project is and will remain open source\n\nWe will make trusted setup ceremony\n\nYour assistance would greatly enhance the user experience and increase the usability of the protocol.", "logoImgData": {}, "bannerImgData": {}, "projectGithub": "chainwayxyz", "projectTwitter": "chainway_xyz"}
name: Proof of Innocence