From cceb6dee90bf403f0bc1c22d27c74ae1cb0aa33d Mon Sep 17 00:00:00 2001 From: jude Date: Fri, 28 Apr 2023 21:14:31 +0100 Subject: [PATCH] idk --- whitepaper/Dissertation.pdf | Bin 505133 -> 506021 bytes whitepaper/Dissertation.tex | 13 ++++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/whitepaper/Dissertation.pdf b/whitepaper/Dissertation.pdf index 50102d2b7579a9de8d35d19e9aab60b287ac9c0d..851def75ce365f000496f38c448c390b492f6f3b 100644 GIT binary patch delta 27852 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

X0TR?wmeK8RM{DY*iSxEk9D3oE+{pF$mvn6kuQ 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 JNr diff --git a/whitepaper/Dissertation.tex b/whitepaper/Dissertation.tex index d9729fe..a26a70b 100644 --- a/whitepaper/Dissertation.tex +++ b/whitepaper/Dissertation.tex @@ -8,7 +8,6 @@ % requirements spec, clear evaluation of security with links to proofs etc. % clear achievements of content in regards to goals % reflect on achievemtns, difficulties, novelty etc. -% diagrams maybe \usepackage{algorithmicx} \usepackage{algpseudocode} @@ -1193,12 +1192,20 @@ All measurements were taken on Brave 1.50.114 (Chromium 112.0.5615.49) 64-bit, u \section{Contributions} -This project has contributed an implementation of an optimised form of Paillier that is compatible with modern web browsers. It is evident that, considering current hardware, Paillier in Jurik's form is a viable cryptosystem. +This project has contributed an implementation of an optimised form of Paillier that is compatible with modern web browsers. Benchmarks show that, considering current hardware, Paillier in Jurik's form can be a viable cryptosystem for occasional use. However, additional work is needed to make it efficient enough for large amounts of encryptions, as seen in \hyperref[protocol4]{Protocol~\ref{protocol4}}. -The Paillier implementation provides means for Schnorr-style proofs of knowledge and also multi-round proofs of knowledge, which serialise to JSON. These are made non-interactive by applying the SHAKE cryptographic hash suite to reduce program complexity and communication cost. +The Paillier implementation provides capability for Schnorr-style proofs of knowledge and also multi-round proofs of knowledge, which serialise to JSON. These are made non-interactive by applying the SHAKE cryptographic hash suite. Multi-round proofs combining set membership and graph isomorphism are among the implementations, and have strong zero-knowledge properties once used with the Fiat-Shamir transform. +\section{Domain} + +The protocols devised are effective in the target domain of online games. With multi-round proofs of 24 rounds, players can be confident to a reasonably high probability that other players are not trying to cheat. + +For the most part, the protocols shown run in a time-frame that would not disrupt the experience, with the exception of the bit length proof. With additional work, this proof could be replaced with a Bulletproof \cite{bulletproofs}, which may use less bandwidth and perform faster. + +A large outstanding problem with the implementation is conflict resolution. Currently, if a player submits proofs that do not verify, other players simply ignore the message. However, a better solution should be that the other players can decide to remove a misbehaving player from the protocol. + \section{Wider application} P2P software solutions have many benefits to end users: mainly being greater user freedom. I believe that the content presented here shows clear ways to extend P2P infrastructure, and reduce dependence on centralised services.