当前位置:网站首页>我如何才能保护我的私钥?
我如何才能保护我的私钥?
2022-06-30 12:40:00 【区块链星际社】
区块链利用非对称加密的方式使用户的密钥分为私钥和公钥,其中公钥公布在网络当中,用于数据交互和地址访问,而私钥则保管在用户手中,用于保护自己的数据和资产安全。
这种公、私钥分离的方式,是一种安全系数很高的加密机制。但这个机制中,和其他的加密方式类似,私钥一旦被他人窃取,用户的数据和资产便会被盗取。事实上,在区块链发展的这些年中,经常会出现因私钥泄露而导致资产丢失的网络安全问题。黑客在无法通过公钥逆推出私钥的情况下,选择了直接窃取用户私钥。
为什么用户私钥会被窃取?这里我们就需要了解当前较为主流的几种私钥保护方式:
其一:用户自己保管
这通常是指用户通过冷/热钱包对自己的私钥进行管理,钱包中会存在一组私钥。冷钱包由于全程离线的特点,可以说拥有很高的安全性。而热钱包由于触网的原因,是有可能会被黑客截取私钥信息的。
不过,冷钱包虽然更安全,但由于区块链在加密时采用的哈希算法生成的私钥是一串很长的字符,记忆相对比较困难,通常会采用助记词的方式辅助记忆,用户也基本会利用笔记本、备忘录等工具记录,这些记录方式是有可能导致私钥遗失的。
其二:多重签名的共同保管
这种保管方式是利用智能合约使其在执行前通过多个私钥来签署交易提高安全性。多重签名的方式虽然让交易变得更安全,但同时,它也产生了新的风险,那就是持有私钥的多个签名者是否完全受信,如果有签名者存在恶意行为,那么资产同样会面临安全威胁。
其三:第三方托管
这是通过第三方机构来对用户私钥进行存储和管理的一种方案,第三方机构通常会结合多重签名、硬件安全模块(HSM)等更加专业的多种保护措施确保私钥安全性。
不过,这也有个前提,用户需要相信第三方机构会保护私钥,并且不会暗中使用用户资产。
从上述的几种私钥保管方式来看,其中或多或少都存在着一定的不足,而这些正是黑客攻击的关键性漏洞。
在总结了经验之后,开发者提出了一个安全性更高的保护方式,被称之为多方计算(MPC),这是一种将私钥拆分为多个片段,分别共享、加密并发送到多方节点中的保管方式。
这种方式的好处在于,只要用户不使用钱包,那么私钥就永远呈现分离的状态。黑客在攻击时,除非完全攻破所有的存储设备,否则就无法得到完整的私钥。这无疑是降低了私钥被攻击的风险。
另外,MPC 还可以在不改变私钥的情况下,对共享的片段进行更新,也避免了长时间存在一个设备中而导致被破解的风险。
边栏推荐
- Introduction to two types of rxjs observable operators
- Dark horse notes - common date API
- [learn awk in one day] operator
- STM32 porting the fish component of RT thread Standard Edition
- 资源变现小程序开通流量主教程
- Visual studio configures QT and implements project packaging through NSIS
- 电机控制Clarke(α/β)等幅值变换推导
- [one day learning awk] array usage
- Basics of golang -- the difference between slicing and array
- postman 自动生成 curl 代码片段
猜你喜欢
How to handle ZABBIX server startup failure
JMeter learning notes
【精选】资源变现资讯、新闻、自媒体、博客小程序(可引流,开通流量主,带pc后台管理)
zabbix-server启动失败处理方式
Qt中的数据库使用
Determining the subject area of data warehouse construction
黑马笔记---List系列集合与泛型
Goods and services - platform properties
A keepalived high availability accident made me learn it again!
【招聘(广州)】成功易(广州).Net Core中高级开发工程师
随机推荐
论文解读(AGC)《Attributed Graph Clustering via Adaptive Graph Convolution》
Postman génère automatiquement des fragments de code Curl
产品经理专业知识50篇(七)-如何建立一套完整的用户成长体系?
Golang foundation -- slicing several declaration methods
Development of unity script program
【OpenGL】OpenGL Examples
Resource realization applet opening wechat official small store tutorial
Sqlserver query code is 936 simplified Chinese GBK. Should I write 936 or GBK?
腾讯二面:@Bean 与 @Component 用在同一个类上,会怎么样?
Substrate 源码追新导读: 修复BEEFY的gossip引擎内存泄漏问题, 智能合约删除队列优化
Basic syntax of unity script (3) - accessing game object components
STM32 porting the fish component of RT thread Standard Edition
Visual studio configures QT and implements project packaging through NSIS
uniapp支付之APP微信支付unicloud版(附源码)
Idea 2021.3 golang error: rning: undefined behavior version of delve is too old for go version 1.18
Rk356x u-boot Institute (command section) 3.2 usage of help command
商品服务-平台属性
MySQL implements the division of two query results
2022-06-23 sail soft part formula and SQL generation (month and quarter retrieval)
Illustration creating a stored procedure using Navicat for MySQL