近期区块链领域黑客攻击事件频发,其中有一个很让Cocoa感兴趣的就是Wintermute钱包因靓号地址的问题损失约1.6亿美元,具体说来话长,可以参见慢雾的这篇分析。
0.背景简介
关于什么是靓号地址这里简单解释一下,以太坊钱包的地址是一个由0x开头40个随机字符的16进制字符串,比如V神的钱包地址就是0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B,很难记忆,也没有个性特色。
因此有人就别出心裁,通过暴力枚举的方式,试图找到好看的靓号地址,比如0x888888开头,或者为了节约合约部署的费用,使用0x00000开头的地址。
Profanity就是这样一个靓号地址生成工具。Profanity的特点就是使用了GPU,所以比其他工具更快地找到靓号地址。
Coinbase在上币路线图中添加Virtua代币TVK:金色财经报道,Coinbase在上币路线图中添加Virtua代币TVK。Coinbase此前决定,为提高资产透明度,将提前公布已决定上线的资产,并移至路线图。[2023/4/11 13:55:30]
总之,原项目因为存在漏洞,目前仓库已关闭,而且也不推荐使用,但发现漏洞的1inch帮人帮到底、送佛送上天,提供了船新版本的无漏洞Profanity2,继续满足大家的虚荣心。
但个人感觉1inch安全功夫了得,文档水平太烂,Cocoa贵为期末考试满分的密码学小王子,都看了5分钟才理解到底怎么用。废话少说,以下就是使用教程。
1.编译代码
考虑到私钥的安全性,这类项目建议从官方源码编译使用,不过Profanity2有个创新改进,下面会提。
数据:通过Frax Finance推出的流动性质押产品质押的以太坊突破7万枚:1月22日消息,通过Frax Finance推出的流动性质押产品质押的以太坊已突破7万枚,当前共发行71,116.6254枚frxETH,价值约1.15亿美元。[2023/1/22 11:25:57]
1inch这次提供的是Linux下编译的代码,在Windows下编译需要改一个地方,主要是把Dispatcher.cpp中的以下代码修改掉。
#include<arpa/inet.h>改成#include<Winsock2.h>
另外还涉及到OpenCL的SDK以及编译环境搭建的问题,总之这里就假设你已经拿到了可执行程序。
2.本地生成密钥对
中国青年报社发行“双奥之城”系列数字藏品?:金色财经报道,中国青年报社宣布在今年8月8日发行两个历史版面数字藏品,再现“双奥之城”的经典记忆,每张限量发行2022件,同时免费附赠3个全图片彩版免费藏品。[2022/8/8 12:08:48]
Profanity2的一大改进就是将原来直接生成私钥、再计算公钥的步骤,改成:
先生成密钥对然后把公钥A放到程序去跑,生成私钥B最后把私钥A和私钥B数学相加,得到私钥C这个私钥C对应的公钥C就是你想要的的靓号了。
其中的数学原理Cocoa还没深入研究,大致猜测就是先用一个安全可靠的工具生成密钥对,再通过程序暴力试出一个偏差量,使私钥加上这个偏差量可以导出靓号公钥。
这样的一个好处就是Profanity2可以交由第三方或者云端来运行,因为最终的私钥C,是由私钥A和私钥B相加得到的。
NBA开拓者队新秀谢登·夏普:会投资加密货币:金色财经报道,在6月24日结束的 NBA 选秀大会上,开拓者对新秀谢登·夏普在被选中后接受了媒体采访时问及领到NBA薪水后会买的第一件东西是什么,夏普说:“我可能会将我的钱投资到加密货币上,或者帮助我的家人。”[2022/6/25 1:31:18]
因此首先要生成私钥A和公钥A,官方提供了命令,在Linux下直接执行即可:
$opensslecparam-genkey-namesecp256k1-text-noout-outformDER|xxd-p-c1000|sed's/41534e31204f49443a20736563703235366b310a30740201010420/PrivateKey:/'|sed's/a00706052b8104000aa144034200/'$'nPublicKey:/'
上述命令执行完成后,屏幕上便会显示出PrivateKey和PublicKey,分别就是私钥A和公钥A,请注意私钥A一定要保管好。
3.使用公钥A去跑出私钥B
将上面步骤得到的PublicKey去掉开头的04也就是公钥A,放到Profanity2中去跑,命令如下:
profanity2--matchingc0c0aXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-z公钥A
稍等一会就会跑出来一个私钥B,过程和原版Profanity类似。
4.最终计算得到靓号地址对应的私钥C
拿到私钥B后,我们只要加上私钥A,即可得出最终靓号地址对应的私钥C了。
官方给了两个命令,分别是shell的和python的,因为我的kali好像没有bc,所以用了python的那个。其中私钥A记得前面加上0x。
(echo'ibase=16;obase=10'&&(echo'(PRIVATE_KEY_A+PRIVATE_KEY_B)%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F'|tr''''))|bc
$python3
hex((PRIVATE_KEY_A+PRIVATE_KEY_B)%0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F)
最后就得到一个0x开头的私钥C,导入metamask等钱包就可以看到我们的靓号地址啦。
附赠章节:漏洞原理简介
以太坊的私钥是32字节的,但是原版Profanity在生成这个256位的私钥时,仅采用了4字节的随机数作为伪随机数生成器的seed。
这是小弟第一篇区块链安全文章,欢迎各位大佬批评指教。我的twitter:@featherye
加密世界的多链并行的叙事还未停止——虽然很多Builder都在致力于构建高效率区块链底层协议,比如Solana、Avalanche,但是事实告诉我们,单个区块链的容量是有极限的.
1900/1/1 0:00:00通过回顾我们之前的一些研究文章,我们可能已经很清楚,我们是模块化区块链和特定应用区块链设计范式的信仰者。这样做的一个结果是,我们设想了一个具有很多不同的区块链的世界,用于各种应用、垂直行业等等.
1900/1/1 0:00:00众所周知,区块链是一个分布式数据库,它支持安全、透明和防篡改的数据共享。区块链技术的众多潜在应用在加密社区中引发了一场关于区块链扩展最佳方式的激烈讨论.
1900/1/1 0:00:00无许可部分抵押借贷协议Sentiment宣布将于10月21日上线Arbitrum。与传统抵押借贷协议不同的是,借款人必须使用Sentiment的代理账户持有资产.
1900/1/1 0:00:00市场观点宏观流动性货币流动性整体紧缩。美联储仍然持鹰派态度,再次重申其不惜一切代价遏制通胀的目标。OPEC宣布减产导致油价反弹,利空资本市场.
1900/1/1 0:00:00从最日常和高频的注册、登陆、授权环节,降低Web2用户参与门槛。作者:LoopyLu;编辑:郝方舟出品?|?Odaily星球日报Web3革命已经掀起,但从Web2迈进Web3的用户似乎并没有我们.
1900/1/1 0:00:00