作者:Anony
本文簡單介紹了使用 K210 開發板製作 Krux 簽名器的辦法,以及 Krux 的特性和使用體驗。

Krux 簽名器簡介
Krux 是一套開源的固件,可以將基於 K210 芯片的開發板轉化為比特幣的硬件簽名器。而 K210 芯片是基於開源的 RISC-V 指令集而設計的芯片標準,這就意味著在製作 Krux 的硬件上,玩家有相當多的選擇。Krux 說明書的設備頁面給出了可以刷入 Krux 固件的 7 款硬件。
同為自制簽名器,Krux 與 SeedSigner 和 Jade-DIY 在概念上相似,但在使用體驗上也有許多不同:
- Krux 的許多硬件都支持觸控屏,這是 SeedSigner 和 Jade-DIY 都不支持的。
- Krux 的多語言支持也比另外兩者更好。Krux 也支持中文。
- Krux 要求的所有硬件都帶有攝像頭,這意味著其默認帶有基於 攝像頭-顯示屏(掃碼-示碼) 的隔空交互(Air-gapped)體驗。但 Jade-DIY 有多款硬件都不帶攝像頭(不過,這也意味著,Jade-DIY 總是可以取得最低的製作成本)。
- Krux 在密鑰保存上有更多選擇。這一點我們後文再展開。
總的來說,觸控屏是 Krux 在體驗上的特異之處。此外,由於它所使用的多款硬件都自帶簡單的外殼,這也使它的組裝更加便利(不像 SeedSigner 一樣不可避免要使用 3D 打印的外殼),價格上也有比較便宜的選擇。
硬件挑選
在 Kurx 的設備頁面可以發現,支持觸摸屏的設備有三款:
- Maix Amigo (3.5 寸屏)
- Yahboom k210 module (2 寸屏)
- WonderMV (2寸屏)
這三款設備都無需其它附件,也無需 3D 打印外殼。
在選購硬件時,請務必選擇帶有攝像頭的套裝。
筆者從經濟性角度考慮,選擇了 Yahboom k210 module。但 Krux 的刷寫過程實在過於簡單,筆者有理由相信,不論你選擇哪一款硬件,刷入固件的過程都不會有什麼區別。
固件刷寫
刷入固件的步驟可分為兩步:(1)下載安裝器;(2)自動化刷入。
下載安裝器(以及驗籤)
本文使用最簡單的圖形界面安裝程序。你需要根據你的電腦的操作系統選擇對應的安裝器程序。
本文假設讀者使用 Windows 操作系統,因此,你需要在這個頁面的頂部下載這三樣東西:

這三樣東西分別是:Krux 安裝器的安裝文件、一個包含了一個 SHA256 哈希值的文件,還有對 Krux 安裝器程序的簽名。
將這三者下載到同一文件夾之後,我們再使用如下步驟來驗證我們下載到的程序沒有被篡改過:
按住鍵盤的 “SHIFT” 鍵和鼠標右鍵,打開 “Powershell” 或者 “終端”,輸入如下命令:
Get-Filehash ./krux-installer_v0.020.setup.exe按下回車鍵執行之後,程序會返回該文件的哈希值。手動打開旁邊的
sha256.txt文件,對比其中的哈希值是否一致。如果一致,則表明文件未被篡改,如果不一致,請不要使用這個安裝文件!在終端中使用如下命令,獲得 Krux 開發者的公鑰:
gpg --keyserver hkps://keys.openpgp.org --recv-keys B4281DDDFBBD207BFA4113138974C90299326322然後,使用
gpg的驗籤命令,驗證.exe.sig是對.exe的有效簽名:gpg --verify ./krux-installer_v0.020.setup.exe.sig如果驗證通過,屏幕上打印出的信息應該含有
good signature字樣。如果不通過,請不要使用下載到的安裝文件!(有經驗的讀者會發現,這裡的簽名不是對哈希文件的簽名,而是對安裝文件的簽名。筆者也不明白為什麼。)
為確保自己下載到的軟件沒有經過篡改和汙染,請不要跳過這些驗證步驟。
自動化刷入
驗證完文件的完整性之後,就可以運行上一步下載到的 setup.exe。安裝完成後,會跳出這樣一個界面:

