Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 12 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<h3 align="center"> ⛓️ 🔐 👀</h3>
<h1 align="center">Double Zero </h1>
<h1 align="center">Private Validium </h1>

<p align="center">A private blockchain solution with access control features that leverage the ZKsync Elastic Chain ecosystem's development tools and interoperability.</p>

![Double-Zero](architecture.png)*High-level architecture design for a “Double-Zero” implementation using a Validium
![Private Validium](architecture.png)*High-level architecture design for a “Private Validium” implementation using a Validium
Chain with access control features and scoped data access.*

> [!NOTE]
Expand All @@ -24,9 +24,9 @@ public blockchain integration.
> **This trade-off creates a barrier** for organizations that need a **hybrid solution** combining the benefits of both
> private and controlled systems in the public blockchain ecosystem.

## 💡 The Double Zero Framework
## 💡 The Private Validium Framework

**Double Zero** empowers organizations to operate within private blockchain environments while seamlessly connecting to
**Private Validium** empowers organizations to operate within private blockchain environments while seamlessly connecting to
public networks. This is achieved through:

- **Validium Chains**: Ensures confidentiality by keeping sensitive data off-chain while leveraging zero-knowledge
Expand Down Expand Up @@ -62,7 +62,7 @@ tools and decentralized applications.

## ⚙️ Components

Double Zero consists of three main components. Below, we'll cover the rationale behind these choices and their
Private Validium consists of three main components. Below, we'll cover the rationale behind these choices and their
implications:

