Skip to content

Latest commit

 

History

History
53 lines (41 loc) · 2.23 KB

BuildingBlocks.md

File metadata and controls

53 lines (41 loc) · 2.23 KB

Navigation: DEDIS :: Cothority :: Building Blocks

Building Blocks

Building blocks are grouped in terms of research units and don't have a special representation in code. Also, the General Crypto library is more of a collection of different protocols.

Consensus

Whenever you have a distributed system the question of consensus arises: how do you make sure that a majority of nodes see the same state? At DEDIS we're using collective signatures as a base to build a PBFT-like consensus protocol. Based on that we implemented a skipchain that can store arbitrary data in blocks and use a verification function to make sure all nodes agree on every block.

  • Collective Signing is the current signing algorithm we are using (deprecates cosi and ftcosi).
  • ByzCoinX is the an improved implementation of the consensus protocol in the OmniLedger paper.

Deprecated:

Key Sharding

Another useful tool for distributed system is key sharing, or key sharding. Instead of having one key that can be compromised easily, we create an aggregate key where a threshold number of nodes need to participate to decrypt or sign. Our blocks can do a publicly verifiable distributed key generation as well as use that sharded key to decrypt or reencrypt data to a new key without ever having the data available.

Messaging

Finally some building blocks useful in most of the services.