[W4] - Zicket 🏅

Zicket leverages zk proofs to protect against bots and people buying multiple tickets while ensuring the anonymity of the buyer. It is a plugin that any ticket-selling platform can integrate, and we plan to build using PolygonID.

Challenges

Deploy a Dapp on an L2 using Infura and Truffle

Pool 1,000 USDC

Zicket is a plugin developed on Polygon. We utilized Infura to create the Zicket ID Wallet. Zicket is a solution that can be seamlessly integrated into any ticket-selling platform, effectively preventing ticket resale. During the purchase process, buyers are not obligated to reveal their identities or provide any personal information to the ticket-selling platform. Anonymity is increasingly becoming one of the most important aspects of the future.

Most Useful Web3 Tool

Ranked 2,500 ETH

Zicket as a solution can be integrated into any ticket-selling platform while preventing reselling. During the purchase, the buyer does not reveal his identity and is not required to leave any piece of personal information to the ticket-selling platform.

Best Use of Polygon

Ranked 10,000 ETH

Zicket represents one of the PolygonID use cases. PolygonID allows its users to prove their identities using zk proofs, which is also the core and essence of our solution. We used PolygonId-Flutter-sdk which allowed us to use the public and the private key of the users to implement our solution in an elegant way, all while keeping the PolygonId functionalities and creating Zicket ID Wallet.

#BUIDLathon 2023 Impact + Public Goods Track

Pool 15,000 MATIC

Zicket as a solution can be integrated into any ticket-selling platform while preventing reselling. During the purchase, the buyer does not reveal his identity and is not required to leave any piece of personal information to the ticket-selling platform. Anonymity represents one of the most important aspects of the future.

zkBob Bounty

Pool 10,000 USDC

Zicket as a solution can be integrated into any ticket-selling platform while preventing reselling. During the purchase, the buyer does not reveal his identity and is not required to leave any piece of personal information to the ticket-selling platform. Anonymity represents one of the most important aspects of the future. Our team consists of two members, and currently, we haven't had sufficient time to integrate zkBob technology into our solution. However, after learning about zkBob during the Main event, we are eager to implement it into Zicket's payment process, thus ensuring private and secure transactions.

Polygon ID Challenge

Ranked 2,500 ETH

Zicket represents one of the use cases for PolygonID. PolygonID enables users to verify their identities using zero-knowledge proofs (zk proofs), which is the fundamental aspect of our solution. We leveraged the PolygonId-Flutter-SDK to elegantly implement our solution by utilizing the users' public and private keys while retaining the functionalities of PolygonID, resulting in the creation of the Zicket ID Wallet.

👛 Wallet Logic!

Ranked 8,500 USDC

The Zicket ID Wallet is an identity wallet that securely stores all claims. We built upon the PolygonID wallet, utilizing the Polygonid-Flutter-sdk, and expanded its functionalities to create Zicket ID Wallet. Zicket is a solution that can be seamlessly integrated into any ticket-selling platform, effectively preventing ticket resale. During the purchase process, buyers are not obligated to reveal their identities or provide any personal information to the ticket-selling platform. Anonymity is becoming increasingly important, especially for the future.

Project details

Zicket - the anon buyer's ticket

## About

Zicket is a solution to the scalping problem raised by Vitalik Buterin at ETH Mexico 2022 (https://www.youtube.com/watch?v=rp3cDq2LiBM). Currently, people can buy multiple conference tickets at once, which is a problem because it encourages ticket misuse and allows bots to resell tickets at inflated prices. Our solution uses zk proofs to allow buyers to remain anonymous, while also limiting ticket orders to one per person and making the tickets non-transferable. Our goal is to prevent ticket scalping and protect buyers' privacy.

A good example of reselling gone wrong is a group of people who managed to trick the system for EthCC, purchasing 200 tickets with a plan to resell them. But when the conference organizers stripped the NFTs of their metadata, the resellers realized that the plan had fallen apart. They spent about $68k for 200 tickets that were useless (https://rekt.news/ethcc-detychey-vs-touts/).

## Problem Statement

The problem we're addressing is the tension between buyers who want to remain anonymous when purchasing event tickets and organizers who need to ensure that the person using the ticket is the original buyer. Current solutions that can be integrated into ticket-selling platforms without compromising privacy are limited, which is why we created Zicket to tackle multiple issues at once.

## Solution

Zicket is a plugin that can be integrated into any ticket-selling platform. It enables buyers to remain anonymous by using zk proofs generated using PolygonID. To be sure, that the DID from our ZicketID Wallet is correct we use the Merkle tree, which stores hashes of private keys of the corresponding DIDs. To prevent the purchase of more than one ticket, we have a second Merkle tree, which is used to input the hash of the private key after the ticket has been successfully purchased. It also verifies whether the buyer already has a ticket, and if they do, they cannot purchase another one. Tickets are then sent to the buyer's wallet and made non-transferable, preventing reselling and protecting buyers from inflated prices.

## How we used Polygon

We used the Polygon Flutter SDK to create an Identity Wallet that stores the Proof of Humanity claim and the Proof of ticket purchase, which is not in the set of nullifiers. By using Polygon, we ensure that Zicket is efficient, and scalable and provides an easy and simple buyer flow from registration to the ticket claim.

Link to the extended Polygon ID Wallet also known as Zicket ID Wallet: https://github.com/marija-mijailovic/zicket-polygonid-flutter-sdk.git