多重签名和瘫痪证明技术将保护你的加密货币将无人可盗

新手教程10个月前更新 领域OK
49 0 0

加密货币的世界里,私钥是一种资产,忘记或被盗私钥对任何人来说都是毁灭性的。历史上,很多人忘记了秘密钥匙,失去了自己初期投资的密码货币,失去了几亿资产。

私钥安全的解决方案是冷存储和多签名技术。

多重签名和瘫痪证明技术将保护你的加密货币将无人可盗


本文讨论多重签名技术的应用。常见的多重签名有两种类型。一个是n-of-n,即所有私钥持有者必须签名才能使交易生效。对黑客来说最麻烦的是,为了控制资产,他们必须同时入侵所有人的私钥。一般的n-of-n多签是2-of-2、3-of-3。

另一种方法是n-of-m其中N小于M也就是说,如果M个秘密密钥中至少有N个秘密密钥签名,交易就会生效。这在硬币圈也很常用,2-of-3最常见。

但是,这些方案都包含着很大的风险,比如私钥丢失持有人遭遇事故,私钥持有人贪得无厌对其他持有人造成威胁时,有资产丢失的危险,无法动用资产统称为“瘫痪”。

我认为,在防范黑客攻击的同时,也要应对无法动用资产的情况,这是一种悖论。

到底有没有解决的办法呢


来自[康奈尔大学]的计算机科学教授Ari Juels工作量证明机构提交者之一、〔康奈尔大学〕博士后Iddo Bentov、〔康奈尔大学〕计算机科学博士生Fan Zhang、〔康奈尔大学〕计算机科学博士生Phil Daian共同提出了被称为Paralysis Proofs的技术多签名方式产生了新的可能性。

以下是总结的译文注:“我们”是指康奈尔大学的研究者:

从埋藏在“金银岛”的黄金宝藏,到失踪的七个法伯杰蛋,丢失的宝藏和被盗的宝藏,一直都是传奇。但是,在“比特”硬币的世界里,没有公主,没有龙,也没有海盗。这里也没有什么太浪漫的。财富流失,是因为笔记本电脑上的私钥丢失,自己打印和抄写的私钥纸条丢失,或者被黑客洗劫一空。

密钥管理在任何密码系统中都很重要。像“比特”币和“以太”坊这样的密码货币也不例外。私钥丢失或被盗可能会造成毁灭性的损失,要处理好它是非常困难的。用户在保护私钥免受狡猾黑客的侵害的同时,也应妥善保护其免遭资产丢失。密钥管理在业务场景中尤其困难,几乎没有人信任完全控制的资源。

通常使用一种叫做multisig的技术来管理密码货币的私钥,这是一种强大的方法,简单地说,就是让多个用户保管私钥,进行交易时请他们在其中的几个私钥上签名。这种密钥交接也被称为秘密分享。

我们发表了一篇论文来解决常见的秘密共享问题,特别是在密码货币领域。我们把这个问题称为麻痹问题

秘密分享是如何引起瘫痪问题的

几个月前,一个朋友问我们一个简单但非常有趣的问题,这也是现实世界中密钥分发挑战的一个很好的例子

这位朋友这里标记为“Richie”和两位商业伙伴分享了“比特”硬币的大量所有权。他们就不用说了,谁也不想偷偷把这枚“比特”硬币拿出来。他们想保证这些硬币只能在所有人的同意下使用。有一个简单的解决方案,他们可以使用3of3的多签名方式。然后需要三个人的签名,可以使用这些[比特]硬币。问题好像解决了!但是真的是这样吗

很显然,故事不会在那里结束。当然,Richie及其合作伙伴会担心有人丢失了私钥。如果存储密钥的设备损坏、错误删除密钥或有人遭遇非常不幸的事故,一个合作伙伴的私钥可能会丢失。结果,所有的比特硬币都完全丢失了!


这不仅仅是一个糟糕的剧本。Richie即使是和合作伙伴之间,关于如何花钱的意见也不同,不能达成协议。更糟糕的是,如果你有一个恶意或贪婪的伴侣,她可能会试图通过扣押自己的钥匙部分来威胁别人。在这种情况下,比特硬币可能会暂时或永久丢失。


在这里,使用“下降”这个术语来表示无法使用硬币的困难情况。遗憾的是,n-of-n多重签名方法无法解决停机问题。事实上,这可能会加剧问题,因为如果你失去钥匙,你就会致命

Richie来自他的商业伙伴hackingdistributed.com

因此,我们必须满足[Richie]和合作伙伴的目标,同时避免下降。也就是说,所有人都必须同意使用[比特]硬币。这似乎是不可能的!例如,假设您有一个名为n-of-n的多重签名机制。要达成一项交易,显然所有合伙人都必须签署协议。如果合作伙伴中的某个人丢失了钥匙,如果能以某种方式获得n-1、比特对[比特]硬币的访问权,他们就可以假装丢失了钥匙的一部分来筹措资金。也就是说,我们从一开始就实行了n-1、of-n的多重签名方式,所以会产生矛盾。