確保你連接好了你的 k210 開發板。然後點擊 “刷入固件”,就可以自動完成 Krux 固件的下載和刷入。這個過程可能需要一兩次你的手動確認,但極為簡單,因此不再贅述。
這樣安裝得到的是最新版本的 Krux 固件。在筆者撰文之時,是 25.03.0 版本。
刷寫完成後,你的 k210 開發板將重啟、進入 Krux 的主界面。
特性及使用提醒
語言切換
在 Krux 的主界面,點擊 “Settings(設定)”,其中包含一個 “language(語言)”。進入 “language”,用屏幕下方的 < 和 > 切換語言,遇到 “語言環境 zh-CN” 字樣,就可以點擊 “去”,表示確認語言選擇了。
雖然支持中文,一部分的翻譯還是比較生硬。比如這裡的 “去”,英文原文為 “Go”,很容易理解,“去” 並不是恰當的翻譯。
切換主題
在跟 “語言” 同級的菜單中,有一個 “界面” 選項,可以在其中選擇界面的顏色主題。可選的主題有 5 種。
(固件層)安全特性
在跟 “語言” 同級的菜單中,還有一個 “安全” 選項,包含了跟固件層面的安全特性相關的選項。完整的描述可見這個頁面,這裡僅簡單介紹兩個關鍵特性:
- 隱藏助記詞。該功能開啟後,對用戶導入的種子詞(助記詞),Krux 不會顯示出 種子詞/私鑰 的樣貌,也不會顯示備份工具。
- 防篡改檢查碼/啟動時的 TC Flash Hash。這兩個是相互搭配的功能,作用是防止設備中的 Krux 固件被篡改。用戶需要先設置 “防篡改檢查碼”,然後,設備會要求用戶用攝像頭拍攝照片、從而生成足夠多的隨機數據、用於填滿存儲空間;再然後,該檢查碼會被用於哈希整個存儲空間,並被 TC Flash Hash 功能用於校驗存儲空間是否遭到篡改。
- 而 “啟動時的 TC Flash Hash” 關係的是,是否要求設備在每次開機時都執行這樣的篡改檢查。
- 但請注意,防篡改檢查碼可以阻止別人使用你的設備,但並不能防止存儲空間通過 USB 訪問、刷寫。也就是說,你一定要記得自己是否啟用了這套功能:如果你啟用了,但設備開機居然並不要求你輸入檢查碼,或輸入錯誤的檢查碼也不影響其工作,就說明你的設備被篡改了(通過篡改整機的方式取消了你的檢查碼)。
生成種子詞
Krux 有四種生成種子詞的方式(有趣的是,它們都不使用設備本身的熵源):
- “通過攝像頭”。通過拍照獲得熵源。
- “通過單詞”。注意:此種方式的正確用法是:打印出 BIP39 詞表,一條條剪下(剪成相同長度),在一個罐子(箱子)裡均勻混合,然後取出 11 個/23 個(具體過程可參考這個網站)。得出所需數量的詞後,使用此功能逐個輸入,然後 Krux 會為你生成有效的最後一個詞。
- 絕對不要繞過上述創造隨機性的程序,憑自己的感覺輸入 11 個詞,這是不安全的。
- “通過 D6”。即使用 6 面的色子來創造種子詞。每投出一個結果就輸入一次。屏幕上會顯示你創造的進度。要生成一個長達 12 個詞的種子詞,你需要投擲至少 50 次(非常值得!)。
- “通過 D20”。即使用 20 面的色子來創造種子詞。
種子詞的加密存儲
Krux 支持使用 Passphrase,也支持將種子詞加密後存儲在 SD 卡或設備閃存中,也可以打印成 QR 碼。使用此類功能時,請非常謹慎,考慮好備份問題。
創建/導入種子詞後的菜單
在你 創建/導入 種子詞後,你可能會遇到以下四種界面(的確可能讓人有些混亂):
- 包含這些選擇:“加載錢包”、“Passphare”、“自定義”、“返回”(下文稱為界面 1)
- 包含這些選擇:“備份種子詞”、“拓展公鑰”、“錢包”、“地址”、“簽名”、“重啟”(即設備重啟)(界面 2)
- 包含這些選擇:“錢包描述”、“Passphrase”、“自定義”、“返回”(下文稱為界面 3)
- 包含這些選擇:“網絡”、“政策類型”、“腳本類型”、“賬戶”(下文稱為界面 4)
如果你創建新的種子詞,那麼你遭遇界面的順序可能是從 1 到 4;而如果你導入種子詞,那麼你會遇上相反的順序(從 4 到 1)。具體來說:
- 在界面 1 選擇 “加載錢包” 會進入界面 2;
- 在界面 2 選擇 “錢包” 會進入界面 3;
- 無論哪個界面,“自定義” 都會跳轉到界面 4。
但理解了這些選項所對應的功能,就不難把握使用順序:
- 界面 2 所包含是錢包的基本功能,比如導出拓展公鑰、查看地址和簽名;
- 界面 3 的 “錢包描述”,是通過導入 “錢包描述符(descriptor)” 來說明該錢包所使用的具體腳本;跟界面 4 有些相互替代關係;
- 界面 4 所包含的設置是對 種子/錢包 使用環境的細緻設定。比如說,如果你要在測試網上使用多簽名錢包,那麼,你需要在 “網絡” 和 “政策類型” 中設置。同理,你也可以通過在 “政策類型” 中選擇 “Single-sig(單簽名)”,然後調整 “腳本類型”(P2PKH 或者 P2WPKH)。
總之:
- 如果你設置了 Passphrase,應儘快導入。
- 界面 3 和界面 4 的設定應視你的實際使用需要加以補充。更全面的信息一定會對你的使用有幫助(比如,讓你的設備傳出的公鑰信息更加準確,也讓你的設備從軟件錢包中掃描得到的信息能夠正確顯示)。
(完)


