多重签名:未完成的革命

当前位置:首页 > 币圈百科 > 多重签名:未完成的革命

多重签名:未完成的革命

2022-12-14币圈百科226

总结:本文的主要观点是定义“好的多重签名”和“坏的多重签名”。好的多重签名消除了人们不得不信任个人的麻烦,促进了对消费者的保护,而坏的多重签名只是对加密的经济安全性的威胁。本文试图澄清两者的区别。

482

经过几年的基础设施和技术发展,似乎多签名钱包技术终于在比特币世界取得了长足的进步。Greenaddress.it?比特哥呢。是前两个竞争对手,后者最近获得了1200万美元的风险投资,并声称拥有价值超过1亿美元的比特币。

从比特币的体系来看,多重签名越来越多的出现,很受欢迎,比如已知的好处。比特币协议的这一组件已经问世近两年,现在主流消费者终于可以享受它的果实了。

多重签名的好处尤其包括消费者-商家第三方担保的应用。在需要保护的地方,开放和自由的市场被允许充当仲裁人,以确保相对安全和无欺诈的比特币交易。它的好处还包括它作为个人存储钱包的应用,保护用户免受单个密钥造成的任何损失和危害。

在消费者保护成为关注焦点的时候,数字货币BitLicense的出现给数字货币的业务带来了高度的限制。在保护消费者权益方面,多重签名提供了集中监管的替代方案。3354不要完全确认生意上的每一个人都值得信任。我们可以建立一个系统,最大限度地消除单点故障,优先考虑数字安全。

然而,像多重签名这样的潜在技术革命仍然有被误导和赞扬的风险。就像有些企业会宣传自己地址以“3”开头的品牌效益,却没有实际的努力去取信于人。本文的主要观点是定义“好的多重签名”和“坏的多重签名”。好的多重签名消除了人们不得不信任个人的麻烦,促进了对消费者的保护,而坏的多重签名只是对加密的经济安全性的威胁。本文试图澄清两者的区别。

客户端的革命

在真正涉及多重签名之前,我们必须先仔细分析一下一些公司采用的一种特殊技术,这种技术似乎是为了增强安全性,减少对信任的需求:客户端web应用程序。

在客户端web应用之前,比特币客户端主要有两种方式。

首先,桌面客户端,你直接下载程序到你的电脑。客户端的好处是用户在自己的机器上有自己的私钥,可以自己保存资金,不需要依赖任何第三方。但是它的可用性有一些缺陷:至少用户需要下载。

二是服务器端的在线钱包,第三方为你保管你的比特币,给你一个可以方便转入转出的账户,就像使用谷歌和脸书的账户一样,不需要下载任何软件。很好用,但是需要你信任第三方。

客户端web apps是简洁的第三种解决方案:虽然仍然通过web apps登录网站,但是不需要下载必要的软件,私钥的存储和更改都是通过使用内置在web浏览器中的Javascript编写的客户端来完成的。所以这类应用虽然和可信服务器钱包提供的网页交互一样方便,但是服务器并没有获取你的个人私钥。它似乎有双方的长处。现在最流行的客户端钱包可能是blockchain.info.

现在,我们来评价一下这种形式的优势。现在,Javascript客户端肯定有批评者;甚至Matasano也有一篇专门的文章叫做《JavaScript密码学被认为是有害的》。虽然他完全否定基于浏览器加密的客户端的任何优势的观点比较偏激,但他确实有一些合理之处。尤其是当你下载一个浏览器Javascript的时候,还是要相信它的来源。 也就是说,如果blockchain.info或者某个blockchain.info的流氓员工想要,或者政府强迫他们,他们可以把包含你私钥的代码发出去,或者签署一个交易,把你所有的资金发到他们的地址。你永远无法及时知道。

现在,如果有人把这个论点推向极端,他可能会声称,即使是下载的客户端也可能会发布一个会窃取你的私钥的版本。但显然这种可能性会小很多,尤其是当你只下载过一次这个软件的时候。

在各种情况下,你有多信任软件?让我们来看看,为了取得成功,应对每种情况需要做些什么。

