首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

第11课 账号被黑客盗取怎么办?-多重签名与P2SH

多重签名 - 1个保险箱多把钥匙

在第8课 账号相关概念:公钥/私钥/Public Key Hash/P2PKH我们知道了,1个账号对应1对公钥/私钥,公钥是公开的,私钥你私自保存。

但是如果私钥被黑客盗了呢,那怎么办呢???前面我们说过,比特币的账号是没有实名认证的,不像现实中丢了账号,还可以拿身份证去银行挂失。

在比特币的世界里面,只认私钥不认人!除了私钥,你没有别的证件,可以证明这个账号是你的。

就像1个保险箱,只有1把钥匙,并且钥匙被盗,还找不回来。那我们觉得不安全,怎么办呢?

答案:为这个保险箱准备多把钥匙,或者说多道开关。就像你在电影中看到的,要开启某个宝藏的大门,需要多个密码拼接在一起,才能打开。

在比特币网络中,最常用的1种是 2-3 多重签名。什么意思呢?

为你的钱包准备3道开关(也就是3对公钥/私钥),3个公钥当然是公开的(也就是Public Key Hash,别人给你转账的时候要用),3个私钥呢?

私钥1:你藏起来,备份,平常不用。

私钥2:你日常使用

私钥3:放在钱包服务商那。

别人给你打钱的时候,要用3个公钥(3个Public Key Hash);

你用钱的时候,需要私钥2 + 私钥3 2把钥匙来解密。

所谓的2-3,就是加密是3个公钥,解密至少需要2把私钥。

2-3多重签名,会达到这样几个目的:

(1)钱包服务商只有1把私钥,不可能私自用你的钱

(2)你自己拥有2把钥匙,即使钱包服务商不配合,你可以在不经过钱包服务商同意的情况下,把钱转走。

(3)黑客要盗用你的账号,至少要盗用2把钥匙。而这2把钥匙,分别存在你和钱包服务商那,难度肯定加大。

通过这个机制,我们就巧妙的提高了一个账号的安全度。

多重签名的缺点

对于多重签名,付款人要付给多个公钥,所以其scriptPubKey就变的很长,如下所示:需要A,B,C 3把公钥,每1部分,都是上1节课所提到的,很长的那1串。

收款人花这笔钱的时候,对应的签名是2个,如下所示:

这种办法最大的缺点是:收款不方便。收款地址太复杂,每1个给我打钱的人,我都需要告诉他们3把公钥,他们要拼出很复杂的scriptPubKey,才能给我转账。

怎么解决这个问题呢?

把很长的这个3把公钥组成的Pub Key,做1次Hash,生成1个短的字符串,其外表看起来,和我们前面所说的Public Key Hash一样。

这也是,为什么我们前面说,Bitcoin Address是一个抽象的表达。

如果是只有1把钥匙,Bitcoin Address对应的是Public Key Hash;

如果是多把钥匙,Bitcoin Address对应的其实是Script Hash。

但无论是Public Key Hash,还是Script Hash,对付款人来说,格式一样的。这样,就对付款人屏蔽了这个内部的复杂性。

P2SH

有了Script Hash,因此就多了1种交易类型:P2SH,也就是Pay To Script Hash,与之对应的是前面的P2PKH。

所以,P2SH的出现,既解决了账户的安全性问题(多重签名),又解决了支付的便利性(虽然有多重公钥,但是对付款人来说,看到的是个Hash值,也就是通常的Bitcoin Address)。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180512G0RX2Y00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券