近期區塊鏈領域黑客攻擊事件頻發,其中有一個很讓Cocoa感興趣的就是Wintermute錢包因靚號地址的問題損失約1.6億美元,具體說來話長,可以參見慢霧的這篇分析。
0.背景簡介
關于什么是靚號地址這里簡單解釋一下,以太坊錢包的地址是一個由0x開頭40個隨機字符的16進制字符串,比如V神的錢包地址就是0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B,很難記憶,也沒有個性特色。
因此有人就別出心裁,通過暴力枚舉的方式,試圖找到好看的靚號地址,比如0x888888開頭,或者為了節約合約部署的費用,使用0x00000開頭的地址。
Profanity就是這樣一個靚號地址生成工具。Profanity的特點就是使用了GPU,所以比其他工具更快地找到靚號地址。
比特幣礦商Bitdeer股價在交易首日下跌近30%:金色財經報道,比特幣礦商 Bitdeer 今日在納斯達克上市,交易首日,股票代碼為 BTDR 的礦商股價下跌近 30%,截止發稿時交易價格約為 6.81美元。該股在開盤后不久因波動性停牌數次。[2023/4/14 14:04:53]
總之,原項目因為存在漏洞,目前倉庫已關閉,而且也不推薦使用,但發現漏洞的1inch幫人幫到底、送佛送上天,提供了船新版本的無漏洞Profanity2,繼續滿足大家的虛榮心。
但個人感覺1inch安全功夫了得,文檔水平太爛,Cocoa貴為期末考試滿分的密碼學小王子,都看了5分鐘才理解到底怎么用。廢話少說,以下就是使用教程。
1.編譯代碼
考慮到私鑰的安全性,這類項目建議從官方源碼編譯使用,不過Profanity2有個創新改進,下面會提。
比特幣NFT協議Ordinals累計鑄造量突破30萬枚,本周新鑄造量超10萬:金色財經報道,據Dune Analytics最新數據顯示,比特幣NFT協議Ordinals累計銘文NFT鑄造量已突破30萬枚,截至目前達到301,644枚,迄今產生的總費用已達到約66 BTC。歷史數據顯示,Ordinals協議文NFT鑄造量于2月15日突破10萬枚,于2月28日突破20萬枚,這意味著過去一周新增鑄造量超10萬,周增長幅度超50%。[2023/3/5 12:43:10]
1inch這次提供的是Linux下編譯的代碼,在Windows下編譯需要改一個地方,主要是把Dispatcher.cpp中的以下代碼修改掉。
#include<arpa/inet.h>改成#include<Winsock2.h>
以太坊銷毀量突破260萬枚ETH:8月28日消息,據etherchain數據顯示,以太坊銷毀量已突破260萬枚ETH,截至目前為2,600,156.6枚,價值約合39億美元,當前區塊利用率為50.9%,銷毀率為0.26ETH/min,BaseFee為3.6GWei。[2022/8/28 12:53:20]
另外還涉及到OpenCL的SDK以及編譯環境搭建的問題,總之這里就假設你已經拿到了可執行程序。
2.本地生成密鑰對
Profanity2的一大改進就是將原來直接生成私鑰、再計算公鑰的步驟,改成:
先生成密鑰對然后把公鑰A放到程序去跑,生成私鑰B最后把私鑰A和私鑰B數學相加,得到私鑰C這個私鑰C對應的公鑰C就是你想要的的靚號了。
津巴布韋央行行長:制定了采用 CBDC 的路線圖:金色財經報道,在宣布津巴布韋儲備銀行 (RBZ) 打算探索推出中央銀行數字貨幣 (CBDC) 的可行性近六個月后,該銀行行長 John Mangudya 最近透露,中央銀行現在有一個設想的數字貨幣路線圖貨幣。該銀行制定路線圖符合政府于 2021 年 11 月就 CBDC 做出的決定。
盡管如此,Mangudya 在他今年的第二份貨幣政策聲明中表示,RBZ 現在急于聽取利益相關者的意見。除了咨詢文件外,RBZ 還將“對 CBDC 進行消費者認知調查”。這兩項業務的調查結果“將使世界銀行能夠參與與 CBDC 相關的試點項目”。(news.bitcoin)[2022/8/15 12:25:06]
其中的數學原理Cocoa還沒深入研究,大致猜測就是先用一個安全可靠的工具生成密鑰對,再通過程序暴力試出一個偏差量,使私鑰加上這個偏差量可以導出靚號公鑰。
這樣的一個好處就是Profanity2可以交由第三方或者云端來運行,因為最終的私鑰C,是由私鑰A和私鑰B相加得到的。
因此首先要生成私鑰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
DevconVI活動已經過半,ECN和社區小伙伴Pablo@Plancker從中挑選了一些精彩演講進行編譯.
1900/1/1 0:00:00最近,在Balaji的《網絡國家》一書中和在Web3投資者之間被廣泛提倡的一個概念是,Web3的終局將是主權社區或網絡國家.
1900/1/1 0:00:00當前的世界正處于動蕩期,不確定性充斥著整個市場,因此宏觀環境的快速變化更凸顯了此時進行宏觀分析的必要性。掌握趨勢才能更好地規避風險,尋找未來的機會.
1900/1/1 0:00:00最近本人忙于其他項目,疏于研究,很久沒更新。熊市漫漫也不想大家沒什么東西讀,干脆就找些高質量的信息翻譯出來供讀者參考,反正我平時也會看這些,順手翻譯了.
1900/1/1 0:00:00Aptos最有意思的點,并不在于吹上天際的16萬TPS的交易并行模式BlockSTM,而在于它的每個區塊里沒有交易的原始數據.
1900/1/1 0:00:00元宇宙正在為互聯網帶來一個新時代。然而,元宇宙的概念并不新鮮。這個詞是由NealStephenson創造的,他是1992年在小說等作品用書名號“SnowCrash”中首次使用“Metaverse.
1900/1/1 0:00:00