diff --git a/docs/zkSBT/About.md b/docs/zkSBT/About.md new file mode 100644 index 00000000..78319401 --- /dev/null +++ b/docs/zkSBT/About.md @@ -0,0 +1,21 @@ +# About NPO -zkSBT + +Manta Network's [NPO platform](https://npo-evm.manta.network) (NFT private offering platform) is set to revolutionize how users generate and mint zkNFTs/zkSBTs. NPO is an NFT/SBT launchpad that leverages Manta Network's zkAddress tooling and MantaPay ZK circuits to privately mint NFTs/SBTs on zkAddress, while using public tokens to pay for minting fees. With Manta's zkNFTs/zkSBTs, developers can build web3 or web2 applications without in-depth knowledge of cryptography or ZKP. The plug-and-play connection with zkNFTs/zkSBTs enables applications to be quickly developed on mobile, opening up new opportunities for developers to create zkNFT/zkSBT projects, including mobile applications, DApps, and projects based on NPO. + +## General use cases of zkSBTs: + +In general, zkSBT is a great private onchain data verification method, especially for mobile applications. Although some account abstraction/MPC wallets like Particle and Unipass bring a great seedless and gasless user experience for mobile apps, it’s still very hard to verify KYC info, credentials, game items, crypto assets that are not connected to these wallets in mobile. There are mainly four use cases for NPO: + +1. Decentralized user friendly compliance: KYC is a $1.6 trillion market and has huge demand from both the web2 and web3 world; even in the fully decentralized dark forest, it's very important to know whether it's a real user or its a bot. For example, there are more than 300m addresses on BNB Chain while only 30m active users use Binance. How to identify the bots is a real issue. With zkBAB and zkGalxe, users can use their proof key to prove they are a KYCed real user without disclosing their identity information and without connecting their wallet. This product gives users an option to use existing KYC info at Binance or Galxe to verify their identity in Web2 and Web3 Apps. Currently [many apps already support](https://twitter.com/MantaNetwork/status/1661538809585221636?s=20) the zkSBT as a KYC tool. + +2. Private credential for onchain activities campaigns: Onchain campaign platforms like Galxe and Cyberconnect have huge volume, but a lack of on-chain privacy–everyone can see the platform activities. Also, users have to approve the wallet everytime they verify their onchain credentials. Furthermore, it’s also limited to different chains for different credentials. Using zkSBT, the credentials can be verified with privacy. There is no need to connect a wallet to verify the onchain credentials with proof keys, and the credentials can be verified in a multichain or multiplatform manner. + +3. zkSBT as Game/Social Items: A good example of it is Ultiverse and ReadON zkSBTs. These are able to launch on Manta and use in their mobile apps. These items users mint on Manta chain can also be used in other apps at the same time, but mainly are in their own apps that provide in-app utility without connecting a wallet. + +4. Assets verification: This should be the most important and frequently used product for zkSBT. With [Pomp](https://twitter.com/AppPOMP) (Proof of my possession), users can generate zkSBTs to prove their certain token assets range (like 100+ Ethereum, 8-figure PEPE etc.) or they are a certain NFT holder like Milady NFT holder zkSBT. This will be needed like an onchain bank statement but with privacy. Also based on this information, there can be products like private degen score and private credit score system. This can be used in Web2/Web3 financial or membership user scenarios. + +
+
+ npo +
+
\ No newline at end of file diff --git a/docs/zkSBT/Benefits.md b/docs/zkSBT/Benefits.md new file mode 100644 index 00000000..6190b1dd --- /dev/null +++ b/docs/zkSBT/Benefits.md @@ -0,0 +1,15 @@ +# Benefits of Manta's NPO + + +## Reduced User Friction: +By utilizing Manta's NPO platform, onboarding users will be simpler, smoother, and less complicated. This means that there will be a lower level of user friction, allowing for an increased user base and improved user experience. +## Onboarding Web2 to Web3 Users: +Manta's NPO platform is an excellent tool for onboarding web2 users to web3 applications. This allows for a wider audience to be reached, promoting the adoption of blockchain technology. +## KYC Issues Resolved: +Manta's NPO platform also addresses KYC (Know Your Customer) issues by utilizing zkSBTs, which are minted with user KYC information. This allows for the verification of user identity without revealing sensitive personal information. +## Regulatory Compliance: +The current regulatory framework for decentralized applications is becoming increasingly strict. By utilizing zkSBTs, projects can address these regulatory concerns and remain compliant with the applicable laws and regulations. +## Manta’s Ecosystem Support +Manta offers various types of support that can benefit your app or project. Manta can refer your app to its extensive ecosystem of more than 100,000 on-chain users who have undergone KYC verification. Additionally, Manta's incubation partners can provide further assistance to help accelerate your growth. +## Manta’s Marketing Support to Boost Your User Growth +Manta also provides marketing support, including featuring your app on its Twitter channel and creating tailored articles and newsletters on Medium. Manta's marketing efforts have a broad reach, including leading VCs in the industry, which can help increase your visibility and attract potential investors. \ No newline at end of file diff --git a/docs/zkSBT/zkSBT Design V2.md b/docs/zkSBT/zkSBT Design V2.md deleted file mode 100644 index 3ff218e0..00000000 --- a/docs/zkSBT/zkSBT Design V2.md +++ /dev/null @@ -1,86 +0,0 @@ -# zksbt : design V2 - -## zksbt V1 问题 -zksbt V1集成(POMP)下来发现新的需求 -- 同一个category/attribute的pomp要能够mint多次,通过verify time来区分. -- pomp幅度(range)较多. -- npo/pomp 上新较多,减少合约上新流程. (第一个mint时创建group) - - -semaphore 现有的merkle tree membership prove不太适用 : -- NPO/POMP上新类别多,特别是POMP,多条链,各种资产,各种不同的Range,每个组合都是一个semaphore group,每次上新,需要发送大量交易 -- depth 32 group中add member需要>1M的gas cost(ETH 2000U, gas price 0.1G, 约为0.2U) - - - - - - -## V2 - -1. merkle tree group保留on-chain privacy verify的可能性 - - depth 16, 降低mint gas - - leave存储 hash(identity, sbt_id, verify_time) -2. sbt id 唯一 -3. hash(attribute), 作为public input. - - 上新只需要上category, 而range作为sbt的metadata信息. privacy verify时使用. -5. circuit 中验证timestamp - - privat verify_time >= given public begin_verify_time - - privat verify_time <= given public end_verify_time, - - -```mermaid - -flowchart LR - %%style at fill:#EE784E,stroke:#EE784E,stroke-width:1px - %%style ar fill:#EE784E,stroke:#EE784E,stroke-width:1px - %%style vt fill:#EE784E,stroke:#EE784E,stroke-width:1px - style sbt fill:#EE784E,stroke:#EE784E,stroke-width:1px - - style vt fill:#EE784E,stroke:#EE784E,stroke-width:1px - - style H6 fill:#85E8C2,stroke:#85E8C2,stroke-width:1px - - style GT1 fill:#85E8C2,stroke:#85E8C2,stroke-width:1px - - style GT2 fill:#85E8C2,stroke:#85E8C2,stroke-width:1px - - style beginv fill:#15E8C2,stroke:#15E8C2,stroke-width:1px - - style endv fill:#15E8C2,stroke:#15E8C2,stroke-width:1px - - style attribute fill:#15E8C2,stroke:#15E8C2,stroke-width:1px - -s(PRIV - Siblings) & pi(PRIV - Path Indices) --> M1((MT Verifier)) --> mr(PUB - MT Root of asset/range) - it(PRIV - Identity Trapdoor) & in(PRIV - Identity Nullifier) --> H2((Poseidon Hash)) --> |Secret| H3((Poseidon Hash)) --> |Identity Commitment| H6((Poseidon Hash)) --> |Per SBT Identity| mr - - %%at(PUB asset_type) & ar(PUB - asset_range) & - %%vt(PUB - verify_time) & -sbt(PRIV - zkSBT_id) --> H6 -vt(PRIV - verify_timestamp) --> H6 -attribute(PUB - attribute) --> H6 - - - -in(PRIV - Identity Nullifier) & en(PUB - External Nullifier) --> H4((Poseidon Hash)) --> n(PUB - Nullifier) - - -vt --> GT1 -beginv(PUB - beginVerifyTimestamp) --> GT1 - -endv(PUB - endVerifyTimestamp) --> GT2 -vt --> GT2 - -%%sig(PUB - Signal Hash) --> S1((Square)) -``` \ No newline at end of file diff --git a/sidebars.js b/sidebars.js index 6264f38f..966fc3f0 100644 --- a/sidebars.js +++ b/sidebars.js @@ -124,7 +124,7 @@ module.exports = { }, { type: "category", - label: "zkSBT", + label: "NPO-zkSBT", items: [ { type: "autogenerated",