SEC:白话 Mimblewimble:新型的隐私保护协议

注:Mimblewimble在设计上是一种公链的共识协议,特点则如下文介绍,可以不透露交易的具体信息。现在已经有不止一个团队在实现Mimblewimble。Mimblewinble这个名字听起来很无厘头,但它是一种可以防止区块链泄露个人信息的技术。它的名字来源于《哈利波特》中一种防止人们泄露秘密的咒语。-《哈利波特》——华纳兄弟出品——施展Mimblewimble咒语片段-,你觉得呢?)中本聪的比特币论文中有一个名为“隐私”的章节,其中中本聪非常清楚地阐释了比特币的隐私局限性。随着攻击者能够更好地使用比特币的数据定位或实名化比特币用户,这些不足会不断“恶化”。这使得某些认为比特币不与姓名关联因此能够保护隐私的人非常惊讶。让我们一起来看看比特币能够分析出什么数据,以及为什么——比特币通过泄露3个秘密来满足货币系统的两种需要

每一笔比特币交易都泄露了3个秘密:发送方地址发送比特币的数量接收方地址比特币并不是因为憎恨隐私性才显示这些信息。它显示这些秘密,是因为任何货币系统都必须满足两个条件:它必须能够验证接收的币的数量与发送的数量相等。如果我能够在一笔交易中从一个地址发送1个币,却在另一个地址收到2个币,那么这个加密货币系统必将崩溃。在正常的系统中,如果我将5欧元放到你手里,那么我少了5欧元,你多了5欧元。在这个交易过程中没有凭空产生的钱,也没有凭空消失的钱。我只能从我自己的银行账户中进行电子转账,而不能从你的银行账户中转账。我们必须能够验证交易是从借记卡以及个人密码/网上银行密码、或加密货币中的私钥持有者发出的。比特币通过泄露以上3个秘密,从而满足了这两个条件。比特币交易以明文形式包含转账金额以及接收者地址。从而很容易满足货币系统的第一个条件;我们看到5个比特币进入交易,5个比特币出来。为了验证比特币系统满足第二个条件,比特币使用具有对应私钥的公开地址。公开地址持有比特币。发送者通过使用对应私钥产生一个签名,给他的交易签名。每个人都可以验证这个签名是由持有比特币的地址对应的私钥产生的;这样我们就验证了交易来自有权发起交易的人。Mimblewimble可以在不泄露以上3个秘密的情况下,满足货币系统的这两个条件。证明过程需要用到一些简单的数学,只要10岁就可以理解。在证明过程中我还会使用一些复杂的数学,大概12岁就可以理解。乘法很简单,但因式分解很难

许多人很害怕数学,每当在文章中遇到的时候都会跳过。不过,如果只是下图那么简单,你就不会害怕了吧?如果我给你纸笔,那么你两分钟内就能解决这些问题,对吧?对于人们来说乘法非常简单。对于计算机来说,即便是一个小袖珍电脑,也能很快计算出两个百万量级的数字相乘的结果。但是,让我们做一点改变。让我们把问号移到另一边:现在如果我给你纸笔,那么两分钟内你还能解决这些问题么?也许就不能了。我们仅仅只是改变了操作的方向,事情就变得更加困难了。为了简单起见,我不想讨论椭圆曲线。在实际中,加密系统不使用任何数字,而是使用一个被称为椭圆曲线点的特殊集合。但简单的数学性质在这两种情况下是一样的:乘法很简单,但乘法的逆操作——因式分解就很困难。利用乘法的属性来隐藏信息,并验证所有权

如果我问你以下缺失的数字是什么…………你并不能很快地告诉我,因为问号在左边,很难去找出缺失的因子。好吧,我来告诉你。缺失的数字是23和83。现在你想验证我说的是不是真的,即缺失的是否真的是23和83,这已经变成了一个简单的乘法问题。你能够很快地求解出答案,23和83确实是能让乘积等于20,348,031的因子。如果我撒谎了,你也很容易就能发现,因为我给出的因子将不能使乘积等于右边的大数。我不能编造错误的因子,也不能猜出或计算出它们。我必须提前知道这两个因子。这仅仅是乘法。大概10岁的娃娃都能明白。但是,我们为加密货币完成了两件非常重要的事情——我们想要隐藏信息。现在我们知道该怎么做了:我们能够通过乘以未知数的形式隐藏信息。这就使得破解原始信息变得非常困难。我们也想证明我们持有私钥。现在我们也知道怎么做了:给出大数的因子即可。我们只需使用乘法的基本性质就能做到这两点。隐藏交易金额

