gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lsd0003] branch master updated: Added some new texts


From: gnunet
Subject: [lsd0003] branch master updated: Added some new texts
Date: Sun, 20 Dec 2020 13:02:23 +0100

This is an automated email from the git hooks/post-receive script.

elias-summermatter pushed a commit to branch master
in repository lsd0003.

The following commit(s) were added to refs/heads/master by this push:
     new be36993  Added some new texts
be36993 is described below

commit be3699345fb049986691f71f089a9c130938fcb0
Author: Elias Summermatter <elias.summermatter@seccom.ch>
AuthorDate: Sun Dec 20 13:01:54 2020 +0100

    Added some new texts
---
 draft-summermatter-set-union.xml | 137 +++++++++++++++++++++++----------------
 1 file changed, 80 insertions(+), 57 deletions(-)

diff --git a/draft-summermatter-set-union.xml b/draft-summermatter-set-union.xml
index af2ff29..93034aa 100644
--- a/draft-summermatter-set-union.xml
+++ b/draft-summermatter-set-union.xml
@@ -73,23 +73,37 @@
             <name>Introduction</name>
             <t>
                 This document describes the Byzantine Fault Tolerant Set 
Reconciliation used to efficient and securely
-                synchronize two sets of elements in a peer-to-peer network. It 
provides strong cryptographic and
-                probabilistic proceedings to discover and ban dishonest and 
bad behaving peers.
+                synchronize two sets of elements in a peer-to-peer network. It 
provides cryptographic and
+                probabilistic proceedings to discover dishonest and bad 
behaving peers. The Protocol should prevent
+                bad acting peers from wasting resources by sending wrong 
formed elements, pretending to have more elements
+                than the peer actually has or requesting more than the full 
set from a peer. This is for example achieved by
+                remembering how much elements already have been sent and how 
many elements are possible by some real world
+                limiting factor in E-Voting this for example is the people who 
are permitted to vote. Another probabilistic
+                approach to discover bad behaving peers is sampling, in this 
case a the peer has to prove to the other peer
+                that the peer has the amount of elements he claims to have. To 
prove this the verifying peer chooses some
+                random salt and sends the salt to the proving peer. The 
proving peer then salts the hash of elements with the given
+                salt. In the next step the proving peer calculates the modulo 
(depending on the set sized difference) of the new
+                hashes and sends all the elements where the modulo is 0(?) to 
the verifying peer.
+                As soon as the verifying peer has received the elements the 
verifying peer can verify that all the elements
+                are valid and in the right split of the set then the verifying 
peer can assured with a high probability
+                that the peer is honest about his set size.
             </t>
-            <t>
-                The Byzantine Fault Tolerant Set Reconciliation can be used in 
a variety of different fields of application.
-                It is used in GNS to distribute revocations over the 
peer-to-peer network and it can be used as a central
-                component in distributed E-Voting systems to securely 
synchronize the votes between the peers.
+             <t>
+                The Byzantine Fault Tolerant Set Reconciliation can be used in 
a variety of different fields of application,
+                primarily in Bulletin Boards where multipart computation is 
required.
+                Some real world application are for example in GNS the 
distribute revocations over the peer-to-peer network
+                or it could be used as a central component in distributed 
E-Voting systems to exchange the votes between peer
+                who do not trust each other (Zero-Trust).
             </t>
             <t>
                 The internal structure of the elements in the set is handheld 
by the application using the protocol and is not
                 described more in detail than known limitations.
             </t>
             <t>
-                The protocol has been designed to minimize network round-trips 
and bytes send over the network at the
-                expense of CPU operations and memory usage. Since CPU 
operations are much cheaper than network round trips.
-                Due to certain parameters the protocol decides whatever either 
sending the full set or just sending the elements
-                that differ is cheaper.
+                The protocol should minimize network round-trips and bytes 
send over the network at the
+                expense of CPU operations.
+                The protocol uses some heuristics to determinate if sending 
the full set of elements or just sending the elements
+                that differ in the set is cheaper.
             </t>
             <t>
                 This document defines the normative wire format of resource 
records, resolution processes,
@@ -111,38 +125,32 @@
         <section anchor="contributors" numbered="true" toc="default">
         <name>Contributors</name>
         <t>
-            The major original contributors of this documents have been Elias 
Summermatter and Christian Grothoff.
-        </t>
-        <t>
-            The origianl GNU NET implementation of the  Byzantine Fault 
Tolerant Set Reconciliation has been mainly
-            written by Florian Dold and Christian Grothoff
+            The original GNU NET implementation of the  Byzantine Fault 
Tolerant Set Reconciliation has been mainly
+            written by Florian Dold and Christian Grothoff.
         </t>
         </section>
 
         <section anchor="ibv" numbered="true" toc="default">
         <name>Invertible Bloom Filter</name>