桌面客户端,原——攻击系统的代码提供者,或者攻击者,需要在Gigub的客户端仓库提交包含后门的补丁。您需要在组织内部或外部的人扫描代码并找到这个后门(以便被抓住)之前下载这个客户端。

桌面客户端,二进制(普通人的选择)3354攻击系统的代码提供者或攻击者,需要编译发布一个带有后门的客户端。你必须在组织里有人删除这个版本之前下载它。(大部分情况下,通过反编译二进制客户端是无法发现后门的,所以漏洞一定是内部的,虽然从长远来看,一旦发现入侵,这个漏洞就会被永远封堵。)

客户端浏览器webapp) ——攻击者需要在内容分发网络中快速插入带有后门的客户端版本。只有在此时间段(恶意版本发布和离线之间的时间段)登录的用户易受攻击。

服务器端浏览器webapp )——攻击者需要一个只需要访问网站的冷钱包。如果这次成功了,显然每个用户的账号都会被攻破。

因此,我们可以看到一个安全级别。越往下,安全感越低,越需要信任的投入。短期攻击者和长期攻击者有一个独特的区别:公司是邪恶的?还是就在被发现前几分钟或几小时,有人通过一些漏洞进入了服务器?对付长期攻击者,只有从开源社区下载一些稳定版本才能帮到你,而对付短期攻击者,二进制桌面应用可以做得很好,甚至客户端浏览器web应用也能限制一小部分用户的招数。

虽然一般来说,桌面和浏览器还是有基本区别的:前两者,如果攻击者短时间入侵,在安全设置正确的前提下,完全没有危害,因为问题会很快得到解决。后两种情况,短期入侵也是有害的。基于客户端的App只是给基于服务器的钱包增加了一部分安全性。

如何解决问题?最简单的办法就是把客户端的web应用改成浏览器扩展,几乎完全解决了这个问题;从安全性的角度来看,浏览器扩展相当于在Java或Python等交互环境中运行的桌面应用程序。然而,这是通过增加一个额外的步骤来实现的。——用户必须下载一个浏览器扩展,而不仅仅是信任服务器。正因如此,虽然有些人喜欢blockchain.info提供自己的浏览器扩展,但大多数人并不使用。

注意,以上当然不是对客户端浏览器中Javascript的指责;我的意思是,客户端浏览器Javascript并没有比服务器持有你所有钱的方式更高的安全性,或者说不需要付出那么高的信任成本。

除了安全和信任,还有其他原因需要编写客户端浏览器Javascript加密货币应用。最大的原因是方便。因为在浏览器里做的事情越多,作为应用开发者可以省略的基础工作就越多。

正是因为这个原因,以太坊使用客户端Javascript(开发的便利性和抵御拒绝服务攻击的健壮性)。 当然,你在使用这个App的时候相信以太坊,但无论如何,这都不是问题,因为你相信以太坊可以开发一个平台。因此,如果我们承认我们信任blockchain.info这样的提供商,我们可以说使用客户端加密是合理的。然而,对于多重签名,情况就完全不同了.

融合多签名钱包

前面关于客户端安全性的讨论很重要,因为它带来了加密货币协议中关于安全性的一个重要且有时被忽视的组成部分:源代码本身的安全性。虽然比特币等加密协议在理论上是毋庸置疑的,但实际上几乎没有人有能力自己检查所有的代码。在暗C比赛中,聪明的开发者们展示了一个软件不受攻击有多难。所以,除了程序协议的原始开发者,几乎所有人都要付出一定的信任成本。

在多重签名中,我们试图明确地消除信任任何一个实体的需要。一般来说,多重签名有两种实现方式。

第一种我们称之为2-of-2的扩展版本。二进制的基本概念很简单。密钥由用户持有,可能是通过密码推断出的大脑钱包,也可能是浏览器或客户端随机生成的加密密钥。另一个密钥由服务器持有。当用户想要交易时,他们在电脑上登录他们的钱包,然后使用他们的私钥签署一项交易,从他们自己的地址发送资金。这时候交易交付给服务器,服务器做一些反欺诈测试,比如给用户手机发一个验证码,让用户输入这个验证码。如果成功,服务器签署并发送该交易。