Richie的问题,我们好像处于麻痹状态。。。

解决悖论

两种强大的技术块链和可信硬件,特别是英特尔SGX的出现,证明了我们实际上可以解决这个悖论。这在一般环境中是有效的,据我们所知,这是历史上第一次,所以我们引入了一种叫做Paralysis Proof系统的新技术

如您所见,在“以太”平台上,您可以相对轻松地实现这种下行证明系统。使用一个智能构建体,而不是英特尔][SGX]。我们在论文中提供以太坊合同的例子。但是,“比特”硬币有脚本限制,因此需要“SGX”设备,并引入一些技术难题。

简单了解麻痹证明系统

整个原理非常简单。受信任的第三方将所有密钥存储在主机端。如果一方或多人无法签署或不愿意签署交易,则会出现上述瘫痪情况,其他人将生成瘫痪证明,表明情况就是这样。考虑到此证明,第三方将使用其拥有的密钥允许交易。

但是,如果引入了可靠的第三方,则很明显无法实现[Richie]及其朋友提出的安全目标。因为其中一个可以控制所有的私钥!

这里就是发挥“SGX”力量的地方。[100]应用程序基本上与受信任的第三方具有特定约束条件。例如,您可以编程为仅在提供有效证明时才能签署交易。从这个意义上来说,SGX应用程序的行为与智能构建非常相似在[100]的帮助下,我们可以保证当出现可确认的下降时,许多私钥持有者可以访问[比特]硬币资产。

技术细节

当然,即使考虑到SGX中的这种魔术,我们仍然需要确保麻痹证明Paralysis Proof的生成是合法的。我不希望“Richie”的合作伙伴“告发”他声称错误死亡,比如针对运行“SGX”应用程序的主机的埃克里普斯攻击。令人欣慰的是,块链本身提供了一种强大的手段来发送消息,并让某人知道发送者还活着。为了在硬币网络上实现下行证明系统,我们利用了这个事实和一些技巧。为了简单起见,我们将重点放在无法访问的密钥问题上,而将其他形式的下降放置一段时间。

将创建一个降级证书,并证明某个p方不会立即回应无法签署事务处理该系统发出挑战challenge,“被控制”一方必须应对我们所谓的“生命信号”。如果在预定的时间内例如24小时生命信号没有回应这个挑战,这个缺席将成为麻痹的证明。

另一方面,在硬币的情况下,p侧的生命信号可以采用可忽略的数目例如0.00001BTC的比特硬币UTXO形式,其通过p侧发行来证明她仍然存在,或者pk_可在SGX中发行,但需要延迟之后进行。sk_请注意SGX只在SGX应用程序中知道。


让我们再以三个合作伙伴为例吧。假设他们都有密钥对sk_i,pk_i首先,他们从自己的比特货币资金假设有5000BTC到UXTO_托管费用为0的输出,如果三个人都同意,或者pk_通过SGX,可以使用它。这里,P_2和P_3表示P_假设你决定起诉1。SGX应用程序在接收到两人的请求后,准备以下两个交易,并将其作为P_2和P_发送到3。

t_1事务1、表示0.00001BTC的生命信号UTXO_1,并将pk_1可以立即使用,也可以在超时后例如144个块,约24小时使用pk_也可以在SGX中使用。

t_2、事务2、包括UTXO_0和生命信号UTXO_1,pk_2和pk_3发送到可控制的地址或者,如果想留在麻痹证明系统中,pk_SGX也是可选的

因此,P_1的合作伙伴,在比特硬币网络上发现了t_1,t_1等待添加到块链,然后等待下一个144个块,然后t_2应广播到硬币网络。在此期间,有两个可能的结果。

在合法指控的情况下,P_1确实是t_1事务处理不可用,但t_2当网络确认交易时,P_2和P_3获得比特货币的访问权限。这将确保BTC基金的可用性。

但是,在发生恶意指控的情况下,上述方案为P_1保证能在144个街区的时间内上诉。因此,P_1使用只有她知道的钥匙,UTXO_你可以用1。t_2表示UTXO_0和UTXO_因为将1两者都作为输入,所以t_如果乘以1,则t_2是无效的事务处理。

验证安全性

生命信号的安全性为t_1中使用CheckSequenceVerify。详细地说,t_2仅在输入的验证部分比特、货币中称为脚本签名-ScriptSig均正确时有效。SGX飞地设备为主机基金所生产的验证部分立即生效,但t_1交易被并入比特货币区块链后需要等待144个区块,因为CSV条件,t_只有乘以1的验证部分有效。因此,为了将超时参数设定为较大的值,有两个目的:1、给予P1足够的响应时间。

以太在坊平台的应用