让我们使用大且秘密的数字乘以交易金额的方式来隐藏交易金额。比特币泄露的三种信息之一就是发送比特币的数量。当我通过比特币区块链发送5个比特币的时候,交易金额是明文显示的。我们用乘式把它隐藏起来。在下面这个等式中,你就不容易告诉我交易金额是多少了:上面这个等式有点像交易金额在Mimblewimble中的表示形式,但不完全一样。在Mimblewimble中,发送方与接收方都给出了这样一个数字:这个数字叫做Pedersen承诺;我也不知道为啥叫这名儿。需要注意的重要一点是,Pedersen承诺中包含了交易金额的部分以及私钥的部分。请注意,发送方与接收方都参与到了创建交易的过程中。这跟比特币是完全不同的。这种方式避免了泄露接收方地址,但使得发送方必须以某种方式与接收方取得联系。Beam包含一个安全的BBS系统,使得发送方与接收方能够安全地交换他们的Pedersen承诺。乘法结合率

下面的内容是我们要做的最高级的数学内容。在爱尔兰,你到12岁已经是一个大男孩的时候,学校才会教这些内容——如果我想2加4乘以3,我可以首先计算2+4=6,再使用6乘以3,得到18,或者我可以先计算2×3=6,再计算4×3=12,最后的和也是18。我想让你们记住的一点是:当我们要使用两个数之和乘以第三个数时,我们既可以先求他们两个数之和再乘以第三个数,也可以先计算一个数与第三个数的乘积,再计算另一个数与第三个数乘积,最后将两个乘积相加。这两个过程是等价的。证明货币输入等于货币输出

记住货币系统所需的条件之一是接收的数量减去发送的数量必须为0。我把5欧元放到你手里,你得到5欧元。5-5=0。一个Mimblewimble交易包括两个Pedersen承诺:一个用于记录进入交易的货币数量,另一个记录交易结果中的货币数量:例如,如果发送者少了5,那么接收者获得5:但是我们不需要分别将输入交易金额乘以这个大数,然后将输出交易金额乘以这个大数,我们可以像这样把他们合并在一起:5-5=0。0乘任何大数都依旧是0。那么这个式子就剩下:或者说:交易金额部分就消失了!虽然在每一步中,交易金额都通过与大数相乘隐藏了起来,但我们无需公开这些数值,只需验证结果为零。交易金额部分得已隐匿的原因是货币输入与货币输出是相等的。如果它们不相等,那么它们之和就不会是0,然后化简的结果就会多出一些东西来…………如果交易金额最终结果不为0,那么交易核就不能被23和83整除。Beam协议将拒绝该交易,因为这个交易的格式不对。剩下的就是私钥部分

私钥部分是一个非常大的数,这个数是发送者与接收者私钥之和,与另一个大数的乘积。私钥可以整除这个大数,就像83和23是右边大数的“秘密数字”一样。因此,交易核能够被私钥整除的原因有两个:因为交易金额部分为0因为私钥部分由一组数字相乘得到,包括我们的私钥83和23。由此我们得以满足任意货币系统所需的两个条件:如果交易金额部分为0,这意味着输入金额减去输出金额等于0。换句话说,输入金额与输出金额是相等的;没有货币消失,也没有货币产生。我们已经实现了这一点,首先通过将交易金额乘以一个未知大数来隐藏起来,然后通过乘法结合律将它们组合在一起,让他们虽有大数掩盖,和却不偏不倚刚好为0。第二个要求是证明交易是由私钥持有者产生的。发送者通过证明其私钥能够整除交易核来证明,也意味着它的私钥是构造交易核的一个因子。可以说,Mimblewimble相较于比特币更好地实现了比特币的目标。与一些隐私币在比特币上做加法不同,Mimblewimble是通过做减法来实现隐私性的。我们觉得这非常令人兴奋,于是在今年早些时候开始构建一个完整的实现,并预计在2018年底之前发布BEAM,真正实现Mimblewimble。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

狗狗币最新价格BTC:全新BTC数据周报(2018年第7期)

链上活跃度数据趋势性下降市场避险情绪上升,谨慎入场需防底部之下还有底报告要点从市场交易数据来看,上周BTC平均价格在经过了短暂的休整后再次出现持续性大跌,成交量也出现大幅波动.

[0:0ms0-6:34ms