diff --git a/app/page.tsx b/app/page.tsx index 4402d93..cdf9d6c 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -1,20 +1,20 @@ import Image from "next/image" import Link from "next/link" -import ArrowUpVector from "@/public/arrow-right-up-line.svg" -import ArrowRightVector from "@/public/arrowright-vector.png" -import PSEIcon1 from "@/public/pseicon-1.svg" -import PSEIcon2 from "@/public/pseicon-2.svg" -import PSEIcon3 from "@/public/pseicon-3.svg" -import PSELogo from "@/public/pselogo-homepage.png" +import PSELogo from "@/public/icons/archstar.webp" +import ArrowRightVector from "@/public/icons/arrow-right.svg" +import PSEIcon1 from "@/public/icons/pseicon1.svg" +import PSEIcon2 from "@/public/icons/pseicon2.svg" +import PSEIcon3 from "@/public/icons/pseicon3.svg" import { siteConfig } from "@/config/site" import WhatWeDo from "@/components/sections/WhatWeDo" +import { ArrowRightUp } from "@/components/svgs/arrows" export default function IndexPage() { return (
-
-
+
+
Privacy + Scaling Explorations
@@ -22,19 +22,21 @@ export default function IndexPage() { Programmable cryptography for people like you -

- Explore The Project Library -

- arrowvector + +

+ Explore The Project Library +

+ arrowvector +
-
- pselogo +
+ pselogo
@@ -43,13 +45,13 @@ export default function IndexPage() {
pseicon1 -

+

Learn and Share -

+

-

+

Diving into Plonk accumulation via aPlonk by Ralph Toledo -

+

-

+

Watch -

- arrowup +

+
pseicon1 -

+

Learn and Share -

+

-

+

Folding Circom Circuit: A ZKML Case Study - Dr. Cathie So -

+

-

+

Watch -

- arrowup +

+
pseicon1 -

+

Event -

+

-

PSE @ETH Global Paris

+

PSE @ETH Global Paris

-

+

Attend -

- arrowup +

+
pseicon1 -

+

Blog Post -

+

-

+

zkEVM Community Edition Part 3: Logic and Structure -

+

-

+

read -

- arrowup +

+
-
+

Who we are @@ -175,12 +178,7 @@ export default function IndexPage() {
Say Hi On Discord
- arrowupvector +

diff --git a/app/projects/[id]/page.tsx b/app/projects/[id]/page.tsx index 6258cef..e1ade5a 100644 --- a/app/projects/[id]/page.tsx +++ b/app/projects/[id]/page.tsx @@ -1,11 +1,11 @@ "use client" import NextImage from "next/image" +import NextLink from "next/link" import { usePathname } from "next/navigation" -import GithubVector from "@/public/githubblack-vector.svg" -import GlobalVector from "@/public/globeblack-vector.svg" -import SkyNoMoonBg from "@/public/skynomoon.png" -import TwitterVector from "@/public/twitterblack-vector.svg" +import GithubVector from "@/public/social-medias/github-fill.svg" +import GlobalVector from "@/public/social-medias/global-line.svg" +import TwitterVector from "@/public/social-medias/twitter-fill.svg" import { projects } from "@/config/projects" import Breadcrumbs from "@/components/breadcrumbs" @@ -28,58 +28,99 @@ export default function ProjectDetailPage() { } }) + const findProject = projects.filter( + (project) => String(project.id) === router.split("/").slice(1)[1] + )[0] + + const githubLink = findProject.links.github + const twitterLink = findProject.links.twitter + const websiteLink = findProject.links.website + return (
-
-
-
- -
-
+

- RLN or longer project name goes here + {findProject.name}

-
- -

Github

-
{" "} -
- -

Website

-
{" "} -
- -

Twitter

-
+ {githubLink !== "none" && ( + +
+ +

Github

+
+
+ )} + {websiteLink !== "none" && ( + +
+ +

Website

+
+
+ )} + {twitterLink !== "none" && ( + +
+ +

Twitter

+
+
+ )}
-

- Lorem ipsum dolor sit amet consectetur. Gravida nibh amet amet - tristique. Ornare adipiscing sed semper sed egestas eget sed non - faucibus. -

+

{findProject.tldr}

-
-

Image Ratio

-
-
-

+ {findProject.image ? ( +
+ +
+ ) : ( +
+ )} +
+

{`RLN is a protocol that allows one user to punish another user who is abusing the rate limit in an anonymous system. Users can withdraw the offender's stake or reveal their secrets, helping to maintain system integrity via deterrence. RLN is built using the Semaphore protocol.`} -

-

+

+

{`This project is aimed at developers looking to stop spam while preserving anonymity within a system. If you're working on communication systems such as chat apps, client-server @@ -87,7 +128,7 @@ export default function ProjectDetailPage() { maintain privacy and anonymity while preventing abuse in the form of spam and denial of service attacks. This ensures a safer and more enjoyable user experience for your application's users.`} -

+

diff --git a/app/projects/page.tsx b/app/projects/page.tsx index cfb5468..d74297f 100644 --- a/app/projects/page.tsx +++ b/app/projects/page.tsx @@ -3,9 +3,8 @@ import NextImage from "next/image" import NextLink from "next/link" import { useRouter } from "next/navigation" -import GithubVector from "@/public/github-vector.svg" -import GlobalVector from "@/public/globe-vector.svg" -import SkyNoMoonBg from "@/public/skynomoon.png" +import GithubVector from "@/public/social-medias/github-fill.svg" +import GlobalVector from "@/public/social-medias/global-line.svg" import { projects } from "@/config/projects" @@ -14,17 +13,7 @@ export default function ProjectsPage() { return (
-
-
-
- -
-
+

Explore the project library @@ -37,20 +26,26 @@ export default function ProjectsPage() {

Showing 24 projects

-
+
{projects.map((item, index) => { - const githubLink = item.links.find((links) => links?.github)?.github - const websiteLink = item.links.find( - (links) => links?.website - )?.website return (
router.push(`/projects/${item.id}`)} - className="flex h-[420px] w-full cursor-pointer flex-col" + className="flex h-full w-full cursor-pointer flex-col md:h-[500px]" > -
-
+
+ {item.image.length > 0 ? ( + + ) : ( +
+ )} +
+

{item.name}

{item.tldr}

e.stopPropagation()} > @@ -71,7 +66,7 @@ export default function ProjectsPage() { /> @@ -84,7 +79,6 @@ export default function ProjectsPage() { />
-

updated 2 weeks ago

) diff --git a/components/main-nav.tsx b/components/main-nav.tsx index 5ea2e3f..55ce82f 100644 --- a/components/main-nav.tsx +++ b/components/main-nav.tsx @@ -3,7 +3,7 @@ import NextImage from "next/image" import Link from "next/link" import { usePathname } from "next/navigation" -import PSELogo from "@/public/pselogo-header.svg" +import PSELogo from "@/public/logos/header-logo.svg" import { NavItem } from "@/types/nav" diff --git a/components/site-footer.tsx b/components/site-footer.tsx index de1e564..4b37775 100644 --- a/components/site-footer.tsx +++ b/components/site-footer.tsx @@ -1,13 +1,16 @@ import NextImage from "next/image" import NextLink from "next/link" -import ArrowVector from "@/public/arrow-right-up-line.svg" -import DiscordLogo from "@/public/discord-white.png" -import EllipseLogo from "@/public/ellipse-white.png" -import GithubLogo from "@/public/github-white.png" -import PSELogo from "@/public/pselogo-footer.svg" -import TwitterLogo from "@/public/twitter-white.png" +import PSELogo from "@/public/logos/footer-logo.svg" import { siteConfig } from "@/config/site" +import { + Discord, + Github, + Mirror, + Twitter, +} from "@/components/svgs/social-medias" + +import { ArrowRightUp } from "./svgs/arrows" export function SiteFooter() { return ( @@ -36,7 +39,7 @@ export function SiteFooter() { className="flex items-center gap-5 py-5" > JOBS - +
@@ -46,12 +49,7 @@ export function SiteFooter() { target="_blank" rel="noreferrer" > - + - + - + - +
diff --git a/components/site-header-mobile.tsx b/components/site-header-mobile.tsx index 792bb49..e7bea2a 100644 --- a/components/site-header-mobile.tsx +++ b/components/site-header-mobile.tsx @@ -3,15 +3,17 @@ import { useState } from "react" import NextImage from "next/image" import NextLink from "next/link" -import ArrowVector from "@/public/arrow-white-vector.png" -import CloseVector from "@/public/close-vector.png" -import DiscordLogo from "@/public/discord-white.png" -import EllipseLogo from "@/public/ellipse-white.png" -import GithubLogo from "@/public/github-white.png" -import HeaderVector from "@/public/menu-line.svg" -import TwitterLogo from "@/public/twitter-white.png" +import ArrowVector from "@/public/icons/arrow-right-up.svg" +import CloseVector from "@/public/icons/close-fill.svg" +import HeaderVector from "@/public/icons/menu-burger.svg" import { siteConfig } from "@/config/site" +import { + Discord, + Github, + Mirror, + Twitter, +} from "@/components/svgs/social-medias" export function SiteHeaderMobile() { const [header, setHeader] = useState(false) @@ -40,8 +42,8 @@ export function SiteHeaderMobile() { alt="closeVector" className="cursor-pointer" onClick={() => setHeader(false)} - width={15} - height={15} + width={24} + height={24} />
@@ -66,7 +68,7 @@ export function SiteHeaderMobile() { className="flex items-center gap-5 border-b-2 border-white p-[16px] pt-0" > JOBS - +
@@ -76,12 +78,7 @@ export function SiteHeaderMobile() { target="_blank" rel="noreferrer" > - + {" "} - + {" "} - + {" "} - + {" "}
diff --git a/components/site-header.tsx b/components/site-header.tsx index eefd811..116ecee 100644 --- a/components/site-header.tsx +++ b/components/site-header.tsx @@ -1,12 +1,13 @@ -import NextImage from "next/image" import Link from "next/link" -import DiscordLogo from "@/public/discord.png" -import EllipseLogo from "@/public/ellipse.png" -import GithubLogo from "@/public/github.png" -import TwitterLogo from "@/public/twitter.png" import { siteConfig } from "@/config/site" import { MainNav } from "@/components/main-nav" +import { + Discord, + Github, + Mirror, + Twitter, +} from "@/components/svgs/social-medias" import { SiteHeaderMobile } from "./site-header-mobile" @@ -23,28 +24,28 @@ export function SiteHeader() { target="_blank" rel="noreferrer" > - + - + - + - +
diff --git a/components/svgs/arrows.tsx b/components/svgs/arrows.tsx new file mode 100644 index 0000000..cc4f155 --- /dev/null +++ b/components/svgs/arrows.tsx @@ -0,0 +1,30 @@ +import React from "react" + +interface MySvgProps { + color: "white" | "black" +} + +export const ArrowRightUp = ({ color }: MySvgProps) => { + return ( + + + + + + + + + + + ) +} diff --git a/components/svgs/social-medias.tsx b/components/svgs/social-medias.tsx new file mode 100644 index 0000000..c5be8a0 --- /dev/null +++ b/components/svgs/social-medias.tsx @@ -0,0 +1,137 @@ +import React from "react" + +interface MySvgProps { + color: string +} + +export const Github = ({ color }: MySvgProps) => { + return ( + + + + + + ) +} + +export const Global = ({ color }: MySvgProps) => { + return ( + + + + + + + + + + + ) +} + +export const Discord = ({ color }: MySvgProps) => { + return ( + + + + + + + + + ) +} + +export const Twitter = ({ color }: MySvgProps) => { + return ( + + + + + + ) +} + +export const Mirror = ({ color }: MySvgProps) => { + return ( + + + + + + + + + + + + + ) +} diff --git a/config/projects.ts b/config/projects.ts index 9274063..413267b 100644 --- a/config/projects.ts +++ b/config/projects.ts @@ -1,244 +1,230 @@ export const projects = [ { id: 1, + image: "rlnlogo.webp", name: "Rate-Limiting Nullifier", tldr: "A protocol for deterring spam and maintaining anonymity in communication systems.", description: "Rate-Limiting Nullifier (RLN) is a protocol designed to combat spam and denial of service attacks in privacy-preserving environments. It allows users in an anonymous system to penalize those who exceed the rate limit, either by withdrawing the offender's stake or revealing their secrets. This mechanism helps maintain system integrity and deters abuse. RLN is built on the Semaphore protocol and uses zero-knowledge proofs and the Shamir’s Secret Sharing scheme to reveal the spammer's private key. It's particularly useful for developers working on communication systems that require privacy and anonymity, such as chat apps, client-server communications, and peer-to-peer communications. It's already being used in projects like Zerokit and Waku, and is also being developed for use with the KZG polynomial commitment scheme.", - links: [ - { website: "https://rate-limiting-nullifier.github.io/rln-docs/" }, - { github: "https://github.com/Rate-Limiting-Nullifier/circom-rln" }, - { twitter: "" }, - { discord: "" }, - ], - tags: [ - { themes: ["Anonymity/privacy"] }, - { types: ["Infrastructure/protocol"] }, - { builtWith: ["Circom", "Solidity", "Semaphore"] }, - ], + links: { + github: "https://github.com/Rate-Limiting-Nullifier/circom-rln", + website: "https://rate-limiting-nullifier.github.io/rln-docs/", + twitter: "none", + discord: "none", + }, + tags: { + themes: ["Anonymity/privacy"], + types: ["Infrastructure/protocol"], + builtWith: ["Circom", "Solidity", "Semaphore"], + }, }, { id: 2, + image: "zkitterlogo.webp", name: "Zkitter", tldr: "A decentralized social network prioritizing privacy and anonymity", description: "Zkitter is a decentralized social network that emphasizes privacy by default. It allows users to share thoughts and communicate in various modes: as known identities, as a member of a group, or entirely anonymously. Built with Semaphore and RLN, Zkitter offers familiar social media features such as posting, chatting, following, and liking, but with a strong focus on user privacy and anonymity. It serves as an experiment to explore new ways of engaging in conversations without the fear of damaging one’s personal reputation and is an example of a user-facing application using zero-knowledge primitives such as Semaphore, CryptKeeper, ZK-Chat, and Interep. Users can sign up using an Ethereum address or ENS name, or create an anonymous account, with options for anonymous chat and posting.", - links: [ - { website: "https://www.zkitter.com/explore/" }, - { github: "https://github.com/zkitter" }, - { twitter: "" }, - { discord: "https://discord.gg/Em4Z9yE8eW" }, - ], - tags: [ - { themes: ["Anonymity/privacy", "Social", "Identity"] }, - { types: ["Application", "Infrastructure/protocol"] }, - { builtWith: ["Semaphore", "RLN", "Interep", "zkchat"] }, - ], + links: { + github: "https://github.com/zkitter", + website: "https://www.zkitter.com/explore/", + twitter: "none", + discord: "https://discord.gg/Em4Z9yE8eW", + }, + + tags: { + themes: ["Anonymity/privacy", "Social", "Identity"], + types: ["Application", "Infrastructure/protocol"], + builtWith: ["Semaphore", "RLN", "Interep", "zkchat"], + }, }, { id: 3, - + image: "macilogo.webp", name: "MACI", tldr: "A secure e-voting solution minimizing the risk of collusion and bribery", description: "Minimal Anti-Collusion Infrastructure (MACI) is a protocol designed to provide a highly secure e-voting solution. It enables organizations to conduct on-chain voting processes with a significantly reduced risk of cheating, such as bribery or collusion. MACI uses zero-knowledge proofs to implement a receipt-free voting scheme, making it impossible for anyone other than the vote coordinator to verify how a specific user voted. This ensures the correct execution of votes and allows anyone to verify the results. It's particularly beneficial for governance and funding events, where its anti-collusion mechanisms help ensure fair and transparent outcomes.", - links: [ - { - website: - "https://mirror.xyz/privacy-scaling-explorations.eth/ltCt68hslI5jmMf1AnfkrP2eUwkeZ8_fgkHc_WyD9Nc", - }, - { github: "https://github.com/privacy-scaling-explorations/maci" }, - { twitter: "" }, - { discord: "" }, - ], - tags: [ - { themes: ["Anonymity/privacy", "Voting/governance"] }, - { types: ["Lego sets/toolkits", "Infrastructure/protocol"] }, - { builtWith: ["P0tion", "JubjubLib"] }, - ], + links: { + github: "https://github.com/privacy-scaling-explorations/maci", + + website: + "https://mirror.xyz/privacy-scaling-explorations.eth/ltCt68hslI5jmMf1AnfkrP2eUwkeZ8_fgkHc_WyD9Nc", + + twitter: "none", + discord: "none", + }, + tags: { + themes: ["Anonymity/privacy", "Voting/governance"], + types: ["Lego sets/toolkits", "Infrastructure/protocol"], + builtWith: ["P0tion", "JubjubLib"], + }, }, { id: 4, - + image: "waxlogo.webp", name: "WAX: Wallet Account eXperiments", tldr: "Streamlining web3 product development with smart account components for enhanced wallets, dApps, and SDKs.", description: "Wallet Account eXperiments (WAX), formerly known as BLS Wallet, is a suite of production-ready smart account components that provide advanced features for wallets, SDKs, and dApps. It's designed to lower gas costs on EVM rollups through aggregated BLS signatures, simplifying the integration of contract wallets and reducing the cost of layer 2 transactions. This makes WAX particularly beneficial for web3 projects targeting developing economies. WAX components incorporate advanced cryptographic primitives in a secure and intuitive way, using Safe contracts for a familiar and battle-tested foundation. Each additional module can be audited and added or removed at the account holder's discretion. WAX offers features like cheaper L2 transactions, modular smart contract components, ERC 4337 compatibility, zk email verification, passkeys verification, multi-action transactions, gasless transactions, and wallet upgradability. The primary use cases for WAX include scaling, key management, and the creation of prototypes for the web3 ecosystem.", - links: [ - { website: "https://getwax.org/" }, - { github: "https://github.com/getwax" }, - { twitter: "" }, - { discord: "https://discord.gg/hGDmAhcRyz" }, - ], - tags: [ - { - builtWith: [ - "Hardhat", - "Node", - "Solidity BLS library", - "sqlite", - "docker", - "ethers", - "deno", - ], - }, - { themes: ["Scaling", "Key management"] }, - { types: ["Prototype", "Proof of concept", "Lego sets/toolkits"] }, - ], + links: { + github: "https://github.com/getwax", + website: "https://getwax.org/", + twitter: "none", + discord: "https://discord.gg/hGDmAhcRyz", + }, + tags: { + builtWith: [ + "Hardhat", + "Node", + "Solidity BLS library", + "sqlite", + "docker", + "ethers", + "deno", + ], + + themes: ["Scaling", "Key management"], + types: ["Prototype", "Proof of concept", "Lego sets/toolkits"], + }, }, { id: 5, - + image: "", name: "ZK-Chat", tldr: "A protocol for integrating decentralized, anonymous, and spam-protected chat into applications.", description: "ZK-Chat is a protocol that enables developers to incorporate decentralized, anonymous chat features into their applications, complete with spam protection and anonymous group signaling. It uses Waku decentralized messaging, Semaphore for anonymous signaling, and Rate-Limiting Nullifier (RLN) for spam prevention. This creates a decentralized, client-server model that offers unstoppable, anonymous chat with registry on-chain. It's designed for both developers and users, offering an app and a library for easy integration into various applications.", - links: [ - { github: "https://github.com/kayleegeorge/zk-chat//" }, - { - website: - "https://www.notion.so/6649797a76ed4858933015360fc76650?pvs=21", - }, - { twitter: "" }, - { discord: "" }, - ], - tags: [ - { themes: ["Anonymity/privacy", "Social"] }, - { types: ["Legos/dev tools", "Proof of concept", "Application"] }, - { builtWith: ["RLN", "Semaphore", "Waku"] }, - ], + links: { + github: "https://github.com/kayleegeorge/zk-chat//", + + website: "https://www.notion.so/6649797a76ed4858933015360fc76650?pvs=21", + twitter: "none", + discord: "none", + }, + tags: { + themes: ["Anonymity/privacy", "Social"], + types: ["Legos/dev tools", "Proof of concept", "Application"], + builtWith: ["RLN", "Semaphore", "Waku"], + }, }, { id: 6, - + image: "cryptkeeperlogo.webp", name: "CryptKeeper", tldr: "A browser extension for secure, portable anonymous identity management across applications.", description: "CryptKeeper is a browser extension that generates Semaphore and RLN proofs for websites, providing a secure and portable solution for managing anonymous identity secrets across different applications. It simplifies the integration of zero-knowledge (ZK) identities and proofs into applications, allowing developers to focus on building the front-end and logic of their applications. By handling complex aspects of cryptography, circuits, caching, and storage, CryptKeeper enables users to interact with decentralized applications (dapps) without revealing their private identity secrets. It is aimed at building secure community standards for the growing ZK ecosystem.", - links: [ - { github: "https://github.com/CryptKeeperZK" }, - { website: "" }, - { twitter: "" }, - { discord: "" }, - ], - tags: [ - { themes: ["Anonymity/privacy", "Social", "Identity"] }, - { - types: ["Application", "Infrastructure/protocol", "Lego sets/toolkits"], - }, - { builtWith: ["Semaphore", "RLN"] }, - ], + links: { + github: "https://github.com/CryptKeeperZK", + website: "none", + twitter: "none", + discord: "none", + }, + tags: { + themes: ["Anonymity/privacy", "Social", "Identity"], + types: ["Application", "Infrastructure/protocol", "Lego sets/toolkits"], + + builtWith: ["Semaphore", "RLN"], + }, }, { id: 7, - + image: "semaphorelogo.webp", name: "Semaphore", tldr: "A zero-knowledge protocol enabling anonymous group membership proof and signaling.", description: "Semaphore is a protocol that allows users to prove their membership in a group and transmit anonymous data, such as votes or feedback, without revealing their identities. It is designed for developers aiming to build privacy-preserving applications. Semaphore enables the creation of identities and their corresponding public values, which can be added to Merkle trees. This facilitates the authentication of anonymous user messages through zero-knowledge proofs, where membership is proven using Merkle proofs within the circuit. Key use cases include anonymous voting applications, receiving anonymous feedback from event attendees, and anonymous text messages. It is currently in production and is being used in a wide variety of projects.", - links: [ - { github: "https://github.com/semaphore-protocol" }, - { website: "https://semaphore.appliedzkp.org/" }, - { discord: "https://semaphore.appliedzkp.org/discord" }, - { twitter: "" }, - ], - tags: [ - { - themes: [ - "Anonymity/privacy", - "Social", - "Identity", - "Transaction privacy", - "Voting/governance", - "Reputation", - "Education", - "Scaling", - "Key management", - "Other (group membership)", - ], - }, - { - types: [ - "Legos/dev tools", - "Lego sets/toolkits", - "Infrastructure/protocol", - ], - }, - { builtWith: ["ZK-kit", "circom", "snarkjs"] }, - ], + links: { + github: "https://github.com/semaphore-protocol", + website: "https://semaphore.appliedzkp.org/", + twitter: "none", + discord: "https://semaphore.appliedzkp.org/discord", + }, + tags: { + themes: [ + "Anonymity/privacy", + "Social", + "Identity", + "Transaction privacy", + "Voting/governance", + "Reputation", + "Education", + "Scaling", + "Key management", + "Other (group membership)", + ], + + types: [ + "Legos/dev tools", + "Lego sets/toolkits", + "Infrastructure/protocol", + ], + builtWith: ["ZK-kit", "circom", "snarkjs"], + }, }, { id: 8, - + image: "", name: "PSE Security", tldr: "Proactively securing Ethereum's L2 and ZK ecosystems.", description: "PSE Security is a division of the Privacy & Scaling Explorations team at the Ethereum Foundation. Its primary goal is to identify and rectify bugs, thereby enhancing the security of the Ethereum Layer 2 and Zero-Knowledge ecosystems. Recognizing the potential for critical bugs to cause significant setbacks, PSE Security is committed to preemptively addressing these issues. The team offers open-source projects like the ZK Bug Tracker and Bridge Bug Tracker, which track real bugs and exploits in production code, and encourages community contributions. PSE Security also conducts manual audits and plans to help teach the community more about security and ways they can prevent bugs themselves.", - links: [ - { github: "https://github.com/privacy-scaling-explorations/security" }, - { - website: - "https://mirror.xyz/privacy-scaling-explorations.eth/BaqGMfBhEZR1cvTJlA9E3Xu5ZhD7IthLiUK-Q75rQMM", - }, - { discord: "" }, - { twitter: "" }, - ], - tags: [ - { - themes: [ - "Anonymity/privacy", - "Education", - "Key management", - "Scaling", - "Security", - ], - }, - { types: ["Legos/dev tools"] }, - { builtWith: ["Slither", "Ecne", "Circomspect", "Echidna"] }, - { themes: [] }, - ], + links: { + github: "https://github.com/privacy-scaling-explorations/security", + website: + "https://mirror.xyz/privacy-scaling-explorations.eth/BaqGMfBhEZR1cvTJlA9E3Xu5ZhD7IthLiUK-Q75rQMM", + discord: "none", + twitter: "none", + }, + tags: { + themes: [ + "Anonymity/privacy", + "Education", + "Key management", + "Scaling", + "Security", + ], + types: ["Legos/dev tools"], + builtWith: ["Slither", "Ecne", "Circomspect", "Echidna"], + }, }, { id: 9, - + image: "", name: "zkEVM Community Edition", tldr: "A zero-knowledge proof mechanism for Ethereum block verification.", description: "zkEVM Community Edition is a project aimed at validating Ethereum blocks using zero-knowledge proofs. It is designed to be fully compatible with Ethereum's EVM and serves two primary goals. First, it enables the creation of a layer 2 network (zkRollup) compatible with the Ethereum ecosystem, which uses zero-knowledge proofs to validate blocks, thus enhancing scalability. Second, it allows the generation of zero-knowledge proofs for blocks from the existing layer 1 Ethereum network, enabling light clients to quickly synchronize many blocks with low resource consumption while ensuring block correctness without needing trust in external parties.", - links: [ - { - github: - "https://github.com/privacy-scaling-explorations/zkevm-circuits", - }, - { twitter: "" }, - { discord: "" }, - { - website: - "https://mirror.xyz/privacy-scaling-explorations.eth/I5BzurX-T6slFaPbA4i3hVrO7U2VkBR45eO-N3CSnSg", - }, - ], - tags: [ - { themes: ["Scaling"] }, - { types: ["Infrastructure/protocol", "Lego sets/toolkits"] }, - { builtWith: ["halo2 from zcash", "Rust", "geth"] }, - ], + links: { + github: "https://github.com/privacy-scaling-explorations/zkevm-circuits", + website: + "https://mirror.xyz/privacy-scaling-explorations.eth/I5BzurX-T6slFaPbA4i3hVrO7U2VkBR45eO-N3CSnSg", + twitter: "none", + discord: "none", + }, + tags: { + themes: ["Scaling"], + types: ["Infrastructure/protocol", "Lego sets/toolkits"], + builtWith: ["halo2 from zcash", "Rust", "geth"], + }, }, { id: 10, - + image: "bandadalogo.webp", name: "Bandada", tldr: "An open-source system for managing privacy-preserving groups of anonymous individuals.", description: "Bandada is a project designed to simplify the management of privacy-preserving Semaphore groups. It is aimed at developers who want to build privacy-based applications and integrate anonymity sets, as well as non-developers working in DAOs, governments, international institutions, non-profit organizations, and associations that want to create and manage anonymous groups. Bandada offers a plug-and-play infrastructure, reducing the time and complexity required for managing anonymity sets. It enables anonymous signaling, such as voting, messaging, login, or endorsing, in various use cases like private organizations, GitHub repository contributors, and groups of wallets holding a specific NFT.", - links: [ - { github: "https://github.com/privacy-scaling-explorations/bandada" }, - { website: "https://bandada.appliedzkp.org/" }, - { twitter: "" }, - { discord: "" }, - ], + links: { + github: "https://github.com/privacy-scaling-explorations/bandada", + website: "https://bandada.appliedzkp.org/", + twitter: "none", + discord: "none", + }, tags: { themes: [ "Anonymity/privacy", @@ -266,17 +252,17 @@ export const projects = [ { id: 11, - + image: "", name: "DSL Working Group", tldr: "Exploration of languages for writing zk circuits", description: "The DSL Working Group is focused on the exploration and improvement of languages used to write zero-knowledge circuits. The group's primary goal is to enhance the state of zk circuit languages, making them easier to write and review by offering the right abstractions. They also aim to make it harder to write unsound circuits by implementing static analysis and enforcing safer patterns. Additionally, they are working to support next-generation (Incrementally Verifiable Computation or IVC) proving systems. The group is currently working on Chiquito, a high-level Domain-Specific Language (DSL) for Halo2 circuits that lowers the entry barrier to write zk circuits with a state-machine abstraction API.", - links: [ - { github: "https://github.com/privacy-scaling-explorations/chiquito/" }, - { website: "" }, - { twitter: "" }, - { discord: "" }, - ], + links: { + github: "https://github.com/privacy-scaling-explorations/chiquito/", + website: "none", + twitter: "none", + discord: "none", + }, tags: { type: ["Legos/dev tools", "Proof of concept", "Developer tooling"], themes: [], @@ -286,20 +272,19 @@ export const projects = [ { id: 12, - + image: "", name: "ZKML (Zero-Knowledge Machine Learning)", tldr: "ZKML leverages zero-knowledge proofs for privacy-preserving machine learning, enabling model and data privacy with transparent verification.", description: "ZKML is a solution that combines the power of zero-knowledge proofs (ZKPs) and machine learning to address the privacy concerns in traditional machine learning. It provides a platform for machine learning developers to convert their TensorFlow Keras models into ZK-compatible versions, ensuring model privacy, data privacy, and transparent verification. ZKML can be used to verify if a specific machine learning model was used to generate a particular piece of content, without revealing the input or the model used. It has potential use cases in on-chain biometric authentication, private data marketplace, proprietary ML model sharing, and AIGC NFTs.", - links: [ - { twitter: "" }, - { discord: "" }, - { github: "https://github.com/socathie" }, - { - website: - "https://mirror.xyz/privacy-scaling-explorations.eth/K88lOS4XegJGzMoav9K5bLuT9Zhn3Hz2KkhB3ITq-m8", - }, - ], + links: { + github: "https://github.com/socathie", + + website: + "https://mirror.xyz/privacy-scaling-explorations.eth/K88lOS4XegJGzMoav9K5bLuT9Zhn3Hz2KkhB3ITq-m8", + twitter: "none", + discord: "none", + }, tags: { themes: ["Anonymity/privacy", "Scaling"], type: ["Proof of concept", "Infrastructure/protocol"], @@ -309,21 +294,18 @@ export const projects = [ { id: 13, - + image: "", name: "Trusted Setups", tldr: "Aiding developers with tools for trusted setups.", description: "The Trusted Setups project is dedicated to simplifying the process of trusted setups, which are crucial for privacy or scaling solutions. Trusted setups involve multiple participants contributing to the generation of secrets. As long as one participant forgets their part of the secret, the final solution remains secure. The team recognizes the complexity of developing contribution programs and coordinating the participants' queue in a trusted setup. To address this, they are developing tools, including scripts, WebApps, and APIs, to streamline the contribution and coordination effort. This allows developers to focus on building their circuits and applications, enhancing efficiency and productivity in the development of zero-knowledge applications.", - links: [ - { - github: "https://github.com/zkparty", - }, - { - website: "https://docs.google.com/presentation/d/1dTKWaZDPCZFI5W", - }, - { twitter: "" }, - { discord: "" }, - ], + links: { + github: "https://github.com/zkparty", + + website: "https://docs.google.com/presentation/d/1dTKWaZDPCZFI5W", + twitter: "none", + discord: "none", + }, tags: { themes: ["Scaling", "Education"], type: ["Legos/dev tools", "Lego sets/toolkits"], @@ -333,24 +315,17 @@ export const projects = [ { id: 14, - + image: "", name: "zk3", tldr: "Utilizing ZK proofs in social networks", description: "Zk3 is a protocol that leverages Zero Knowledge Proofs (ZKPs) to allow users to prove their membership in a group without revealing their identity. This is particularly useful for social media applications built on Lens or other on-chain platforms. The protocol helps to moderate conversations and reduce bot activity while preserving user privacy. It provides developers with the tools to verify group eligibility, create ZK proofs, and use ZK proofs in Lens. ZK3 consists of a smart contract system for user interactions and network rules, and a GraphQL API for flexible interaction, enabling the development of diverse applications, including web 2.0 integrations.", - links: [ - { - github: "http://github.com/monemetrics/semaphore-zk3", - }, - { - website: "http://zk3.io/", - }, - { - twitter: "http://twitter.com/zk3org", - }, - { discord: "" }, - , - ], + links: { + github: "http://github.com/monemetrics/semaphore-zk3", + website: "http://zk3.io/", + twitter: "http://twitter.com/zk3org", + discord: "none", + }, tags: { themes: ["Anonymity/privacy", "Social", "Identity", "Reputation"], type: [ @@ -365,23 +340,17 @@ export const projects = [ { id: 15, - + image: "tlsnlogo.webp", name: "TLSNotary", tldr: "A protocol for creating cryptographic proofs of authenticity for any data on the web.", description: "TLSNotary is useful for developers of privacy focused projects that need data provenance from secure web servers. It leverages the widely-used Transport Layer Security (TLS) protocol to securely and privately prove a transcript of communications took place with a webserver. The protocol involves splitting TLS session keys between two parties: the User and the Notary. Neither the User nor Notary are in possession of the full TLS session keys, they only hold a share of those keys. This ensures the security assumptions of TLS while enabling the User to prove the authenticity of the communication to the Notary. The Notary remains unaware of which webserver is being queried, and the Notary never has access to the unencrypted communications. All of this is achieved while maintaining full privacy.", - links: [ - { - github: "", - }, - { - website: "", - }, - { - twitter: "", - }, - { discord: "" }, - ], + links: { + github: "none", + website: "none", + twitter: "none", + discord: "none", + }, tags: { themes: [], type: [], @@ -391,23 +360,17 @@ export const projects = [ { id: 16, - + image: "", name: "EigenTrust", tldr: "A distributed reputation system with zero-knowledge features.", description: "EigenTrust is a library designed to manage trust within a distributed network, incorporating zero-knowledge features. It serves as a reputation bank for the Ethereum ecosystem, providing an interoperable layer for managing reputation and trust. The protocol creates zero-knowledge proofs of reputation scores based on ratings given by network participants. This allows for the creation of a reputation system for peer-to-peer marketplaces and exchanges, reputation-weighted voting, and community gatekeeping.", - links: [ - { - github: "https://github.com/eigen-trust/protocol", - }, - { - website: "", - }, - { - twitter: "", - }, - { discord: "" }, - ], + links: { + github: "https://github.com/eigen-trust/protocol", + website: "none", + twitter: "none", + discord: "none", + }, tags: { themes: ["Reputation", "Identity"], type: ["Infrastructure/protocol"], @@ -417,23 +380,17 @@ export const projects = [ { id: 17, - + image: "", name: "AnonKlub", tldr: "A mechanism for anonymous proof of Ethereum address ownership.", description: "AnonKlub is a tool designed for Ethereum developers that allows for anonymous proof of Ethereum address ownership. It doesn't directly address the public observability of Ethereum transactions but provides a workaround for privacy. Users can prepare a list of Ethereum addresses, sign a message from an address they own, and use that signature to generate a zero-knowledge proof. This proof enables users to perform actions anonymously that would typically require ownership of an address from the initial list. Use cases include anonymous NFT minting and Discord verification for DAOs without disclosing the public address.", - links: [ - { - github: "https://github.com/privacy-scaling-explorations/e2e-zk-ecdsa", - }, - { - website: "https://anonklub.fly.dev/", - }, - { - twitter: "", - }, - { discord: "" }, - ], + links: { + github: "https://github.com/privacy-scaling-explorations/e2e-zk-ecdsa", + website: "https://anonklub.fly.dev/", + twitter: "none", + discord: "none", + }, tags: { themes: [ "Transaction privacy", @@ -449,23 +406,17 @@ export const projects = [ { id: 18, - + image: "", name: "Summa", tldr: "Protocol enabling centralized exchanges to prove solvency without compromising private information.", description: "Summa allows centralized exchanges to demonstrate that their assets exceed their liabilities without revealing critical business information such as individual user balances, total number of users, and total liabilities or assets. It uses zero-knowledge proofs to ensure that exchanges can demonstrate they have sufficient assets to cover all user balances. The protocol involves building a Merkle Sum Tree of user balances, generating proofs for each user, and allowing users to verify these proofs.", - links: [ - { - github: "https://github.com/summa-dev", - }, - { - website: "", - }, - { - twitter: "", - }, - { discord: "" }, - ], + links: { + github: "https://github.com/summa-dev", + website: "none", + twitter: "none", + discord: "none", + }, tags: { themes: ["Anonymity/privacy", "Computational Integrity"], type: ["Infrastructure/protocol", "Application"], diff --git a/public/arrow-right-up-line.svg b/public/arrow-right-up-line.svg deleted file mode 100644 index 234ef80..0000000 --- a/public/arrow-right-up-line.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/public/arrow-white-vector.png b/public/arrow-white-vector.png deleted file mode 100644 index 804a05a..0000000 Binary files a/public/arrow-white-vector.png and /dev/null differ diff --git a/public/arrowright-vector.png b/public/arrowright-vector.png deleted file mode 100644 index 08ef7ed..0000000 Binary files a/public/arrowright-vector.png and /dev/null differ diff --git a/public/close-vector.png b/public/close-vector.png deleted file mode 100644 index ec0f306..0000000 Binary files a/public/close-vector.png and /dev/null differ diff --git a/public/discord-white.png b/public/discord-white.png deleted file mode 100644 index e5cc775..0000000 Binary files a/public/discord-white.png and /dev/null differ diff --git a/public/discord.png b/public/discord.png deleted file mode 100644 index a4f1201..0000000 Binary files a/public/discord.png and /dev/null differ diff --git a/public/ellipse-white.png b/public/ellipse-white.png deleted file mode 100644 index 89e2e3a..0000000 Binary files a/public/ellipse-white.png and /dev/null differ diff --git a/public/ellipse.png b/public/ellipse.png deleted file mode 100644 index a2e9eff..0000000 Binary files a/public/ellipse.png and /dev/null differ diff --git a/public/github-vector.svg b/public/github-vector.svg deleted file mode 100644 index 8bd0ac5..0000000 --- a/public/github-vector.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/public/github-white.png b/public/github-white.png deleted file mode 100644 index 858d614..0000000 Binary files a/public/github-white.png and /dev/null differ diff --git a/public/github.png b/public/github.png deleted file mode 100644 index 6bfeb90..0000000 Binary files a/public/github.png and /dev/null differ diff --git a/public/githubblack-vector.svg b/public/githubblack-vector.svg deleted file mode 100644 index f273085..0000000 --- a/public/githubblack-vector.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/public/globe-vector.svg b/public/globe-vector.svg deleted file mode 100644 index eb2e64c..0000000 --- a/public/globe-vector.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/public/globeblack-vector.svg b/public/globeblack-vector.svg deleted file mode 100644 index 372f1b8..0000000 --- a/public/globeblack-vector.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/public/icons/archstar.webp b/public/icons/archstar.webp new file mode 100644 index 0000000..0a3f12a Binary files /dev/null and b/public/icons/archstar.webp differ diff --git a/public/icons/arrow-right-up.svg b/public/icons/arrow-right-up.svg new file mode 100644 index 0000000..a74a94a --- /dev/null +++ b/public/icons/arrow-right-up.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/icons/arrow-right.svg b/public/icons/arrow-right.svg new file mode 100644 index 0000000..031ae18 --- /dev/null +++ b/public/icons/arrow-right.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/icons/close-fill.svg b/public/icons/close-fill.svg new file mode 100644 index 0000000..c16a987 --- /dev/null +++ b/public/icons/close-fill.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/menu-line.svg b/public/icons/menu-burger.svg similarity index 75% rename from public/menu-line.svg rename to public/icons/menu-burger.svg index 285af2b..00dcce0 100644 --- a/public/menu-line.svg +++ b/public/icons/menu-burger.svg @@ -1,9 +1,9 @@ - + - + diff --git a/public/pseicon-1.svg b/public/icons/pseicon1.svg similarity index 100% rename from public/pseicon-1.svg rename to public/icons/pseicon1.svg diff --git a/public/pseicon-2.svg b/public/icons/pseicon2.svg similarity index 100% rename from public/pseicon-2.svg rename to public/icons/pseicon2.svg diff --git a/public/pseicon-3.svg b/public/icons/pseicon3.svg similarity index 100% rename from public/pseicon-3.svg rename to public/icons/pseicon3.svg diff --git a/public/pselogo-footer.svg b/public/logos/footer-logo.svg similarity index 100% rename from public/pselogo-footer.svg rename to public/logos/footer-logo.svg diff --git a/public/logos/header-logo.svg b/public/logos/header-logo.svg new file mode 100644 index 0000000..65e4631 --- /dev/null +++ b/public/logos/header-logo.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/projects-logo/bandadalogo.webp b/public/projects-logo/bandadalogo.webp new file mode 100644 index 0000000..c1d8611 Binary files /dev/null and b/public/projects-logo/bandadalogo.webp differ diff --git a/public/projects-logo/clrlogo.webp b/public/projects-logo/clrlogo.webp new file mode 100644 index 0000000..4be4a5a Binary files /dev/null and b/public/projects-logo/clrlogo.webp differ diff --git a/public/projects-logo/cryptkeeperlogo.webp b/public/projects-logo/cryptkeeperlogo.webp new file mode 100644 index 0000000..3811e47 Binary files /dev/null and b/public/projects-logo/cryptkeeperlogo.webp differ diff --git a/public/projects-logo/intereplogo.webp b/public/projects-logo/intereplogo.webp new file mode 100644 index 0000000..100170f Binary files /dev/null and b/public/projects-logo/intereplogo.webp differ diff --git a/public/projects-logo/macilogo.webp b/public/projects-logo/macilogo.webp new file mode 100644 index 0000000..4e24d1d Binary files /dev/null and b/public/projects-logo/macilogo.webp differ diff --git a/public/projects-logo/rlnlogo.webp b/public/projects-logo/rlnlogo.webp new file mode 100644 index 0000000..e5850cd Binary files /dev/null and b/public/projects-logo/rlnlogo.webp differ diff --git a/public/projects-logo/semaphorelogo.webp b/public/projects-logo/semaphorelogo.webp new file mode 100644 index 0000000..050c377 Binary files /dev/null and b/public/projects-logo/semaphorelogo.webp differ diff --git a/public/projects-logo/tlsnlogo.webp b/public/projects-logo/tlsnlogo.webp new file mode 100644 index 0000000..73a7845 Binary files /dev/null and b/public/projects-logo/tlsnlogo.webp differ diff --git a/public/projects-logo/unireplogo.webp b/public/projects-logo/unireplogo.webp new file mode 100644 index 0000000..8c14f32 Binary files /dev/null and b/public/projects-logo/unireplogo.webp differ diff --git a/public/projects-logo/waxlogo.webp b/public/projects-logo/waxlogo.webp new file mode 100644 index 0000000..469c81c Binary files /dev/null and b/public/projects-logo/waxlogo.webp differ diff --git a/public/projects-logo/zkitterlogo.webp b/public/projects-logo/zkitterlogo.webp new file mode 100644 index 0000000..83a6c87 Binary files /dev/null and b/public/projects-logo/zkitterlogo.webp differ diff --git a/public/projects-logo/zkkitlogo.webp b/public/projects-logo/zkkitlogo.webp new file mode 100644 index 0000000..85ba107 Binary files /dev/null and b/public/projects-logo/zkkitlogo.webp differ diff --git a/public/projects-logo/zkoprulogo.webp b/public/projects-logo/zkoprulogo.webp new file mode 100644 index 0000000..1b0caea Binary files /dev/null and b/public/projects-logo/zkoprulogo.webp differ diff --git a/public/pse-logo-circle.png b/public/pse-logo-circle.png deleted file mode 100644 index e1302b0..0000000 Binary files a/public/pse-logo-circle.png and /dev/null differ diff --git a/public/pse-logo-circle.svg b/public/pse-logo-circle.svg deleted file mode 100644 index ddabb8c..0000000 --- a/public/pse-logo-circle.svg +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/pselogo-header.svg b/public/pselogo-header.svg deleted file mode 100644 index bb4baa7..0000000 --- a/public/pselogo-header.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/public/pselogo-homepage.png b/public/pselogo-homepage.png deleted file mode 100644 index b811477..0000000 Binary files a/public/pselogo-homepage.png and /dev/null differ diff --git a/public/skynomoon.png b/public/skynomoon.png deleted file mode 100644 index 8f905d8..0000000 Binary files a/public/skynomoon.png and /dev/null differ diff --git a/public/social-medias/github-fill.svg b/public/social-medias/github-fill.svg new file mode 100644 index 0000000..691c786 --- /dev/null +++ b/public/social-medias/github-fill.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/social-medias/global-line.svg b/public/social-medias/global-line.svg new file mode 100644 index 0000000..3056f5d --- /dev/null +++ b/public/social-medias/global-line.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/social-medias/twitter-fill.svg b/public/social-medias/twitter-fill.svg new file mode 100644 index 0000000..2d87267 --- /dev/null +++ b/public/social-medias/twitter-fill.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/social-medias/youtube-fill.svg b/public/social-medias/youtube-fill.svg new file mode 100644 index 0000000..013652c --- /dev/null +++ b/public/social-medias/youtube-fill.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/twitter-white.png b/public/twitter-white.png deleted file mode 100644 index ab72bc9..0000000 Binary files a/public/twitter-white.png and /dev/null differ diff --git a/public/twitter.png b/public/twitter.png deleted file mode 100644 index fbc7b78..0000000 Binary files a/public/twitter.png and /dev/null differ diff --git a/public/twitterblack-vector.svg b/public/twitterblack-vector.svg deleted file mode 100644 index 6525f03..0000000 --- a/public/twitterblack-vector.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/tailwind.config.js b/tailwind.config.js index d19b510..fd3069a 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -14,8 +14,10 @@ module.exports = { }, extend: { backgroundImage: { - "radial-gradient": + "main-gradient": "radial-gradient(114.29% 42.52% at 103.66% 58.94%, #D0F8F1 0%, #D1F3FF 18.23%, #ECF8FF 51.28%, #E1FFFA 80.21%, #D0F2FF 93.23%)", + "second-gradient": + "radial-gradient(56.07% 115.65% at 93.66% 158.94%, #D0F8F1 0%, #D1F3FF 18.23%, #ECF8FF 51.28%, #E1FFFA 80.21%, #D0F2FF 93.23%)", }, colors: { corduroy: "#4A5754",