然而,这种战略本身就很脆弱。如果你的电脑被攻击了,或者你忘记了密码,那么你就无法登录你的钱包,服务器也无能为力。同样的,如果运行服务器的公司有什么意外,灾难或者跑路。也不能用。

2-of-2扩展版解决了这个问题。本质上,你的客户每发起一笔新的交易,实际上就产生了两笔交易:一笔是你想要的钱的转账,第二笔是第一笔交易完成后,把你剩下的钱转到你控制的另一个地址。但只有第一笔是公开的,第二笔交易返回给你,这样即使服务器消失了,你仍然可以收回你的资金。请注意,这是2-of-2地址,未经您的同意,服务器无法取消您的交易。需要注意的是,服务器应该是第一个签署交易的,而不是第二个。否则服务器就可以恶意的只签第一笔交易不签第二笔,然后跑路,让用户在风中哭泣。

第二个策略很简单,3选2。有三个密钥:您的密钥、服务器密钥和您以安全的脱机方式保存的密钥。就像上面一样,你签字交易,服务器给你手机发验证码,你在电脑上输入验证码,服务器签字交易;仅此而已。如果您丢失了密码,您可以使用备用密钥和服务器密钥将交易发送到新的钱包;如果你或者服务期被攻击,攻击者只得到三分之一的密钥。如果服务器故意作恶或者跑路,它只有三分之一的密钥,而你有三分之二。类似于2-of-2的逻辑,如果你丢失了密钥或者服务器消失了,你可以申请紧急交易。因此,在我们开始考虑软件代码之前,我们有两个协议,它们略有不同,但在许多方面相似,以在单点故障的情况下创建多重签名……

……直到我们开始考虑软件代码。一个流行的多签名钱包是BitGo,目前大多数情况下以客户端Javascript web应用的形式出现;因此,我们可以使用与分析blockchain.info相同的方法来分析BitGo(注意,我没有专门针对BitGo,它只是最突出和资金充足的一个,其他类似的选项通常也是这样工作的。 )如果攻击者控制了BitGo的服务器,他们就有能力向用户交付错误的web应用。

现在,人们可以合理地认为(1)BitGo是一家值得信赖的公司,因此不太可能从内部窃取,(2)多个签名的存在意味着攻击者必须从两个方面攻击BitGo,而不是一个方面。

然而,这并没有绕开最初的弱点。一个集中式的服务器端钱包也能达到同样的安全效果,而且没有用户存储密钥那么复杂,只要额外增加一个多重签名的步骤或者和他们冰冷的钱包共享秘密就可以了。因此,这种客户端浏览器多重签名钱包可以被认为是对加密的经济安全的完全威胁。这并不是说BitGo不安全。和大部分选项相比,还是不错的。也就是说,这种“多重签名”并没有提供一些人想象的确切的安全保证。

为什么浏览器Javascript和多重签名的结合会有问题?哲学上的原因是,浏览器Javascript多签名钱包的提供者和很多桌面应用提供者一样,从一开始就试图建立一个不受单点故障影响的协议,但他们同时在协议中扮演两个角色:客户端和服务器,这使得他们在现实中牺牲了原有的优势。问题似乎是根本的,在任何交互中,考虑到客户端的重要性,这个问题可能是无解的。正如我们上面看到的,无论你如何下载一个软件,除非你有时间检查每一行代码,否则我们不得不预先假定你信任软件的提供者。乍一看,这个问题是无解的,但正如我们将看到的,有解决方案。蓑衣网小编2022再次,解决方案来自多重签名——,这一次是在正确的方向上。

未触发多重签名

我相信我在现实生活中看到的多重签名的正确实现是基于?CryptoCorp。CryptoCorp实现多重签名的方法有着本质的不同:它没有试图采用Paypal的模式(实际上是前加密时代几乎所有的商业模式),而是将接口和安全提供者打包。CryptoCorp对接口的作用进行了总结和提炼,将安全提供商作为他们唯一的核心产品。也就是说,CryptoCorp将大部分资源投入到开发和改进其签名数据库服务器的算法和高级功能上。让其他钱包提供商与它结合,提供兼容的关节点。在3月份德克萨斯州举行的比特币大会上,CryptoCorp展示了改进的Electum钱包的原型;现在,他们正与十多家钱包提供商合作,整合并支持他们的子服务器。