-            <section anchor="ibv_description" numbered="true" toc="default">
-                <name>Description</name>
-                <t>
-                    A Invertible Bloom Filter (IBF) is a probabilistic data 
structure that allows to determinate efficiently
-                    but not with absolut certainty that a given element is 
presence or absence in a set.
-                    The IBF knows tree basic operations add element, remove 
element and decode.
+            <t>
+                A Invertible Bloom Filter (IBF) is a probabilistic data 
structure that allows to determinate efficiently
+                but not with absolut certainty that a given element is 
presence or absence in a set.
+                The IBF knows three basic operations add element, remove 
element and decode.
 
-                    IBF are useful when there is the need to check a set of 
elements for the presence or absence of some
-                    elements in a big set efficiently.
-                </t>
-            </section>
-            <section anchor="ibv_format" numbered="true" toc="default">
+                IBF are useful when there is the need to check a set of 
elements for the presence or absence of some
+                elements in a big set efficiently.
+            </t>
+            <section anchor="ibf_format" numbered="true" toc="default">
                 <name>Format</name>
                 <t>
                     The storage format of an IBF is a "two-component data 
structure" that stores a value
-                    and a count in a bucket. For every bit of the defined 
output length of the used hash functions
+                    and a signed counter in a bucket. For every bit of the 
defined output length of the used hash functions
                     there is a value and a count stored.
-                    The count component is increased by one if on the given 
bit has been hit by the
-                    Add operation and is decreased by one if an bit has been 
hit by the delete operation.
-                    If the bucket is pure (counter = 1) the value contains the 
hash value of an element otherwise in the
+                    The count component is increased by one if on the given 
bit has been hit by the  #### ANSCHAUEN  REDUNDANT
+                    insert operation and is decreased by one if an bit has 
been hit by the delete operation.  #### ILUSTRATONEN
+                    If the bucket is pure (|counter| = 1) the value contains 
the hash value of an element otherwise in the
                     value field is empty (counter= 0) or a XOR product of all 
previously written hashes of elements
-                    (counter > 1)
+                    (|counter| > 1)
                     ### SOME GRAPHIC OF THE FORMAT ###
                 </t>
             </section>
@@ -176,15 +184,18 @@
                         in the section "Remove Element" from the pure buckets 
from the filter creating new pure buckets
                         until the IBF is completely empty and all elements 
have been decoded.
                     </t>
+                </section>
+                <section anchor="ibv_operations_setdiff" numbered="true" 
toc="default">
+                    <name>Set difference</name>
                     <t>
-                        In case there are two different sets for example from 
two different clients (A and B). The two
-                        sets can easily be compared by XORing the IBF of 
client A with the IBF of client B which results in
-                        a new IBF A/B. The IBF A/B can then be decoded as 
described above. The IBF A/B can have two types
-                        of pure buckets with counter set to 1 or -1. If the 
counter is set to 1 the element is missing
-                        in the set of client B and if the counter is set to -1 
the element is missing in the set of
-                        client A.
+                        To calculate the difference between two sets. The two 
IBFs can be compared by XORing both IBFs
+                        which results in a new IBF. This new IBF can then be 
decoded as described in the decoding section.
+                        The new IBF can have two types of pure buckets with 
counter set to 1 or -1. If the counter is set to 1
+                        the element is missing in the second set and if the 
counter is set to -1 the element is missing in
+                        the first set.
                     </t>
                 </section>
+
             </section>
         </section>
 
@@ -204,8 +215,9 @@
                 <t>
                     The trick is to decode the SE with the biggest stratum 
first and calculate the difference of
                     the set if the SE decodes successfully decode the next 
smaller strata estimator repeat
-                    this until the decoding of the SE fails or Stratum 0 is 
reached. Then its possible to estimate
-                    how big the difference between two sets is by calculating 
the count of the
+                    this until the decoding of the SE fails or Stratum 0 is 
reached. Then its possible to estimate  ### Wie berechne ich den strata 
estimator Decodieren wie ist die formal um die
+                    how big the difference between two sets is by calculating 
the count of                          ### 2^n*k k=elemente (Durchnitt duch alle 
die estimatoren) Systamatischer pyas
+                                                                               
                                     ### Wie ist die formel sein?
                     decoded elements divided by the stratum factor. If no of 
the SE decoded choose a smaller stratum or
                     try a other hash function.
                 </t>
@@ -220,37 +232,44 @@
                 Depending on the state of the two sets there are different 
strategies or operation modes how to efficiently
                 determinate missing elements in two sets of two peers.
             </t>
+
+            <t>
+                The simples mode is the full sync mode. The idea is that if 
the difference between the sets of the two
+                peers exceeds a certain threshold the overhead of determinate 
which elements are different outweighs
+                the overhead of sending the complete set. In this case its 
more efficient to just exchange the full sets.
+                ############# IMAGE ##################
+            </t>
+
             <t>
