NEO插件钱包方案演示——安全与便捷的艺术统一
作者: 刘虔铭
原文链接:https://mp.weixin.qq.com/s/XUJUo5TH-prpyB0apKEAsQ
是不是总是被GUI钱包的同步惹恼?
是不是担心网页钱包会拿走你的私钥?
是不是想开发Web Dapp又感觉实现钱包签名操作很无力、无奈?
没错!一个插件钱包就能解决以上所有问题。
插件钱包是什么?
是一个能够不用同步就能立即使用的钱包。
是一个完全受你掌控的钱包,除了你自己谁都不能偷走你的私钥。
是一个能够和web页面通信的钱包,你可以只专注你自己的业务逻辑。
插件钱包的运行机制是什么?(以下以exe签名模式为例)
1. Web页面构造指定的元素(如id为listAddrOut的select用于接收当前钱包的地址组)
2. 插件前端contentscript.js注入web页面,在打开页面时请求插件钱包的background.js
3. 插件钱包的background.js向exe签名程序发送交易信息(如一个转账,一个合约调用)
4. exe签名程序获取交易信息,将信息展示给用户
5. 用户确认交易信息,在exe输入钱包密码,执行交易
6. exe返回txid到插件钱包的background.js
7. 插件钱包的background.js返回txid到web页面
插件钱包有几种签名模式?
插件调用exe签名(如果你还不太相信插件,可以用这种)
插件内js签名(如果你觉得装签名exe很麻烦,可以用这种)
Neodun等硬件钱包签名(如果你觉得PC对于黑客来说就是不带门的,可以用这种)
使用复杂度 |
安全性 |
|
exe签名 |
安装插件外还需要安装签名程序并向注册表写入一个键值 |
高 |
js签名 |
仅安装插件 |
高 |
硬件钱包签名 |
安装插件外还需要安装钱包驱动程序并向注册表写入一个键值 |
极高 |
插件钱包如何保证我的安全?
NEP6钱包文件保存在插件内部。插件的页面是运行在本地浏览器内的,不与其他任何第三方的服务器相关联。
每次交易都在用户确认交易信息后,用户输入钱包密码后才实际执行。
所有交易的构造在钱包内部完成,防止签名请求方提供与实际交易不符的显示信息。
所有处理代码都是用户端代码(本地浏览器内js、exe),能够篡改或窃取数据的只有用户本机
这仅仅是一个方案吗?
NO!
Github:https://github.com/NewEconoLab/NEL-BrowserPluginWallet
NEL插件钱包(技术预览<ChouLou>版)
PS:这里的余额通过链上UTXO数据计算得到,不需要解密钱包
NNS域名转账与签名确认
返回TXID
查看这笔TX
转账成功