breaking the o(n 2 ) bit barrier: scalable byzantine agreement with an adaptive adversary valerie...
Post on 20-Dec-2015
215 views
TRANSCRIPT
Breaking the O(n2) Bit Barrier:
Scalable Byzantine Agreement with an Adaptive Adversary
Valerie King Jared Saia
Univ. of Victoria Univ. of New Mexico
Canada USA
Byzantine Agreement Byzantine Agreement Each proc. starts with a bit; Goal: All procs. decide the same bit,
which must match at least one of their initial bits.
t= # of bad procs. controlled by malicious Adversary
Byzantine agreement for large scale networks
If you could do it practically, you would!Why?• Protecting against malicious attacks • Organizing large communities of users• Mediation in game theory
Fundamental building block
Our Model
• Procs={1,2,…,n}• Message passing:
– A knows if it receives from B
• Synchronous• Private random bits• Private channels• Adaptive adversary• Resilience: t < n(1/3-)• Limit on # bits sent by good procs.:
Bad procs can send any #.
Our Model
• Procs={1,2,…,n}
• Message passing:– A knows if it receives from B
• Synchronous• Private random bits• Private channels• Adaptive adversary• Resilience: t < n(1/3-)• Limit on # bits sent by good procs.:
Bad procs can send any #.
Our Model
• Procs={1,2,…,n}• Message passing:
– A knows if it receives from B
•Synchronous w/ rushing adv.• Private random bits• Private channels• Adaptive adversary• Resilience: t < n(1/3-)• Limit on # bits sent by good procs.:
Bad procs can send any #.
Our Model
• Procs={1,2,…,n}• Message passing:
– A knows if it receives from B• Synchronous
• Private random bits• Private channels• Adaptive adversary• Resilience: t < n(1/3-)• Limit on # bits sent by good procs.:
Bad procs can send any #.
Our Model
• Procs={1,2,…,n}• Message passing:
– A knows if it receives from B• Synchronous• Private random bits
• Private channels• Adaptive adversary• Resilience: t < n(1/3-)• Limit on # bits sent by good procs.:
Bad procs can send any #.
Our Model
• Procs={1,2,…,n}• Message passing:
– A knows if it receives from B• Synchronous• Private random bits• Private channels
• Adaptive adversary• Resilience: t < n(1/3-)• Limit on # bits sent by good procs.:
Bad procs can send any #.
Our Model
• Procs={1,2,…,n}• Message passing:
– A knows if it receives from B• Synchronous• Private random bits• Private channels• Adaptive adversary
• Resilience: t < n(1/3-)• Limit on # bits sent by good procs.:
Bad procs can send any #.
Our Model
• Procs={1,2,…,n}• Message passing:
– A knows if it receives from B• Synchronous• Private random bits• Private channels• Adaptive adversary• Resilience: t < n(1/3-)
• Limit on # bits sent by good procs.:Bad procs can send any #.
Goal: Towards practical scalablescalable BA
• Polylog bits sent per processor• Polylog rounds
Impossibility
• Any BA (randomized) protocol which always uses o(n2) messages in this model has Pr(failure) >0
(Implication of Dolev Reischuk)
Our results
Theorem 1: (BA) For any consts. c, , there is a const. d and a (1/3- )n resilient protocol which solves BA with prob. 1-1/nc using
Õ(n1/2) bits per processor in O(logd n) rounds
Also
Theorem 2: (a.e.BA) For any consts. c, , there is a const. d and a (1/3- )-resilient protocol which brings
1-O(1/log n) fraction of good procs to agreemt with prob. 1-1/nc using
Õ(1) bits per proc. in O(logd n) rounds
Previous work
• An expected constant number of rounds suffice. (Feldman and Micali 1988)
• All previously known protocols use all-to-all communication
KEY IDEA: The power of a short
somewhat random stream S
• S= s1 s2 … sk be short stream of numbers. – Some a.e. global random
numbers, some numbers fixed by an adversary which can see the preceding stream when choosing.
- S can be generated w.h.p.
Talk outlineI: Using S to get a.e. BA
II Using S to go from a.e. BA to BA
III Generating S
Rabin’s BA with Global Coin GCt<n/3
Set vote <-input bit. REPEAT clog n rounds• Send-->all procs.
• Maj <- majority bit from others• Fract <-fraction of votes for Maj
• If Fract > 2/3 agree on bit – then vote <-Maj
• Else if GC =1 – set vote <- 1; else set vote <- 0
Scalable a.e.BA with a.e.Global Coin GC
t< n/3 - Use averaging sampler to assign neighbors to procs=A deterministic way to have mostly
good samples.
Almost all neighbor setscontain a representative fraction of
good procsAlmost all good procs compute
correct Maj for Fract> 2/3+ /2
-->
using S instead of GC-->a.e.BA whp
For i=1,…,k, generate bit si
and run a.e. BA using si for a.e.global coin
It suffices that clog n bits of S are known a.e. and random
II: Using S to go from a.e. BA to BA
• Idea: Query random set of procs to ask bit. Since almost all good procs agree, majority should give correct answer.– Works if bad procs have communication
bound
• But in our model, the adversary can flood all procs with queries!!
• Use s to decide which queries to answer.
II: Using S to go from a.e. BA to BA
Labels= {1,..,n1/2 }FOR each number s of S=Labelsk :• Each proc. p picks Õ(n1/2) random queries
<proc,label> and sends label to proc. • q answers only if label= s (and not
overloaded)• if 2/3 majority of p’s queries with the
same label are returned and agree on v, then p decides v.
IT SUFFICES TO HAVE AN a.e. AGREED upon S with a RANDOM subsequence!
III Generating S
Sparse network Tree of robust supernodes of increasing size with links: procs in child ----> procs in parent node procs in parent node-->leaves of subtrees
All procs.
Supernodes and links generated usingaveraging samplers
Arrays of rand. #’sEach proc pi generates array Ai of rand #’s and secret shares it with its leaf node.#’s in arrays are revealed as needed to elect which remaining parts of arrays will be passed on to parent node.
A1 A2
Feige’s alg carried out in each node Each candidate picks a bin;
winners=lightest bin’s contents
1 2 3 4 5 6
-->>> Requires agreement on all bin choices.
Elections of arrays in node
• We use scalable a.e. BA;bin numbers and S given by numbers
from sequence of winning arrays of children.
s1
s2
As array moves up, secret shares are split up among more procs on higher levels
and erased from children
so that adversary cannot learn a large fraction of arrays promoted to a higher level by taking over a small sets of processors on lower level.
Secrets are revealed as needed: by reversing and duplicating communication down every path, reassembling shares at every leaf of subtree.
so that adversary cannot prevent secret from being exposed by blocking a single path.
Leaves are sampled (det.) by procs in subtree root to learn secret value
Generation of a short S
Only a polylog number of arrays are left at each of the polylog children of the
root. These form S
When agreement on all of S is needed, a.e. BA can be run using supplemental
bits.
Conclusions
Uses of S:• Easier to generate than a single random
coinflip:– S can also be generated w.h.p scalably in the full
information nonadaptive adversary model
(whereas a single random coinflip can’t)• A polylog size S has sufficient randomness to
specify a set of n small quorums which are all good w.h.p (submitted to ICDCN)
• Useful in the asynch alg w/nonadaptive adv (SODA08)
Future work (cont’d)
Asynchronous? Towards more practical scalable BA?Bounds on the communication of the bad
procs makes the a.e. BA to BA easy. Likely this would simplify the a.e. BA
protocol
Other problems (SMPC, handling churn and larger name spaces)
Other user models (selfish)
Questions?