当然,有一个问题是,CryptoCorp的服务器有什么特别之处?如果是使用Google认证对手机进行二次验证的App,可以在签名后几天内写入NodeJS我自己能做到。CryptoCorp的优秀之处在于用于识别不当交易的先进算法。一杯咖啡三美元?CryptoCorp甚至迫不及待地等待确认;花500美元买台笔记本电脑?还需要一点严格的检查;五万美元买一辆车?为接近KYC认证的考试做好准备。除非收货地址被认为是属于已建立的BitPremier,那样的话,你就可以少麻烦的发送交易,因为一旦出错,你随时可以要求退款3354。如果收货地址和黑客有关,连3块钱的交易都会要求验货。

那么为什么CryptoCorp的方式更好呢?从我上面对多重签名常见方式的批判来看,答案很明显:整个数据库的建立和整个软件的维护是完全分开的。事实上,即使你的软件完全被攻击者控制,你使用CryptoCorp仍然是相当安全的。你可以用一个独立的工具来验证你看到的地址是否合法(而不是所有的密钥实际上都控制在攻击者手里的假多重签名)。客户蓑衣网小编2022端不能单方面发送交易。如果客户端试图发起更狡猾的攻击,比如改变交易的输出或金额,数据库会发现它。 所以实际上不会出现单次失败,加密货币零信任的承诺最终会实现。

值得注意的是,CryptoCorp并不是唯一一家以广泛和高度模块化的方式做事的公司,Codius,其数据库基础来自Ripple的智能合约平台,再以几乎相同的方式解决这个问题。还有基于消费者保护的立场的Bitrated,和他的买家、卖家、公证人的开放市场。尽管Bitrated有所下降,因为它是一个浏览器基础的网页应用,而不是一个客户端应用或浏览器扩展。或者实现与协议多样的兼容会更好。

去中心化友好的商业文化

要让加密商业更像CryptoCorp,?Codius?或者Bitrated,而不是更像PayPal,我们有很长的路要走。在技术商业社区,很大的力量总是倾向于创造一个一站式解决的生态系统。而不是一个单一的组件,修建一个“护城河”,这样你的用户无法离开你的产品。前者恰恰是走向了去中心化生态系统的反面。商品化,普遍化,关注点分离的原则对一个去中心化生态系统的健全是如此的重要。尽管目前如果你有一个安全和垄断的位置,公司利润会有巨大的增长。但是加密货币应用变得模块化和可替换是这个游戏的未来。

我们必须注意到,CryptoCorp已经试图超越这个障碍,通过实现真正真正好的签名数据库,超越“只是签名数据库”的烙印——与CryptoCorp合作的钱包也做了同样的事情。甚至交易所,或许在全世界有许许多多的的交易所,依然试图将他们自身与加密货币区分开来。但目前,在服务中的仲裁服务比如Bitrated,仲裁者可以选择专门从事不同的行业,不同的商业模式(比如,产品质量的接受标准,消费者希望读到的购买协议的程度,等等),并有允许他们支付最少费用的最佳的风险模式。

此外,也许运行一个多重签名数据库不一定非得是在买卖中。像蓑衣网小编2022DNS服务器,任务可以简单地商品化,并由大公司,非盈利的研究团队和爱好者共同完成。这样的情形会更好,因为各自完成自己的部分,会有一个稳定独立的收入来源,和更多的维护声誉的需要,所以我们能够预期数据库跑路和欺诈更少。但是最终,如果社区需要真正的去中心化,市场会以某种方式配置自身来实现它,唯一留下的事情是完成这个转变的有组织的努力。

更新:BitGo的Ben Davenport已经回复,说他们已经有了一个API支出使用他们的服务,就像一个纯CryptoCorp那样,很快他们还将推出浏览器扩展。我赞赏他们的快速反应和对稳固安全性实践的付出。


原文:http://bitcoinmagazine.com/15290/multisig-revolution-incomplete/作者:?VITALIK BUTERIN译者:面神护法稿源(译):资讯(www.8btc.com)译者BTC地址:1AgQhZScPTYeZdz5zQ86Nr4dwhX1RPXkXC

多重签名:未完成的革命 | 分享给朋友: