跳转到主要内容

Arcula:一个安全分层确定性钱包

项目描述

Arcula

这个存储库包含了一个Arcula的证明概念实现,我们的设计是安全分层确定性钱包,在MIT许可下发布。

安装

Arcula需要Python 3.7或更高版本。

您可以从以下Python包索引中安装Arcula:

$ pip install --user arcula  # use "arcula[dev]" to install the optional development dependencies
$ python3 -c 'import arcula; print(arcula.__version__)'  # Test the installation

使用方法

Arcula可以用作命令行可执行文件或作为库。

命令行使用

待完成。

库使用

首先,生成一个种子。在我们的示例中,我们使用mnemonic包,该包实现了BIP39来生成种子。

import mnemonic

m = mnemonic.Mnemonic(language='english').generate()
print(m)
seed = mnemonic.Mnemonic.to_seed(m)

接下来,我们定义您层次结构的结构。如果您想使用BIP44标准,您可以使用我们在arcula.bip44中定义的帮助程序,例如:

from arcula import bip44

WALLET_CONFIG = {
    'BCH': (
        # (n. of public, private addresses)
        (1, 2),
        (4, 5),
        (0, 1)
    )
}

w = bip44.ArculaBIP44(seed, WALLET_CONFIG)

这生成了一个具有下面图像层次结构的钱包。`ArculaBIP44`类提供了辅助方法`get_cold_storage_public_key()`和`get_signing_key_certificate(path)`,分别返回冷存储公钥和指定`path`(例如`m/44'/BCH/1/xpub/3`)的签名密钥和授权证书。请参阅下面的比特币现金示例以获取详细用法。

否则,`arcula.hierarchy.ArculaNode`类表示Arcula层次结构中的一个节点,并允许创建任何自定义层次结构。每个节点由一个数字`id`和一个附加的`tag`标识。此外,它还包含一个指向其他节点的引用列表`edges`。

例如,您可以按如下方式实例化一个自定义二叉层次结构:

from arcula.hierarchy import ArculaNode

root = ArculaNode(id=0, tag='root')
left = ArculaNode(id=1, tag='l')
right = ArculaNode(id=1, tag='r')
root.edges = [left, right]

接下来,运行密钥派生过程

from arcula import arcula

wallet = arcula.Arcula(root)
wallet.keygen()

《ArculaNode》实例在其certificate_signing_key属性中保存它们的签名密钥和授权证书。其中certificate包含签名和被签名的消息的成对信息。例如:

left.certificate, left._signing_key

示例

比特币现金

文件utils/bch_test.py提供了使用Arcula在比特币现金测试网络上发送和接收资金的示例。

在我们的示例中,我们将种子生成的随机性固定为correct horse battery staple,然后生成一个BIP44兼容的钱包,其结构如下:

绿色高亮的节点首先从测试网的水龙头收到了BCH,然后通过以下交易将它们返还

  1. 337a67d36b8ecdd6bfbf2db654e54d71fcfd7a295cc97494e47272d305a6f444
  2. 10594853b5dc6d482fc1abf24b68afde04ba71bbf7c780db4c98381064ded302

文档

大多数Arcula函数都有详细的文档。我们的学术论文描述了我们的设计理念,Arcula及其核心的确定性分层密钥分配的正式定义,与BIP32的详细比较以及形式化安全证明。

作者

  • Adriano Di Luzio,罗马萨皮恩扎大学和斯图文斯理工学院。
  • Danilo Francati,斯图文斯理工学院。
  • Giuseppe Ateniese,斯图文斯理工学院。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

arcula-1.0.2.tar.gz (16.9 kB 查看哈希值)

上传时间:

构建分布

arcula-1.0.2-py2.py3-none-any.whl (17.4 kB 查看哈希值)

上传时间: Python 2 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面