2 个版本
0.1.16-alpha.0 | 2023年4月2日 |
---|---|
0.1.12-alpha.0 | 2023年1月20日 |
#45 in #transactions
118 每月下载
用于 13 个 crate(11 个直接使用)
5MB
19K SLoC
bitcoinwallet-library
这个 Rust crate 是将 Bitcoin Core 钱包实现从 C++ 直接转换为 Rust 的结果。它提供了创建和管理比特币钱包的功能,包括生成新的私钥、签名交易以及与比特币网络同步。
注意:这个 crate 是将 Bitcoin Core 从 C++ 直接转换为 Rust 的一部分。因此,一些函数体可能仍在翻译过程中。请注意,一旦翻译完成,此系统将可测试。
以下数学概念与这个 crate 中使用的某些令牌相关联
-
私钥:比特币中的私钥是一个随机生成的 256 位整数。它用于生成公钥,公钥再用于创建比特币地址。私钥也用于签名交易。比特币系统的安全性依赖于这样一个事实:从公钥或比特币地址中推导出私钥在计算上是不可行的。从私钥生成比特币公钥的方程是
public_key = G * private_key
其中 G 是比特币数字签名算法中使用的椭圆曲线的生成点。
-
公钥:比特币中的公钥是生成点 G 乘以私钥得到的椭圆曲线上的一点。公钥用于创建比特币地址和验证交易数字签名。验证比特币数字签名的方程是
sG = R + eP
其中 s 是签名,R 是签名的第一个分量,e 是消息散列,G 是生成点,P 是公钥。
-
比特币地址:比特币地址是公钥的 160 位散列。它用于接收比特币付款。从公钥生成比特币地址的方程是
address = RIPEMD160(SHA256(public_key))
其中 RIPEMD160 和 SHA256 是比特币中使用的散列函数。
-
交易:比特币中的交易是从一个地址到另一个地址的已签名消息,用于转移比特币。交易包括输入(要花费的比特币)和输出(要接收的比特币)。签名比特币交易的方程是
s = k^(-1)(e + da) mod n
其中s是签名,k是随机数,e是消息哈希,d是私钥,a是临时公钥,n是椭圆曲线的阶。
依赖项
~105MB
~894K SLoC