-                The initiating peer starts in the "Expect SE" state and the 
receiving peer starts in the "Expecting IBF" state.
-                In a first step of the protocol the initiating peer opens a 
connection to the receiving peer, requests a Strata
-                Estimator from the receiving peer. The receiving peer answers 
with the Strata Estimator.
+                The initiating peer starts in the "Expect SE" state and the 
receiving peer starts in the "Expecting IBF" state.   ### Afer connectiong to 
the server the initaiting peer is in state
+                In a first step of the protocol the initiating peer opens a 
connection to the receiving peer, requests a Strata   ### Anpassen nach state 
maschine
+                Estimator from the receiving peer. The receiving peer answers 
with the Strata Estimator.                          ### Wie unten nach states 
gliederm
                 After the initiating peer has received the Strata Estimator he 
decides which sync mode is optimal for the
                 the estimated set difference.
-                To ensure that ...... the difference is multiplied by 1.5 if 
there are more than 200 elements differences between the sets (WHY? line 1398).
+                To ensure that ...... the difference is multiplied by 1.5 if 
there are more than 200 elements differences between the sets (WHY? line 1398). 
 ### Tradeoff faktoren nach oben
                 The Full Synchronisation Mode is used if the flag to force 
full sync is set, the estimated difference between the two sets is bigger
                 than 25% or the set size of the receiving peer is zero. 
Otherwise the Individual Element Synchronisation Mode is used.
 
+                the tradeoff between the two is explained in 5.3 ########## 
Ausformulieren
 
             </t>
             <section anchor="modeofoperation_full-sync-client-with-bigger-set" 
numbered="true" toc="default">
                 <name>Full Synchronisation Mode</name>
 
                 <t>
-                    The simples mode is the full sync mode. The idea is that 
if the difference between the sets of the two
-                    peers exceeds a certain threshold the overhead of 
determinate which elements are different overweight
-                    the overhead of sending the complete set. In this case its 
more efficient to just exchange the full sets.
-                    ############# IMAGE ##################
+                    The decision to enter the full sync mode ... en
                 </t>
+
                 <t>
-                    If the set of the initiating peer is bigger than the set 
of the receiving peer, the initiating
-                    peer sends a "Request Full" message and change from 
"Expecting SE" in "Full Receiving" State.
-                    In all other cases the initiating peer starts sending all 
set elements to the other peer
+                    In full synchronisation mode, if the set of the initiating 
peer is bigger than the set of the receiving peer, the initiating    ### 
Nachrichten und states ander darstellen
+                    peer sends a "Request Full" message and change from 
"Expecting SE" in "Full Receiving" State.                                   ### 
Refferenz auf nachrichten & all elements = message type anstat beschreibung
+                    In all other cases the initiating peer sends all set 
elements to the other peer
                     followed by the "Full Done" message and changes into "Full 
Sending" State.
                 </t>
                 <t>
-                    <strong>Expecting IBF: </strong>
+                    <strong>Expecting IBF: </strong>                           
                                                                      ## 
Descripion list
                     If a peer in the in state "Expecting IBF" receives a 
"Request Full" message from the other peer, the
-                    peer starts sending all the elements of the set followed 
by a "Full Done" message and the change to the
+                    peer starts sending all the elements of the set followed 
by a "Full Done" message and change to the
                     "Full Sending" State. If the peer receives an "Full 
Element" the peer changes to the state "Full Receiving".
                 </t>
                 <t>
@@ -261,8 +280,8 @@
                 <t>
                     <strong>Full Receiving (In code: Expecting IBF): </strong>
                     While a peer is in "Full Receiving" state the peer expects 
to continuously receiving elements from the other
-                    peer. As soon as a the "Full Done" message is received the 
peer starts sending his complete set to the other
-                    peer followed by a full done. After sending the last 
message the peer changes into "Finished" state.
+                    peer. As soon as a the "Full Done" message is received the 
peer sends the remaining elements set to the other
+                    peer followed by a "Full Done". After sending the last 
message the peer changes into "Finished" state.
                 </t>
 
             </section>
@@ -287,9 +306,13 @@
                     <name>Description</name>
                     <t>
                         This message is the first message of the protocol and 
it is sent to signal the receiving peer
-                        that the initiating peer wants to initialize a new 
connection. This Message is sent in the transition
-                        between the "Initiating connection" state and the 
"Expect SE" state. If a peer receives this message
-                        the peer answers with sending a Strata estimator back.
+                        that the initiating peer wants to initialize a new 
connection.
+                    </t>
+                    <t>
+                        This Message is sent in the transition between the 
"Initiating connection" state and the "Expect SE" state.
+                    </t>
+                    <t>
+                        If a peer receives this message the peer answers with 
sending a Strata estimator back.
                     </t>
                 </section>
                 <section anchor="messages_operation_request_structure" 
numbered="true" toc="default">

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]