Tokenika让EOS冷钱包实现离线投票

2019-03-06  本文已影响0人  天天天1234

有大量的EOS被存放在“冷钱包”,那么这些不联网的EOS可以给节点投票吗?

安全和投票 = 鱼和熊掌 ?

对于加密货币来说,私钥被盗是最重大的风险,所以大家往往把常用的少量的代币放在联网的“热钱包”,剩下的大部分存在不联网的“冷钱包”。但EOS跟比特币、以太坊最大的区别之一,就是采用了DPoS共识机制,需要投票产生超级节点。这个投票过程需要在网上进行,如果私钥在期间受到网络钓鱼和恶意软件等方式攻击,是存在一定的泄漏被盗的风险。

此外,EOS选票有个一年的半衰期,权重会随着时间的推移而衰减,因此每隔几个月需要重复一次投票行为,那么也意味着会相应地增加风险。

综上所述,肯定会有一些用户,特别是使用“冷钱包”的大户,因为出于对安全问题的担忧,而放弃了自己的投票权,进而间接影响了EOS的完整性。

Tokenika是来自波兰的候选节点,技术实力还是比较强的,已经推出了EOS factory、TEOS等多个基于EOS的工具。其中EOS factory是一个基于Python的EOS智能合约开发平台,因为Python比官方原生支持的C++简单好学多了,非常适合初级开发者。 现在,他们也看到了让EOS冷钱包离线投票的刚需,于是又推出一个令人惊叹的好工具“Secure EOS Block Producer Voting”,真是“神操作”。

离线投票是如何实现的?

Tokenika开发的这个投票工具,原理就是在完全离线的情况下生成投票交易,并确保私钥仅用于签署交易,并且之后不会公开。具体地说,就是把投票过程分解,将必须联网的操作在联网的电脑上进行,然后将可以离线的操作,也是最重要的签名和密钥处理过程放在完全不联网的电脑上进行。

当然,在签名和密钥处理过程,为了安全起见,也只使用官方的EOSIO未修改的代码库(eosjs)。eosjs是浏览器等前端与EOS区块链通信的桥梁,所以是必须导入的,这也是“Secure EOS Block Producer Voting”唯一依赖的外部库。

“Secure EOS Block Producer Voting”的源码被放在了GitHub

离线投票的过程分为三个简单的步骤,接下来,跟天晓一起体验一下这个工具。

1、联网:获取有关的网络信息

这三个简单的步骤,其实也就对应了三个HTML文件。那么我们打开第一个HTML文件:1_get_blockchain_data.html。

image

这个第一步需要联网进行的,在“API Endpoint”输入框输入EOS链的链接,然后点击“load”按钮。

通过浏览器的开发工具,可以看到,这个网页先后发送了两个请求get_info、get_block。

image

先通过get_info提取EOS区块链的当前的区块信息block_num,然后根据这个block_num参数发送get_block请求。然后可以得到ref_block_prefix,也就是最近的一个区块的hash值的一部分。这两个参数对于后面离线生成投票交易至关重要。

2、离线:使用私钥生成并签署交易

如标题所示,这一步骤应该在完全不联网的电脑上执行,也就是打开第二个HTML文件:2_generate_transaction - eosjs.html。

当然,打开这个HTML文件的源码可以看到,直接链到官方的代码库导入eosjs。实际操作中,你得把eosjs下载下来,跟2_generate_transaction - eosjs.html一起放到离线的电脑。

image

在这个步骤,除了需要输入之前拿到的block_num、ref_block_prefix,还需要输入账号名、私钥、想要投票的超级节点候选者名单、交易有效时间(默认10分钟)。

这里输入私钥是为了签署交易,然后生成raw transaction。

​这个raw transaction文件不会包含私钥,你可以放心地保存起来,通过U盘复制出去。

3、联网:将交易推送到网络

第三步很简单,在联网的电脑上打开3_push_transaction.html,填写第一步的“API Endpoint”和第二步的Raw transaction,然后提交就将这个投票行为作为一笔交易发送到EOS链上。

image

通过这三个步骤,将投票行为分解开来,从而实现离线投票,而无需在联网的电脑上暴露私钥,这是非常棒的。特别是对于那些持有较多EOS的、使用冷钱包的用户,不用担心被网络钓鱼和其他攻击而遭受损失。

当然,使用前一定要认准Tokenika的GitHub地址再下载这个工具,另外如果有JS的知识,可以对代码进行审查。天晓看了一下,源码非常简洁易懂。

目前,可以随机生成密钥对进行测试。但真正的操作要等多个可信节点宣布之后,才可以连接可信的EOS主链进行投票。

上一篇下一篇

猜你喜欢

热点阅读