Skip to content

Latest commit

 

History

History
57 lines (43 loc) · 2.33 KB

BuildingBlocks.md

File metadata and controls

57 lines (43 loc) · 2.33 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.

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.

General Crypto

This is our one size fits all collection of blocks that are useful in different places, but not tied to one specific application.

Messaging

Finally some building blocks useful in most of the services.