匿名建议者并不重要-它很可能是外面的人
重要的是,所有的“否”都不能与“是”和“是”混合在一起,这很重要-我们不希望这个家庭发现某种分裂。但是,如果该结果是不可能的,那么我可以确定任何一致的结果都可以发现,但是任何混合表决都无法区别的结果。 br />当然,这可以由受信任的第三方来完成-他们都将一个人的票告诉别人,然后第三方宣布所有票是否都通过。但是,这对我的回答不是很令人满意,因为第三方可能会因热心的无投票者(或其他邪教成员)而折衷以弄清楚是谁的选票。另外,此人知道选票,并且在混合投票的情况下,可以与是的选民私下开会,以帮助他们逃脱,没有选民不会接受的。
一个人可以使用第二个第三方对投票进行匿名化处理-一个政党(实际上可能只是一顶摇晃的帽子)会在不阅读投票的情况下收集选票,然后将其匿名发送给第二个政党,后者再阅读并宣布结果。这是我能想到的最好的解决方案,但是我仍然认为我想做得更好-毕竟,在居住定居点的崇拜中,您可能找不到任何值得信赖的第三方。我想找到一个使用不一定受信任的第三方的解决方案。
但是,我确实认识到您至少需要一些信息来保存秘密信息,因为如果您使用的是完全公开的信息,然后,参与者可以在提交实际投票之前对信息进行秘密复制并模拟他们的投票将产生什么样的影响。特别是,如果所有参与者都投了赞成票,但最后一个仍未投票,他们可以模拟是投赞成票,并发现其他所有人都投了赞成票,但是他们自己投了反对票。
编辑:在BlueRaja发表评论后,我意识到“受信任的第三方”的概念定义不明确,并且在某种程度上,我可能确实确实需要可信的第三方,至少要可靠地保持状态。关键是我要信任第三方所做的事情-例如,在第一个和第二个要点示例中,我可能不信任第三方知道谁对什么进行了投票,但是可以信任他们的投票内容。理想情况下,当然,我仍然希望完全没有受信任的第三方即可进行操作,但是如果失败了,我希望将我必须信任第三方所做的工作降至最低。 (此外,是的,第三方可以包含无生命的对象或机器,只要它可以从参与者中隐瞒任何数量的信息即可。)。
#1 楼
这听起来像是加密安全的多方计算的经典案例。使用SMPC实现的功能将是“与”树缩减,这需要
N-1
AND门,深度约为log_2(N)
AND门,每个“是“表决是对电路的真实输入(1),每个否定是虚假(0)输入。最简单的解决方案是使用允许N-1个参与者的GMW SMPC协议一起工作而不会泄漏任何秘密信息。还有一个变体,最多允许N / 2个人偏离该协议。
该协议的基本流程如下:
每个参与者都有一个1位输入并选择N-1个随机位,然后计算随机位与输入位的XOR。然后将一个随机位分配给另一方,所有者保留随机位与输入的XOR。
然后逐个门评估电路,为每个人提供输出的XOR随机份额该门的价值。可以通过简单地对输入值的份额进行XOR来本地计算XOR门。 AND门需要一个交互协议,该协议有点复杂,因此我将带您参阅(格式化的)论文:Goldreich,Micali和Wigderson的“如何玩任何心理游戏”(STOCS'87; PDF)。
最后(在评估完所有门之后),每个人都广播其输出位的份额,以便每个人都可以在本地对它们进行异或。
以上所有GMW协议总体上将需要
N * (N-1)/2
1各方的-out-of-4转移支付,对于任何规模合理的“家庭”来说,应该都可以有效地计算出,甚至对于少数参与者来说甚至不需要像OT扩展这样的精美技术。 MP-SPDZ似乎是寻找实现的良好起点(以及超赞的MPC列表)。尽管请注意,您通常会在此处找到更高级的方案。评论
这看起来可能是正确的,但是按照步骤我很难。第2步中的AND是否会破坏第3步中的XOR(据我了解,这是为了从计算中删除随机位)?
– BlueRaja-Danny Pflughoeft
20年8月3日在20:12
@ BlueRaja-DannyPflughoeft步骤2中结束计算的基本思想是,对于每个门,每个参与方对每个输入都有一个XOR份额,在(非平凡的)子协议的末尾,每个参与方都有一个XOR份额。两个先前XOR共享输入的AND之和。为了澄清这一点,请设想两方情况:A具有L_A,R_A,而B具有L_B,R_B。 L_A XOR L_B = L且R_A XOR R_B =R。该协议现在允许A获得O_A,B获得O_B。 O_A XOR O_B = L ANDR。(此站点上缺少LaTeX确实很烂:()
– SEJPM
20年8月3日在20:46
#2 楼
理论可以通过应用幂等原理以多种方式实现。
您想要一个仅在所有输入均处于活动状态时才产生结果(二进制1)的系统,也就是说,它告诉您只有每个人都投票赞成,每个人都想离开邪教,否则系统不得返回任何信息(二进制0)。基本上是输入之间的AND关系,如下表所示(0 =否/ false,1 =是/ true):
因为您需要可以计数的东西(N-1不足以触发结果,但是N会触发),并且可以计数的东西也可能会泄漏有关票数的信息。因此,让我们忘记这一点,并意识到由于您实际上是在处理单个信息(是或否,0或1),因此,如果您只检查相反的内容(否而不是是),您将可以获得有价值的信息,则用0代替1,依此类推)。因此,如果您检查他们是否想留在邪教中而不是离开,并且如果您检查至少一个人是否要留在邪教中而不是检查他们是否都想离开,那么您将获得以下真值表,其中所有1均被替换反之亦然:
反之亦然:
Input: You want to leave the cult.
Output: Everybody wants to leave the cult.
0 0 0 | 0
0 0 1 | 0
0 1 0 | 0
0 1 1 | 0
1 0 0 | 0
1 0 1 | 0
1 1 0 | 0
1 1 1 | 1 ---> hooray, everybody wants to leave, we can talk about it!
请注意,现在我们在输入之间具有OR关系,我认为更容易安全地实现它,因为您只需要一个能够精确响应任何输入的系统同样的方式。这样的系统将是幂等的:一票足以触发输出,而随后的任何投票都将无效。现在,我们可以用什么来实现这样的系统?该系统需要以下功能:
它必须得到所有人的信任。它不能由一个家庭成员或其他人建造或购买。因此,我想这必须是每个人都能理解和信任的非常简单的事情。为避免对该系统进行恶意操纵,还应在所有成员的监督下进行操作。
选民必须在实验结束之前不能检查输出。这意味着投票不得返回有关系统当前状态的任何反馈。例如,如果您能看见蜡烛,感觉到热量或闻到任何气味,吹灭蜡烛是不安全的。
系统
我能想到的最简单的解决方案是带有幂等按钮的电子设备,例如用于更改电视频道的遥控器。这是我如何设置系统的示例:
获取带有等幂按钮的设备。它可能是带有遥控器的电视,只要您切换到频道N总是具有相同的效果,无论您执行多少次(幂等)。或您在家中拥有的其他任何东西,例如打开门的按钮(如果打开打开的门会使其保持打开状态)等,但是重要的是该系统需要每个人的信任,因此如果您真的想这样做家庭可以安全地进行所有事情,家人可以考虑购买新设备(一起去购物中心,购买值得信赖的设备)。
安全地设置系统。设置系统时,所有家庭成员必须在场,否则设置该系统的人可能会损坏该系统。通常,整个家庭必须在场并检查实验从开始到结束的所有操作(例如从购买设备到安全丢弃设备)。
投票时避免来自系统的任何反馈。例如,要更改电视频道,电视和遥控器可能在厚厚的毯子下,要投票,您需要将手滑到毯子下。但是应将音量设为静音,也许您最好在后台打开一些音乐,声音要大到不能听到电视发出的任何嗡嗡声或噪音。您甚至可能希望在一次投票与另一次投票之间定义一些延迟,以避免从前一位投票者的手引起的遥控器可能出现的发热量中获得任何反馈。
投票过程应为每个人都一样。在实验过程中,其他成员必须确保选民没有作弊(例如在毯子下偷窥,表现怪异等),因此实验过程中每个人都在场。选民有一个相对固定的时间长度,他们的手可以放在毯子下面。将其滑入毯子并立即将其拉出被认为是无效的,因为那将是明显且公开可区分的否决票。从外部看,每次投票都必须几乎相同。
在将系统用于实际实验之前,请对其进行测试。您需要确保每个人都了解该过程,正确投票,然后系统做出相应响应。全家人参加了几次模拟投票,对系统进行了测试(模拟投票是伪造的,是众所周知的,不是秘密的)。
最后,必须安全地拆除系统。触摸过的所有按钮或部件可能需要仔细清洁,以去除指纹。如果投票后家庭成员不信任该系统,担心有人会从中提取信息,则可能需要丢弃该系统的所有部分。
投票
假设他们选择实施电视远程空白系统,将会发生什么。 “好的,大家都打开电视,当前频道是123。如果您想继续观看,请将其更改为频道0。每个成员依次将手滑到毯子下面,或者改变渠道(如果他们想留在邪教中),或者假装改变它(如果想离开)。最后,除去毯子,然后...通道123!然后没人愿意留在邪教中,万岁! ...或...频道0!然后,至少有一个成员想要留在邪教中!也许所有这些都没有办法。问题在于威胁模型不完整,因为我认为在所有成员都是邪教成员的家庭中,这种情况实际上没有任何意义。邪教成员被洗脑且偏执。他们甚至可能不信任商店购买新电视或遥控器,以为他们不认识的任何人(包括任何卖方)都可能是“敌人”。绝对有可能建立一个不带任何电子设备的系统,仅使用简单的对象,例如蜡烛,锅,水,绳索等。与黑盒电子设备相比,这些东西可能更容易信任,使此类系统可靠运行变得更加困难。我也想知道:如果一个家庭成员建议需要投票,那不是可疑吗?为何邪教成员想知道家人是否都想离开?提出该系统的人很可能是想离开的人。否则,这可能都是寻找谁要离开的陷阱。
评论
对于电视系统,您还可以删除/禁用除0之外的所有其他按钮,以实现真正的二进制选择(按或不按),否则选民还可以通过将频道更改为123来选择“重置”。
–星展银行
20年8月3日,12:25
“如果一个家庭成员建议需要投票,那不是可疑吗?”这是我一直在脑子里争论的前提下的缺陷。
–迈克尔
20年8月3日在15:37
-1此答案依赖于受信任的第三方-电视,我们相信该电视不会跟踪信号来自哪个遥控器。仅仅因为受信任的第三方是普遍可用的并且容易受信任并不意味着它不再是受信任的第三方...
– BlueRaja-Danny Pflughoeft
20年8月3日,19:34
@usul虽然会泄漏信息。如果您去那里,发现已经有邮票,那么您就会知道有人要离开。也许您可以装配这些印章/印台组合之一,以仅能够在一个位置上印章,但是随后您需要遮挡它的视线,并且可以通过印章的暗淡来判断。
–曼上尉
20年8月3日在20:57
@CaptainMan,纸质邮票会表明有人想留下。所以,三天后没有邮票,你们都离开。如果有人要留下,则盖章,每个人留下,不知道是谁盖章的(盖章者除外)。
–JPhi1618
20年8月4日在19:38
#3 楼
一种技术含量很低的方法:给每个选民一张卡片,在卡片的一端打一个孔,从中心偏移。制作一个容纳卡片的容器,并在上面打一个孔,该孔与正面朝上进入卡片的孔的位置对齐。每个人都可以通过将他们的卡正面朝上放置在容器中来进行投票,而正面朝下则拒绝放置(对投票箱进行适当地隐藏以防止任何人自己看到投票表决)。然后将一根杆穿过容器上的孔。如果每个人都投赞成票,那杆就落空了。如果至少有一个人投票否决,则停止投票。评论
这是一个不错的解决方案(+1)。重要的是找出一种安全地丢弃投票卡的方法,以使投票本身(以及堆叠的顺序)未知。
– WoJ
20年8月4日在10:04
我会用一个试管,在试管的末端有一个玻璃盖。每个人都得到一块透明的(留下的)和黑色的(停留的)大理石,他们每人将一根大理石滚入试管,而不用注视它,另一根大理石放入袋子。 。最终,一盏灯从灯管中射出。如果从另一端出来,则所有投票结束。然后将管子,袋子和弹珠销毁。
– CSM
20年8月4日在11:29
如何防止检查箱子?例如,我可能已经注意到乔将第一张卡放入框中,并检查底部的卡以查看乔如何投票...
– Meriton
20年8月4日在12:59
@meriton投票箱可以用纸板制成,并可以在投票后燃烧。您还可以在盒子的两端插入许多“是”的卡片,以确保确定谁在投票顺序中进行了第一次“否”投票。
–Paul Belanger
20年8月4日在20:13
zh_cn.wikipedia.org/wiki/Blackballing为每个投票者提供了两个不同颜色的球,都放置在投票设备中,或者一个球和一个带有独立抽屉的投票设备等。
– Jeff Ferland♦
20年8月5日在17:23
#4 楼
装着一小瓶毒气的盒子里有只猫。将样品瓶装到将释放气体的按钮(标记为“否”)上。在该按钮旁边,还有一个虚拟按钮,可发出相同的点击声音(标记为“是”)。这个盒子是隔音的,你看不到它。一家人坐在前面。这些按钮在背面。每个人都转过身来走到箱子后面并按下按钮。当每个人都转过身时,这只猫(进而是邪教)处于国家的叠加状态。通过打开包装盒来折叠此包装,或者-为了获得更好的效果:戴上防毒面具,然后打开包装盒。最后,视情况埋葬猫或驱散邪教。在后一种情况下,请使用辅助投票程序来决定谁养猫。评论
我们应该用老鼠代替猫,以避免对猫爱好者或ASPCA的结果造成影响。
– Aganju
20年8月3日,18:17
大声笑-当您可以将其更改为“洒些油漆”之类的东西时,我喜欢我们如何尝试决定杀死哪只动物。答案上肯定的+1-这绝对是解决问题的正确方法。
–凯文
20年8月3日在18:38
@Kevin我写了一个完整的文章,关于每个人将任意数量的墨水滴入一罐水,当我意识到它是同构的时,我将要提交。
– Jez
20年8月3日,18:51
如果我们不允许“开源设备”被视为“受信任的第三方”,那么答案是微不足道的,不需要杀死任何猫:可以使用任何开源自动投票机。但是按照通常的定义,所有这些设备(包括您的设备)都是受信任的第三方。
– BlueRaja-Danny Pflughoeft
20年8月3日在20:24
还有一个第三级投票系统,可以决定谁必须打开盒子,最好使用防毒面具和防弹衣。用特里·普拉切特(Terry Pratchett)的话来说,盒子里的猫有三种可能的状态:活着,死亡和血腥愤怒。
–格雷厄姆
20年8月3日在22:47
#5 楼
这实际上是一个棘手的问题!因此,这是我的纸笔解决方案,力图使其尽可能简单。每个人都会得到3张纸。他们秘密地在每个人身上写下了不同的2位数数字,然后将它们正面朝下放在他们的面前。同一个人。
每个人写下那三张纸条的总和。如果他们想投票否决,他们可能会写一个高于实际总数的数字。继续并显示此信息。
重复步骤2,因此每个人都有3张新纸条。
每个人都写这些内容3张单加起来,但是这次让他们的和面朝下。如果他们希望投票否决,他们应该写一个比实际总数少的数字。 (如果他们已经在步骤3中错开了,这是可选的。)每个人都可以销毁面前的原始纸条。这之后剩下的就是他们在步骤3中完成的总和以及在步骤5中完成的总和。
每个人都同时显示其总和。 >
步骤3中的所有总和是否累加到步骤7中的所有总和?如果没有,那么至少会有一票“不”票。
为什么这样做?
第三方没有秘密。再说,没有什么能产生大的素数或类似的东西。如果“某物”正在生成信息,则它必须得到所有参与方的信任。这绕过了这一点,因为秘密(总计是什么)是由所有参与方生成的,而不是任何一方都知道的东西。 B人的工作不依赖于任何其他人的输出。他们无法使用自己的输入来判断A人是否在撒谎。
无法确定某人的总数是否合法。如果他们说“ 218”,则知道这是否是一个可能的数字的唯一方法是知道所有纸条都说了什么。但是没人能看到所有纸条。
评论
这如何取决于两个“抓取”程序的随机性和不可追溯性?如果您能够看到并记住谁抓了哪张纸条,那会给您有关人们选票的任何信息吗?
– Jez
20年8月3日在22:14
如果只有一个人投票“否”,此泄漏信息就不能吗?如果它们在步骤3中将总和增加x,在步骤5中将其减少y,则最终总和相差(x + y)。投票“否”的人会立即知道他们是唯一以这种方式投票的人。 “我有证据表明,我家人中的每个人都想出卖这个邪教!”听起来像是泄漏的不良信息。
–Rob Watts
20年8月4日在19:55
还要多加注意:这还假定他们都可以执行基本的数学运算并具有数字素养,这与其说是背叛,不如说是赌博。据报道您对团队缺乏信心。 /秒
– CodeShane
20年8月5日在6:38
按照书面规定,该协议将受到一群人的勾结,以确定第三人如何投票,而不必自己计算为“是”。
–超级猫
20年8月5日在22:13
@RobWatts-很好。知道“我是唯一想留在这里的人”的人决定,“和我的家人在一起,我要把他们全部报告给大瓦胡巴!我现在有了一个新家庭,他们都爱我”
–凯文
20年8月6日,0:50
#6 楼
所需的器皿:笔和纸。作为一个组,选择一个大质数p。
每个人都选择一个秘密数字ai,bi与aibi≡1(mod p)。例如,在1…p − 1范围内随机选择ai,然后通过扩展的欧几里得算法找到bi。如果ai或bi很小(例如,少于p的一半),则从新的随机值开始。那些想回答“否”的人,则随机选择ai和bi。现在,每个人都将他们现在持有的一对数字乘以mod p并宣布结果。现在,已宣布的数字乘以mod p。如果每个人都对“是”投票,则最终结果将为1。如果其中任何人对“否”进行投票,则结果将是一个随机数,因此很可能不是1(因此我们可能希望将p增大以增加信心) 。
评论
但是,您右边的人和您左边的人是否能够合作确定您是否在投票“是”?如果我们担心狩猎女巫,一个人不能说“嘿,我对鲍勃有点怀疑。他给了我######-他给了你什么?让我们看看他是否投票赞成”
–凯文
20年8月3日,18:36
难道您不能将所有数字都丢进帽子里,这样就没有办法将单个数字追溯到一个特定的人吗?
–NotThatGuy
20年8月3日,21:12
我们是否假设这里的邪教成员正在手工执行这些计算?如果是这样,是否有某种阻止他们简单地伪造其计算的东西?我建议我们要要求他们向所有其他成员证明他们的答案。
–securityOrange
20年8月4日,3:09
@securityOrange先进行乘法然后撒谎并给出一个随机数与仅首先对随机数进行乘法并没有区别(即简单地投票否)。当然,如果没有投票者认为实际进行乘法操作很麻烦,只是给出答案,则可能会有辅助通道;)
–timuzhti
20年8月4日在12:58
@securityOrange使用的密码是易碎的,是的,说实话,这很好地说明了为什么您不应该自己滚动。从我的角度来看,这个答案试图使用/设计一种同构密码,希望该密码可以简化为整数分解或离散对数,如果不是IND-CPA,至少还可以简化为OW-CPA(RSA很难做到)但是效果不佳-因为在简化过程中最终使用了错误的函数,从而简化了一个简单的问题!默认情况下,最佳密码是概率密码,因此它们可以是IND-CPA,同时保持同态。
–timuzhti
20年8月6日在13:15
#7 楼
这是一个非常酷和有趣的问题。我真的很喜欢。因此,我认为我们应该首先以最抽象的,信息论的方式分解您要尝试的工作。这是我的理解:
N
>一组中的3个节点正在相互通信。它们正在传输
0
或1
,是或否。 我们将接受所有输入,然后
AND
。换句话说,除非一切都是1
,否则我们不会在乎结果。如果不是全部,则为1
。 (如果您对逻辑门不是很熟悉,那么这可能很有趣。)每个节点的传输都必须为所有其他节点所未知。是。一种技术更先进的解决方案,采用一种低技术手段,可以使这一过程变得非常简单:
所有节点亲自证明自己的身份,每个节点生成一个公钥-私钥对并为其提供公钥到中央服务器。
然后,他们将选票传输到中央服务器,然后由中央服务器使用其公钥解密。
服务器执行
0
并返回结果。如果我们想尝试使其成为更低技术的产品,我认为我们希望采用一些更奇怪的解决方案。想到的是:
将一些可溶解的材料放在装有少量水的容器中。每个人都轮流将化学药品倒入其中,蒙住眼睛并屏住呼吸,并发出明显的背景噪音。
他们选择是水还是无色无味酸。酸足够强,可以随着时间的流逝将材料溶解在大量的溶剂中。
将其浇注后,装置会静置一段时间。给定
AND
否定投票的结果,通过找到明显溶解物体所需的时间来确定该金额。经过确定的时间后,所有成员分别查看结果(以避免表达反应),然后集中讨论结果。
最终,无论选择使用多少计算机答案是关于在传输环境中保持机密性和完整性的情况,如果传输通过
N - 1
门,则会降低机密性。水酸溶液是许多可能性中的一种,但我认为它仍然可以完成工作。很好的问题!考虑到这真的很有趣。如果我错过了您已经提到的任何限制,请在注释中添加,然后进行修改。应该是另一回事了。感谢您指出@TripeHound。
评论
我喜欢这种化学溶液,可能会有一种简单的溶液,化学溶液会根据pH的轻微变化而改变颜色。如果是,则仅添加水,而否则添加会稍微改变pH值的溶液,则是和否都可能是无味无色的。可以将用作投票箱的瓶子涂上油漆,因此只有将其倒出瓶子后才能显示结果。
– Esa Jokinen
20年8月3日在6:21
像化学家这样的科学家不太可能加入宗教崇拜,这太糟糕了。 :)
– Esa Jokinen
20年8月3日在6:22
是您的否=水,是=酸不是错误的方法吗?我的理解是,酸会溶解该物质(如果它溶解于水中,因为它开始于水中,所以它总是会溶解)。因此,如果任何人说“是”(=酸),即使所有其他人都说“否”,物质也会(在足够的时间后)溶解。如果否=酸,那么如果至少一个人说“否”,则材料溶解:只有当他们都说“是”(即都加水)时,材料才会保留。还是我错过了什么?无论如何,都是巧妙的解决方案(?)!
– TripeHound
20年8月3日,12:54
这两个示例均使用受信任的第三方(在第二种情况下,“第三方”是我们信任的行为,符合我们的预期)
– BlueRaja-Danny Pflughoeft
20年8月3日,19:51
您忘记了将同等数量的其他液体倒入单独的容器或排入下水道的重要步骤。这样,没人能看到答案之间减少的液体量并确定某人如何投票。
–user3067860
20年8月5日在13:51
#8 楼
无法发表评论,因为我是新手。添加/评论@reeds和@securityOranges答案:
使用开关作为半低技术选项,这似乎很容易实现。例如:
电池切换到切换到LED切换回到电池。
然后甚至可以在所有参与者面前构建并展示其公平的工作原理。只要需要的话。
甚至可以在每个开关旁边添加灯/ leds。
我可能只想给人们一个纸箱在同一房间里握住他们的手。可以用来确保即使系统在投票过程中被盗,它们也能以足够快的速度返回到原始状态,以至于无法获得任何信息。
然后,只有人们看着时钟,每个人都会投票〜10秒,时钟到达特定时间。
编辑:
我对此进行演示:https://imgur.com/a/kb6XQe6
简要说明:
三个按钮中的两个是
按下所有三个按钮,然后都亮了。
这里希望能看清楚这些组件之间的连接:
1、2和3:从电池到第一个按钮
4、5和6:按钮
7、8、9和10:连接到电阻器
11:电阻器
12 :LED
13:连接回“电池”
我使用Arduino作为电池,但可以采用其他任何方法为led供电。
评论
一种改进是将其与计时器触发的锁存电路相结合,以便表决结果被精确采样一次。否则,有人可以通过在显示输出时切换投票来测试他们是否是唯一的反对票。
–丹·布莱恩特
20年8月3日在15:59
@DanBryant甚至不需要,连接电流时立即熔断的保险丝就足够了。
–何三月
20年8月3日,16:10
我认为你们仍然在思考太高的水平。我对所有显示的组合进行了物理演示,以取乐。在此应该可以看到的此画廊https://imgur.com/a/kb6XQe6中,我进行了演示。
– Qmppu842
20年8月3日,19:12
根据定义,此设备是受信任的第三方
– BlueRaja-Danny Pflughoeft
20年8月3日,19:42
但要点是,它是如此简单,可以在选民面前完成。选民可以对其进行检查,他们可以建造任意数量的建筑以增加冗余度。他们甚至可以自己构建一个,并分别对其进行测试,然后同时按下所有按钮。
– Qmppu842
20年8月3日在20:26
#9 楼
这提高了安全性,使橙色的想法更加安全,但形式更加可靠,无需等待。通过改变颜色。这张经过纠正的EduMission博客图片显示了一些示例,并且Wikimedia上有更完整,准确的图表。由于我们不想在混合这些解决方案时受到伤害,因此最好选择化合物跃迁足够尖锐以至于清晰可见,例如百里酚酞在pH 10.5以上为蓝色,在pH 9.3以下为无色。酚酞的效果不佳,因为它在pH高于10时会恢复为无色。另外,pH值的精确测量也会丢失投票计数的信息。
由于pH范围是对数:在60升水中加入1克氢氧化钠,pH值达到10.6!
投票安排:铸造用氢氧化钠溶液无票。如果您添加例如将0.4克的氢氧化钠加入0.4升的水中,得到的溶液的pH值为12.4。两种液体均为无色,无法用肉眼分辨。因此,将溶液与其他溶液一起准备很重要。我们称之为投票箱解决方案。重要的是,使用比烧瓶大的吸管小一些,以便表面高度不会提示已使用哪种溶液。将百里酚酞滴入投票箱溶液。
如果变成蓝色,则表示至少有人投了反对票。让我们再次看看如果10个人投票使用此解决方案,pH的对数性质将如何受到影响。灰色区域显示了百里酚酞的过渡范围,在这里我们无法确定颜色是什么。
要检查结果,您可以在两个原始解决方案,以确保其按预期工作。之后,将所有内容混合在一起以防止随后更精确地测量pH或体积,因为它可以显示确切的投票计数。
评论
这仅仅是“黑球”计划的基于化学的实现。
– schroeder♦
20年8月6日在10:57
不,这不对。黑球计划保留了投票数,这个问题是在其他所有情况下,但当所有人都投票赞成时,隐藏投票数。
– Esa Jokinen
20年8月6日在11:54
#10 楼
带家用物品:每个人都准备一杯水,最好是蒸馏水。如果您不想投票,请在玻璃杯中溶解任意量的盐。每个人都必须搅拌玻璃杯,以防止搅拌运动被遗忘。
同时将玻璃杯倒入锅中。将玻璃杯浸入一碗水中,以防止水滴滴回到选民身上。煮沸的水,如果有盐残留,那不是一个一致的赞成票。
评论
问题在于,当前的投票者(他们在投票线上越远越好)可以检查(通过对水进行采样)是否有人已经投票了“盐”。
– WoJ
20年8月4日15:56
在装满水但未加盐之前,锅在公众视野中。所有参与者都可以观察锅,并可以攻击任何试图执行未经授权采样的人。
–布赖恩
20年8月4日在18:43
@Woj我原本打算将眼镜同时倒入锅中。更新以澄清。
–菲尔
20年8月5日在7:13
@schroeder与blackball,您可以随后计算投下了多少黑色球,这违反了要求。使用此方案,您永远无法说出有多少人放盐。
– rumtscho
20年8月6日在11:37
@schroeder,即使没有1:1的球,如果我放入x个黑球,如果有> x个黑球,我也可以推断出是否有人投票给我。如果我的计划中的选民可能事先准确地称量了盐,然后准确地称了残留物,他们可能会做出类似的推论,但这可以通过在任何人都没有机会称量前先洗锅来避免。
–菲尔
20年8月6日在14:12
#11 楼
使用加密层,每个家庭成员只有一个密钥。步骤1:加密
投票开始时,让一个家庭成员加密一条简单的消息说:“是的,我们都想离开。”当第一个人使用他们刚刚生成的私钥对消息加密后,第一人将其通过电子邮件发送给另一家庭成员,以使用他们自己的私钥再次对已经加密的消息进行加密,然后传递给直到家庭增加了一层加密。这提供了加密的“洋葱”,该家庭的每个成员都为消息添加了一层加密。如果提供任何伪造品,则无法解密该邮件。
只有当该家庭的所有成员都提供了真实密钥时,他们才能解密加密邮件的所有层。
步骤3:未来的投票
如果家庭决定明年再次投票,他们将需要为自己想出新的私钥,并从头开始重新进行投票。
评论
我认为这项工作是可行的,只要伪造的私钥导致解密错误而不是解密失败即可。这样,该小组就不会看到谁的密钥解密失败。
–niemiro
20年8月3日,17:45
确实。似乎是一种对称方案,例如类似于一次性填充(具有随机字节的XOR),可能具有相同的效果,但可追溯性较差。
– David Z
20年8月3日在18:08
我不确定这行得通。人B可以访问两个数据:人A发送了什么数据,以及每个人都说他们的密钥是什么。这样,人B就能弄清楚人A投票了什么(只需检查:他们得到的数据是否可以与人A后来说出的密钥是什么一起解密?)同样,人C拥有人B所发送给他们的数据以及人A和B都说他们的钥匙是。如果A和B都投票赞成,则C应该能够解密数据。如果否,那么其中一个(或两个)都投反对票。
–凯文
20年8月3日在18:49
到目前为止,这是最好的答案(大多数其他人依赖于他们伪装成电视或化学药品的可信赖的第三方),但是仍然存在一些问题。最明显的是@Kevin提到的:倒数第二人将知道最后一人的投票。我认为可以通过让每个人都进行第二轮加密来解决此问题。另一个问题是,它是可否认的(投赞成票的人可以证明他们投赞成票)。
– BlueRaja-Danny Pflughoeft
20年8月3日,19:55
用真实或伪造的密钥解密消息都会导致乱码,如@niemiro所述。
–尼克·博尼利亚(Nick Bonilla)
20年8月4日在1:56
#12 楼
试图将其保持在尽可能低的技术水平。每个人都得到两个小颗粒,一个钢制BB和一个塑料气枪颗粒(大小相等但组成不同)。
在投票台内有两个插槽,一个标记为“ Vote”,另一个标记为“ Discard”。每个插槽通向一个不透明的袋子。不能直接观察袋子或袋子的内容。
“投票”袋子中预先装有几个塑料颗粒,“丢弃”袋子中预先装有几个钢颗粒。
如果选民想离开,他们会将塑料颗粒放入“投票”槽。如果他们想留下来,可以将钢丸放在“投票”槽中。其余的小球放置在“丢弃”槽中。
每个人投票后,袋子都用稀土磁铁测试。如果“投票”袋被磁铁吸引,则它包含至少一个钢丸(因此,至少有一个人被投票留下)。如果没有被吸引,那么每个人都投票离开。
“丢弃”包是对照组。由于预先装有钢丸,因此无论投票如何,都应该始终将其吸引。在最后一趟旅行中,他们可以将任意数量的任何一种弹丸放入一个(或两个)插槽中。投票令牌不包含诸如手写之类的可追溯信息,并且投票者无论选择哪种令牌都使用它们。窃听者无法通过听小球的声音来决定您的投票,因为无法知道选民首先使用哪个行李。磁铁可以让您测试“保持”投票的存在,而无需直接检查投票本身。通过投票站的最后一次旅行给数据添加了足够的随机噪声,以至于任何人撕毁投票站都将无法完全恢复原始投票计数。
从该过程中泄漏的唯一信息是磁体和袋子内容物之间的吸引力强度。较弱的吸引力意味着较少的“停留”票。由于多种原因,这是可接受的泄漏水平。首先,如果没有特殊设备,吸引力是人类无法量化的。也许更重要的是,吸引力的大小将根据药丸在袋中的排列方式而发生很大变化(即,靠近磁铁时拉力更大)。这种不可预测性应该在任何投票计数猜测中增加足够大的误差范围,以使这些猜测毫无价值。除非您使用了不合理的强力磁铁,否则可能会遗漏混有大量塑料颗粒的单个金属颗粒。
评论
这是“黑球”方案的非常复杂的变体。
– schroeder♦
20年8月6日11:00
@schroeder-这是基本思想。额外的复杂性仅在此处提供所要求的匿名性和投票总数的掩盖。
– bta
20年8月6日在15:32
#13 楼
我认为可以通过以下简单的低技术手段解决此问题。给每个选民两块石头,一块重的石头代表是,一块轻的石头代表否。投票是通过将一块岩石放在一个浮动物体中来进行的。仅当所有选民都将沉重的(是)岩石放在浮动物体中时,物体才沉没。评论
您需要使岩石在外观上相同(或者到目前为止,有人会知道投票状态)。然后,您需要阻止浮动对象,以使浸入不会改变(提示有关先前的投票)。然后,选民必须不能触摸设置,否则他们可以检查权重并了解到目前为止的选票。
– WoJ
20年8月4日在16:02
最后,基于存在的所有权重进行物体的浸入是很复杂的事情:如果权重之间的差异很小,则系统必须非常精确(只有很小的差异才会触发浸入)。如果差异很大,那么几个轻物体可能等于一个重物体。
– WoJ
20年8月4日在16:02
或者只是给每个人一个相同的容器和两个砝码,分别为1kg和3kg。每个人谨慎地将一个重物放在自己的罐子中,然后每个人走到一起并将它们放在一组缩放的一侧。每个人都放置容器后,在另一侧放置重量为3n-e kg的砝码,放一些小e。确定结果。卸下3公斤重,然后让每个参与者都卸下他的弹药筒。
–休
20年8月6日在6:20
这只是“黑球”方案的一种变体。
– schroeder♦
20年8月6日在10:59
@Schroeder我不认为这是黑球计划的变体。在黑球计划中,已知(肯定)赞成票和反对票的数目。 OP明确不需要的东西。
–thieupepijn
20年8月6日在21:58
#14 楼
取一些胶合板,一些彼此无法区分的小毛毡(或其他柔软,无噪音的)球,以及一些木螺钉。建立一个在前面有两个孔的盒子,一个标记为“ Leave”,另一个标记为“ Stay”。拆卸起来很困难,以防被篡改,所以不要踩踏螺丝。每个孔都通向一个坡道,坡道会将一个球存入盒子的底部,但是,“ Stay”孔的缺口只有一个球。将盒子连接到墙上(以防止任何人倾斜它)。在床单上或周围放置一个“投票亭”,以防止任何人看到别人的投票,并将每个人在亭子里待的时间限制在足够长的时间内,以将他们的球放入一个洞中。将他们的球放在“保持”孔中,该球将掉入缺口。随后所有“保持”选民的球都将划过缺口(类似于本视频中的黄色大理石;可能需要进行一些调整以确保其他球在应有的方式上滚动)并落入底部,相同作为“离开”票。每个人都有投票的机会后,拆开盒子,看看缺口是否有球。
评论
这只是“黑球”方案的一种变体。
– schroeder♦
20年8月6日在11:01
@schroeder在黑球投票中,每个人都可以看到有多少反对票。 OP要求没有人知道至少有一个人投票否决,有多少人投反对票。
–隐藏的挡风玻璃
20年8月6日在13:51
您假设选民与选民的比例为1:1。
– schroeder♦
20年8月6日在13:52
如果只有一个人投票留下,黑球计划会泄露信息-他们知道他们投入了多少黑球,因此如果他们看到很多人知道他们是唯一拒绝投票的人。该解决方案巧妙地避免了该问题。
–Rob Watts
20年8月6日在17:32
#15 楼
这可以减少到餐厅密码学家的问题。协议相对简单。 br />
将每个人围成一圈,以便他们靠近两个人:一个人在左边,一个人在右边。
每个人与他们的伙伴见面并产生一个共享的秘密,一个统一的数字,范围为0..M-1。每个人最终都有两个共享的秘密,因为他们与两个人配对。 M-1。
每个人都在一张纸上提交一个号码。
如果他们投票保留,他们将提交左机密减去右机密,并以模M降低。 >所有选票相加并以M为模。如果每个人都投反对票,那么结果为0,因为所有共享的机密都会一次出现,一次出现,然后一次出现。如果有人投票离开,则结果是一个统一的随机数,范围为0..M-1。
因此,
所有参与者都投票“离开”,结果将是“离开”。 ”。
评论
“离开”不保证每个人都想离开并不是一个好的解决方案。反过来说,这将是可行的-如果“留下”有机会通过“离开”投票产生,但是“离开”始终意味着每个人都想离开。
–Rob Watts
20年8月6日在17:23
@RobWatts:这是不正确的分析。所有物理系统产生错误结果的可能性都为非零-因此,无论使用哪种技术,总是有可能产生错误的“离开”结果。该解决方案没有什么不同,但是它确实迫使您通过选择M来量化对于错误结果的容忍度。
– Dietrich Epp
20年8月6日在19:45
我不同意您对此问题的忧虑。您的答案与产生不正确的结果(在执行计算时人们总是会犯错误)有很大关系,因此,除了系统本身发生故障的1 / M概率之外,您还具有该错误级别。实际上,随着M变高,人为错误的机会会增加,因此降低错误容忍度的努力实际上会使情况变得更糟。
–Rob Watts
20年8月7日在18:32
@RobWatts:琐碎问题的琐碎问题–您需要多次投票。所有系统都有此问题,所有系统都有此解决方案。在这方面的讨论中,没有什么是我的回答所特有的。
– Dietrich Epp
20年8月7日在19:36
#16 楼
您要问的是一个输出V = v(1) AND v(2) AND ... AND v(n)
的系统,其中v(i)
是同一个人的二进制投票。根据DeMorgan Law,V = NOT W
其中W = w(1) OR w(2) OR ... OR w(n)
和w(i) = NOT v(i)
。因此,我们可以将问题改写得更简单。我们只是在寻找一种能够回答以下问题的系统:在投票的N个人中,至少有一票否?
这是直觉的;如果您需要获得一致同意,那么只要有人反对,其余的选票都没有关系。或者换句话说,您要使用匿名否决权系统。
可以通过多种方式实施。
一个封闭的房间。系统从状态0开始,按下按钮进入状态1。每个人都有机会进入房间并秘密按下按钮后,将检查设备是否有人。
上图:房间内的按钮B仅闭合电路,房间外的S可以使所有人看到。两者都连接至仅在同时按下两个按钮时才点亮的灯。首先,S被关闭,而B没有被按下。每个人都注视S以确保未过早触碰到S,然后走进房间,在可能按B的情况下轮流使用。一旦所有人完成操作,他们将S一起翻转以查看投票期间是否已按下B。您甚至可以有多个房间,每个房间都有连接到同一设备的自己的B,这样投票就可以同时进行-这样一来,就无法合谋反对一个选民并在投票后立即翻转S。以内部中间带有标记的盒子的形式。将一小块纸完全放在标记上,然后将盒子锁定。每个选民都有机会进入封闭的房间并摇晃箱子。每个人完成操作后,将打开框以查看纸张是否已移动。
上面的版本更强大,将许多黑白纸成两整齐地排列(摇晃盒子会使它们混合在一起)。
评论
易于执行的变体:买一罐啤酒。每个人依次进入房间并摇动啤酒罐,如果他们想投反对票。最后,打开啤酒罐。如果它到处都喷,有人投票否决。否则,是一致的。
– Ken Shirriff
20年8月3日,21:32
@KenShirriff哈哈,真是个好人!尽管您可以取消嘶嘶声,但摇晃后可以使它们在打开时不会溢出,但是如果有人知道窍门,他们可以否决否决权。
– Artimithe55
20年8月3日在21:39
我喜欢盒子震动的想法,但是如何防止人们(A)轮到他们时打开盒子,以及(B)听到盒子震动的声音?
–shieldgenerator7
20年8月4日在15:05
@ shieldgenerator7 {A}防篡改封条;和/或锁定该框,并且在投票过程中,键和键在外面。 {B}换个盒子,用均匀的物品摇晃。 Arti:纸张(或啤酒)的替代品:两层不同颜色的沙子。你不能解闷。
–迈克尔
20年8月4日在18:07
#17 楼
以可识别的纯文本开头:Let's break up. It's not you, it's all of us.
每个人都会生成一个随机的位模式(一次性填充)并将其保密。将消息传递到桌子周围,每个人都用一次性垫对其进行异或操作。您之后的那个人将是唯一看到您的输出的人。
回到圆环的起点时,请以相同的顺序再次旋转。这次,如果您想投票“是”,请对邮件进行与您以前使用的相同模式的XOR。如果您想投票“否”,请使用其他随机生成的模式(再次将其保密)。
在第二个电路的末尾,请听从结果消息:分手或sdfljhsdfhgvsladfj。在后一种情况下,没有人会知道有多少“否”投票者是未能对消息进行解读的原因。
这与Nick Bonilla的回答非常相似,不同之处在于通常不共享密钥。如果家庭成员是A到Z:Bob将能够将Alice的第一个输出与原始明文进行比较,从而能够推断Alice的第一个秘密,但是不知道这是否与Alice的第二个秘密相同(仅Zach)知道爱丽丝的第二个输入)。尤兰达(Yolanda)可以将最终的公开信息与自己的第二个输出进行比较,从而可以推断出扎克(Zach)的第二个秘密,但是她不知道这是否与扎克(Zach)的第一个秘密相同(只有爱丽丝看到了扎克(Zach)的第一个输出)。在N = 3的情况下,Bob和Yolanda是同一个人,但我不确定这是否对他/她有帮助。
评论
当查理问爱丽丝第二次交给鲍勃什么比特币又怎么样?该解决方案仅在各方之间没有协作时才有效,这不是您可以轻易假设的约束。
–Sneftel
20年8月4日在7:26
@Sneftel-是的,这是这里许多“链接”解决方案的问题。如果鲍勃从爱丽丝那里得到任何输入,那基本上不是私人的-因为任何人都可以问爱丽丝她递给他的是什么。
–凯文
20年8月4日在16:28
是的,人与人之间可以结盟。可以通过使人们匿名来改善这一点(每个人在前厅见面,穿上他们相同的礼拜袍和面具,四处碾磨,然后提交投票室)。但是,匿名机制就是TTP(严格来说,我们实际上不能避免,即使面朝下的纸条也是TTP)。
– Jez
20年8月4日在17:28
另外,我要说的是,我们在事后授予的能力上必须受到某些限制。否则,这是微不足道的:“否”投票人可以简单地要求所有其他“否”投票人表明自己的身份,这导致与OP指出的反对意见相同,即N = 2,但对于所有N
– Jez
20年8月4日在17:30
@Kevin,但是每当您尝试进行协商时,您都不知道所得到的答案是否真实
– Jez
20年8月4日在22:26
#18 楼
将人数称为N。
为每个人分配一个从1到N的数字。
每个人创建一个随机的N阶多项式,如果他们希望投票,则Y截距为零是,或者如果他们希望投票否,则其Y截距大于零。
每个人都解决了从X = 1到X = N的离散点的多项式方程。
每个人都通过了解决方案对于从1到N的X的每个整数值,将其分配给具有相应分配编号的人。
每个人将所有分配的数字相加并公开该和。通过相应点的N阶多项式。
使用Lagrange插值计算所得多项式的Y截距。 (或者,如果N小,则可以使用任何其他方便的方法。)
如果Y截距为零,则结果为是。否则,它不可以。
之所以有用,是因为任意数量的多项式的Y截距为零的多项式的总和为多项式。没有一个参与者的组合比所有参与者都少,在任何多项式上都没有足够的点来确定其Y截距,但要确定最终曲线,因为每个人都在该多项式上公开他们的总和点。
您需要在N阶上得到N个点多项式确定其Y截距。小于所有参与者的所有组中只有N个点的任何组的唯一多项式是最终的总和多项式。因此,只有其Y轴截距可以由该组中的任意一个子集而不是全部子集来确定。
让我们以三个人为例。我们将使用Alice,Bob和Charlie。我们只有鲍勃投票否。每个人都将选择一个随机多项式,该多项式需要三个点来解决,其Y截距(是)为0,否(NO)为非零。她的多项式是Y = 3(X ^ 2)-2 X
鲍勃是2。他投票否。他的多项式是Y = 2(X ^ 2)+ X +1
查理是3。他投票赞成。他的多项式是Y = 3(X ^ 2)-X
请注意,自从鲍勃投反对票以来,鲍勃的任期为“ +1”。其他人都没有这样的项,因此它们的曲线的Y截距为零。
爱丽丝现在在点1,点2和点3求解多项式。查理21岁。
鲍勃现在在点1、2和3处求解多项式。
他给爱丽丝4个,他给11点,查理22个。在第1点,第2点和第3点。
他给爱丽丝2个,鲍勃10个,他自己24个。并公开了7。
鲍勃计算了8 + 11 + 10并公开了29。
查理计算了21 + 22 + 24并公开了67。 (1,7),(2,29)和(3,67)查看其Y截距是什么。解为Y = 8(X ^ 2)-2(X)+1。
您会注意到该方程式是所选方程式的总和。由于鲍勃的投票,其结尾处带有“ +1”。因此,根据需要,结果为“否”。但是除了Bob之外,没有人能说出谁的曲线上有“ +1”(除非其他所有人合谋反对)。参见M. Ben-Or,S。Goldwasser和A.Wigderson,《非密码学容错分布式计算的完整性定理》,第20届ACM计算理论研讨会论文集,第1-10页,1988年。
评论
玩家如何验证没有恶意参与者选择否定的y截距?假设我确定乔想离开,他最喜欢的号码是13。如果输入-13,我可以取消他的投票。或者假设我想通过输入-1000来防止计数。如果总和为负数,玩家会怎么做?
– Meriton
20年8月4日在13:32
另外,揭示输入总和还使每个人都可以计算其他参与者的输入总和,这可能会泄漏信息。特别是,如果只有一名球员投票赞成,他将了解到他是唯一的一名。
– Meriton
20年8月4日在14:04
@meriton如果每个人都应该做的事却没人愿意离开,结果将为零。如果有人做了他们不应该做的事情或有人想离开,结果将不会为零。大概,不想离开的人将遵循指示。您是正确的,除了任何一个选民之外的所有人都可以释放该单个选民的投票方式。但这是事实,无论如何,没有算法可以阻止它。如果除您之外的所有人都留下来,而最终结果是请假,那么其他人可以一起工作,知道您已投票赞成休假,因为您是唯一一个没有阴谋的人。
– David Schwartz
20年8月4日在16:17
我认为您误解了我的第二个担忧。我并不担心其他任何人都可以一起学习球员投票的内容。我担心,投票“保留”的玩家可以确定自己是否是唯一投票“保留”的玩家,从而泄露从所做出的总体决定中无法推断出的信息(无论玩家知道该信息是否“保留”)其他人投票了)。对于那些教养者,我想如果一个教养者发现其他人都准备离开的话,那将非常糟糕。
– Meriton
20年8月4日在19:48
剩余票数的玩家无法确定还剩下多少票。它们上具有足够点的唯一曲线是求和曲线。他们可以减去自己的选票,但保留选票的人总是可以这样做。如果结果仍然存在,则所有投票的人都保留。如果请假,其他人投了请假。也许您担心的是,有投票权的人可以告诉他们是否是唯一有投票权的人? (可以解决,但是会使算法复杂得多。)
– David Schwartz
20年8月4日在19:56
#19 楼
有两个空布袋和一个秤。第一个袋子代表他们想如何投票,第二个袋子代表支票。较重的圆盘代表休假。他们将用于投票的光盘放入一个袋子,另一个放入另一个袋子。之后,检查袋子的重量。如果所有票数都用于休假,则平底锅将保持平衡,但即使剩下一张票,平底锅也将保持完全下降。如果有必要,可以将两个袋子的重量一起放在另一个砝码上,以确保没有皮箱。
检查投票后,两个袋子都会在大火中被破坏。
评论
这与上面的“摇滚”答案相同。
– schroeder♦
20年8月6日在11:01
#20 楼
我从Qmppu852的回答中得到了一些启发,我将尝试使其更简单:获取一台发电机和一根非常长的电缆,应该在10米(约30英尺)的范围内。对于每个家庭成员。每个控制器都有两个按钮:一个是虚拟的,什么都不做。另一个按钮用于关闭电路。两个按钮都经过明显标记,因此每个人都知道哪个。
将控制器拼接到电缆上。由于它们均与发电机串行连接,因此只有同时按下所有非虚拟按钮时,电路才闭合。每个家庭成员都背着控制器,然后按下按钮。这样,每个人都会看到其他人都在按一个按钮,但是没人知道其他人正在按哪个按钮。每个人只知道他们正在按下哪个按钮。
如果每个人都按下控制器上的非虚拟按钮,则电路将闭合。您可以在电路上连接灯泡或蜂鸣器,以便他们查看电路是否打开。但是我认为,如果发电机提供大约50V的电压并且控制器没有绝缘,那会更有趣。如果每个人都赞成,那么每个人都会感到不安。
如果每个人都反对,那么电路就不会闭合。但是没人知道谁在投票反对。为了使所有人的投票更加困难,他们可以戴手套,以免在按钮上留下指纹。或者他们可以在投票前按下两个按钮,然后再激活生成器,以在两个按钮上留下指纹。
#21 楼
拿一个简单的计算器,输入一个数字。将其放置在一个硬盒子中,该盒子的清除按钮上方有一个孔。将整个东西放到另一个盒子里,盒子的侧面有一个开口,在开口上披上一块布。是。观察者也许能够辨别出按下时的肌肉运动,但他们当然无法分辨您是否真正按下了按钮。取下计算器,检查一下。如果仍然有一个号码,您将获得一致的同意。
#22 楼
玩电话游戏。但是要有数字。让人们围成一个圈,并以1个人作为起点。他们随机选择一个介于1到1000之间的数字并将其保密。然后他们在左边的那个人的耳朵里低声说那个数字。然后,如果该人“否”,则该数字加1,如果“是”,则该数字加100。然后那个人向左边的那个人窃窃私语。这持续一圈,在组中绕了2-3个“圈”。最后一个收到号码的人将其保密。
除了第一个号码外,没人知道起始号码,但是他们知道对左边那个人说什么号码。如果他们说的数字的1位数和10位数与再次出现时收到的数字相同,则他们知道每个人都投赞成票。如果不一致,那么他们知道至少一个人投了反对票。
重要的是,因为他们不知道起始号码,而且循环没有确定的终点,所以他们不知道谁用什么数字投票。现在,每个人都知道投票是否一致,但是没人知道谁投票了。
编辑:与其选择“是”添加100并“否”添加1,而是选择1到5之间的随机数。乘以100。如果投票否,则将其乘以1。然后将该数字加到奔跑总数中,然后将奔跑总数传递给下一个人。这解决了泄漏有多少人投票赞成或反对的问题。
评论
这泄漏了选票的数量,就像如果选票返回的数量比第一圈大501,这意味着有1个人投了反对票。
–布雷克·沃尔什(Blake Walsh)
20年8月4日在23:04
@BlakeWalsh我知道我的答案有问题。感谢您向我指出。我会想办法改善它。
–shieldgenerator7
20年8月5日在17:07
@BlakeWalsh我想我解决了这个问题
–shieldgenerator7
20年8月5日在17:14
#23 楼
建造一个可以倒入液体但不经过明显改动就不容易观察的容器。有点像不透明的燃料罐,上面装有喷嘴。每个人都有机会向容器中添加一些清澈的液体。
每个人都可以添加一些红色染料或倒入一些颜料来投票红色染料排到下水道。
最后,将容器打碎并露出里面的东西。如果其中包含任何数量的红色染料,则投票不是一致的。
评论
这与上面的“盐”答案完全相同
– schroeder♦
20年8月6日在10:53
#24 楼
有趣的问题。高科技:第三方给每个选民两张相同的纸:一个打字为“是”,另一个打字为“否”(或其他符号,1/0,y / n等)第三方参与到此结束。他们休会到一个私人区域,在那里他们可以秘密地选择一张想要的答案的纸。所有选民返回并同时将他们的选票放在摇晃以随机分配的投票箱中。即使是最偏执的世界也有一些实际的局限性和控制方法-例如
中型技术:将继电器/触发器与“ tally”开关串联在一起,即可完成电路接通灯或类似指示器的操作。只有一个投票按钮隐藏在提示按钮上(例如,在另一个房间,盒子等),提示按钮是公开的,因此在没有证人的情况下不能被触摸。
每个人都有私人的按下机会否)按钮,然后一起触发开关,如果触发了继电器/触发器,则将完成电路。换句话说,只有当有人按下投票按钮时,翻转计数开关才能完成电路。因为投票是私人的,所以只有一个按钮并且它在电路的单个点(即继电器或触发器,只能被触发一次)上操作,因此无法追溯到谁触发了投票。 >
评论
您的低技术建议只是“黑球”计划的纸质版本。而且不需要第三方。您的中型技术版本是相同的。
– schroeder♦
20年8月6日在11:04
评论
评论不作进一步讨论;此对话已移至聊天。