• Stars
    star
    1,265
  • Rank 37,188 (Top 0.8 %)
  • Language
    Rust
  • Created almost 5 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Nym provides strong network-level privacy against sophisticated end-to-end attackers, and anonymous transactions using blinded, re-randomizable, decentralized credentials.

The Nym Privacy Platform

The platform is composed of multiple Rust crates. Top-level executable binary crates include:

  • nym-mixnode - shuffles Sphinx packets together to provide privacy against network-level attackers.
  • nym-client - an executable which you can build into your own applications. Use it for interacting with Nym nodes.
  • nym-socks5-client - a Socks5 proxy you can run on your machine and use with existing applications.
  • nym-gateway - acts sort of like a mailbox for mixnet messages, which removes the need for direct delivery to potentially offline or firewalled devices.
  • nym-network-monitor - sends packets through the full system to check that they are working as expected, and stores node uptime histories as the basis of a rewards system ("mixmining" or "proof-of-mixing").
  • nym-explorer - a (projected) block explorer and (existing) mixnet viewer.
  • nym-wallet - a desktop wallet implemented using the Tauri framework.

License Build Status

Building

Platform build instructions are available on our docs site. Wallet build instructions are also available on our docs site.

Developing

There's a .env.sample-dev file provided which you can rename to .env if you want convenient logging, backtrace, or other environment variables pre-set. The .env file is ignored so you don't need to worry about checking it in.

For Typescript components, please see ts-packages.

Developer chat

We used to use Keybase for developer chats, but we have since migrated to Matrix and Discord. We no longer check the old nymtech.friends Keybase team.

You can chat to us in two places:

  • The #dev channel on Matrix
  • The various developer channels on Discord

Rewards

Node, node operator and delegator rewards are determined according to the principles laid out in the section 6 of Nym Whitepaper. Below is a TLDR of the variables and formulas involved in calculating the epoch rewards. Initial reward pool is set to 250 million Nym, making the circulating supply 750 million Nym.

Symbol Definition
global share of rewards available, starts at 2% of the reward pool.
node reward for mixnode i.
ratio of total node stake (node bond + all delegations) to the token circulating supply.
ratio of stake operator has pledged to their node to the token circulating supply.
fraction of total effort undertaken by node i, set to 1/k.
number of nodes stakeholders are incentivised to create, set by the validators, a matter of governance. Currently determined by the reward set size, and set to 720 in testnet Sandbox.
Sybil attack resistance parameter - the higher this parameter is set the stronger the reduction in competitiveness gets for a Sybil attacker.
declared profit margin of operator i, defaults to 10% in.
uptime of node i, scaled to 0 - 1, for the rewarding epoch
cost of operating node i for the duration of the rewarding epoch, set to 40 NYMT.

Node reward for node i is determined as:

where:

and

Operator of node i is credited with the following amount:

Delegate with stake s receives:

where s' is stake s scaled over total token circulating supply.

Licensing and copyright information

This program is available as open source under the terms of the Apache 2.0 license. However, some elements are being licensed under CC0-1.0 and MIT. For accurate information, please check individual files.

More Repositories

1

sphinx

A Sphinx implementation in Rust
Rust
271
star
2

developer-tutorials

Repo storing the finished code for Nym Developer Tutorials
Rust
192
star
3

nyxd

Fork of https://github.com/CosmWasm/wasmd for Nyx validators
Go
180
star
4

CensorshipMeasurements

Censorship tests for the Nym network
Go
146
star
5

tauri_lib

tauri lib poc
TypeScript
90
star
6

ephemera

Rust
83
star
7

bdjuno

A fork of https://github.com/forbole/bdjuno for the Nyx blockchain
Go
77
star
8

ci-playground

A playground for testing CI/CD jobs with GitHub Actions
56
star
9

docs

Nym Mixnet Software Docs built with mdBook
CSS
50
star
10

nym-vpn-client

The NymVPN client apps for desktop and mobile
Swift
49
star
11

coconut

Implementations of the Coconut signing scheme, cross-compatible between Rust and Go.
Go
30
star
12

nym-mixnet

[Note: Deprecated!] Anonymous packet-based messaging using mix networks, based on Loopix and Sphinx
Go
27
star
13

helios-nym

An experimental fork of a16z's Helios Ethereum client which can run its network traffic over the Nym mixnet
Rust
19
star
14

rewardsharing-simulator

A simulator for the reward mechanism of the Nym network.
Python
14
star
15

nym-metrics-server

A metrics server showing mixnode mixing performance in near-realtime.
Go
13
star
16

node-status-api

An API to track uptime for Nym nodes
Go
13
star
17

dev-portal

Developer Portal mdbook content
CSS
11
star
18

nym-web-dashboard

Web dashboard showing an overview of Nym network functioning
HTML
9
star
19

fdroid

F-Droid repository for Nym apps.
Go
9
star
20

nym-vpn-android

The NymVPN client app for Android
Kotlin
8
star
21

bity-interface

Nym exchange interface
CSS
8
star
22

sphinx-bench

Quick benchmark (perf) scripts for our Sphinx implementation
Rust
8
star
23

demo-mixnet-electron-chat

Shows you how to use the Nym mixnet from any language using network sockets
TypeScript
8
star
24

service-grants

Application repository for Nym service grants
7
star
25

network-requester-connectivity-check

A script to check the daily connection uptime for NymConnect network requesters
JavaScript
7
star
26

qt-validator-client-demo

A primitivist QT client that can exercise the Nym validators
QML
6
star
27

demo-mixnet-chat-client

A simple chat client which sends its traffic through the nym-mixnet.
Go
6
star
28

cosmwasm-state-testing

A set of utility mocks for operating on cosmwasm contract state dumps
6
star
29

ledger-covid-passport

Private COVID Certificate (PCC) - A Coconut Prototype
TypeScript
6
star
30

team-triage

This repo holds issues that are used to triage problems raised in our social channels. It has no code in it, only issues.
4
star
31

odoo-crypto-addons

Python
4
star
32

nym-zcash-grpc-demo

An initial demo of interacting with a lightwalletd node via gRPC over the Nym mixnet.
Rust
1
star
33

nym-vpn-mullvad-libs

Rust
1
star