DyCAPS

module
v0.0.0-...-09d2262 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 17, 2023 License: MIT

README

This repo contains the implementation of the paper DyCAPS: Asynchronous Proactive Secret Sharing for Dynamic Committees.

Three branches are included in this repo:

  • main : evaluate the latency of DyCAPS.Handoff.

  • byStep : evaluate the latency of each step in DyCAPS.Handoff, where the steps are executed sequentially. *Sequential execution consumes around 20% more seconds than concurrent execution.

  • payload : evaluate the latency and throughput of DyCAPS.Handoff with different payload sizes. Given a payload, DyCAPS.Handoff serves as a dynamic-committee version of Dumbo. Besides, setting payload=0 gives the same functionality as main.

In this repo, the shares are sent to the parties by a trusted dealer during the latency benchmark (just for simplicity).

Dependencies

Configure

Before executing DyCAPS, come into the directory ./cmd/DyCAPs/list and configure the IP addresses and port numbers for parties in both the old committee and the new committee.

  • Write n lines of IP addresses in file ipList, where line i is for party i in the old committee, and n denotes the maximum of parties in each committee.
  • Write n lines of port numbers in file portList.
  • Do the same in ipListNext and portListNext for the new committee.

Run DyCAPS Locally

The IP addresses for all parties are 127.0.0.1 for local configuration (we use port numbers to identify the parties).

To run branch main and byStep, execute the following script in ./cmd/DyCAPs :

./test_multiCommittee.sh <n> <f>

To run branch payload:

./test_multiCommittee.sh <n> <f> <payloadSize>

where n is the total number of parties in each committee, f is the number of corrupted parties and payloadSize is the size of payload (in Bytes).

We require n and f satisfies that n = 3f + 1.

We recommand n=4,f=1 if you are using a laptop for local test.

Results can be found in ./cmd/DyCAPs/metadata, where files named log* show the latency information of the specified party and those named executingLog* show the details of execution.

Directories

Path Synopsis
cmd
internal
bls
forked from https://github.com/protolambda/go-kzg at Feb 2,2023
forked from https://github.com/protolambda/go-kzg at Feb 2,2023
polycommit
forked from https://github.com/protolambda/go-kzg at Feb 2,2023
forked from https://github.com/protolambda/go-kzg at Feb 2,2023
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL