+ TLSNotary leverages the ubiquitous TLS (Transport Layer Security) protocol to securely and privately prove a transcript of communications took place with a webserver.
+
+
+ At the core of the TLSNotary protocol is dividing TLS session keys between two parties (Client and Notary) and then using secure two-party computation (2PC) to encrypt and authenticate requests from the Client to a TLS-enabled webserver.
+
+
+ During the protocol neither the Client nor Notary are in posession of the full TLS session keys, they only know their shares of those keys. This preserves the security assumptions of TLS while at the same time allowing the Client to prove to the Notary the authenticity of the transcript.
+
+
+ This is all achieved with full privacy. The Notary is never aware of which webserver is being queried, nor do they ever see the unencrypted communications.
+
+
+ Furthermore, our protocol is transparent to the webserver.
+ In fact, the webserver is never aware that this process took place.
+
+ With TLSNotary, you can create cryptographic proofs of authenticity for any data on the web, even your private data.
+ Using our protocol you can securely:
+
+
+
+
+
+
Prove private information about yourself is stored on a platform.
+
+
+
+
+
Prove you received a private message from someone.
+
+
+
+
+
Prove you received a money transfer.
+
+
+
+
+
Create a provable snapshot of a webpage.
+
+
+
+
+
Is it secure?
+
+
+ One may assume that TLSNotary requires a “man-in-the-middle” setup where the Notary snoops on the connection with the webserver.
+ Fortunately, this is not true! Data is kept private even from the Notary.
+
+
+ See below for more details on how it works.
+
+
+
What's the catch?
+
+
+ TLSNotary does require a trust assumption.
+ A Verifier of a proof must trust that the Notary did not collude with the Prover to forge it.
+ This trust can be minimized by requiring multiple proofs each signed by different Notaries.
+
+
+ In some applications the Verifier can act as the Notary themselves, which allows for fully trustless proofs!
+
+
+
+ );
+}
diff --git a/src/config.json b/src/config.json
new file mode 100644
index 0000000..8fbb0b7
--- /dev/null
+++ b/src/config.json
@@ -0,0 +1,8 @@
+{
+ "links": {
+ "discord": "https://discord.gg/9XwESXtcN7",
+ "repo": "https://github.com/tlsnotary/tlsn",
+ "docs": "https://tlsnotary.github.io/docs-mdbook/",
+ "pse": "https://appliedzkp.org/"
+ }
+}
diff --git a/src/data/Example.md b/src/data/Example.md
deleted file mode 100644
index abf79a7..0000000
--- a/src/data/Example.md
+++ /dev/null
@@ -1,57 +0,0 @@
-# Examples
-
-## Project Example
-
-```json
- {
- "name": "Test",
- "short_name": "TEST",
- "description": "Black Magic",
- "long_description": "Black Magic",
- "image": "banner.png",
- "links": [
- {
- "website": "https://discord.gg"
- },
- {
- "twitter": "https://discord.gg/1"
- },
- {
- "telegram": "https://discord.gg/2"
- },
- {
- "discord": "https://discord.gg/3"
- },
- {
- "github": "https://discord.gg/4"
- }
- ]
-}
-```
-
-## Team Member Example
-
-```json
- {
- "name": "NAME / USERNAME",
- "description": "Whatever description you want, try to keep it tweet sized",
- "image": "{filename}(Upload image to /src/images and put the file name here, will add support for external images soon)",
- "links": [
- {
- "github": "https://github.com/USERNAME"
- },
- {
- "twitter": "https://twitter.com/USERNAME"
- },
- {
- "discord": "https://discord.com//users/USER_ID (NOT USERNAME, https://i.imgur.com/6CDZ1dp.gifv for how-to)"
- },
- {
- "telegram": "t.me/USERNAME"
- },
- {
- "website": "{YOUR_WEBSITE}"
- }
- ]
- }
-```
diff --git a/src/data/Projects.json b/src/data/Projects.json
deleted file mode 100644
index f5c4e13..0000000
--- a/src/data/Projects.json
+++ /dev/null
@@ -1,225 +0,0 @@
-[
- {
- "name": "Zkopru",
- "image": "zkopru-cover.png",
- "description": "Zkopru is an optimistic rollup that uses zero knowledge proofs to enable private, low-cost transactions with ETH, ERC-20s and NFTs on layer 2.",
- "links": [
- {
- "website": "https://zkopru.network/"
- },
- {
- "github": "https://github.com/zkopru-network"
- },
- {
- "discord": "https://discord.gg/R8QKzad8u4"
- }
- ]
- },
- {
- "name": "BLS Wallet",
- "image": "bls.svg",
- "description": "Reduce transaction costs on evm-L2s using BLS signatures. The smart contract wallet also includes: recovery, multi-action, gas-less transactions, and upgradability.",
- "links": [
- {
- "website": "https://blswallet.org/"
- },
- {
- "github": "https://github.com/web3well/bls-wallet"
- }
- ]
- },
- {
- "name": "zkEVM",
- "image": "zkEVM.svg",
- "description": "A zk-rollup that can generate zk proofs for general EVM verification. This allows us to build a fully EVM-compatible zk-Rollup, which any existing Ethereum application can easily migrate to.",
- "links": [
- {
- "documentation": "https://privacy-scaling-explorations.github.io/zkevm-docs/"
- },
- {
- "website": "https://github.com/privacy-scaling-explorations/zkevm-specs"
- },
- {
- "github": "https://github.com/privacy-scaling-explorations/zkevm-circuits"
- }
- ]
- },
- {
- "name": "MACI",
- "image": "MACI.svg",
- "description": "MACI (Minimal Anti-Collusion Infrastructure) uses zero knowledge proofs for collusion resistance in blockchain voting (such as quadratic funding mechanisms) by making it impossible for anyone other than the vote coordinator to verify how a specific user voted. MACI also ensures correct execution of the votes, allowing anyone to verify the results.",
- "links": [
- {
- "website": ""
- },
- {
- "github": "https://github.com/appliedzkp/maci"
- }
- ]
- },
- {
- "name": "Unirep",
- "description": "Unirep allows anonymous members of a group to give, receive, and prove reputation without revealing their identity. Applications or people can act as attesters and build their own reputation tokens on top of a shared Unirep contract.",
- "image": "unirep.svg",
- "links": [
- {
- "website": "https://unirep.social/"
- },
- {
- "github": "https://github.com/unirep"
- },
- {
- "discord": "https://discord.gg/qrqq8SeN7F"
- }
- ]
- },
- {
- "name": "Semaphore",
- "description": "Semaphore is a protocol, designed to be a simple and generic privacy layer for Ethereum DApps. Using zero knowledge, Ethereum users can prove their membership of a group and send signals such as votes or endorsements without revealing their original identity.",
- "image": "semaphore.svg",
- "links": [
- {
- "website": "https://semaphore.appliedzkp.org/"
- },
- {
- "github": "https://github.com/semaphore-protocol/"
- },
- {
- "telegram": "https://t.me/joinchat/B-PQx1U3GtAh--Z4Fwo56A"
- }
- ]
- },
- {
- "name": "ZK-kit",
- "description": "ZK-kit is a set of NPM modules (algorithms or utility functions) that can be reused in different projects and zero-knowledge protocols, making it easier for developers to access ready-to-use and tested libraries for common tasks.",
- "image": "zk-kit.svg",
- "links": [
- {
- "github": "https://github.com/privacy-scaling-explorations/zk-kit"
- },
- {
- "discord": "https://discord.gg/9B9WgGP6YM"
- }
- ]
- },
- {
- "name": "Interep",
- "description": "Private reputation and identity system allowing services to verify that users belong to a certain group or meet certain reputation criteria without revealing their identities. Users can anonymously export reputation from platforms such as Twitter and Github.",
- "image": "interep.svg",
- "links": [
- {
- "website": "https://interep.link/"
- },
- {
- "github": "https://github.com/interep-project"
- },
- {
- "discord": "https://discord.gg/jMfye2mWcf"
- }
- ]
- },
- {
- "name": "Clr.fund for Everyone",
- "short_name": "Clr.fund",
- "image": "clr.svg",
- "description": "Infrastructure to make it easy for any community to run their own CLR round with clr.fund.",
- "links": [
- {
- "website": "https://qf.ethprague.com/"
- },
- {
- "documentation": "https://clrfund.gitbook.io/deployer/"
- },
- {
- "github": "https://github.com/quadratic-funding/qfi"
- }
- ]
- },
- {
- "name": "Rate Limiting Nullifier",
- "short_name": "RLN",
- "image": "rln.svg",
- "description": "RLN is a construct based on zero-knowledge proofs that enables spam prevention mechanism for decentralized, anonymous environments. In anonymous environments, the identity of the entities is unknown.",
- "links": [
- {
- "website": "https://ethresear.ch/t/semaphore-rln-rate-limiting-nullifier-for-spam-prevention-in-anonymous-p2p-setting/5009"
- },
- {
- "github": "https://github.com/bdim1/rlnapp"
- }
- ]
- },
- {
- "name": "zk-chat",
- "image": "zkchat.svg",
- "description": "Anonymous and private chat environments, using Interep for a privacy preserving registry and sybil resistance and RLN for spam protection.",
- "links": [
- {
- "website": "https://zkchat.org"
- },
- {
- "github": "https://github.com/njofce/zk-chat"
- }
- ]
- },
- {
- "name": "COCO",
- "description": "Collaborative content curation of online communities using a double-or-nothing challenge mechanism.",
- "image": "Coco.svg",
- "links": [
- {
- "website": "https://www.cocoverse.club/"
- },
- {
- "github": "https://github.com/Janmajayamall/coco-contracts"
- },
- {
- "telegram": "https://t.me/+A47HJeqh0-tlODI1"
- }
- ]
- },
- {
- "name": "Trusted Setup",
- "image": "trust-setup.svg",
- "description": "Open source infrastructure for running a trusted setup ceremony in which many people participate in generating entropy which will secure a cryptographic protocol. Perpetual Powers of Tau: A universal ceremony for the initial phase of a trusted setup. MPC Phase 2 UI: UI for a CLI or browser-based ceremony for the second, circuit-specific phase for Groth-16 SNARKs. MPC Phase2 Suite: All-in-one suite of tools for conducting Phase 2 Trusted Setup ceremonies for multiple and large Groth-16 SNARKs circuits.",
- "links": [
- {
- "github": "https://github.com/privacy-scaling-explorations/perpetualpowersoftau"
- },
- {
- "github": "https://github.com/zkparty/setup-mpc-ui"
- },
- {
- "github": "https://github.com/quadratic-funding/mpc-phase2-suite"
- }
- ]
- },
- {
- "name": "TLSNotary",
- "short_name": "TLSN",
- "description": "TLSNotary leverages the ubiquitous TLS protocol to allow users to privately export their data from any webserver in a provable way.",
- "image": "tlsn.png",
- "links": [
- {
- "website": "https://tlsnotary.org"
- },
- {
- "github": "https://github.com/tlsnotary/tlsn"
- },
- {
- "discord": "https://discord.gg/9XwESXtcN7"
- }
- ]
- },
- {
- "name": "ZK-Keeper",
- "short_name": "ZK-Keeper",
- "description": "ZK-Keeper is a browser plugin which enables Zero knowledge identity management and proof generation",
- "image": "zk-keeper.png",
- "links": [
- {
- "github": "https://github.com/faa/zk-keeper"
- }
- ]
- }
-]
\ No newline at end of file
diff --git a/src/data/Team.json b/src/data/Team.json
deleted file mode 100644
index 0c4d45a..0000000
--- a/src/data/Team.json
+++ /dev/null
@@ -1,166 +0,0 @@
-[
- {
- "name": "sinu",
- "description": "TLSNotary Project Lead and Software Engineer",
- "links": [
- {
- "provider": "github",
- "url": "https://github.com/sinui0"
- },
- {
- "provider": "twitter",
- "url": "https://twitter.com/sinu_eth"
- }
- ]
- },
- {
- "name": "AtHeartEngineer",
- "description": "Full stack / systems engineer; working on RLN",
- "links": [
- {
- "provider": "github",
- "url": "https://github.com/atheartengineer"
- },
- {
- "provider": "twitter",
- "url": "https://twitter.com/atheartengineer"
- }
- ]
- },
- {
- "name": "Geoff Lamperd",
- "description": "Full stack engineer; working on Trusted Setup and Interep",
- "links": [
- {
- "provider": "github",
- "url": "https://github.com/glamperd"
- },
- {
- "provider": "twitter",
- "url": "https://twitter.com/glamperd"
- }
- ]
- },
- {
- "name": "James Zaki",
- "description": "BLS Wallet project lead and software engineer",
- "links": [
- {
- "provider": "github",
- "url": "https://github.com/jzaki"
- },
- {
- "provider": "twitter",
- "url": "https://twitter.com/james_zaki"
- }
- ]
- },
- {
- "name": "Beyondr (Jeo)",
- "description": "Designer & developer. Main project is ZKOPRU at the moment but also working on other auxillary projects.",
- "links": [
- {
- "provider": "github",
- "url": "https://github.com/thebeyondr"
- },
- {
- "provider": "twitter",
- "url": "https://twitter.com/thebeyondr"
- }
- ]
- },
- {
- "name": "Jacob Caban-Tomski",
- "description": "Full stack engineer; working on BLS Wallet",
- "links": [
- {
- "provider": "github",
- "url": "https://github.com/jacque006"
- }
- ]
- },
- {
- "name": "Chiali",
- "description": "All things UX & pretty designs. Unirep and other projects",
- "links": [
- {
- "provider": "github",
- "url": "https://github.com/ChialiTsai"
- },
- {
- "provider": "twitter",
- "url": "https://twitter.com/Chia_Tea"
- }
- ]
- },
- {
- "name": "Justin Martin",
- "description": "Zero knowledge sorting hat. Making opportunities for smart people to advance ZK and privacy",
- "links": [
- {
- "provider": "github",
- "url": "https://github.com/TheFrozenFire"
- },
- {
- "provider": "twitter",
- "url": "https://twitter.com/thefrozenfire"
- }
- ]
- },
- {
- "name": "Cedoor",
- "description": "Full stack engineer; working on Semaphore and Interep",
- "links": [
- {
- "provider": "github",
- "url": "https://github.com/cedoor"
- },
- {
- "provider": "twitter",
- "url": "https://twitter.com/cedoor_"
- }
- ]
- },
- {
- "name": "Rachel",
- "description": "Design strategy for ZK explorations",
- "links": [
- {
- "provider": "github",
- "url": "https://github.com/rachelaux"
- },
- {
- "provider": "twitter",
- "url": "https://twitter.com/rachel_aux"
- }
- ]
- },
- {
- "name": "Vivian",
- "description": "Unirep Project Lead and Software Engineer",
- "links": [
- {
- "provider": "github",
- "url": "https://github.com/vivianjeng"
- },
- {
- "provider": "twitter",
- "url": "https://twitter.com/vivi4322"
- }
- ]
- },
- {
- "name": "0xjei",
- "description": "Software Engineer; working on MACI/QFI and Trusted Setup",
- "links": [
- {
- "provider": "github",
- "url": "https://github.com/0xjei"
- },
- {
- "provider": "twitter",
- "url": "https://twitter.com/0xjei"
- }
- ]
- }
-]
diff --git a/src/images/eth-logo-blue.svg b/src/images/eth-logo-blue.svg
new file mode 100644
index 0000000..393fec4
--- /dev/null
+++ b/src/images/eth-logo-blue.svg
@@ -0,0 +1,69 @@
+
+
+
+
diff --git a/src/images/overview-pretty.png b/src/images/overview-pretty.png
new file mode 100644
index 0000000..0f4b6ad
Binary files /dev/null and b/src/images/overview-pretty.png differ
diff --git a/src/images/tlsn-logo.svg b/src/images/tlsn-logo.svg
new file mode 100644
index 0000000..1b6d6d0
--- /dev/null
+++ b/src/images/tlsn-logo.svg
@@ -0,0 +1,6 @@
+
diff --git a/src/index.css b/src/index.css
index b783d75..fd384b0 100644
--- a/src/index.css
+++ b/src/index.css
@@ -12,6 +12,10 @@
--white: #fcfcfc;
--box-shadow: -5px 3px 0px var(--gray);
--black: #151616;
+ --blue: #243f5f;
+ --light-blue: #8ca4c1;
+ --light-brown: #ece5d8;
+ --brown: #a27f3c;
--twitter: #1da1f2;
--telegram: #0088cc;
@@ -21,19 +25,20 @@
--discord: #7289da;
--website: var(--green);
- --background: #f3f0fe;
+ --background: #fafbfc;
+ --background-blue: #243f5f;
--text-color: #151616;
- --border-color: var(--text-color);
- --border-radius: 4px;
+ --border-color: var(--blue);
+ --border-radius: 8px;
--border: 1px solid var(--border-color);
--link-bold: #854ad1;
--padding: 10px;
}
body {
- color: var(--black);
+ color: var(--blue);
margin: 0 auto;
- max-width: 1800px;
+ max-width: 1440px;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-rendering: optimizeLegibility;
@@ -46,7 +51,7 @@ h1,
h2,
h3 {
font-weight: 700;
- color: var(--black);
+ color: var(--blue);
padding: 0px;
margin: 0px;
}
@@ -60,7 +65,7 @@ h2 {
}
p {
- color: var(--black);
+ color: var(--blue);
font-weight: 400;
font-size: 1.125rem;
line-height: 120%;
@@ -70,13 +75,24 @@ p {
a {
text-decoration: none;
- color: var(--black);
+ color: var(--light-blue);
}
html {
scroll-behavior: smooth;
}
+.pill-button {
+ font-family: "Inter", sans-serif;
+ background-color: var(--white);
+ border: 3px solid var(--blue);
+ color: var(--black);
+ text-align: center;
+ font-size: 20px;
+ border-radius: 32px;
+ padding: 18px 24px;
+}
+
/*
Responsiveness
*/
diff --git a/src/index.tsx b/src/index.tsx
index 33771bb..e3d6e64 100644
--- a/src/index.tsx
+++ b/src/index.tsx
@@ -4,6 +4,7 @@ import './index.css';
import HomePage from './HomePage';
import { BrowserRouter, Routes, Route } from 'react-router-dom';
import reportWebVitals from './reportWebVitals';
+import './config'
const root = ReactDOM.createRoot(document.getElementById('root') as HTMLElement);
root.render(