?背景介紹
本期將向大家介紹這一個有趣的項目,希望本文可以幫助你更好地理解比特幣密鑰。
你需要的東西有:
鉛筆、紙、生成二進制隨機輸出的東西和計算機。
這里的目的是讓你做一些可以幫助你學到很多東西的東西,而不僅僅是閱讀純理論。很重要的是,本期教程體驗十分容易,任何人都可以直接跟著本文的操作一起參與體驗。
原文|ARMANTHEPARMAN
重要的序言
不要將此密鑰用于你實際持有的比特幣。首先請先跟著本文練習。
當你為你實際持有的比特幣制作真正的密鑰時,如果你使用這種方法,你必須在一臺氣密的計算機上制作它。氣密計算機必須沒有連接到互聯網的能力。如果你非常重視安全性,僅暫時關閉普通計算機上的wifi連接是不夠的;因為這世界上存在著聰明的黑客,即使你暫時與互聯網斷開連接,他們也可以提取到你的私鑰。
最后,我將解釋如果你想使用此方法制作真正的鑰匙,接下來該怎么做。
好的,讓我們開始吧!
第1步
生成大的隨機二進制數
你可以擲256次硬幣來獲得隨機數,但我認為使用骰子更快更方便。你可以購買賭場級骰子以確保公平、隨機的擲骰子,但也可以省錢使用任何舊骰子。即使你的骰子并不完美,有一些偏差,但從概率的角度上說,只要你一次多使用幾個,你就會達到足夠的隨機性。
這是眾多操作步驟中的其中一個:
拿四個左右的骰子。將數字1、2或3視為0的輸出,而4、5或6將是1的輸出。這樣,你將獲得帶有骰子的二進制輸出例如:擲3,記錄零;擲6,記錄1。滾動它們并從左到右閱讀。如果是關于哪個更靠左或更靠右,則再次擲骰子。制作23行11位數字。第24行只需要三位數字。對于每一行,將數字分成4-4-3組以便于閱讀和計算。盡可能保持垂直列對齊,并在每行之間留出空間以進行手動計算。這一切都會在以后變得有意義。像這個例子:?
LeetSwap:部分流動性池或已受到攻擊,已暫停交易:8月1日消息,據 LeetSwap 官方消息,該平臺部分流動性池或已受到攻擊,已暫停交易。[2023/8/1 16:10:36]
這里有256個二進制數字——23組完整的11位數字,第24行只需要3位數字。
稍后你會更清楚地看到,但現在,請了解二進制的每11位數字都將被轉換為助記詞。對于總共256個隨機二進制數字,我們可以除以11以獲得助記詞中的單詞數。但是256除以11的答案不是整數;現在是23.27。我們的助記詞中不能有23.27個單詞。
我們還需要8個位來構成第24個字。一旦我們總共有264位,它就可以很好地分成24組,每組11,產生一個24字的助記詞。正如你稍后將看到的,這最后八個額外的位將發揮自己的重要作用。
關于隨機性的說明:
你可以按照任何你想要的方式制作這256位隨機數據,只要它實際上是隨機的。如果它不是隨機的,那么別有用心的人極有可能重現你的數據。然后他們將能夠重新創建你的私鑰并可以拿走你所有的比特幣。
例如,如果你生成256位全為零,那么有人極有可能能夠猜出你的私鑰。
而下方圖示就是證據:我從可怕的全零隨機性中生成了一個私鑰,并找到了某人現有的錢包。如果它沒有被清空,我可能已經竊取了資金。
他們清楚地知道自己在做什么,因為金額很小,而且他們不會長時間在這個地址留下任何比特幣。誰知道呢,這可能是一場示威。但是其他人生成了可猜測的非隨機私鑰,結果導致他們丟失了他們的比特幣。但別擔心,如果你制作了一個真正隨機的私鑰,有人將不得不精確地重復你的二進制擲骰子或擲硬幣,而且由于指數數學,這在宇宙的生命周期中是不會發生的。
第2步
Genesis:解決信貸部門暫停贖回的問題需要更多時間:1月4日消息,Genesis最新發布的致客戶信顯示,Genesis將繼續與顧問合作,為其信貸部門(Genesis Trading)尋找解決方案,雖然Genesis致力于盡快解決問題,但這是一個非常復雜的過程,需要一些額外的時間。
此前消息,Genesis在12月8日發給其客戶的郵件中表示,其公司信貸部門Genesis Global Capital暫停贖回的問題可能需要幾周時間去解決。[2023/1/5 9:53:10]
計算校驗和
需要計算最后缺失的八位數字以形成所謂的“校驗和”。
什么是校驗和?
校驗和是計算機在你輸入信用卡號或銀行帳號等信息時知道你輸入錯誤的方式。讓計算機警告你在輸入你的比特幣私鑰時顯示輸入錯誤是一件很有用的事情!
要計算校驗和,你需要一臺Linux或Mac計算機。如果你使用的是Windows10,則可以從MicrosoftStore安裝Ubuntu應用程序。只需搜索“Ubuntu”并安裝它。你將使用Ubuntu終端運行以下命令。該應用程序是一個臨時會話;沒有文件存儲在Ubuntu應用程序上。這意味著你每次運行它時都會得到一個干凈的會話。
Windows用戶需要執行此解決方法,這很麻煩。我嘗試了其他解決方法,但遇到了各種問題。
現在你的Mac、Linux或Windows10機器上有一個終端,輸入下面的命令。用你自己的隨機二進制數字替換我的二進制數字。
echo1010111100111000000011110110001111010111101001010010001011001111011110100011000010100011111100100010100011110001110101000110011111110000101000110001010111010001010011111110101001010011110110110110000001101111010011000001110101101001000010001000010000100111|shasum-a256-0
馬斯克:推特的使用率處于歷史最高水平:11月8日消息,推特首席執行官埃隆?馬斯克(Elon Musk)發推文稱,推特的使用率處于歷史最高水平。
據悉,在完成以440億美元收購推特后的這段時間,馬斯克一直致力于迅速改造這家社交網絡平臺,包括Twitter Blue增加驗證用戶功能以解決機器人賬戶問題,將Twitter Blue收費提高至8美元以緩解垃圾賬號問題并獎勵內容創作者。此前昨日消息,馬斯克表示,今后未明確標明“模仿”而進行冒充的推特賬號都將被永久停用。[2022/11/8 12:30:51]
如果你不習慣命令行,則會很難理解這一點。
我會拼出來:
輸入“echo”,然后是一個空格,然后是一系列沒有任何空格的零和一,然后是一個空格,然后是“管道”符號,然后一個空格,然后是“shasum”命令,一個空格,連字符“a”,一個空格,“256”,一個空格,另一個連字符,然后是零位。然后按。
代碼說明:“echo”命令只會重復你接下來輸入的任何內容。管道符號獲取該輸出并將其傳遞給管道符號右側的命令。比特流的接收者是“shasum”散列命令。“-a”是一個選項,用于指定要使用的算法。“256”代表比特幣世界著名的SHA-256,這是我們對“-a”的選擇。最后,“-0”是一個選項,表示輸入應該被解釋為二進制數據,而不是常規文本數據。
當我運行此命令時,我的結果哈希顯示在命令下。這是以“b184”開頭的行:
現在我們可以開始計算校驗和。我們取散列輸出的前兩位數字,在本例中為“b”和“1”。這些是十六進制數。在十六進制中,我們不顯示從0到9的數字,而是通過使用字母表中的字母表示大于9的數字來數到15:
0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
PeckShield:Mango攻擊者的地址向FTX轉入1000萬枚USDC:金色財經報道,PeckShield在推特上表示,被Etherscan標記為“Eisenberg's ponzishorter.eth”的地址向FTX轉入1000萬枚USDC,該地址或屬于此前公布身份的Mango攻擊者Avraham Eisenberg。[2022/10/16 17:28:03]
類似于撲克牌如何使用自己的替換從1到13計數:
Ace,2,3,4,5,6,7,8,9,10,Jack,Queen,King
所以在我的哈希中,我的第一個數字“b”代表11。十六進制中的“1”與我們習慣處理的“1”相同。
現在我們將這前兩個數字轉換為它們的四位二進制表示。您可以參考下面的圖表來做到這一點:
▲四位二進制中的11是1011。四位二進制中的1是0001。
所以我們從b和1,到11和1,最后到1011和0001。
這些四位數字是我們將添加到位來完成第24個字的校驗和!
將它們添加到第24行以完成最終的11個二進制數字集。那么,你現在總共就會有264位數字
第3步
將二進制轉換為十進制
每組11位二進制數字都需要轉換為十進制數。
限于本期練習,你可以將它們輸入到在線二進制到十進制計算器中。但是,對于你真正的錢包,我將向你展示如何手動操作。
關于二進制
在二進制數系統中,只有0和1。你知道的其他數字不存在。所以向上計數,我們從0開始,然后是1,但下一個數字是不尋常的。沒有可用的“2”。所以1之后的下一個最大數字是“10”。不要讀成“十”,讀成“一,零”。在二進制中,“10”代表你習慣的“2”。10之后的下一個數字是“11”。這等于十進制的“3”。對于下一個數字“12”是不可能的,因為二進制中沒有“2”數字;我們可以用零和一表示的下一個最大數字是“100”。這實際上是十進制的“4”。然后101=5,110=6,111=7,1000=8,1001=9等等。
三箭資本向FTX轉入6700枚ETH:金色財經消息,據KingData數據監控,被KingData大戶地址標記為三箭資本的錢包地址(0x3BA21b6477F48273f41d241AA3722FFb9E07E247)在6小時前向標記為FTX的地址轉入約6700枚ETH,價值1328萬美元。具體轉出路徑:由三箭資本錢包地址轉向另一錢包地址(0xf5f開頭),再轉向被Etherscan標記為FTX的地址。[2022/5/24 3:38:09]
有11個二進制數字,最小的可能數為零(00000000000),最大的數為2047(11111111111)。
我們將頁面上的這11個二進制數字中的每一個都轉換為十進制。你可以手動完成,也可以在Linux、Mac或Ubuntu應用程序中從命令行轉換它們。
對于數字10101111001,你需要輸入:
echo"$((2#10101111001))"
你會得到“1401”的輸出值。只需更改10101010101以匹配每組十一位數字并計算其等效的十進制數。
1401是怎么來的呢?
下面,我通過紙筆來手動計算一下。
在頁面的頂部,從右到左寫下這個精確的數字序列,與下面的二進制數字垂直對齊:“1024”在二進制數字的第一列上方。然后在下一列中顯示“512”。然后是“256”。以此類推,每次將數字減半,直到二進制數字的最后列上方出現“1”為止。
現在看看你的第一行二進制數字。只要有“1”,就添加它正上方的十進制數,并將其記錄在二進制數字下方。如果有“0”,則忽略上面的數字。像這樣:
在這個例子中,在1024列、256列、64、32、16、8和1下有一個“1”。
將十進制數相加得到總數1401:
現在對所有24行都重復此操作:
你現在將擁有24個介于0和2047之間的十進制數字。
第4步
對應BIP39詞表
BIP39協議指定了2048個不同的單詞,按字母順序列出。當這個列表被代碼讀入時,每個單詞都可以通過它在列表中的有序位置來識別。你剛剛計算的數字將用于查找其對應的單詞。例如,第一行的結果是數字1401,它等于有序BIP39詞表中的“quanlity”一詞。
零是你可以為一行計算的最小可能值。在這種情況下,你將選擇“abandon”,這是列表中的第一個詞。
最大可能的數字是2047。正確的詞是“zoo”,這是列表中的最后一個詞。這是第2047個字。
有一個令人困惑的問題需要注意:計算機從0開始計數項目。所以列表中的第五項是計算機的數字4。
這種額外的混亂是不幸的。BIP39單詞的官方規范在GitHub上,但單詞列表顯示的行號以1開頭而不是0開頭。因此,雖然“abstract”是第8個單詞并列在第8行,但其實際的BIP39數字等效值為7。
我的第一行11個二進制數字加起來是1401十進制。所以在Github的列表中,我必須在第1402行找到這個詞。這個詞就是“quanlity”。繼續查找每個小數點——注意在你的計算結果中添加一個額外的1以匹配Github的行號——并找到?24?行中每一行的單詞。
如果你堅持做到了這一步,那就太好了!
你現在擁有一個有效的24字比特幣助記詞。你現在應該把它扔掉——除非你使用完全手動的方法,否則你不能將它們用于你的比特幣,因為它們不是在安全的環境中創建的!
其實,在你扔之前,你可以把這些詞輸入硬件錢包或軟件錢包,看看它們是否被拒絕。如果它被拒絕,則說明你在某處犯了錯誤,因為使用這種手動方法很容易產生錯誤。如果任何地方有任何錯誤,校驗和將不匹配,所有錢包都會立即發出錯誤信號。
實踐到真實的比特幣私鑰
你確實需要在氣密計算機上生成密鑰。
你可以在此處學習構建10美元的廉價RaspberryPi零氣隙計算機,購買一臺現成的計算機,或者如果你有多余的錢,你可以構建一臺沒有任何wifi或藍牙組件的定制臺式計算機。RaspberryPi這個選項非常便宜,但計算機速度非常慢,因此請注意。如果你想在多重簽名設置中擁有許多分布式密鑰,那它是很好的選擇。
除了安全生成密鑰之外,你還必須考慮存儲和復制或分發。
為了大幅降低你遭受攻擊或丟失的風險,下一個級別是學習多重簽名錢包。
如果你處于存儲的單一簽名密鑰階段,那么你真的應該將助記詞保存在硬件設備中。大多數人讓硬件錢包(HWW)制作他們的密鑰,而從不在氣密計算機上驗證該密鑰。這對大多數人來說沒問題。但是,如果你是偏執狂,你應該驗證密鑰是否生成了你期望的公鑰和地址。
既然你知道如何安全地制作自己的密鑰,你就不必相信HWW來生成好的密鑰。你首先自己制作一個新密鑰,然后不是在硬件設備上創建新錢包,而是“恢復”錢包并將新計算的單詞輸入設備。然后這些詞會在HWW中“鎖定”并受你的PIN保護。
因此,硬件設備是你私鑰的數字保險箱。
你永遠不應該只有一份你的私鑰。如果你丟失了它,你將丟失密鑰存儲的所有比特幣。從技術上講,設備中沒有比特幣;他們在區塊鏈上。正如我所說,硬件錢包是你的私鑰的數字保險箱,由你剛剛制作的單詞表示。
HWW中的代碼使用數學函數從私鑰計算你的擴展公鑰,然后從擴展公鑰以數學方式推導出許多單獨的公鑰。然后每一個都可以用來計算看似無限的地址集合。一切都在私鑰的下游。你可以在不同的設備中輸入您的私鑰,并可靠地生成完全相同的公鑰和地址集合。更多細節在這里。
這么說的目的是讓你意識到比特幣就好像存儲在你創建的24個字上一樣——而不是硬件錢包。你應該非常非常小心地備份這些話,讓他們免受小偷和自然災害的傷害。如果你制作副本并將它們存儲在不同的位置,那么在一個位置發生火災不會導致你丟失所有比特幣,因為你將在其他地方擁有副本。
私鑰傳遞和保存
一旦你擁有在氣密計算機上生成的密鑰并非常安全地備份它們,就該考慮如何將它們傳遞給你的后代了。
有受信任的第三方可以持有你的密鑰,或者你可以以無需信任的方式制定計劃——我的首選。我很樂意幫助有需要的人。
HappyBitcoining.
Tags:比特幣SISGENEESI閃電比特幣LBTC為何不漲Basis Coin ShareGenesis VisionIntegral Resistance
巴比特訊,8月23日,據CryptoPunksBot數據顯示,Punk6965最新出價達2000ETH,當前價值約670萬美元.
1900/1/1 0:00:00本文來自?Decrypt原文作者:TimHakkiOdaily星球日報譯者|余順遂 摘要: SneakyVampireSyndicate團隊希望其項目能發展成一個元宇宙社區.
1900/1/1 0:00:00注,原文作者為Zeneca_33,以下為全文編譯。在開始討論之前,我想借此機會分享一個已經進行了一段時間的令人興奮的計劃。我和朋友Jaime一直忙于創建一個關于NFT的播客,第一集已于昨日發布.
1900/1/1 0:00:00巴比特訊,根據etherchain以及ultrasound.money數據顯示,自8月5日20:33以太坊倫敦升級后,截至8月12日20:33已經有32337ETH被燒毀,當前價值約為1億美元.
1900/1/1 0:00:00來源:移動支付網 作者:佘云峰 近日,數字人民幣的試點應用逐漸拓展,成都、蘇州、北京的地鐵相繼支持數字人民幣的購票支付方式,公共交通領域顯然成為了數字人民幣的一個典型應用場景.
1900/1/1 0:00:00巴比特訊,8月20日早間7點35分,據FinanceSolpad推特消息,Solana生態項目LunaYield刪除了網站、推特、電報,失去了聯系,并撤回了超過千萬美元流動性.
1900/1/1 0:00:00