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。示例
然后,安装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 .
创建新版本
- 部署虚拟机:
python3 deployment/deploy_vrf_vms.py
- 在设置(Settings.FUNCTION)中更新执行器虚拟机哈希并创建拉取请求
- 合并拉取请求并在Github上创建新版本
- 构建并上传包到PyPI:
python3 -m build && twine upload dist/*
其他资源
项目详情
下载文件
下载适合您平台的文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
aleph-vrf-1.0.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fffafe9562c6fedcf190f92d6cae817b514651a09342328e70efe9e9d67ccbf6 |
|
MD5 | 622ed73621f553b3d66090d1dd051c35 |
|
BLAKE2b-256 | b21f59c1452b91056fa7a6496eb3adfcb3fd3a60e0135f2af5d4df7d4bbe4988 |
aleph_vrf-1.0.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f992686242c869149397032bbb4246f15b1a321d40171ce4c892dca348f7b591 |
|
MD5 | bcb5fdcacf52cd1d964cba08b8abaf6a |
|
BLAKE2b-256 | 86f9f0e544fe594fdb9d0bcbe2c53bbf03bffc386129aa710aab42d2703b4cb9 |