在TREZOR硬件钱包应用IOTA交易

应用 tigermumu 3个月前 (11-05) 1390次浏览 5个评论

在TREZOR硬件钱包应用IOTA交易

在TREZORS上的IOTA离线钱包

大约3个月前,我首次听说IOTA之后就非常喜欢它。只是,它的发展现状目前仍然处于非常早期的阶段,仍有许多需要改进的地方。其中之一,就是离线钱包。

在4个月前,我和我兄弟做了自己的TREZORS,我们发现TREZORS的硬件与软件都是开源的,这说明每个人都可以使用很低的成本,采购一些电路板和其他部件,来搭建自己的TREZORS。而且,TREZORS是围绕STM32搭建的,我在自己的网站多次介绍过这事。对于改造它,似乎并不是非常困难。

 

硬  件

在Github上有TREZOR的开源电路图,只是图中有个问题,R6电阻不应该放置于那里。起先,我们按照原始电路图来搭建,结果在搜寻USB时遇到很多的问题,尤其在Windows上。正确的电路板布局图可为用ST-Link的程序提供突破口。

在TREZOR硬件钱包应用IOTA交易Trezor 复制ST-Link的程序

 

引导程序

对于开发这个电路板,我的确想将引导程序做的更灵活一些。默认情况下,TREZOR的引导程序在写保护开启时,不能被擦除。但我打算禁用这个设置。另外,我还想跳过检查固件签名的步骤。

 

24个助记词生成IOTA种子

默认情况下,TREZOR采用24个助记词来确认各种加密货币生成的地址。根据BIP-0039标准,TREZOR内部生成一个64字节长的“种子”。IOTA种子由81位trytes(三进制字符)组成。Kerl精确实现在81位trytes和48位字节之间的确定性转换。但是48位字节不是64位字节,而是64位字节的3 / 4。所以,我采用一个简单的算法,它将64位字节从助记符排入(4,48)字节的数组中,然后这些数组被kerl吸收,最后,再排出准确的种子。

 

在TREZOR上应用IOTA的功能

目前,我只实现了用trezorctl处理函数调用(implemented function calls using trezorctl),它是一个python脚本。目前的基本职能是:

  • trezorctl iota_get_address [-i <seed_index>]
  • trezorctl iota_show_seed
  • trezorctl iota_sign_transaction -a <receiving_address> -b <balance> -v <transfer_value>

 

地址生成器和交易签署

生成公开地址可能是最慢的。每个地址大约需要12秒来生成。因此,一旦生成了公开地址,它就存储在TREZORS的闪存中。

目前,交易签署是非常基本的。它做出如下设定:

  • 当前地址存有价值。
  • 下一个地址是剩余地址。
  • 安全级别总是2。
  • 该交易包总是由4个交易组成,其中第一个交易将价值发送到接收地址。

TREZOR将响应IOTA签署交易的交易包哈希(可用于验证)和两个签名。

在TREZOR硬件钱包应用IOTA交易

在TREZOR硬件上生成IOTA地址

 

将交易链接到缠结

这部分仍需要更妥善的处理。为了验证此概念,我基本上完全使用JavaScript库手动创建了交易。我手动创建了这样的交易包:

  • bundle.addEntry(1, to_addr, 10, tag, timestamp)
  • bundle.addEntry(1, from_addr, -16000000, tag, timestamp)
  • bundle.addEntry(1, from_addr, 0, tag, timestamp)
  • bundle.addEntry(1, remainder_addr, 15999990, tag, timestamp)
  • bundle.finalize() bundle.addTrytes([])

然后,我用从TREZOR接收的签名重写了签名/消息字段。用api.sendTrytes()来连接缠结。在TREZOR上没有完成工作量证明。种子永远不会从TREZOR丢失!在thetangle.org上,我们可以找到第一个TREZOR签名的交易。

感谢荷兰IOTA首次见面会的组织者为我提供的TREZOR项目初始资金。

 

最 后

目前,我还没有与TREZOR开发团队建立任何联系。假如有官方的力量介入,也许能为此项目构建更成熟的固件版本。但在此之前,我已经发布了一些二进制文件,可以在官方的TREZOR上显示。只不过,你必须处理“非官方固件检测”的警告。

除了python命令行接口之外,我还没有开始使用计算机端程序。如果能在未来的IOTA钱包中实现这个功能,那就非常完美了。然而,我并不非常了解Javascript,所以我很感激帮助过我的朋友。.

如果可以实现源代码的触发检查那就更好了。我试图通过测试驱动开发的方法来防止核心协议中出现bug,但是我还不能保证您的IOTAs在我设计的TREZOR上是100%安全的。

请注意,我利用业余时间将所有项目开发作为爱好。所以,不要问我什么时候准备好了或者什么时候会正式发布。如果您是一个程序员,并且您真的想拥有这个,请随意浏览github上的源代码(source code on github )并为您自己编译。否则,请保持耐心,静静的期待。

 

原文链接:https://www.bartslinger.com/iota/iota-transactions-with-trezor-hardware/


IOTACHINA遵守BY-NC-SA协议 , 翻译文章仅供参考,建议用户参考原文为准!
喜欢 (6)
tigermumu
关于作者:

您必须 登录 才能发表评论!

(5)个小伙伴在吐槽
  1. https://www.youtube.com/watch?v=MEK0enmJyuY Прикол рекламы казино AZINO777 ПОДПИШИСЬ!!!
    jop2017-11-09 23:14
  2. Link exchange is notɦing else Һowever it is only pplacing the оther person’ѕ website link οn youг page aat properрlace ɑnd other person will ɑlso do ѕimilar in support of ʏou.replica anello b zero bvlgari uomo http://www.aluxury.nl/it/bulgari-bzero1-ring-replica-c1.html
  3. By busing this type, you cannot only hear the voice of some other person, but can also communicate with that one thanks to attached microphone. With those headphones, people can have a privilege to listen to any audio entertainment that they like. 1 layout is an 8-speaker system (7 speakers and one subwoofer). cartier imitation love band ring [url=http://www.calove.co/2017-classic-marriage-cartier-love-ring-lifetime.html]cartier imitation love band ring[/url]
  4. I secrhaed a bunch of sites and this was the best. hermes collar 1:1
  5. I have been exploring for a bit for any high-quality articles or blog posts on this sort of house . Exploring in Yahoo I at last stumbled upon this site. Reading this info So i¡¦m happy to express that I’ve an incredibly just right uncanny feeling I discovered just what I needed. I such a lot for sure will make sure to do not put out of your mind this web site and provides it a look regularly. hermes kelly Bolsa falso precio