跳转到主要内容

Aleph.im 可验证随机函数

项目描述

Aleph.im 可验证随机函数

什么是可验证随机函数(VRF)?

可验证随机函数(VRF)是生成既不可预测又可验证的随机数的密码学原语。这允许创建“无需信任的随机性”,即在去中心化系统中生成(伪)随机数,并提供确保该数字确实随机生成的保证。

Aleph.im 实现

Aleph.im 使用虚拟机(VM)和 aleph.im 网络消息的组合来实现 VRF。

实现围绕以下组件展开

  • 协调器
  • N 执行器。

协调器接收生成随机数的用户请求。在收到请求后,它选择一组充当执行器的计算资源节点(CRN)。每个执行器都会生成一个随机数,并使用 SHA3–256 计算其哈希。然后,这些哈希通过 POST 消息发布到 aleph.im,其中还包括一个唯一的请求标识符。一旦所有哈希都已发布并确认,协调器就会从每个节点请求实际的随机数。

最后,协调器执行验证过程以确保所有随机数与其之前发布的哈希相对应。然后,使用异或操作将这些随机数组合起来以生成最终随机数。这个最终数字以及操作摘要随后发布到 aleph.im 以供公开验证。

如何使用 aleph.im VRF

虚拟化网络执行器和协调器旨在作为aleph.im网络上的虚拟机功能部署。协调器还可以以库模式部署(见下文)。

我们提供了一个脚本用于部署虚拟机功能。只需运行以下命令来打包应用程序并将其上传到aleph.im网络。

python3 deployment/deploy_vrf_vms.py

如果部署成功,脚本将显示aleph.im网络上的虚拟机链接。示例

执行器虚拟机:https://api2.aleph.im/api/v0/messages/558b0eeea54d80d2504b0287d047e0b78458d08022d3600bcf8478700dd0aac2 协调器虚拟机:https://api2.aleph.im/api/v0/messages/d9eef54544338685a9b4034cc16e285520eb3cf0c199eeade1d6b290365c95d0

以库模式使用协调器

协调器还可以直接从Python代码中直接使用。首先,使用部署脚本部署执行器,不包含协调器虚拟机

python3 deployment/deploy_vrf_vms.py --no-coordinator

这将在网络上部署一个执行器虚拟机并为其分配ID。示例

执行器虚拟机:https://api2.aleph.im/api/v0/messages/558b0eeea54d80d2504b0287d047e0b78458d08022d3600bcf8478700dd0aac2

然后,安装aleph-vrf模块并从您的代码中调用它

pip install aleph-vrf
from aleph_vrf.coordinator.vrf import generate_vrf
from aleph_message.models import ItemHash


async def main():
    aleph_account = ...  # Specify your aleph.im account
    vrf_response = await generate_vrf(
        account=aleph_account,
        vrf_function=ItemHash(
            # The hash of the executor VM deployed above
            "558b0eeea54d80d2504b0287d047e0b78458d08022d3600bcf8478700dd0aac2"
        ),
    )
    random_number = int(vrf_response.random_number)

贡献

设置开发环境

您可以通过配置Python虚拟环境和以开发模式安装项目来设置开发环境。

python -m virtualenv venv
source venv/bin/activate
pip install -e .[build,testing]

运行测试

该项目使用mypy进行静态类型分析和pytest进行单元/集成测试。

# Static analysis with mypy
mypy src/ tests/
# Run unit/integration tests
pytest -v .

创建新版本

  1. 部署虚拟机:python3 deployment/deploy_vrf_vms.py
  2. 在设置(Settings.FUNCTION)中更新执行器虚拟机哈希并创建拉取请求
  3. 合并拉取请求并在Github上创建新版本
  4. 构建并上传包到PyPI:python3 -m build && twine upload dist/*

其他资源

项目详情


下载文件

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

源分布

aleph-vrf-1.0.0.tar.gz (29.1 kB 查看哈希值)

上传时间:

构建分布

aleph_vrf-1.0.0-py3-none-any.whl (16.2 kB 查看哈希值)

上传时间: Python 3

由以下机构支持

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