This repository has been archived by the owner on Nov 22, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
OPIS
85 lines (61 loc) · 2.81 KB
/
OPIS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
Prereq:
install cryptopp, thrift
Complilation:
run make in all directories except bitcoin
in bitcoin/cpp run make
in bitcoin/java run ant compile
Usage:
To execute protocol buyer needs to have enough bitcoins on his account.
To see its balance and receive address run `ant info` in bitcoin/java.
Transfer some bitcoins into buyers address before starting the protocol.
in bitcoin/java start servers for seller and buyer (in separate processes)
ant seller
ant buyer
in main
./main
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Jak uruchomić:
zainstalować cryptopp
zainstalować thrift
cd main
make
./main
-------------------------------------------------------------------------------
Co jest napisane w tej chwili:
part 1 handshake
part 2 generating signature and keys (w cut and choose)
part 3 validating cut and choose (do sprawdzenia)
part 4 generating square roots
part 5 payment implemented, redeeming after time lock is broken not implemented
brakuje part 5 odzyskiwania kasy i ogłady. Trzeba jeszcze dopisać lepszy time
lock.
-------------------------------------------------------------------------------
Organizacja kodu:
Każdy podprotokół ma swój folder z implementacją, testami i zależnościami.
W common jest parę stałych i funkcji przydatnych.
W main jest main, i implementacja głównego protokołu.
-------------------------------------------------------------------------------
protocol.h i cut_and_choose
Żeby korzystać z cut_and_choose trzeba napisać protokół w określony sposób.
Jak zaimplementować protokół pod cut_and_choose:
Trzeba zdefiniować dwie klasy np. A i B które będą brały udział w protokole.
Następnie trzeba zdefiniować klasę protokołu np. P dziedziczącą po Protocol.
Protocol ma 3 metody: init, exec i open o sygnaturze void (A*, B*).
W tej chwili kilka protokołów implementuje Protocol np. sha_commitment,
shared_signature.
Żeby uruchomić cut_and_choose trzeba najpierw stworzyć vector<A> va i
vector<B> vb. Następnie trzeba stworzyć instancje Prover i Verifier i
przekazać va i vb. Po stronie weryfikatora trzeba wybrać indeks i.
Potem należy wywołać cut_and_choose.
-------------------------------------------------------------------------------
main/signature_key
Tutaj jest implementacja part 2 czyli generowanie podpisu i kluczy. To jest
włożone do cut and choose.
-------------------------------------------------------------------------------
main/sell_information
Główny protokół.
-------------------------------------------------------------------------------
Czas wykonania:
main ok 6 sekund - większość stałych jest ustawiona na 10 w common/common.h