ENCOINS protocol currently has these limitations:
ENCOINS backend and protocol upgrades:
This is the total amount allocated to ENCOINS v2: privacy protocol on Cardano. Smart contract and backend development.
NA
We rely on CIP-0381 (BLS signatures) to become active in delivering our project. According to our information, it is planned for the next hardfork. The protocol would also greatly benefit from the CIP-0038. However, the latter is not a strict requirement.
The project will be fully open source.
A brief description of the ENCOINS protocol
ENCOINS is a privacy protocol on Cardano. Users can create NFTs (a.k.a. encrypted coins or encoins) with secret redeeming values. These NFTs store their redemption values (ADA) in the encrypted format using zero-knowledge proofs. A user can burn a coin to redeem its value from the protocol. You can send, gift, or trade encoins as any other NFT.
The protocol has a second mode of operation called the ENCOINS Ledger Mode. In this mode, users can store their coins directly in the protocol (at the Cardano script address). Thus, it is possible to make confidential payments even without having a Cardano wallet.
We have several partnerships inside the Cardano ecosystem currently in the works. All of them provide meaningful, practical use cases for the protocol. Some could be announced any day now.
The current limitations of ENCOINS v1 in more detail
Only ADA is currently supported as an asset that can be wrapped into encoins.
This limits the potential for interactions with DeFi protocols. Besides that, we have received many requests to extend the protocol to NFTs, as the NFT collectors' wallets are particularly easy to track.
Only a few encoins can be minted/burned in a transaction.
In the current implementation (v1), the ExUnit costs become prohibitively expensive when trying to consume too many inputs or produce too many outputs due to all the conditions that must be checked for each input or output. As a result, we restricted the number of minted/burned encoins to 5 in the Wallet Mode and 4 in the Ledger Mode.
The protocol is not fully decentralized yet.
While the protocol is already decentralized in almost every aspect, v1 relies on trusted verifiers presenting single points of failure.
P2P interactions between users are cumbersome.
Currently, peer-to-peer interactions in the protocol require some unstructured off-chain communications (i.e., transmitting the minting key to the recipient). Also, there is no easy way to do collaborative transactions.
The key features of ENCOINS v2
Native asset support.
With this upgrade, both NFTs and regular tokens can be traded confidentially (essentially, OTC). We expect to partner with DEXs and NFT marketplaces around these trading capabilities of ENCOINS v2.
Scaling, security, and decentralization with new Plutus primitives.
The upcoming BLS signatures will allow us to create a pure zero-knowledge Plutus Script where all the minting conditions are checked inside the arithmetic circuit (i.e., off-chain), while the Plutus script only checks the validity of the zero-knowledge proof. In simple terms, we could handle dozens of mints and burns in a single transaction.
For example, this could be used to reduce users' fees by bundling transactions together (collaborative transactions) or enabling other use cases.
In addition, with the introduction of BLS signatures, zero-knowledge proofs will be verified fully on-chain, thus making the protocol fully decentralized.
P2P features.
We plan to implement the non-interactive minting key sharing scheme, i.e., it does not require a user action and happens in the background. The idea was previously introduced to our community as ENSHARE. This will significantly improve the UX when using the protocol.
We also plan to implement a protocol for collaborative transactions that utilize multi-party computations (MPC) so that the value of each encoin remains confidential even from other transaction participants.
A grant from the Project Catalyst Fund6 kickstarted the ENCOINS protocol. Since then, we went fully open-source, releasing the code for both our frontend and backend for the general Cardano community. Of our 12 public code repositories,
As a byproduct, the planned upgrades to our protocol will generate a nontrivial and practical example of a Plutus smart contract that fully utilizes the upcoming Plutus Core language upgrades.
The grant will allow us to refine and expand our existing codebase, creating more reusable components for the Cardano developer ecosystem.
The more user needs we, as the developer community, can satisfy, the faster Cardano will grow.
Once our project launches on the mainnet, we will track the number of transactions and TVL of the protocol.
In addition, the success will be measured in the number and quality of collaborations with other ecosystem projects.
Finally, we value and consider the opinion of our community and our fellow ecosystem builders.
As the project is open-sourced, the results (the code) will be shared and promoted through our project's social media channels to the broader Cardano community. We also participate in interviews and community events that share and expand knowledge about building cutting-edge Dapps inside the community.
Besides this proposal, we are also submitting a proposal that brings many improvements to the ENCOINS Dapp frontend.
We have already delivered ENCOINS v1 (now on the testnet). ENCOINS v1 was the goal of our previous Project Catalyst proposal back in Fund6. Though we initially underestimated the realistic deadlines for that project, we over-delivered in terms of what was promised, not only building a private transaction protocol but also creating reusable open-source components for the ecosystem, designing a decentralized token distribution protocol, and providing quality end-to-end code examples of Cardano applications.
The team consists of highly skilled Haskell developers and is led by a Ph.D. in applied math with five years of postdoc experience.
The main goal of this project is to provide Cardano users with a confidential transaction solution. We assume that by satisfying more people's needs, we bring more users to the ecosystem and increase engagement and opportunities within the ecosystem. For example, we have received many requests to add an "NFT encryption" feature to make owning an extensive NFT collection safer and more secure. This will be solved with the native asset support feature.
Please see also the section above on measurable metrics.
The feasibility of our approach is partially validated by the fact that version one of the protocol is already running on the Cardano testnet at app.encoins.io.
Milestone 1: Upgrade our developer tools.
2 months
Milestone 2: Implement the new ENCOINS Plutus script and the corresponding arithmetic circuit for ZKPs.
2 months
Milestone 3: Implement off-chain code for all types of transactions in ENCOINS v2.
2 months
Milestone 4: Implement the P2P communication protocols for key-sharing and collaborative transactions.
4 months
The acceptance criteria for each milestone is the evidence that the code has been produced and successfully tested. Because our project depends on Cardano upgrades, we cannot promise that ENCOINS v2 will be running on the mainnet after ten months, though we believe it is highly likely.
Milestone 1: Our backend server will add more integrations (for example, with Scrolls). Transaction builder functionality will be extended. Smart contract testing automation in our tools will be significantly improved. Unit tests.
Milestone 2: Specification document for the new ENCOINS smart contract. The code for both the new Plutus script and the arithmetic circuit. Tests.
Milestone 3: Off-chain code for all types of transactions. Tests.
Milestone 4: Specification document for the P2P protocols. Implementation in Haskell.
Protocol design and documentation: 160 hours
Educational materials: 40 hours
Backend development: 1500 hours in total
Total hours: 1700
Total cost: 85 000 $
This is a relatively big project with the goal of producing a unique, best-in-class protocol and DApp. We estimate the project to span over ten months, with our backend developer working on it full-time. The average cost of development per hour is 50$.
We keep the same team that brought you ENCOINS v1. Potentially we could hire another smart contract developer to speed up the project, but it is not a requirement for the proposed timeline.
Protocol design, documentation, and on-chain code
Vladimir Sinyakov,
PhD, Founder and Protocol Architect,
https://www.linkedin.com/in/vladimir-sinyakov/
Designed ENCOINS v1 protocol and implemented on-chain scripts and off-chain transaction-building logic. Prior experience includes five years of postdoc in applied math (control theory), publishing in top journals in the field.
Backend development
Grigory Petrov,
Backend Developer (Haskell)
Implemented our backend library called cardano-server and our backend tools, including the relayer app and decentralized token distribution app.