Cpp-Ethereum

在 arduino 上使用 C++ 離線簽署原始交易

  • March 9, 2018

我正在探索 EVM 的物聯網方面。我已經對 Arduinos 和 ESP8266s 進行了程式,以與 Geth JSON RPC 進行互動。我正在嘗試簡約並避免在 Geth JSON 伺服器端使用 NodeJS。目前 ESP8266 只是通過 Personal.sendTransaction 函式解鎖賬戶。我知道如果有人滲入我的 wifi LAN(我的 Geth 節點在我的 wifi 路由器 OpenWrt 上執行),這將是很差的安全性。我已經看到了 ethereumjs-utils 用於離線簽署交易的範例。是否有一個輕量級(低於 500k)C++ 版本,至少 ECDSA secp256k1 keccak256 算法?理想情況下,微控制器會簽署交易,然後廣播原始交易。竊賊可以訪問 IoT 錢包的唯一方法是物理訪問設備,轉儲快閃記憶體 ROM,對二進製文件進行逆向工程以提取私鑰。有什麼建議麼??這是 ESP8266 ESP-01 向 Rinkeby 區塊鏈推送和拉取溫度數據的工作範例,大部分程式碼是 JSON 解析https://github.com/gusgorman402/ESP8266_Geth

您可以使用我們的 Firefly 硬體錢包 ( https://firefly.city ) 為 ATmega328 執行以下操作:

  • secp256k1 簽名
  • RLP 解碼事務
  • keccak256
  • 生成校驗和地址(或原始地址)

我相信簽名需要大約 700 字節的可用記憶體,但其他一切都需要相當小的記憶體佔用。

如果您需要 OLED 顯示器,Firefly 原始碼還包括我們的零記憶體影片驅動程序。

這是圖書館的連結:https ://github.com/firefly/wallet/tree/master/source/libs/ethers

此外,所有程式碼都是 BSD/MIT 許可的,因此對於任何項目來說都應該相當容易合併。

引用自:https://ethereum.stackexchange.com/questions/29524