All Projects → AztecProtocol → Aztec

AztecProtocol / Aztec

Licence: lgpl-3.0
Public repository for the AZTEC protocol

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Aztec

Smart Contracts Example
Simple example of token market. Based on blockchain technology using Ethereum platform.
Stars: ✭ 37 (-92.34%)
Mutual labels:  blockchain, ethereum, ethereum-blockchain
Quorum
A permissioned implementation of Ethereum supporting data privacy
Stars: ✭ 4,054 (+739.34%)
Mutual labels:  blockchain, ethereum, privacy
Etherscan Ml
Python Data Science and Machine Learning Library for the Ethereum and ERC-20 Blockchain
Stars: ✭ 55 (-88.61%)
Mutual labels:  blockchain, ethereum, ethereum-blockchain
Awesome Privacy On Blockchains
A curated list of privacy on blockchains resources
Stars: ✭ 86 (-82.19%)
Mutual labels:  blockchain, ethereum, privacy
Merkletreejs
🌱 Construct Merkle Trees and verify proofs in JavaScript.
Stars: ✭ 238 (-50.72%)
Mutual labels:  blockchain, ethereum, protocol
Disperse
React/Redux dApp (decentralized app) boilerplate using Ethereum's blockchain
Stars: ✭ 36 (-92.55%)
Mutual labels:  blockchain, ethereum, ethereum-blockchain
React Ethereum Dapp Example
A starter boilerplate for an Ethereum dapp using web3.js v1.0, truffle, react, and parity
Stars: ✭ 384 (-20.5%)
Mutual labels:  blockchain, ethereum, ethereum-blockchain
Graph Node
Graph Node indexes data from blockchains such as Ethereum and serves it over GraphQL
Stars: ✭ 884 (+83.02%)
Mutual labels:  blockchain, ethereum, protocol
Derosuite
DERO: Secure, Anonymous Blockchain with Smart Contracts. Subscribe to Dero announcements by sending mail to [email protected] with subject: subscribe announcements
Stars: ✭ 216 (-55.28%)
Mutual labels:  blockchain, protocol, privacy
Framework
0xcert Framework - JavaScript framework for building decentralized applications - build something unique
Stars: ✭ 213 (-55.9%)
Mutual labels:  blockchain, ethereum, protocol
Protocol
Enzyme Protocol Implementation
Stars: ✭ 211 (-56.31%)
Mutual labels:  blockchain, ethereum, protocol
Presto Ethereum
Presto Ethereum Connector -- SQL on Ethereum
Stars: ✭ 450 (-6.83%)
Mutual labels:  blockchain, ethereum, ethereum-blockchain
Eventeum
A resilient Ethereum event listener that bridges your smart contract events and backend microservices
Stars: ✭ 272 (-43.69%)
Mutual labels:  blockchain, ethereum, ethereum-blockchain
Unlock
Ʉnlock is a protocol for memberships built on a blockchain.
Stars: ✭ 365 (-24.43%)
Mutual labels:  blockchain, ethereum, protocol
Iexec Sdk
CLI and JS library allowing developers to easily interact with the iExec stack
Stars: ✭ 387 (-19.88%)
Mutual labels:  blockchain, ethereum
Nimbus Eth1
Nimbus: an Ethereum 1.0 and 2.0 Client for Resource-Restricted Devices
Stars: ✭ 386 (-20.08%)
Mutual labels:  blockchain, ethereum
Crypto Whale Watching App
Python Dash app that tracks whale activity in cryptocurrency markets.
Stars: ✭ 389 (-19.46%)
Mutual labels:  ethereum, ethereum-blockchain
Awesome Ethereum
⚡️ Awesome Ethereum Resources
Stars: ✭ 459 (-4.97%)
Mutual labels:  blockchain, ethereum
Solidity Cheatsheet
Cheat sheet and best practices for solidity. Write smart contracts for Ethereum.
Stars: ✭ 384 (-20.5%)
Mutual labels:  blockchain, ethereum
Ethereumkit
EthereumKit is a free, open-source Swift framework for easily interacting with the Ethereum.
Stars: ✭ 400 (-17.18%)
Mutual labels:  blockchain, ethereum

AZTEC is an efficient zero-knowledge privacy protocol. The protocol powers real world financial applications on Ethereum mainnet today. A complete explanation of AZTEC can be found in our white paper.

