数字货币量化交易系统搭建学习--2 加密货币

 #创作灵感#

技术笔记,巩固学习,仅供自己参考

学习视频

6.3【视频讲解】加密货币_哔哩哔哩_bilibili

上述视频up的博客

萧曵 丶-CSDN博客

0-货币的发展

1-比特币

1 什么是比特币?

比特币(Bitcoin,简称BTC)是一种去中心化的数字货币,由中本聪(Satoshi Nakamoto)在2009年创建。比特币通过一种称为区块链的技术进行交易和管理。


2-现有货币系统vs比特币

1 现有货币系统的核心问题

  • 被掌控在单一机构手中,容易被攻击自身的价值无法保证,
  • 容易出现波动
  • 无法匿名化交易,不够隐私

2 比特币网络特点

  • 去中心化:没有任何独立个体可以对网络中交易进行破坏,任何交易请求都需要大多数参与者的共识
  • 通胀预防:比特币的发行需要通过挖矿计算来进行,发行量每四年减半,总量上限为 2100万枚
  • 匿名性:比特币网络中账户地址是匿名的,无法从交易信息关联到具体的个体,但这也意味着很难进行审计

3-比特币的基本原理

1 重要概念

私钥:

· 本质上是一个随机数,由32个byte(256bits)组成的数组

· 私钥的总数=2^256,这个数量已经超过了宇宙中原子的总数

公钥:

· 公钥由私钥产生
· 私钥用于签名,公钥用于验证签名

钱包地址:

· 由于公钥太长且识别率不高,对公钥编码转换,从而产生比特币地址
· 只有在该地址上有交易发生时,该地址才进入区块链被大家知道

类比银行账户:

· 银行账号 ->钱包地址
· 银行账户密码 ->私钥

比特币的地址是公开的、透明的,但私钥是需要严格保密的!!!

挖矿

· 挖矿是增加比特币货币供应的一个过程

· 矿工们需要将交易进行确认,形成新的区块,串联到区块链中

· 目前,每10分钟左右生成一个不超过1MB大小的区块

· 每个区块的奖励最初是 50 个比特币,每隔 21万个区块自动减半,即4年时间

· 最终比特币总量稳定在 2100 万个,预计2040年开采完

挖矿过程

· 参与者综合上一个区块的 Hash 值,上一个区块生成之后的新的验证过的交易内容,再加上自己猜测的一个随机数X,一起打包到一个候选新区块,让新区块的 Hash 值小于比特币网络中给定的一个数

· 谁先猜测出这个随机数X,谁就有记账权,并获得奖励

 Hash函数(随机数X,上一个区块Hash值,交易内容) < 给定的数 

· 这是一道面向全体矿工的“计算题”,这个数越小,计算出来就越难。

挖矿的重要性:

· 挖矿不仅仅是为了获取奖励,它还是比特币网络的安全性和去中心化的基础。通过参与挖矿,矿工们帮助维护比特币的交易网络和账本的完整性。

· 挖矿的难度会根据全网算力的增长而动态调整,以保证新区块大约每10分钟生成一个,这也保证了比特币的稳定性和预定的货币政策。

2 私钥、公钥和地址之间的关系

· 公钥生成地址,验证发送交易的地址是否和该公钥生成的地址一致
· 公钥验证私钥的签名,用来验证该交易是否使用了正确的私钥签名
· 私钥生成公钥是成对出现,公钥可以生成对应的唯一地址,这样就能确认了该地址发送的交易是否使用了对应的私钥

3 比特币一条交易信息包含的信息

付款人钱包地址

付款人对交易的签字确认:确保交易内容不被篡改

付款人的公钥

付款人资金的来源交易ID:从哪个交易的输出作为本次交易的输

交易的金额:多少钱,跟输入的差额为交易的服务费

收款人钱包地址

4 交易示例

https://blockexplorer.comicon-default.png?t=N7T8https://blockexplorer.com


4-示例交易步骤*

  1. 发起交易

    • Alice 想给 Bob 转账 0.5 比特币 (BTC)。
    • Alice 使用她的比特币钱包软件创建一笔交易,指定 Bob 的比特币地址和转账金额 0.5 BTC。
    • Alice 的钱包生成一笔交易,并使用她的私钥对交易进行数字签名,以证明这笔交易确实是她发起的。
  2. 广播交易

    • Alice 的钱包将签名后的交易广播到比特币网络。
    • 比特币网络中的节点(矿工和全节点)接收到这笔交易并进行验证。
  3. 验证交易

    • 节点验证 Alice 的交易是否合法。具体步骤包括:
      • 检查 Alice 的账户是否有足够的比特币余额(至少 0.5 BTC)。
      • 验证 Alice 的数字签名是否有效。
      • 确保交易没有双花(即 Alice 没有尝试同时使用同一笔比特币进行多次交易)。
  4. 打包交易

    • 一旦交易被验证为有效,它将被放入一个内存池中,等待被矿工打包到区块中。
    • 矿工选择一些交易(包括 Alice 的交易)并将其打包到一个新的区块中。
  5. 挖矿和确认

    • 矿工通过解决一个复杂的数学难题(工作量证明)来竞争创建新的区块。这个过程被称为挖矿。
    • 第一个解决难题的矿工将新创建的区块广播到整个网络。
    • 其他节点接收到新区块并验证其中的交易。如果区块和交易都被验证为有效,则区块被添加到区块链中。
  6. 交易确认

    • Alice 的交易被包含在一个新生成的区块中,并被添加到区块链上。
    • Bob 的钱包收到交易,并显示 0.5 BTC 的入账。此时,这笔交易被认为已经有了一个确认。
    • 通常情况下,比特币网络认为交易有 6 个确认是安全的,即交易所在区块之后又有 5 个新区块被添加到区块链上。

引用: 如果要使用docker容器中的btc节点,请取消注释fdocker-compose文件的btcd-testnet部分,并在cmd/multy.config BTCNodeAddress字段中设置其地址。 引用:通过统一的界面获取300多种加密货币的钱包余额。 与:可选的API密钥支持,用TypeScript编写,使用node-fetch而不是弃用的request,较小的图书馆。 根据以上引用内容,btc钱包 node是指在docker容器中的btc节点,可以通过设置docker-compose文件中的btcd-testnet部分,并在cmd/multy.config 的BTCNodeAddress字段中设置节点的地址获取。该节点可以用于获取多种加密货币的钱包余额,并且支持可选的API密钥。这个节点是用TypeScript编写的,并使用了node-fetch库,相对较小。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [Multy-back:Multy的后端-移动Multy区块链钱包](https://download.csdn.net/download/weixin_42134168/14974063)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [balance-crypto:with通过统一的界面获取300多种加密货币的钱包余额](https://download.csdn.net/download/weixin_42169245/15910733)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

紫金港野生咩咩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值