【写在中秋时刻】硬件冷钱包、软件冷钱包、多签(Multisig)钱包多视角比较分析
今年的中秋又要到啦,花好月圆夜,阖家幸福时,愿没人都能得其团圆,成其美好!我这里就用一篇文章来致敬中秋佳节吧。
硬件冷钱包
硬件钱包是一种带软件客户端的硬件物理设备,类似银行U盾。有两部分组成:
- 硬件实体 — 类似U盾/U盘,也有手机/卡片等形态;无论外形如何,硬件本身都是带有电子元件/芯片的物理设备。核心功能在于离线生成并管理私钥,保证私钥的整个生命周期离线“冷”存储,其核心在于各家研发的硬件设备的芯片。
- 客户端 — 硬件钱包的配套客户端包括电脑桌面客户端、网页客户端、手机客户端等不同版本,交互界面类似软件钱包or交易所的页面,核心功能是进行收发币的操作。
优点
硬件实体核心是厂商通过自主研发的硬件设备及操作系统,在硬件内的芯片系统上直接编程钱包核心,并把钱包种子及私钥保管在芯片内部,作为其安全特色。芯片硬件钱包是国外主流产品的设计选型,包括Ledger,Trezor,BitBox02;国内的有ImKey。芯片硬件钱包拥有独立的SoC芯片,所有的硬件系统都在SoC芯片上运作。
外观一般只有屏幕和简单的按钮。屏幕显示的保证是展示数据是真实的,按钮用于确认交易操作。因此理论上,因私钥在硬件设备的受保护区域中生成并存储,阻断了软件木马,病毒及黑客攻击。
潜在缺点
1)传输特性
硬件冷钱包通过数据线或蓝牙传输数据。对于常用的蓝牙传输有如下缺点。
蓝牙传输:安全性低于二维码传输。其安全性弱主要来自于两个方面。一方面是不同的蓝牙协议版本可能存在已知或未知的 bug,在特定场景下,可能存在安全隐患。另一点是,蓝牙传输方案留下了被其他设备干扰攻击的可能。在短距离范围内(10 米内),通过其他蓝牙设备进行针对性的干扰或攻击。而这点在二维码传输的方案里,是完全不存在的。
蓝牙传输弱点:可审计性差。而这点也是二维码传输的一个巨大优势。用户可以明文查看所有通过二维码传输的内容,以确认任何传输的信息都是安全的。这点可以让软件冷钱包方案提供商实现去信任,即用户可以在数据传输层面确保其私钥(助记词)不受泄漏,而不用去信任该方案的提供商或开发人员、甚至不用担心软件本身可能存在的 bug。
2)经济性和灵活性
硬件钱包通常比较昂贵。如果您的硬件钱包损坏,需要购买(同一厂商)的硬件,进行硬件恢复。
3)封闭和开放
硬件钱包厂家通常各自研发系统和芯片,缺少统一的行业标准,比较封闭。
在资产安全中,首当其冲的是助记词的安全。而在助记词的安全中,首要确认是助记词生成的随机性。如果您使用了一个作恶的硬件厂商(或者有 bug)的硬件钱包,您可能在第一步就已经陷落了。因为您拿到的助记词可能不是随机的,是预先生成的,或者是假随机的。
硬件冷钱包无法向用户证明在这点上它们是安全的。我们继续使用硬件钱包是基于对该硬件厂商的信任,而这点在数字货币的世界里是脆弱的。
软件冷钱包
软件冷钱包使用纯软件的方式实现冷钱包功能。用户需要使用两部手机,其中一部永久离线,作为冷钱包存储私钥(助记词)。另一部联网,作为观察钱包使用。
软件冷钱包可以实现更彻底的去信任(即不需要信任软件开发者),用户可以自行证明其钱包的绝对安全性。你可选择信任软件,让其帮助您生成助记词;也可以选择不信任软件,自行在它处生成助记词。然后通过离线导入的方式生成冷钱包。因为冷钱包的设备是永久离线,不存在向互联网传输数据的可能(唯一的交互是通过二维码扫描和观察钱包之间进行明文传输,可审查),所以助记词的安全性得到了绝对的保障。
- Ownbit 是最早实现软件冷钱包方案的钱包,也是支持冷钱包币种最多的钱包之一;
- Parity Signer 是 Parity 出品的以太坊软件冷钱包;
特点
1)数据传输
软件冷钱包通常通过二维码扫描进行数据传输。
传输数据大小上:一张二维码所能包含的信息有限,对于有较大数据传输的场景,该缺点显得尤为突出。例如:较大的比特币交易(UTXO 数量庞大)。
可审查性上:用户可以明文查看所有通过二维码传输的内容,以确认任何传输的信息都是安全的。这点可以让软件冷钱包方案提供商实现去信任,即用户可以在数据传输层面确保其私钥(助记词)不受泄漏,而不用去信任该方案的提供商或开发人员、甚至不用担心软件本身可能存在的 bug。
2)经济性和灵活性
软件冷钱包可以使用闲置的手机作为冷钱包存储,而无需购买额外的硬件。如果有闲置的手机的话,则总体会更加经济。
另外,软件冷钱包比硬件冷钱包更加灵活。通常软件冷钱包可以实现比硬件冷钱包更加复杂的功能,例如:多签冷钱包。自然其灵活性,也让其在资产的恢复方面也更加有优势。
3)封闭和开放
软件冷钱包更加开放。通过二维码传输数据的方式,可以在更广泛的范围内定义标准,实现不同软件冷钱包厂商之间的互联互通。而通过数据线或蓝牙传输的方式却无法实现这一点。
多签(Multisig)钱包
多签钱包是指多人共同管理一笔资金的钱包,形如:2-3,表示共3人共同管理资金,其中2人签名同意即可花费资金。多签适用于团队多人决策资金花费的场景,也适用于家人和朋友之间,共同管理一笔特定基金;
特点
1)多签是去中心化的,并不依赖于中心化服务器,而是写在合约中的,多签资产的安全完全受控于各参与方;
2 )BTC的多签采用标准的P2SH来实现,多签地址按特定的顺序生成,用户可以按照技术标准里的步骤恢复多签钱包,从而花费多签资金,整个过程自主可控;
3 )ETH/ERC20 (包括 BSC/BEP20 等)的多签采用轻量智能合约(smart contract)方式,以杜绝ETH智能合约可能带来的多签安全问题。
实质
1. 多签钱包本质上是合约钱包,最终资产已经不存储在个人账户上了。
2. 通常创建多签地址的时候就需要花费了,至少要花Gas费,所以这个对于初级用户的成本还是值得考虑的。
3.多签钱包更适合团队管理中使用,在个人使用的时候并不太实用,会平添很多不必要的麻烦。
参考
一文读懂硬件(冷)钱包 & FAQ - 知乎
Ledger/Trezor/Ownbit/Parity软硬件冷钱包APP开发的原理与安全性差异 - 知乎
如何使用 Ownbit 多签
GitHub - bitbill/bitbill-multisig-contracts
https://github.com/bitbill
【写在中秋时刻】硬件冷钱包、软件冷钱包、多签(Multisig)钱包多视角比较分析相关推荐
- 嵌入式硬件基础知识汇总<附带与硬件密切相关的软件介绍>
嵌入式硬件基础 1,存储器 1.1 概念 1.2,存储器结构模型 1.3,存储器性能指标 1.4,嵌入式存储器类型 1.4.1,只读存储器 1.4.2,随机存储器 1.4.3,双端口RAM 1.4.4 ...
- 《 嵌入式系统设计与实践》一一3.6 测试硬件(和软件)
3.6 测试硬件(和软件) 虽然我强烈建议准备好工具箱.数字万用表和示波器,但是,如果大家没有准备好独自拥有这些,那么将这些留给硬件工程师也在情理之中.作为一个软件工程师,更重要的是将用于测试硬件的软 ...
- 硬件ecc和软件ecc
从各种资料上看,不管是硬件ECC还是软件ECC,他们都或者是通过flash controler上的ecc模块或程序中的软件ecc模块来对每一页中data area中的数据进行ecc校验,校验值都来自于 ...
- 硬件工程师和软件工程师哪个更有前途?
嵌入式工程师结合经历聊硬件工程师和软件工程师哪个更有前途? 我个人对美国这方面了解更多,就先从美国说一说.我相信硬件工程师和软件工程师的就业前景应该是提这个问题的人最想知道的方面. 就我所了解的,在现 ...
- 硬件断点和软件断点的区别
硬断点--break point 软断点--assert 简单的解释: 硬件断点:硬断点需要硬件寄存器提供支持,断点的数目受Embedded ICE中的Watchpoint数目的限制,但是可以在任何地 ...
- 硬件比软件难,但为什么硬件待遇不如软件?
最近在知乎上看到一个很有意思的问题: 硬件明明比软件更难,国内的硬件技术也不如软件,为什么硬件工程师待遇还不如软件? 下面分享几位网友的回答,有一定的参考价值,欢迎大家留言讨论! 01 回答1 作者 ...
- 做硬件好还是软件好,千万别选错了路!
在当今的时代,「三百六十行,行行出状元」这样的谚语,适合送给那些百分之两百热爱自己专业又埋头苦干的朋友们. 而在现实世界中,不同的三百六十行,出状元的难易程度.机会多寡都是有很大的差异的.或者更功利地 ...
- 从硬件到纯软件,回顾一个老工程师的经历之路!
前段时间,我写了很多关于嵌入式学习的文章,通过不少学习者的反馈使我有成就感.分享的乐趣使我决定继续写下去.在接下来的时间,我计划也开始写关于Java的内容.希望对你或多或少提供方向,话不多说,给大家带 ...
- 【硬件工程师学软件】之 软件架构
硬件工程师编程基本功一般都比较扎实,毕竟都有几年的c或c++的基础,有的甚至还有linux下编程的经验,所以说编码不是太大的问题,他们头疼的是软件的套路太多,尤其是这么架构那么架构的,比较头大. 话说 ...
最新文章
- php 加权计算公式,PHP计算加权平均数的实例分享
- python实训项目-黑马程序员上海校区Python21期Django项目实训
- 犀牛重建曲面_犀牛建模渐消面处理
- Lucene知识小总结4:索引的反删除
- rcnn -fast rcnn-faster rcnn物体检测论文
- mysql中间件是运维工作内容_linux运维工作的七项内容
- Firefox about
- Logstash入门简介
- WinCE EBOOT中的Boot Args与Driver Globals (转)
- 2014-12-02-2107-Java-UML
- (转)oop设计模式简介
- 修改功能(Ajax版)
- 虚拟 IP原理(动态 IP 、固定 IP 、实体 IP)
- 修改服务器linux的yum源为阿里源yum源
- php xheditor 上传图片,codeigniter整合xheditor之后,xheditor上图片问题
- 小学计算机二课堂活动总结,康宁路学校“信息技术与课堂教学深度融合”活动总结...
- 计算机英语单词怎么巧背,怎么快速背记英语单词
- 联想服务器pe进系统还原,传授联想如何一键还原系统
- pull request 时遇到 conflicted 的解决方法
- android shareSDK 微博分享案例