CircleCI Coverage Status Semantic Release Commitizen Friendly Twitter License: LGPL v3


Documentation 📚

All AZTEC documentation is available on the documentation website: https://docs.aztecprotocol.com

This contains docs for the:

  • SDK
  • aztec.js
  • Starter kits, demos and code examples
  • Protocol specification

Packages 📦

AZTEC is maintained as a monorepo with multiple sub packages. Please find a comprehensive list below.

JavaScript Packages

Package Version Description
aztec.js npm An aggregate package combining many smaller utility packages for interacting with the AZTEC Protocol
@aztec/contract-artifacts npm AZTEC smart contract compiled artifacts
@aztec/contract-addresses npm A tiny utility library for getting known deployed contract addresses for a particular network
@aztec/dev-utils npm Dev utils to be shared across AZTEC projects and packages

Solidity Packages

Package Version Description
@aztec/protocol npm AZTEC solidity smart contracts & tests

Private Packages

Package Description
@aztec/monorepo-scripts Scripts for managing the monorepo

Usage ⚒

To create AZTEC notes and construct zero-knowledge proofs:

$ yarn add aztec.js

Other goodies:

$ yarn add @aztec/contract-artifacts
$ yarn add @aztec/contract-addresses
$ yarn add @aztec/dev-utils

To see a demo, head to this tutorial.

For more information, check out our documentation.

Contributing 🙋

Requirements

  • node >=8.3
  • yarn >=1.15.2
  • solidity >=0.5.0 <0.6.0

Pre Requisites

Make sure you are using Yarn >= 1.15.2. To install using brew:

brew install yarn

Then install dependencies:

yarn install

Build

To build all packages:

$ yarn build

To build a specific package:

$ PKG=aztec.js yarn build

Watch

To re-build all packages on change:

$ yarn watch

Clean

To clean all packages:

$ yarn clean

To clean a specific package:

$ PKG=aztec.js yarn clean

Lint

To lint all packages:

$ yarn lint

To lint a specific package:

$ PKG=aztec.js yarn lint

Test

To run all tests:

$ yarn test

To run tests in a specific package:

$ PKG=aztec.js yarn test

FAQ ❓

What is the AZTEC Protocol?

The protocol enables transactions of value, where the values of the transaction are encrypted. The AZTEC protocol smart contract validator, AZTEC.sol, validates a unique zero-knowledge proof that determines the legitimacy of a transaction via a combination of homomorphic encryption and range proofs.

What is encrypted 'value'?

Instead of balances, the protocol uses AZTEC notes. A note encrypts a number that represents a value (for example a number of ERC-20 tokens). Each note has an owner, defined via an Ethereum address. In order to spend a note the owner must provide a valid ECDSA signature attesting to this.

What does this enable?

Confidential representations of ERC20-tokens

The AZTEC protocol can enable confidential transactions for any generic digital asset on Ethereum, including existing assets. Our first deployed asset enables zkDai.

Fully confidential digital assets

The AZTEC protocol can be utilized as a stand-alone confidential token, with value transfers described entirely through AZTEC join-split transactions

How much gas do these transactions cost?

The gas costs scale with the number of input and output notes in a join-split transaction. For a fully confidential transfer, with 2 input notes and 2 output notes, the gas cost is approximately 300,000 gas.

Where can I see this in action?

The AZTEC protocol is live today on the Ethereum main-net. Here is an example AZTEC join-split transaction.

Range proofs you say? How does that work?

Read the AZTEC paper here. The unique AZTEC commitment function enables the efficient construction and verification of range proofs. The protocol requires a trusted setup protocol, that generates a dataset that is required to construct AZTEC zero-knowledge proofs

The Trusted Setup

AZTEC ran Ignition, an MPC ceremony to generate a CRS for our privacy network and other zero-knowledge systems like PLONK from October 25th 2019 to the January 2nd 2020. 176 individuals and institutions took part, each generating randomness and adding it to the previous participant's contribution. If even one participant acts honestly and destroys the randomness they generated, the CRS can be trusted. You can see a recap of Ignition here.

Are AZTEC transactions anonymous as well as confidential?

The AZTEC protocol currently only supports confidentiality of amounts. We will be adding User privacy and Code privacy to the protocol and SDK.

This sounds interesting! How can I get involved?

Anybody wishing to become early members of the AZTEC network please get in touch at [email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].