mailman-lists-archive/pipermail/zapps-wg/2018/000266.html

166 lines
8.6 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE> [zapps-wg] Randomness Beacon
</TITLE>
<LINK REL="Index" HREF="/pipermail/zapps-wg/2018/index.html" >
<LINK REL="made" HREF="mailto:zapps-wg%40lists.zfnd.org?Subject=Re%3A%20%5Bzapps-wg%5D%20Randomness%20Beacon&In-Reply-To=%3C6d940698-f1f8-d06c-ea0b-43e0c343f8a2%40gmail.com%3E">
<META NAME="robots" CONTENT="index,nofollow">
<style type="text/css">
pre {
white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
}
</style>
<META http-equiv="Content-Type" content="text/html; charset=us-ascii">
<LINK REL="Previous" HREF="000265.html">
<LINK REL="Next" HREF="000267.html">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H1>[zapps-wg] Randomness Beacon</H1>
<B>Kevin</B>
<A HREF="mailto:zapps-wg%40lists.zfnd.org?Subject=Re%3A%20%5Bzapps-wg%5D%20Randomness%20Beacon&In-Reply-To=%3C6d940698-f1f8-d06c-ea0b-43e0c343f8a2%40gmail.com%3E"
TITLE="[zapps-wg] Randomness Beacon">kevinsisco61784 at gmail.com
</A><BR>
<I>Fri Feb 16 11:41:00 EST 2018</I>
<P><UL>
<LI>Previous message (by thread): <A HREF="000265.html">[zapps-wg] Randomness Beacon
</A></li>
<LI>Next message (by thread): <A HREF="000267.html">[zapps-wg] Randomness Beacon
</A></li>
<LI> <B>Messages sorted by:</B>
<a href="date.html#266">[ date ]</a>
<a href="thread.html#266">[ thread ]</a>
<a href="subject.html#266">[ subject ]</a>
<a href="author.html#266">[ author ]</a>
</LI>
</UL>
<HR>
<!--beginarticle-->
<PRE>As someone who has contributed to the Randomness Beacon project, I need
to point out that it is not cryptographicly secure on it's own.&#160; Mixing
entropy is a good idea.
On 2/16/2018 11:33 AM, mmarco--- via zapps-wg wrote:
&gt;<i> In order to reduce the probability of a powerful adversary influencing the
</I>&gt;<i> beacon, I would propose to use several sources of entropy, mixing them
</I>&gt;<i> together (maybe concatenating and hashing) and use the result as a seed for a
</I>&gt;<i> PRNG. The mentioned bitcoin block could be one of those sources, but we can
</I>&gt;<i> also add more. Some ideas:
</I>&gt;<i>
</I>&gt;<i> - Results of sports competitions (i.e.: we commit to use the results of the
</I>&gt;<i> NBA playoffs, or something like that)
</I>&gt;<i> - Values of several stock markets at a given future date.
</I>&gt;<i> - Some meteorological information, like &quot;the maximum temperature reached in
</I>&gt;<i> these cities in this given future date, as given by the official daily report of
</I>&gt;<i> these organizations.
</I>&gt;<i> - Some astronomical phenomena: things like solar activity at a given future
</I>&gt;<i> instant (again, as reported by a specific set of observatories that regularly
</I>&gt;<i> reports those things), radiation of a specific pulsar...
</I>&gt;<i> - number of births/deaths/marriages... in a given set of countries/cities/
</I>&gt;<i> whatever (as reported by the corresponding institutions...)
</I>&gt;<i>
</I>&gt;<i> Of course, we need to be very specific in advance about how these pieces of
</I>&gt;<i> information will be collected and represented. But once done that, each one of
</I>&gt;<i> them would add extra entropy. That way, an adversary that wants to predict or
</I>&gt;<i> influence the result of the beacon, would need a huge social power to
</I>&gt;<i> manipulate both sport competitions, stock markets, scientific institutions,
</I>&gt;<i> statistical services... And even then, the meteorological/astronomical reports
</I>&gt;<i> could only be manipulated to a limited extent (it would be too evident if the
</I>&gt;<i> maximum reported temperature differs more than a few degrees to the one that
</I>&gt;<i> people actually experienced in that place).
</I>&gt;<i>
</I>&gt;<i>
</I>&gt;<i> El viernes, 16 de febrero de 2018 0:37:05 (CET) Sean Bowe via zapps-wg
</I>&gt;<i> escribi&#243;:
</I>&gt;&gt;<i> The Powers of Tau security proof (see
</I>&gt;&gt;<i> <A HREF="https://eprint.iacr.org/2017/1050">https://eprint.iacr.org/2017/1050</A>) holds in the &quot;random beacon model,&quot;
</I>&gt;&gt;<i> meaning that we must apply a random beacon at the end of the ceremony.
</I>&gt;&gt;<i> It's not good enough to use (say) a hash of the transcript, because of
</I>&gt;&gt;<i> adaptive attacks (the last participant could predict the beacon
</I>&gt;&gt;<i> output). We must apply a beacon that is queried after the ceremony has
</I>&gt;&gt;<i> completed.
</I>&gt;&gt;<i>
</I>&gt;&gt;<i> There is some good news on this front:
</I>&gt;&gt;<i>
</I>&gt;&gt;<i> 1. We *can* query reasonably secure beacons. More on that later.
</I>&gt;&gt;<i> 2. Even if the beacon is partially controlled by an adversary, we only
</I>&gt;&gt;<i> lose a bit of security for every bit of the beacon output that is
</I>&gt;&gt;<i> influenced by the adversary. This means our beacon could be somewhat
</I>&gt;&gt;<i> broken and we'll live in acceptable security bounds.
</I>&gt;&gt;<i> 3. Even if the beacon is _totally_ insecure, it may not even matter
</I>&gt;&gt;<i> because we may be able to prove the MPC is secure using the same
</I>&gt;&gt;<i> assumptions the proving system itself uses. We haven't had time to
</I>&gt;&gt;<i> write a security proof of this yet.
</I>&gt;&gt;<i> 4. Even if we choose a _totally_ insecure beacon, you can just apply
</I>&gt;&gt;<i> your own beacon instead (one that you're more confident in, or perhaps
</I>&gt;&gt;<i> the result of a random coinflip protocol depending on what you're
</I>&gt;&gt;<i> doing).
</I>&gt;&gt;<i>
</I>&gt;&gt;<i> But, let's choose a pretty good beacon anyway. Some notes on that:
</I>&gt;&gt;<i>
</I>&gt;&gt;<i> * There is a large space of possible choices for a beacon, so it's
</I>&gt;&gt;<i> important that we choose the most obvious and reliable one we can
</I>&gt;&gt;<i> think of.
</I>&gt;&gt;<i> * It's important that we choose when we intend to query it, before we do so.
</I>&gt;&gt;<i> * The result of the beacon (and how the beacon is applied to the
</I>&gt;&gt;<i> parameters, such as what PRNG we use, and the code) needs to be
</I>&gt;&gt;<i> determined before we query the beacon.
</I>&gt;&gt;<i> * Since we could choose multiple beacons (and adaptively select from
</I>&gt;&gt;<i> them) we need to publish our choice of a beacon widely, using
</I>&gt;&gt;<i> signatures and social media, so that proof we had attempted to do so
</I>&gt;&gt;<i> would be easy to find.
</I>&gt;&gt;<i> * Anything else?
</I>&gt;&gt;<i>
</I>&gt;&gt;<i> So, what beacon should we use? I'm borrowing my recommendation from
</I>&gt;&gt;<i> advice given by Joseph Bonneau.
</I>&gt;&gt;<i>
</I>&gt;&gt;<i> I think that we should select a Bitcoin block height (in advance) and
</I>&gt;&gt;<i> iteratively SHA256 the eventual block (hash or header) n times to
</I>&gt;&gt;<i> produce the seed of a ChaCha20 PRNG, which is then used to apply the
</I>&gt;&gt;<i> beacon to the parameters. This iterative function is not intended to
</I>&gt;&gt;<i> be a proof-of-work function but instead a &quot;delay function,&quot; so it is
</I>&gt;&gt;<i> deliberately not parallelizable. As the time required for a powerful
</I>&gt;&gt;<i> adversary to compute the delay function grows (with respect to the
</I>&gt;&gt;<i> average time between blocks) we become more and more confident the
</I>&gt;&gt;<i> result could not be significantly influenced.
</I>&gt;&gt;<i>
</I>&gt;&gt;<i> How large should n be? I think n=2^40 would be enough, since even if
</I>&gt;&gt;<i> we're off by a couple orders of magnitude the adversary cannot
</I>&gt;&gt;<i> influence enough bits of the result for it to really matter.
</I>&gt;&gt;<i>
</I>&gt;&gt;<i> Other questions include: How should we choose the block height? Should
</I>&gt;&gt;<i> we hash the header or the block hash or even the whole block?
</I>&gt;&gt;<i>
</I>&gt;&gt;<i> Sean
</I>
---
This email has been checked for viruses by Avast antivirus software.
<A HREF="https://www.avast.com/antivirus">https://www.avast.com/antivirus</A>
</PRE>
<!--endarticle-->
<HR>
<P><UL>
<!--threads-->
<LI>Previous message (by thread): <A HREF="000265.html">[zapps-wg] Randomness Beacon
</A></li>
<LI>Next message (by thread): <A HREF="000267.html">[zapps-wg] Randomness Beacon
</A></li>
<LI> <B>Messages sorted by:</B>
<a href="date.html#266">[ date ]</a>
<a href="thread.html#266">[ thread ]</a>
<a href="subject.html#266">[ subject ]</a>
<a href="author.html#266">[ author ]</a>
</LI>
</UL>
<hr>
<a href="/mailman/listinfo/zapps-wg">More information about the zapps-wg
mailing list</a><br>
</body></html>