-
Notifications
You must be signed in to change notification settings - Fork 10
Overview
RSCoin is a modern cryptocurrency, implementing the idea idea of building cryptocurrency as a centralized network.
This document describes our implementation of RSCoin, based on [original work] (https://eprint.iacr.org/2015/502.pdf) by George Danezis and Sarah Meiklejohn, with adding two more features:
From a technical point of view, RSCoin system involves following actors:
- Bank or Central Bank
- Mintettes
- Notary
- User (s)
Central Bank or CB is an entity, mainly responsible for publishing transactions (cause RSCoin is a cryptocurrency, our main deal is to send transactions). It does that in so called HBlocks, which are being delivered to all actors in system. HBlock is simply a block in RSCoin blockchain.
HBlock is emerged repeatedly with some timeout, time space between two sequential HBlocks is called a Period.
Along with publishing transactions Bank has following responsibilities:
- Maintain and publishes a list of active (authorized) mintettes for current period
- Publish registered MS addresses (see Addresses)
It's crucial to say, that Bank serves only read-only entry points, meaning you can't just contact to Bank and propose some change to system. Instead, it's the Bank who contacts other actors of system and all write-only operations occur only during this communication.
Mintettes are the key actors of system. They're the middle layer between User and CB. If user wants to perform a transaction, he sends it to a set of mintettes, associated with transaction's inputs.
Mintettes should agree on that User is eligible to spend money from transaction's inputs, and if they agree, they save this transaction in so-called LBlocks. These LBlocks are not published to system, instead they're preserved on Mintettes.
On the end of period, Bank queries Mintettes for these LBlocks and forms a new HBlock. Then this HBlock is being published.
Notary is a special entity, introduced as part of multisig address concept. Notary is responsible for:
- gathering signatures for incoming transactions
- gathering signatures for MS address allocations
More detailed info about how MS addresses are implemented is described in Addresses.
User is basically a user of system. It may have control over an arbitrary amount of addresses (address is actually a wallet), i.e. using these addresses to send transactions within the system.