README.md 2.27 KB
Newer Older
Loïck Bonniot's avatar
Loïck Bonniot committed
1
2
DFSS
====
Loïck Bonniot's avatar
Loïck Bonniot committed
3
> Distributed Fair Signature System
Loïck Bonniot's avatar
Loïck Bonniot committed
4

5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
DFSS is a simple and secure way to e-sign contracts with a large number of participants, ensuring fairness and minimizing the involvement of the trusted third party (TTP).
This repository contains source code for this INSA Rennes project.

- Website: https://static.lesterpig.com/dfss_web/
- Downloads: https://static.lesterpig.com/dfss/

Project Status
--------------

The DFSS project is developed by fourth year students of the Computer Science department of INSA Rennes (FR).
For now, the infrastructure is working, without the implementation of the signature cryptographic kernel (**Private Contract Signatures**), defined in many research papers, but not yet implemented.

It's thus a *proof of concept* and not production-ready.

Reference:
- [Aybek Mukhamedo, Mark D. Ryan. Fair Multi-party Contract Signing using Private Contract Signatures.](https://www.researchgate.net/publication/222527059_Fair_multi-party_contract_signing_using_private_contract_signatures)
- [Barbara Kordy, Saša Radomirović. Constructing Optimistic Multi-party Contract Signing Protocols.](http://people.irisa.fr/Barbara.Kordy/papers/CSF12.pdf)
22
23
24
25
26
27
28
29

Configure workspace
-------------------

1. Install Go (>=1.5) and configure a Go workspace as [explained here](https://golang.org/doc/code.html#Organization)

2. Navigate under `$GOPATH/src` and clone this repository

30
3. Install build dependencies in `dfss/` directory
31
32

```bash
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
dfss/build/deps.sh
```

4. At this point, you will be able to install the DFSS project with some simple commands

- To install CLI applications:

```bash
go install dfss/dfssc # Client
go install dfss/dfssp # Platform
go install dfss/dfsst # TTP

# or

make install
```

- To build GUI for client into `bin/` directory (using docker image)

```
# You may have to run these commands as root due to docker (sudo won't work)

# Prepare docker image, one time only
make prepare_gui

# Build
make gui
60
make dfssd
61
62
```

63
64
Do not attempt to run `go install dfss/...` or `go install ./...`, it won't work due to graphic binaries.

65
66
67
68
69
Run dfss modules
----------------

```bash
dfssc help # Client
70
71
dfssp help # Platform
dfsst help # TTP
72
```
73
74
75
76
77
78
79
80

For graphic clients, you may need to install some Qt4 libraries on your system.

```bash
cd bin
./gui   # Client GUI
./dfssd # Demonstrator
```