1. [**Validium Chain**](#️-why-validium)
Expand All @@ -71,7 +71,7 @@ implications:

## ⛓️ Why Validium?

Validium provides the ideal foundation for Double Zero by addressing key enterprise needs: security, scalability, and
Validium provides the ideal foundation for Private Validium by addressing key enterprise needs: security, scalability, and
interoperability. Here's why it stands out:

### 1. **Privacy**
Expand Down Expand Up @@ -124,26 +124,26 @@ The proxy layer enhances security, streamlines access control, and improves usab

### Key Benefits of the Proxy

1. **Enforcing Zero-Access Principles**: Acts as a gatekeeper, ensuring only authenticated and authorized users can interact with the Validium chain, in line with Double Zero's access control philosophy.
1. **Enforcing Zero-Access Principles**: Acts as a gatekeeper, ensuring only authenticated and authorized users can interact with the Validium chain, in line with Private Validium's access control philosophy.
2. **Enhanced Security**: Protects the Validium RPC interface by filtering and validating all incoming requests. This minimizes exposure to potential security risks, such as unauthorized access or malicious actions.
3. **Streamlined Authentication and Authorization**: Integrates robust mechanisms to verify user identities and permissions before granting access, ensuring strict adherence to organizational policies.

### YAML-Based Permission Configuration

Double Zero is a **flexible framework**, allowing permission management to be tailored to specific organizational needs. The example implementation below showcases one approach, but it can be easily modified to accommodate unique workflows or compliance requirements.
Private Validium is a **flexible framework**, allowing permission management to be tailored to specific organizational needs. The example implementation below showcases one approach, but it can be easily modified to accommodate unique workflows or compliance requirements.

Permissions are defined in a `YAML file` to simplify configuration and enhance accessibility, especially for web2-oriented teams:

- **Groups**: Logical collections of users or addresses sharing the same permissions.
- **Permissions**: Specific contracts or methods that a group is allowed to access.

This flexibility ensures Double Zero can adapt to various industries and use cases, from financial institutions to decentralized platforms.
This flexibility ensures Private Validium can adapt to various industries and use cases, from financial institutions to decentralized platforms.

You can explore an example configuration file in [example-permissions.yaml](./compose-proxy-permissions.yaml), demonstrating how groups and permissions can be structured in practice.

## 👀 Private Block Explorer

**Double Zero** Block Explorer is a customized version of
**Private Validium** Block Explorer is a customized version of
the [ZKsync Era Block Explorer](https://github.com/matter-labs/block-explorer) that introduces a layer of privacy and
access control. This tailored block explorer provides a secure, user-specific view of the blockchain.

Expand All @@ -155,11 +155,11 @@ blockchain data according to their assigned permissions.

## 🎯 **Conclusion**

Double Zero uniquely combines ***privacy, scalability, and integration***:
Private Validium uniquely combines ***privacy, scalability, and integration***:

1. **Confidentiality**: Keeps sensitive data secure through advanced off-chain storage.
2. **Integration**: Bridges to public chains like Ethereum, providing access to liquidity, decentralized applications and tools.
3. **Efficiency**: High throughput and reduced costs for enterprise-grade applications.
4. **Ease of Adoption**: Intuitive deployment and familiar tools lower technical barriers.

By leveraging Validium technology, zero-knowledge proofs, and tailored access control, Double Zero enables organizations to harness blockchain innovation without compromising control or security.
By leveraging Validium technology, zero-knowledge proofs, and tailored access control, Private Validium enables organizations to harness blockchain innovation without compromising control or security.
10 changes: 5 additions & 5 deletions docs/block-explorer.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Double Zero Block Explorer
# Private Validium Block Explorer

**A privacy-focused, access-controlled blockchain browser for the Double Zero implementation**
**A privacy-focused, access-controlled blockchain browser for the Private Validium implementation**

## 📌 Overview

> [!NOTE]
> **Double Zero** Block Explorer is a customized version of
> **Private Validium** Block Explorer is a customized version of
> the [ZKsync Era Block Explorer](https://github.com/matter-labs/block-explorer) that introduces a layer of privacy and
> access control. By implementing user **authentication and permission-based data restrictions**, it ensures that users
> can access blockchain data according to their assigned permissions.
Expand Down Expand Up @@ -173,7 +173,7 @@ docker compose up

It will run local Ethereum node, ZkSync Era, Postgres DB and all Block Explorer services.

Another option is to run only the double zero services hitting external endpoints
Another option is to run only the private validium services hitting external endpoints
These can be done by upgrading the content `proxy.env` with the desired rpc and explorer
urls. Then running:

Expand All @@ -182,7 +182,7 @@ docker compose -f docker-compose-00.yaml --env-file=proxy.env up
```

This is going to spin only the services needed to make a functional
double zero setup against the specified environment.
private validium setup against the specified environment.

## ⛓️ Connection to your Hyperchain

Expand Down
30 changes: 15 additions & 15 deletions docs/step-by-step-guide.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# Step-by-step full guide

Double Zero is a framework that provides privacy and access control for ZKsync-compatible chains.
Private Validium is a framework that provides privacy and access control for ZKsync-compatible chains.

This guide walks you through the complete process of setting up a local Double Zero environment, which includes a
private validium chain and a dapp built on the Double Zero framework.
This guide walks you through the complete process of setting up a local Private Validium environment, which includes a
private validium chain and a dapp built on the Private Validium framework.

## 1 - Deploy your validium chain

Expand Down Expand Up @@ -59,7 +59,7 @@ Ensure to have to following ports free:
- 8545

Now we need to create the ecosystem. This command is going to promp you with a wizzard to do the initial configuration
of the network. Double zero can work with any configuration, but the framework is meant to be used with a validium
of the network. Private Validium can work with any configuration, but the framework is meant to be used with a validium
chain.

Also, it’s good to avoid using the default chain id. For this example we are going to use `54678` .
Expand Down Expand Up @@ -125,10 +125,10 @@ control:

After this is done you are going to have funds ready to use in your local validium chain.

## 2. Double Zero
## 2. Private Validium

Double Zero adds authentication and authorization on top of the newly created validium chain. All the services are
written in nodejs and they are meant to be easy to run and configure. Lets go step by step.
Private Validium adds authentication and authorization on top of the newly created validium chain. All the services are
written in nodejs and they are meant to be easy to run and configure. Let's go step by step.

### 2.1 - Clone the repo

Expand All @@ -142,7 +142,7 @@ cd double-zero

### 2.2 Config

At this stage we need to link the private chain with double zero. We are going to run the double zero services inside a
At this stage we need to link the private chain with Private Validium. We are going to run the Private Validium services inside a
docker a network. But they need to interact with our validium chain that is running in the host machine. The easiest way
to make this work is by connecting the validium chain using your local ip. You can use this commands to get your local
ip:
Expand Down Expand Up @@ -184,23 +184,23 @@ APP_HOSTNAMES=localhost
APP_ICON=/images/icons/zksync-arrows.svg
# Here you need to set your chain id
APP_L2_CHAIN_ID=54678 # <-- your chain id.
APP_L2_NETWORK_NAME=Double Zero Local
APP_L2_NETWORK_NAME=Private Validium Local
APP_MAINTENANCE=false
APP_NAME=local
APP_PUBLISHED=true
APP_RPC_URL=http://localhost:4041
APP_BASE_TOKEN_ADDRESS=0x000000000000000000000000000000000000800A
```

Once the configuration is in place you can run the double zero services.
Once the configuration is in place you can run the Private Validium services.

### 2.3 - Launch

```bash
./environments/launch-hyperchain-env.sh
```

This is going to run all the services of double zero using docker. At this stage you can check that the explorer is
This is going to run all the services of Private Validium using docker. At this stage you can check that the explorer is
working going with your browser to [http://localhost:3010](http://localhost:3010)

![img/explorer.png](./img/explorer.png)
Expand Down Expand Up @@ -255,9 +255,9 @@ After running this script:
- The 3 addresses have received some tokens to test everything.
- The deployer was registered as a VIP user and PREMIUM_USER_ADDRESS as a premium userr.

### 3.3 - Configure double zero permissions
### 3.3 - Configure Private Validium permissions

Lets go back to the double zero repo. We have to edit this file: `envieronments/compose-hyperchain-permissions.yaml`
Let's go back to the Private Validium repo. We have to edit this file: `envieronments/compose-hyperchain-permissions.yaml`

This files defined the access for permissions for each contract. This is what we are going to do

Expand All @@ -281,7 +281,7 @@ contracts:
# ...
```

Now you can run all the double zero services again, this time we are going to leave them up:
Now you can run all the Private Validium services again, this time we are going to leave them up:

```bash
./environments/launch-hyperchain-env.sh
Expand Down Expand Up @@ -324,4 +324,4 @@ Now, you can go to [localhost:3000](http://localhost:3000) to see your dapp runn

![zerozeroswap.png](./img/zerozeroswap.png)

You can connect your metamask wallet to the double zero rpc through the explorer. And then you can use the app.
You can connect your metamask wallet to the Private Validium rpc through the explorer. And then you can use the app.
10 changes: 5 additions & 5 deletions packages/app/index.html
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Double Zero Block Explorer</title>
<title>Private Validium Block Explorer</title>
<meta charset="UTF-8" />
<meta name="description" content="Double Zero Block Explorer provides all the information to deep dive into transactions, blocks, contracts, and much more. Deep dive into ZKsync Era and explore the network."/>
<meta name="description" content="ZKsync Private Validium Block Explorer provides all the information to deep dive into transactions, blocks, contracts, and much more. Deep dive into ZKsync Era and explore the network."/>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
<meta property="og:title" content="Double Zero Block Explorer" />
<meta property="og:description" content="ZKsync Era Block Explorer provides all the information to deep dive into transactions, blocks, contracts, and much more. Deep dive into ZKsync Era and explore the network." />
<meta property="og:title" content="Private Validium Block Explorer" />
<meta property="og:description" content="ZKsync Private Validium Block Explorer provides all the information to deep dive into transactions, blocks, contracts, and much more. Deep dive into ZKsync Era and explore the network." />
<meta property="og:image" content="https://explorer.zksync.io/preview.png" />
<meta property="og:image:type" content="image/png" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:image:alt" content="ZKsync Era Block Explorer" />
<meta property="og:image:alt" content="ZKsync Private Validium Block Explorer" />

<link rel="alternate icon" type="image/x-icon" href="/favicon.ico" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/components/header/TheHeader.vue
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
>
<span class="sr-only">ZKsync</span>
<zk-sync-era />
<span class="text-black text-xl font-normal">Double Zero</span>
<span class="text-black text-xl font-normal">Private Validium</span>
</router-link>
</div>
<div class="burger-button-container">
Expand Down
4 changes: 2 additions & 2 deletions packages/app/src/locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,7 @@
"subtitle": "zkRollups significantly cheaper than L1 or Optimistic Rollups"
},
"blockExplorer": {
"title": "Double Zero Explorer.",
"title": "Private Validium Explorer.",
"subtitle": "Private, Secure and Fast.",
"latestBlocks": "Latest Blocks",
"latestTransactions": "Latest Transactions",
Expand Down Expand Up @@ -744,7 +744,7 @@
},
"login": {
"title": "Login",
"subtitle": "Connect your wallet to access the Double Zero Block Explorer",
"subtitle": "Connect your wallet to access the Private Validium Block Explorer",
"addNetworkToMetamask": "Add Network to Metamask",
"logout": "Log Out"
}
Expand Down
Loading