Skip to content

Commit

Permalink
docs: update readme (#8)
Browse files Browse the repository at this point in the history
* fix: remove batched event and clean up some tests

* docs: updated README

* docs: replace logo
  • Loading branch information
strumswell authored Sep 2, 2022
1 parent bcb42fb commit 28a3d34
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 1 deletion.
60 changes: 59 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,62 @@
# Ethereum Revocation Registry (EIP-5539)
<div align="center">
<img src="img/logo.png" width="256"/>
</div>

<div align="center">

# Ethereum Revocation Registry

#### A reference implementation of an EIP-5539-compatible revocation registry for Ethereum.

[![EIP Draft](https://img.shields.io/badge/EIP--5539-Draft-blue)](https://github.com/ethereum/EIPs/pull/5539)
[![GitHub contributors](https://badgen.net/github/contributors/spherity/Ethereum-Revocation-Registry)](https://github.com/spherity/Ethereum-Revocation-Registry/graphs/contributors/)
[![GitHub issues](https://img.shields.io/github/issues/spherity/Ethereum-Revocation-Registry)](https://github.com/spherity/Ethereum-Revocation-Registry/issues/)
[![GitHub pull-requests](https://img.shields.io/github/issues-pr/spherity/Ethereum-Revocation-Registry.svg)](https://github.com/spherity/Ethereum-Revocation-Registry/pull/)

</div>

## Motivation

The EIP-5539 draft proposes a new RBAC-enabled revocation registry that can be used by any valid Ethereum address to maintain a set of revocation lists. In those, arbitrary revocation keys can be marked as either revoked or not. Additionally, the registry includes a set of management features that enables owners to have features like delegates, owner changes, and meta transactions.

This repository includes a well-tested reference implementation that implements all described features in EIP-5539.

## Concepts


### Namespace

A namespace is a representation of an Ethereum `address` inside the registry that corresponds to its owners `address`. All revocation lists within a namespace are initially owned by the namespace's owner `address`. All namespaces are already claimed by their corresponding owners.

### Revocation List

A namespace can contain an (almost) infinite number of revocation lists. Each revocation list is identified by a unique key of the type `bytes32` that can be used to address it in combination with the namespace `address`.

### Revocation Key

A revocation list can contain an (almost) infinite number of revocation keys of the type `bytes32`. In combination with the namespace `address` and the revocation list key, it resolves to a boolean value that indicates whether the revocation key is revoked or not. Revocations can always be undone.

### Owner

An Ethereum `address` that has modifying rights to revocation lists within its own and possibly foreign namespaces. An owner can give up modifying rights of revocation lists within its namespace by transferring ownership to another `address`. The revocation list will still reside in its original namespace though.

### Delegate

An Ethereum `address` that received temporary access to a revocation list in a namespace. It has to be granted by the current owner of the revocation list in question.

### Meta Transaction

Owners and delegates can provide a signed payload off-band to another `address` (transaction sender) that initiates the Ethereum interaction with the smart contract. This might be helpful for services providing easy-to-use access to the registry.

## Interacting with the Registry

Implementers can call all methods of the registry directly with already existing web3 libraries. Alternatively, the Typescript library [Ethereum-Revocation-Registry-Controller](https://github.com/spherity/Ethereum-Revocation-Registry-Controller) can be used as an easy-to-use interface to interact with the registry.

## Contract Deployments

| Network Name | name | chainId | hexChainId | Registry Address | Registry version |
|--------------|---------|---------|------------|--------------------|-----------------------|
| Mainnet | mainnet | 1 | 0x01 |||

## Development

Expand Down
Binary file added img/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 28a3d34

Please sign in to comment.