以上是对比特硬币的例子进行了叙述,但下行证明系统其实不仅仅是比特硬币,对于以太坊这样的智能构建平台,其实现变得更简单,可以用契约来置换对可靠的SGX硬件的需求。

参考实现代码只有117行。主要逻辑如下所示。

functionspenduint256proposal_idpublic

//getridofanyparalyzedkeyholders

prune_paralyzed_keyholders;

requireis_keyholdermsg.sender;

requireproposal_id=required_sigs

if! proposals[proposal_id].filled

proposals[proposal_id].filled=true;

proposals[proposal_id].to.transfer[proposals[proposal_id].amount];

functionremoveaddressaccusedpublic

//getridofanyparalyzedkeyholderspreventparalyzedrequester

prune_paralyzed_keyholders;

//BothrequesterandaccusedmustbekeyHolders

requireis_keyholdermsg.sender;

requireis_keyholderaccused;

//thereshouldn’tbeanyoutstandingclaimsagainstaccused

require! paralysis_claims[accused].expiry>now;

//createandinsertanParalysisclaim

paralysis_claims[accused]=paralysisclaimnow+Delta,false;

newaccusationaccused,now + delta; // Notify the accused

function respondpublic

requireparalysis_claims[msg.sender].expiry>now;

paralysis_claims[msg.sender].responded=true;

完整的合同代码。读者https://github.com/pdaian/Paralysis_proofs中所述修改相应参数的值

其他应用程序

不仅是密码货币的应用,下行证明技术还可以应用于证书的解密。您可以使用向下证书创建一个证书来释放文件,并允许一个人或组对其进行解密。以下是通过组合区块链检查电阻通道和SGX可以实现的应用例。

每日支出限额:24小时内,可确保从一个公共游泳池使用的资金不超过事先商定的金额。例如,0.5BTC,作者在原论文中研究了一些实际限制

事件驱动访问控制:使用oracle,例如Town Crier系统。这实际上是第一个面向一般人的“SGX”应用程序。这允许在现实世界事件中对访问控制策略进行条件化。例如,通过提供汇率数据的反馈,每天支出

事件驱动的访问控制:Town Crier系统实际上是第一个面向一般人的应用程序[SGX]这样的[oracle]中描述的场景,使用下列步骤创建明细表,以便在概念设计中分析体量的周长。例如,通过提供汇率数据反馈,您可以将每天的支出限额以美元计价,而不是以BTC计价。人类原则上也可以使用自然语言处理符合现实世界的现象。例如,如果一个具有泄漏信息的文档的作者被美国联邦政府起诉,一个新闻工作者可以解除该文档的机密。


必须升级阈值:如果预先设置数量的参与者同意,则可以向访问结构添加或删除参与者。例如,可以将k-of-n的多重签名方式更改为k+1、-of-N+1、的签名方式。通常的秘密共享方法不可能升级,因为一组许可证参与者总是可以重建私钥。但是,如果[SGX]控制了解密密钥,则应用程序可以监视块链,以确定参与者是否为更新投票,如果记录在块链上,则投票不会被抑制。

有安全上的问题和今后的改善对策

当然,随着可信硬件“SGX”的引入,引入侧通道攻击的风险也是该方案的主要课题。在未来的研究中,我们将探索减少这种攻击的技术,例如,在n-of-n多路复用方案可降级为N1、-of-n多路复用方案的系统中,一个[SGX]飞地应用程序可以存储和有条件地释放单个私钥,而不是控制一个私钥。这限制了侧通道攻击带来的有害性。您还可以在多个“SGX”飞地设备上保存关键帧。这有助于在降低节点故障风险的同时恢复节点故障。


附录

在论文中,我们讨论了许多有趣的扩展部分。以下是两个列表。

使用“协议”提出的不履行证书

如前所述,比特币具有脚本约束,因此必须使用SGX设备才能在此网络上应用向下证明。实际上,还提出了一种不需要可信硬件的“稍微低效”方法,但它需要一种功能来提出一个名为covenants合同的比特币。然而,不建议使用此方法,因为它的复杂性明显高于SGX可信硬件方法。


我有另一个更好的方案

在刚才的例子中,资金是pg_SGX虽然可以单独使用,但重要的是,这不是唯一的选择。事实上,人们可以考虑在安全性和麻痹容忍度之间进行权衡,以最好地满足他们的需要。

例如,如果三个合作伙伴只允许一个私钥丢失,他们所能做的就是将资金转移到3-of-4的地址,第四个参与者是[SGX]飞地设备。如果所有人都活着,他们就可以在没有[SGX]的情况下使用比特币资金。如果其中一名合伙人遭遇事故,他无法签署,而另外两人可以出示麻痹证明,[SGX]飞地装置将释放私钥。因此,即使攻击者通过侧通道攻击打破了[SGX]设备拥有的私钥,也不能使用比特币的资金,但唯一的例外是两名合作伙伴与攻击者合谋。


这也是我们想要进一步研究的一个有趣的方向

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...