比特币实际来自于一篇论文。一个署名为中本聪的人,提出了革命性的构想:让我们创造一种不受政府或其他任何人控制的货币!这个想法堪称疯狂:一串数字,背后没有任何资产支持,也没有任何人负责,你把它当作钱付给对方,怎么会有人愿意接受?
但该主张是在 2008 年全球经济危机中出现的,当时大银行被发现滥用借款人的钱、操纵系统并收取过高的费用。为了解决这些问题,比特币创造者希望让比特币的所有者负责交易,消除中间人,降低高利率和交易费用,并使交易透明化。他们创建了一个分布式网络系统,人们可以在其中以透明的方式控制他们的资金。
比特币在相对较短的时间内迅速增长并传播得很远。在世界各地,从美国的大型珠宝连锁店到波兰的私人医院,公司都接受比特币货币。数十亿美元的公司,如戴尔、贝宝、微软、Expedia 等,都在交易比特币。网站推广比特币,杂志发布比特币新闻,论坛讨论加密货币和比特币交易。比特币有自己的应用程序编程接口(API)、价格指数、交易交易所和汇率。
然而,比特币存在黑客入侵账户、比特币波动性大、交易延迟时间长等问题。在其他地方,尤其是第三世界国家的人们发现比特币是绕过讨厌的中介进行货币交易的可靠渠道。
以下是比特币教程。通过本教程你可以掌握以下几个方面的内容:
- 什么是比特币,比特币的历史,如何使用比特币,比特币的工作原理
- 比特币 – 环境设置 – 什么是比特币全节点?如何安装挖矿软件
- 比特币 – 区块链技术
- 比特币的工作原理
- 加密货币的优点和缺点
- 比特币的优点和缺点
- 比特币的密钥和地址
- 比特币 – 钱包
- 比特币 – 挖矿
- 比特币交易脚本语言操作符,常量和符号
- Bitcore的功能列表
- 比特币 – 交易所
- 比特币套利和比特币交易类型
- 比特币 – 应用
- 比特币和区块链常用术语
什么是比特币,比特币的历史,如何使用比特币,比特币的工作原理
1.比特币简介
比特币(bitcoin)诞生于2008年的一篇论文。
一个署名为中本聪的人,提出了革命性的构想:让我们创造一种不受政府或其他任何人控制的货币!这个想法堪称疯狂:一串数字,背后没有任何资产支持,也没有任何人负责,你把它当作钱付给对方,怎么会有人愿意接受?
但该主张是在 2008 年全球经济危机中出现的,当时大银行被发现滥用借款人的钱、操纵系统并收取过高的费用。为了解决这些问题,比特币创造者希望让比特币的所有者负责交易,消除中间人,降低高利率和交易费用,并使交易透明化。他们创建了一个分布式网络系统,人们可以在其中以透明的方式控制他们的资金。
比特币在相对较短的时间内迅速增长并传播得很远。在世界各地,从美国的大型珠宝连锁店到波兰的私人医院,公司都接受比特币货币。数十亿美元的公司,如戴尔、贝宝、微软、Expedia 等,都在交易比特币。网站推广比特币,杂志发布比特币新闻,论坛讨论加密货币和比特币交易。比特币有自己的应用程序编程接口(API)、价格指数、交易交易所和汇率。
然而,比特币存在黑客入侵账户、比特币波动性大、交易延迟时间长等问题。在其他地方,尤其是第三世界国家的人们发现比特币是绕过讨厌的中介进行货币交易的可靠渠道。
2. 如何使用比特币?
我们可以像使用我们熟悉的法定货币一样进行比特币交易。当我们使用比特币时,购买者实际上是在参考我们的数字签名,这是一个用 16 个不同符号加密的安全代码。购买者用他的设备解密代码以获得加密货币。因此,我们可以说加密货币是一种数字信息交换,允许我们买卖商品和服务。
通过在类似于文件共享系统的点对点网络上运行交易,交易得到保护并值得信赖。
3. 比特币如何处理双重支出问题?
对于数字现金系统,支付网络必须有有效的账户、余额和交易记录。每个支付网络共同的最大瓶颈是双重支出问题,即多次使用同一笔钱进行交易。
为了防止双重支出,每次都必须在保存所有余额记录的中央服务器中记录并验证所有交易。
但是,在去中心化网络中,网络上的每个节点都必须完成服务器的工作;它必须维护交易清单和余额记录。因此,网络中的所有节点/实体都必须对所有这些记录保持共识。这是通过在比特币中使用区块链技术来实现的。
所以我们可以说,比特币和其他加密货币一样,只是存储在分散数据库中的令牌条目,它们保持所有余额和账户记录的共识。值得注意的是,密码学被广泛用于保护共识记录。比特币和其他加密货币比其他任何东西都更受数学和逻辑的保护。
比特币和加密货币工作原理相同,参与的人越多;创造的价值越多。
4. 比特币的历史
第一个比特币协议和概念证明于 2009 年由化名中本聪的隐秘个人或团体在白皮书中发布。但一直保持神秘的中本聪在 2010 年底离开了该项目。其他开发人员接手了比特币社区,此后比特币社区呈指数级增长。
虽然中本聪的真实身份仍然笼罩在神秘之中,但据记录,他在比特币的早期进行了广泛的交流。让我们推测一下他是什么时候开始研究比特币的,他在多大程度上受到了类似想法的启发,以及比特币的动机是什么。
5. 创建第一个比特币域名
据信,中本聪在 2007 年 5 月左右开始编码比特币。据说他在 2008 年 8 月注册了域名 bitcoin.org。大约在那个时候,他开始向一些他认为对比特币的想法感兴趣的人发送电子邮件。
2008 年 10 月,他公开发表了一篇关于比特币协议的白皮书,并发布了比特币代码。然后他在大约两年的时间内,他广泛的活跃在各大论坛,并和其他程序员及开发人员积极互动,后来他还为初始代码提交了补丁。他与其他开发人员一起维护源代码,及时解决问题。到了 2010 年 12 月,随着其他人慢慢接管,他悄悄地离开了这一领域。
6.参与实施和维护比特币的实体
参与实施和维护比特币的实体是 –
- 区块链平台
- 密码算法
- 比特币矿工是计算机或专用机器,可以铸造货币并进行可能的交易
- 参与交易并因此帮助移动支付系统的人
比特币以及所有加密货币的理念是,它们是分布式系统,没有中央实体来管理交易等活动。它是一种在参与者级别运行的点对点 (p2p) 系统。
7.比特币交易
我们现在将看到如何创建一个新的比特币交易块。
比特币矿工使用以下步骤创建一个块 –
- 收集待处理的交易,先处理有交易费的,然后是免费的
- 验证交易的有效性
- 解决哈希(HASH)问题
据统计,2015 年 10 月,blockchain.info 网站称,平均每个区块的交易数量为 411 笔,截至 2018 年 5 月,当前未确认的交易数量约为 2495 笔。
8.每笔比特币交易的奖励和成本
假设一个比特币价值 400 美元,那么每块 25 个比特币的奖励价值约为 10,000 (25 x 400)美元,交易费用暂时可以忽略不计。
以每秒平均交易数为 2,每块交易数为 1200,每笔交易的奖励为 8.33 美元。发现挖矿所消耗的电力成本接近奖励,这使得挖矿比特币不那么有利可图。
到目前为止,挖矿的基本问题是 块的限制为 1 MB,这使得每秒最多只能处理 10 次交易。
9.如何确认比特币交易
如果一笔交易已经在区块链中的一个区块中发布,则认为它已经收到了 n 个确认,并且还增加了 n-1 个区块。一旦获得六次确认,交易通常被视为“已确认”。新创建的比特币在收到大约一百个确认后被视为已确认。
10.比特币如何具有价值的?
赋予比特币价值的是共同的共识、信念和认知。该系统的所有参与者都对以下内容达成共识 –
- 区块链的不变性和完整性
- 付款的安全性和有效性
- 系统规则
比特币是区块链技术的第一个实际应用,是目前全球最重要的三式记账系统。在比特币生态系统中,每个人都可以随时访问整个源代码,任何人都可以查看或修改代码。每笔交易的真实性由发送方的数字签名保护,从而确保所有用户都可以完全控制发送比特币。
因此,为欺诈留下了一点空间,没有退款,也没有可能被黑客入侵导致身份盗用的识别信息。
11.使用比特币交易的公司和机构
比特币开发环境设置 – 什么是比特币全节点?如何安装挖矿软件
中本聪在 2009 年 1 月发布了第一个比特币软件作为开源代码。后来他将其重命名为“比特币核心(Bitcoin Core)”以区别于比特币网络。
比特币核心是比特币的执行者。它是一个完整的比特币客户端,是网络的骨干,并提供高水平的安全性、稳定性和隐私性。它还协助网络中继交易。它需要至少 50 GB 的硬盘空间,不推荐给可以选择轻量级移动或桌面钱包的新比特币用户。
因为区块链交易网络的拥堵,作者通过调整广播通信、信息加密解密、共识机制、交易验证机制来解决问题,在整个比特币的网络中,从矿工到普通用户都可以看作是比特币网络中的一个节点,但是因为比特币具有多中心化的特点,在整个网络中其重要作用的是比特币全节点。
在早期比特币用户非常少的情况下,所有在比特币网络中运行计算机的客户端都可以看作是一个全节点,这些节点保存着整个比特币区块链网络中的数据,网络中每产生一次交易,接收到信息的节点会对交易信息的安全性、合规性等等进行验证,验证通过后在广播全网络的其它节点,数据一但生成不可以篡改。
通过上面内容相信大家也全面的了解了比特币全节点是什么?由此可见比特币全节点的数量越多,比特币区块链网络就越安全。
1. 什么是比特币全节点?
全节点是一个软件程序,该程序可以完全验证交易和区块。大多数完整节点还通过接受和验证来自其他完整节点的交易和区块,然后将它们进一步中继到其他完整节点来协助区块链和比特币网络。
比特币核心全节点需要有一定的环境要求。如果一个节点在配置太低的硬件上运行,它可能会工作——但会有很多问题。
一个易于使用的安全节点需要以下的硬件配置
- 运行最新版本的 Windows、Mac OS X 或 Linux 的 esktop 或笔记本电脑硬件
- 大约 150 Gb 的可用磁盘空间,以 100 MB/s 的最低速度访问
- 2 GB RAM 内存
- 上传速度至少为每秒 50 KB 的宽带互联网连接
- 最好无限上网链接。高速连接上的完整节点通常每月使用 200 GB 或更多的上传量。每月下载使用量约为 20 GB,第一次启动节点时额外增加 150 GB
- 每天 6 小时全节点运行
Bitcoin Core can be downloaded from the site https://bitcoin.org
除了下载比特币客户端外,我们还必须设置几个帐户。在本教程中,我们将进一步学习如何在比特币网站上开设账户,以及如何在比特币钱包、比特币交易所、比特币挖矿网站、水龙头网站以及提供比特币工具和增值服务的网站中创建账户。
2.拥有比特币全节点有什么优势?
2.1安全
节点的主要功能是验证,如果您有自己的节点,则不必开始信任第三方。
拥有我们自己的节点并将钱包连接到它,所有比特币网络的通信是从我们自己的完整节点开始,我们执行的交易的验证也是由我们的节点执行,随后才被传播到其余节点。
我们最初不需要信任另一个节点。相信我们自己就行。
2.2财产自主权
在一个完整的同步节点中,您可以找到所有交易历史记录,您不需要另一个节点来验证比特币共识规则,此外,您还可以对过去进行的任何交易进行您想要的所有查询,而无需求助于网络页面或第三方节点。
2.3 隐私权
当钱包与整个节点通信时,交易中涉及的 IP 地址会被泄露,因此恶意节点最终可能会被识别出钱包中存储的所有 IP 地址。如果您的钱包与您的节点通信,您不会将您的 IP 地址暴露给第三方。
在这里必须记住,比特币不是匿名的,而是一个假名,因为所有的交易都是公开的,并且其中涉及的地址都会显示出来,如果你可以将这些地址与其所有者相关联,你就可以完全追踪所有的运动和资金。
有些公司正是负责在区块链上进行链分析,以将地址与实名联系起来。
2.4 软件控制
如果你是一个完整节点的所有者,你可以决定你运行更新是否更新你的比特币区块链,这是批准比特币变化的最终方式。另一方面,轻节点将始终受其环境中最完整节点决定的支配。
2.5 保护比特币免受 DDoS 攻击
拒绝服务 (DoS) 攻击是一种恶意尝试,旨在影响合法最终用户对目标系统(如网站或应用程序)的可用性。通常,攻击者会生成大量数据包或请求,最终使目标系统不堪重负。在发生分布式拒绝服务 (DDoS) 攻击时,攻击者使用多个被破坏或受控的来源生成攻击。
一般而言,DDoS 攻击可按其攻击的开放系统互连 (OSI) 模型的层级进行隔离。攻击最常发生在网络层(第 3 层)、传输层(第 4 层)、表示层(第 6 层)和应用层(第 7 层)。
比特币针对这些攻击的保护措施是在其网络中拥有大量完整节点,这样虽然攻击者可以中断一台或多台机器的服务,但网络中还有成千上万的其他节点连接在一起,维护着服务。
Global Bitcoin nodes distribution
3.安装Java
要运行像 BitMinter 客户端这样的挖矿软件,我们需要安装最新的兼容 Java 版本。 BitMinter 客户端可以从 https://bitminter.com 下载
要安装 Java,您可以按照以下步骤操作 –
- 访问 www.java.com/download。
- 单击“免费 Java 下载”按钮。
- 点击“同意并开始免费下载”按钮。
- 选择与您的操作系统兼容的版本。
- 按照屏幕上的说明继续安装软件。
- 安装完成后,点击完成按钮。
- 继续下一步以设置矿工。
比特币 – 区块链技术
区块链是一个共享的、不可篡改的账本,旨在促进业务网络中的交易记录和资产跟踪流程。 资 产 可以是有形的(如房屋、汽车、现金、土地),也可以是无形的(如知识产权、专利、版权、品牌)。 几乎任何有价值的东西都可以在区块链网络上进行跟踪和交易,从而降低各方面的风险和成本。
1.什么是区块链?
1.1 区块链简介
区块链的数据结构是由包含交易信息的区块按照从远及近的顺序有序链接起来的。它可以被存储为平面文件(flat file),或是存储在一个简单数据库中。比特币核心客户端使用Google的LevelDB数据库存储区块链元数据。区块被从远及近有序地链接在这个链条里,每个区块都指向前一个区块。区块链经常被视为一个垂直的栈,第一个区块作为栈底的首区块,随后每个区块都被放置在之前的区块之上。用栈来形象化表示区块依次堆叠这一概念后,我们便可以使用 一些术语,例如:“高度”来表示区块与首区块之间的距离;以及“顶部”或“顶端”来表示最新添加的区块。
区块链基本上是一个不断增长的记录列表,称为块。这些块通过使用加密技术进行链接和保护。每个块通常包含前一个块的加密哈希以及时间戳和交易数据。根据其设计,区块链不允许修改数据。
它是一个开放的分布式账本,可以验证和永久的方式有效地记录各方之间的交易。如下图所示的区块链通常由 p2p 或点对点网络共同管理,遵循节点之间通信和验证新块的协议。
一旦记录下来,任何给定块中的数据都不能在没有网络多数同意的情况下被更改。
对每个区块头进行SHA256加密哈希,可生成一个哈希值。通过这个哈希值,可以识别出区块链中的对应区块。同时, 每一个区块都可以通过其区块头的“父区块哈希值”字段引用前一区块(父区块)。也就是说,每个区块头都包含它的父区块哈希值。这样把每个区块链接到各自父区块的哈希值序列就创建了一条一直可以追溯到第一个区块(创世区块)的 链条。
1.2 区块结构
区块是一种被包含在公开账簿(区块链)里的聚合了交易信息的容器数据结构。它由一个包含元数据的区块头和紧跟其后的构成区块主体的一长串交易列表组成。区块头是80字节,而平均每个交易至少是250字节,而且平均每个区块至少包含超过500个交易。因此,一个包含所有交易的完整区块比区块头大1000倍。下图描述了一个区块结构:
1.3区块头
区块头由三组区块元数据组成。首先是一组引用父区块哈希值的数据,这组元数据用于将该区块与区块链中前一区块相连接。第二组元数据,即难度、时间戳和nonce,与挖矿竞争相关,详见挖矿章节。第三组元数据是merkle树根(一种用来有效地总结区块中所有交易的数据结构)。下图描述了区块头的数据结构。
1.4 区块标识符:区块头哈希值和区块高度
区块主标识符是它的加密哈希值,一个通过SHA256算法对区块头进行二次哈希计算而得到的数字指纹。产生的32字节哈希值被称为区块哈希值,但是更准确的名称是:区块头哈希值,因为只有区块头被用于计算。例 如:000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f是第一个比特币区块的区块哈希值。区块哈希值可以唯一、明确地标识一个区块,并且任何节点通过简单地对区块头进行哈希计算都可以独立地获取该区块哈希值。
请注意,区块哈希值实际上并不包含在区块的数据结构里,不管是该区块在网络上传输时,抑或是它作为区块链的一部分被存储在某节点的永久性存储设备上时。相反,区块哈希值是当该区块从网络被接收时由每个节点计算出来的。区块的哈希值可能会作为区块元数据的一部分被存储在一个独立的数据库表中,以便于索引和更快地从磁盘检索区块。
第二种识别区块的方式是通过该区块在区块链中的位置,即“区块高度(block height)”。第一个区块,其区块高度为 0,和之前哈希值000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f所引用的区块为同一 个区块。因此,区块可以通过两种方式被识别:区块哈希值或者区块高度。每一个随后被存储在第一个区块之上的区块在区块链中都比前一区块“高”出一个位置,就像箱子一样,一个接一个堆叠在其他箱子之上。2017年1月1日的区块高度大约是 446,000,说明已经有446,000个区块被堆叠在2009年1月创建的第一个区块之上。
和区块哈希值不同的是,区块高度并不是唯一的标识符。虽然一个单一的区块总是会有一个明确的、固定的区块高度, 但反过来却并不成立,一个区块高度并不总是识别一个单一的区块。两个或两个以上的区块可能有相同的区块高度,在区块链里争夺同一位置。这种情况在“区块链分叉”一节中有详细讨论。区块高度也不是区块数据结构的一部分, 它并不被存储在区块里。当节点接收来自比特币网络的区块时,会动态地识别该区块在区块链里的位置(区块高度)。 区块高度也可作为元数据存储在一个索引数据库表中以便快速检索。
提示一个区块的区块哈希值总是能唯一地识别出一个特定区块。一个区块也总是有特定的区块高度。但是,一 个特定的区块高度并不一定总是能唯一地识别出一个特定区块。更确切地说,两个或者更多数量的区块也许会为了区块链中的一个位置而竞争。
1.5 创世区块
区块链里的第一个区块创建于2009年,被称为创世区块。它是区块链里面所有区块的共同祖先,这意味着你从任一区块,循链向后回溯,最终都将到达创世区块。 因为创世区块被编入到比特币客户端软件里,所以每一个节点都始于至少包含一个区块的区块链,这能确保创世区块不会被改变。每一个节点都“知道”创世区块的哈希值、结构、被创建的时间和里面的一个交易。因此,每个节点都把该区块作为区块链的首区块,从而构建了一个安全的、可信的区块链。 在chainparams.cpp里可以看到创世区块被编入到比特币核心客户端里。
创世区块的哈希值为:
0000000000 19d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
你可以在任何区块浏览网站搜索这个区块哈希值,如blockchain.info,你会发现一个描述这一区块内容的页面,该页面的链接包含了这个区块哈希值:
https://blockchain.info/block/000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f https://blockexplorer.com/block/000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
在命令行使用比特币核心客户端:
“$ bitcoin-cli getblock 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
{ “hash” : “000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f”,
“confirmations” : 308321,
“size” : 285,
“height” : 0,
“version” : 1,
“merkleroot” : “4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b”,
“tx” : [ “4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b” ],
“time” : 1231006505,
“nonce” : 2083236893,
“bits” : “1d00ffff”,
“difficulty” : 1.00000000,
“nextblockhash” : “00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048”}“
创世区块包含一个隐藏的信息。在其Coinbase交易的输入中包含这样一句话“The Times 03/Jan/2009 Chancellor on brink of second bailout forbanks.”这句话是泰晤士报当天的头版文章标题,引用这句话,既是对该区块产生时间的说明,也可视为半开玩笑地提醒人们一个独立的货币制度的重要性,同时告诉人们随着比特币的发展,一场前所未有的世界性货币革命将要发生。该消息是由比特币的创立者中本聪嵌入创世区块中。
1.6 区块链接成为区块链
比特币的全节点在本地保存了区块链从创世区块起的完整副本。随着新的区块的产生,该区块链的本地副本会不断地更新用于扩展这个链条。当一个节点从网络接收传入的区块时,它会验证这些区块,然后链接到现有的区块链上。为建立一个连接,一个节点将检查传入的区块头并寻找该区块的“父区块哈希值”。
让我们假设,例如,一个节点在区块链的本地副本中有277,314个区块。该节点知道最后一个区块为第277,314个区 块,这个区块的区块头哈希值为:
00000000000000027e7ba6fe7bad39faf3b5a83daed765f05f7d1b71a1632249。
然后该比特币节点从网络上接收到一个新的区块,该区块描述如下:
`{
"size" : 43560,
"version" : 2,
"previousblockhash" :
"00000000000000027e7ba6fe7bad39faf3b5a83daed765f05f7d1b71a1632249",
"merkleroot" :
"5e049f4030e0ab2debb92378f53c0a6e09548aea083f3ab25e1d94ea1155e29d",
"time" : 1388185038,
"difficulty" : 1180923195.25802612,
"nonce" : 4215469401,
"tx" : [
"257e7497fb8bc68421eb2c7b699dbab234831600e7352f0d9e6522c7cf3f6c77",
[… many more transactions omitted …]
"05cfd38f6ae6aa83674cc99e4d75a1458c165b7ab84725eda41d018a09176634"
]
}`
对于这一新的区块,节点会在“父区块哈希值”字段里找出包含它的父区块的哈希值。这是节点已知的哈希值,也就是第 277314块区块的哈希值。故这个新区块是这个链条里的最后一个区块的子区块,因此现有的区块链得以扩展。节点将新的区块添加至链条的尾端,使区块链变长到一个新的高度277,315。图9-1显示了通过“父区块哈希值”字段进行连接三个区块的链。
上面图通过引用前面的区块头哈希连接成区块链
2.比特币和区块链
对于在比特币方面,区块链是记录比特币交易的公共分类账目。该公共分类账目为一个区块链所实现。每个块都包含前一个块的哈希,直到创世块(区块头),这是比特币区块链的第一个块。这一切都是在没有任何受信任的中央机构的情况下实现的:区块链的工作是由运行比特币软件的通信节点网络执行的。付款人 A 向收款人 C 发送 B 比特币的交易是使用现有的软件应用程序传输到该区块链网络。
网络中的节点验证每一笔新交易,将它们添加到他们的账本副本中,然后将这些账本添加到其他节点。每个网络节点都存储自己的区块链副本。大约每 10 分钟,就会创建一组新的经过验证的交易,即一个区块,并将其添加到区块链中,然后快速发布到所有网络节点。这使得比特币软件可以确定何时花费了特定的比特币金额,从而防止在去中心化环境中出现双重支出。值得注意的是,区块链是唯一可以说比特币以未使用形式存在的地方。
区块链技术导致了比特币和莱特币等新的数字货币的发展,这些货币不是由政府或任何国家的中央银行发行或管理的。这将个人从任何类型的控制和中介机构中解放出来,例如银行系统。它还催生了分布式计算技术,例如引入智能合约的以太坊。
区块链是一种复制的共享账本技术,允许网络中的任何参与者查看账本并进行更改。它是开源的,可以降低成本,提高效率,增加可访问性,解决广泛的令人兴奋和热门的业务挑战。 Linux Foundation 的 Hyperledger 是一个开发开源、开放标准共享账本技术的项目。
如今,消费者要求产品及其制造具有透明度。政府需要有关企业供应链的更多信息,并对违规行为进行处罚。在这种情况下,区块链技术有望实现这样的期望。它支持跨供应链的价值或财产的安全数字传输。
3.区块链技术的优势
以下是区块链技术的优势 –
- 交易现在是可验证的,不允许任何一方进行更改。
- 通过更高的透明度实现更高的效率。
- 消费者有权进行知情购买。
- 现在政府能够获得可靠的信息。
许多专家认为,区块链技术可以用于在线投票、众筹等新兴技术和新奇想法。摩根大通等主要金融机构相信加密货币可以降低交易成本并提高支付处理效率。
比特币是区块链技术最流行和最成功的实现之一。它是一种使用分布式对等计算的开源加密货币。不需要中央机构来管理比特币网络。它是由一个化名中本聪的个人或团体创建的。该网络上的交易通过运行挖矿软件的计算机上的工作量证明算法进行验证。
加密货币的优点和缺点
加密货币是使用密码学来保护其交易的数字货币。由于这种安全功能,很难制造伪造的加密货币。任何加密货币的一个显着特征是它不是由任何中央银行或政府机构发行的,因此不受任何政府操纵。
截至 2018 年 5 月,流通的比特币超过 1700 万枚,总市值超过 1400 亿美元。比特币的成功催生了许多类似的加密货币,称为山寨币:Namecoin、Litecoin、PPCoin 等。
大家都知道,加密货币交易所最主要的功能就是提供加密货币的交易买卖撮合服务。随着去年比特币价格的暴涨,加密货币的投资价值效应被放大,以至于很多人已经忘记了加密货币本身具有的一些特点。
事实上,加密货币承载着大家对于新一代货币的期望,很有可能在未来充当新的交换媒介。但是在这之前,加密货币会经历一个不断改进和完善的过程。以目前的现状来看,加密货币既拥有很多理想世界的优点,也存在一些现实必须面对的缺点。
加密货币的优点:
1、透明度高
加密货币的创建基于区块链,我们可以在该区块链上查看所有交易,因为当我们进行任何类型的交易时,它将被保存在区块链中,并随时可以检查我们的交易。它不能被我们改变。它总是显示我们真实的统计数据 它适用于所有人,任何人都可以随时查看。没有组织和人员可以改变它们。所以,它是完全透明的,并被视为最安全的功能。
2、远离通货膨胀
世界各地的货币都面临通货膨胀,因为政府打印了大量资金,后来他们面临通货膨胀,但在加密货币中这是不可能的。当任何种类的新货币发行时,就已经决定开发多少加密币。当它被固定一次然后没有人能超过它们。像比特币一样,只有2100万比特币可以被开采,没有人可以增加它的数量。所以,我们的货币总是远离通货膨胀。
3、传输方便
传统货币在两国之间进行转账传输时,会经历多个关卡,常受到各国和地区政策法律影响,存在较多限制,使得整个传输过程耗时且体验较差。加密货币能够使得世界上不同国家和地区的用户实现高效传输。
4、更加安全
我们都知道我们可以在区块链的帮助下检查所有交易。所有交易都是通过匿名身份进行的,所以我们可以轻松追踪是否存在任何虚假或盗窃行为。它比实际货币更加安全。
5、交易成本低
与其他金融服务相比,加密货币的交易成本相对较低。例如,国内电汇花费 25 美元或 30 美元的情况并不少见。国际汇款可能会更加昂贵。
加密货币交易通常更便宜。但是,您应该注意,对区块链的需求会增加交易成本。即便如此,即使在最拥挤的区块链上,交易费用中位数仍然低于电汇费用。
6、隐私
由于您无需在金融机构注册账户即可使用加密货币进行交易,因此您可以保持一定程度的隐私。交易是匿名的,这意味着你在区块链上有一个标识符——你的钱包地址——但它不包含任何关于你的特定信息。
在许多情况下(无论是无辜的还是非法的),这种级别的隐私都是可取的。也就是说,如果有人将钱包地址与身份相关联,则所有交易数据都是公开的。有几种方法可以进一步掩盖交易,以及几种以隐私为重点的硬币,以增强加密货币的私密性。
7、多元化
加密货币可以为投资者提供股票和债券等传统金融资产的多样化。虽然加密市场相对于股票或债券的价格走势历史有限,但到目前为止,价格似乎与其他市场不相关。这可以使它们成为投资组合多样化的良好来源。
通过结合具有最小价格相关性的资产,您可以产生更稳定的回报。如果您的股票投资组合下跌,您的加密资产可能会上涨,反之亦然。尽管如此,加密货币通常非常不稳定,如果您的资产配置过于依赖加密货币,最终可能会增加您整体投资组合的波动性。
加密货币的缺点:
1、丢失则不可恢复
加密货币的私钥,如果一旦丢失,那么就没有客户关怀支持。如果它丢失了,那么你无法恢复。直到现在,很多丢失的加密货币,没有人可以访问它们。我们应该始终将我们的私钥存储在未连接到互联网的驱动器中,因为如果它连接到互联网,那么我们可能会丢失密码。如果你的私钥被盗或者你忘记了私钥,则意味着加密货币丢失,无法恢复。
2、市场波动大
当你要投资加密货币时,我们可以出售和购买它。它就像一种商品,我们可以轻松地购买和出售它。它的价格可能会随时涨跌,所以它就像股票市场那样有风险。根据市场的情况,它的价格会随着时间的变化而变化,所以要随时准备。其价格可能突然上涨,并可能突然下跌。因此,根据市场,其价格也会波动。
3、交易无法追踪
这个因素被视为既有利也有弊,因为它有自己的优点和缺点。它不能被追踪,因为它使用了分散的网络,并且由于没有受到任何组织和任何中央银行的监管,我们无法追踪它。像犯罪分子和毒贩这样的人正在使用它,这就是为什么它被视为缺点。它已成为隐藏黑钱的最佳方式。我们也可以将其视为专业人士,因为我们可以轻松自由地购买和出售,而且没有人能够追踪它。
比特币的工作原理
创建或铸造比特币的过程很难破解,这为比特币提供了安全性。比特币的另一层安全性是每笔交易都必须在验证之前已经被验证。这种验证是通过“挖矿”来实现的。挖矿是一个过程,其中进行一些高级计算(如 SHA256 解码)以验证比特币的转移。
比特币存储在“数字钱包”中,存在于用户的计算机或云端。钱包是一种虚拟银行账户,可帮助用户发送或接收比特币、支付商品和服务费用或存钱。
比特币交易是如何进行的?
每个比特币账户都包含一个公钥,它的作用类似于比特币地址和一个私钥。如果他/她知道您的公钥,任何人都可以向您发送比特币。要花费比特币,您必须使用您的私钥进行身份验证。每笔比特币交易都出现在比特币网络上。矿工在验证后确认交易以验证它们。
地址
比特币地址的例子
73nRKoXJAUqKYYbzw6Nrqh9gW2p26zerpZ
总共有2160或大约1048可能的地址
相应的私钥如下所示 –
5HuEupY3DNF87UypjFtXDTm4BVuAwZtAgYf94sMALPyakgafVnU
私钥的长度为 256 位。大约有 1077 个可能的私钥。
如何发送比特币?
在上一节中,我们已经了解了比特币交易是如何工作的。现在,我们将讨论如何发送比特币。
要购买某些商品或支付某些服务,您必须将比特币发送到供应商的地址。要接收比特币,您必须与供应商分享您的地址。
以下是将比特币发送给某人的过程 –
- 复制供应商的地址并打开您的比特币钱包。
- 单击“发送硬币”选项卡,然后在“付款至”字段中输入您要发送比特币的地址。
- 如果您必须多次向同一个人或同一组发送比特币,您可以创建一个标签以便在地址簿中找到它们。
- 在下一个字段中输入金额,然后单击发送以完成操作。
确认
在挖掘过程中,所有交易都收集在一个称为块的容器中。大约每 10 分钟创建一个新块。在与受信任的同行进行小额支付或交易的情况下,可能不需要确认。然而,对于被认为是安全的大交易,标准是 6 次确认。
比特币交易的匿名性
可以根据要求自定义匿名级别。从一个地址到另一个地址的每笔交易都是公开的。通过记录公开的地址或公钥对交易进行分析称为流量分析。转移越大,流量分析就越容易。
为了增加匿名性,使用了混合服务。还建议为每笔交易创建一个新的公钥或新地址,以提高安全性和匿名性。从用户的角度来看,比特币只不过是一个移动应用程序或软件,它提供了一个个人比特币钱包,允许用户发送和接收比特币。然而,在后端,比特币网络共享一个名为“区块链”的巨大公共账本。该分类帐记录了曾经处理过的每笔交易,使用户的系统可以验证每笔交易的有效性。
兼容性的共识的需要
为了保持彼此的兼容性,所有比特币用户都必须按照相同的规则使用该软件。比特币只有在所有用户达成完全共识的情况下才能正常工作。因此,所有用户和开发人员都必须维护和保护这一共识。
保护区块链
除非您在网络上托管节点,否则比特币不会存储在您的计算机上。您携带一个安全的分类帐克隆,因为每个块在附加到链之前都经过哈希处理。这意味着,即使更改先前块上的任何数据的一位,也会更改分类帐的哈希值,从而将其标记为伪造。
哈希函数是一种不可逆的函数,在密码学中被广泛使用;这个函数的输出比输入短。比特币交易的验证只是一个快速检查密钥的过程,例如查找发送者是否拥有可以解锁分类帐目/区块链中任何记录的私钥。
比特币的密钥和地址
比特币是基于密码学,这一在计算机安全中广泛使用的数学分支。 密码学在希腊语中是“秘密写作”的意思,但密码学这门科学不仅只包含被称之为秘密写作的加密学。 密码学也可以用来证明秘密的知识,而不会泄露秘密(数字签名),或证明数据的真实性(数字指纹)。 这些类型的加密证明是比特币中关键的数学工具并在比特币应用程序中被广泛使用。具有讽刺意味的是,加密不是比特币的重要组成部分,因为它的通信和交易数据没有加密,也不需要加密来保护资金。 在本章中,我们将介绍一些在比特币中用来控制资金的所有权的密码学,包括密钥,地址和钱包。
1简介
比特币的所有权是通过数字密钥、比特币地址和数字签名来确定的。数字密钥实际上并不存储在网络中,而是由用户生成之后,存储在一个叫做钱包的文件或简单的数据库中。存储在用户钱包中的数字密钥完全独立于比特币协议,可由用户的钱包软件生成并管理,而无需参照区块链或访问网络。密钥实现了比特币的许多有趣特性,包括去中心化信任和控制、所 有权认证和基于密码学证明的安全模型。
大多数比特币交易都需要一个有效的签名才会被存储在区块链。只有有效的密钥才能产生有效的数字签名,因此拥有~密钥副本就拥有了对该帐户的比特币的控制权。用于支出资金的数字签名也称为见证(witness),密码术中使用的术语。 比特币交易中的见证数据证明了所用资金的真正归谁所有。
密钥是成对出现的,由一个私钥和一个公钥所组成。公钥就像银行的帐号,而私钥就像控制账户的PIN码或支票的签名。比特币的用户很少会直接看到数字密钥。一般情况下,它们被存储在钱包文件内,由比特币钱包软件进行管理。
在比特币交易的支付环节,收件人的公钥是通过其数字指纹代表的,称为比特币地址,就像支票上的支付对象的名字 (即“收款方”)。一般情况下,比特币地址由一个公钥生成并对应于这个公钥。然而,并非所有比特币地址都是公钥; 他们也可以代表其他支付对象,譬如脚本,我们将在本章后面提及。这样一来,比特币地址把收款方抽象起来了,使得 交易的目的地更灵活,就像支票一样:这个支付工具可支付到个人账户、公司账户,进行账单支付或现金支付。比特币地址是用户经常看到的密钥的唯一代表,他们只需要把比特币地址告诉其他人即可。
首先,我们将介绍密码学并解释在比特币中使用的数学知识。然后我们将了解密钥如何被产生、存储和管理。我们将回顾用于代表私钥和公 钥、地址和脚本地址的各种编码格式。最后,我们将讲解密钥和地址的高级用途:比特币靓号,多重签名以及脚本地址和纸钱包。
1.1 公钥加密和加密货币
公钥加密发明于20世纪70年代。它是计算机和信息安全的数学基础。
自从公钥加密被发明之后,一些合适的数学函数被发现,譬如:素数幂和椭圆曲线乘法。这些数学函数都是不可逆的, 就是说很容易向一个方向计算,但不可以向相反方向倒推。基于这些数学函数的密码学,使得生成数字密钥和不可伪造 的数字签名成为可能。比特币正是使用椭圆曲线乘法作为其公钥加密的基础。
在比特币系统中,我们用公钥加密创建一个密钥对,用于控制比特币的获取。密钥对包括一个私钥,和由其衍生出的唯 一的公钥。公钥用于接收比特币,而私钥用于比特币支付时的交易签名。
公钥和私钥之间的数学关系,使得私钥可用于生成特定消息的签名。此签名可以在不泄露私钥的同时对公钥进行验证。
支付比特币时,比特币的当前所有者需要在交易中提交其公钥和签名(每次交易的签名都不同,但均从同一个私钥生 成)。比特币网络中的所有人都可以通过所提交的公钥和签名进行验证,并确认该交易是否有效,即确认支付者在该时刻对所交易的比特币拥有所有权。
提示 大多数比特币钱包工具为了方便会将私钥和公钥以密钥对的形式存储在一起。然而,公钥可以由私钥计算得到, 所以只存储私钥也是可以的。
1.2 私钥和公钥
一个比特币钱包中包含一系列的密钥对,每个密钥对包括一个私钥和一个公钥。私钥(k)是一个数字,通常是随机选出的。有了私钥,我们就可以使用椭圆曲线乘法这个单向加密函数产生一个公钥(K)。有了公钥(K),我们就可以使 用一个单向加密哈希函数生成比特币地址(A)。在本节中,我们将从生成私钥开始,讲述如何使用椭圆曲线运算将私 钥生成公钥,并最终由公钥生成比特币地址。私钥、公钥和比特币地址之间的关系如下图所示。
为什么使用非对称加密(公钥/私钥)?
为什么在比特币中使用非对称密码术? 它不是用于“加密”(make secret)交易。 相反,非对称密码学的有用属性是生成数字签名的能力。 可以将私钥应用于交易的数字指纹以产生数字签名。 该签名只能由知晓私钥的人生成。 但是,访问公钥和交易指纹的任何人都可以使用它们来验证签名。 这种非对称密码学的适用性使得任何人都可以验证每笔交易的每个签名,同时确保只有私钥的所有者可以产生有效的签名。
1.3 私钥
私钥就是一个随机选出的数字而已。一个比特币地址中的所有资金的控制取决于相应私钥的所有权和控制权。在比特币交易中,私钥用于生成支付比特币所必需的签名以证明对资金的所有权。私钥必须始终保持机密,因为一旦被泄露给第三 方,相当于该私钥保护之下的比特币也拱手相让了。私钥还必须进行备份,以防意外丢失,因为私钥一旦丢失就难以复原,其所保护的比特币也将永远丢失。
提示 比特币私钥只是一个数字。你可以用硬币、铅笔和纸来随机生成你的私钥:掷硬币256次,用纸和笔记录正反面并转换为0和1,随机得到的256位二进制数字可作为比特币钱包的私钥。该私钥可进一步生成公钥。
从一个随机数生成私钥 生成密钥的第一步也是最重要的一步,是要找到足够安全的熵源,即随机性来源。生成一个比特币私钥在本质上与“在1 到2^256之间选一个数字”无异。只要选取的结果是不可预测或不可重复的,那么选取数字的具体方法并不重要。比特币软件使用操作系统底层的随机数生成器来产生256位的熵(随机性)。通常情况下,操作系统随机数生成器由人工的随机源进行初始化,这就是为什么也可能需要不停晃动鼠标几秒钟。
更准确地说,私钥可以是1和n-1之间的任何数字,其中n是一个常数(n=1.158 * 10^77,略小于2^256),并被定义为由比特币所使用的椭圆曲线的阶(见椭圆曲线密码学解释)。要生成这样的一个私钥,我们随机选择一个256位的数字,并检查它是否小于n-1。从编程的角度来看,一般是通过在一个密码学安全的随机源中取出一长串随机字节,对其使用SHA256哈希算法进行运算,这样就可以方便地产生一个256位的数字。如果运算结果小于n-1,我们就有了一个合适的私钥。否则,我们就用另一个随机数再重复一次。
警告 不要自己写代码或使用你的编程语言提供的简易随机数生成器来获得一个随机数。使用密码学安全的伪随机数生成器(CSPRNG),并且需要有一个来自具有足够熵值的源的种子。使用随机数发生器的程序库时,需仔细研读其文档,以确保它是加密安全的。正确实施CSPRNG是密钥安全性的关键所在。
以下是一个随机生成的私钥(k),以十六进制格式表示(256位的二进制数,以64位十六进制数显示,每个十六进制数占4位):
1E99423A4ED27608A15A2616A2B0E9E52CED330AC530EDCC32C8FFC6A526AEDD
提示比特币私钥空间的大小是2^256,这是一个非常大的数字。用十进制表示的话,大约是10^77,而可见宇宙被估计只含有10^80个原子。
要使用比特币核心客户端生成一个新的密钥,可使用 getnewaddress 命令。出于安全考虑,命令运行后只 显示生成的公钥,而不显示私钥。如果要bitcoind显示私钥,可以使用 dumpprivkey 命令。 dumpprivkey 命令会把私钥以 Base58校验和编码格式显示,这种私钥格式被称为钱包导入格式(WIF,Wallet Import Format),在“私钥的格式”一节有详细讲解。下面给出了使用这两个命令生成和显示私钥的例子:
$ bitcoin-cli getnewaddress 1J7mdg5rbQyUHENYdx39WVWK7fsLpEoXZy $ bitcoin-cli dumpprivkey 1J7mdg5rbQyUHENYdx39WVWK7fsLpEoXZy KxFC1jmwwCoACiCAWZ3eXa96mBM6tb3TYzGmf6YwgdGWZgawvrtJ
dumpprivkey 命令打开钱包提取由 getnewaddress 命令生成的私钥。除非密钥对都存储在钱包里,否则bitcoind的并不能从公钥得知私钥。 dumpprivkey 命令才有效。
提示 dumpprivkey命令无法从公钥得到对应的私钥,因为这是不可能的。这个命令只是显示钱包中已有也就是由getnewaddress命令生成的私钥。
您还可以使用Bitcoin Explorer命令行工具(请参阅附录中的[appdx_bx])使用命令seed,ec-new和ec-to-wif生成和显示私钥:
$ bx seed | bx ec-new | bx ec-to-wif 5J3mBbAH58CpQ3Y5RNJpUKPE62SQ5tfcvU2JpbnkeyhfsYB1Jcn
比特币地址
比特币地址是一个由数字和字母组成的字符串,可以与任何想给你比特币的人分享。由公钥(一个同样由数字和字母组 成的字符串)生成的比特币地址以数字“1”开头。
下面是一个比特币地址的例子:
1J7mdg5rbQyUHENYdx39WVWK7fsLpEoXZy
在交易中,比特币地址通常以收款方出现。如果把比特币交易比作一张支票,比特币地址就是收款人,也就是我们要写入收款人一栏的内容。一张支票的 收款人可能是某个银行账户,也可能是某个公司、机构,甚至是现金支票。支票不需要指定一个特定的账户,而是用一个抽象的名字作为收款人,这使它成为一种相当灵活的支付工具。与此类似,比特币地址使用类似的抽象,也使比特币交易变得很灵活。比特币地址可以代表一对公钥和私钥的所有者,也可以代表其 它东西,比如会在后面的“P2SH (Pay-to-Script-Hash)”一节讲到的付款脚本。现在,让我们来看一个简单的例子,由公钥生成比特币地址。
比特币地址可由公钥经过单向的加密哈希算法得到。哈希算法是一种单向函数,接收任意长度的输入产生指纹或哈希。加密哈希函数在比特币中被广泛使用 :比特币地址、脚本地址以及在挖矿中的工作量证明算法。由公钥生成比特币地址时使用的算法是Secure Hash Algorithm (SHA)和the RACE Integ rity Primitives Evaluation Message Digest (RIPEMD),具体地说是SHA256和RIPEMD160。
以公钥 K 为输入,计算其SHA256哈希值,并以此结果计算RIPEMD160 哈希值,得到一个长度为160位(20字节)的数字:
A = RIPEMD160(SHA256(K))
公式中,K是公钥,A是生成的比特币地址。
提示比特币地址与公钥不同。比特币地址是由公钥经过单向的哈希函数生成的。
通常用户见到的比特币地址是经过“Base58Check”编码的(参见“Base58和Base58Check编码”一节),这种编码 使用了58个字符(一种Base58数字系统)和校验码,提高了可读性、避免歧义并有效防止了在地址转录和输入中产生 的错误。Base58Check编码也被用于比特币的其它地方,例如比特币地址、私钥、加密的密钥和脚本哈希中,用来提高可读性和录入的正确性。下一节中我们会详细解释Base58Check的编码和解码机制,以及它产生的结果。
下图描述了如何从公钥生成比特币地址。
2.1 Base58和Base58Check编码
为了更简洁方便地表示长串的数字,使用更少的符号,许多计算机系统会使用一种以数字和字母组成的大于十进制的表示法。例如,传统的十进制计数系统使用0-9十个数字,而十六进制系统使用了额外的 A-F 六个字母。一个同样的数字,它的十六进制表 示就会比十进制表示更短。甚至更加简洁,Base64使用了26个小写字母、26个大写字母、10个数字以及两个符号(例 如“+”和“/”),用于在电子邮件这样的基于文本的媒介中传输二进制数据。Base64通常用于编码邮件中的附件。Base58 是一种基于文本的二进制编码格式,用在比特币和其它的加密货币中。这种编码格式不仅实现了数据压缩,保持了易读 性,还具有错误诊断功能。Base58是Base64编码格式的子集,同样使用大小写字母和10个数字,但舍弃了一些容易错 读和在特定字体中容易混淆的字符。具体地,Base58不含Base64中的0(数字0)、O(大写字母o)、l(小写字母 L)、I(大写字母i),以及“+”和“/”两个字符。简而言之,Base58就是由不包括(0,O,l,I)的大小写字母和数字组成。
比特币的Base58字母表
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
为了增加防止打印和转录错误的安全性,Base58Check是一种常用在比特币中的Base58编码格式,比特币有内置的检查错误的编码。检验和是添加到正在编码的数据末端的额外4个字节。校验和是从编码的数据的哈希值中得到的,所以可以用来检测并避免转录和输入中产生的错误。使用Base58check编码时,解码软件会计算数据的校验和并和编码中自带的校验和进行对比。二者不匹配则表明有错误产生,那么这个Base58Check的数据就是无效的。一个错误比特币地址就不会被钱包软件认为是有效的地址,否则这种错误会造成资金的丢失。
为了将数据(数字)转换成Base58Check格式,首先我们要对数据添加一个称作“版本字节”的前缀,这个前缀用来识别编码的数据的类 型。例如,比特币地址的前缀是0(十六进制是0x00),而对私钥编码时前缀是128(十六进制是0x80)。 表4-1会列出一些常见版本的前缀。
接下来,我们计算“双哈希”校验和,意味着要对之前的结果(前缀和数据)运行两次SHA256哈希算法:
checksum = SHA256(SHA256(prefix+data))
在产生的长32个字节的哈希值(两次哈希运算)中,我们只取前4个字节。这4个字节就作为检验错误的代码或者校验和。校验码会添加到数据之后。
结果由三部分组成:前缀、数据和校验和。这个结果采用之前描述的Base58字母表编码。下图描述了Base58Check编 码的过程。
在比特币中,大多数需要向用户展示的数据都使用Base58Check编码,可以实现数据压缩,易读而且有错误检验。 Base58Check编码中的版本前缀是用来创造易于辨别的格式,在Base58里的格式在Base58Check编码的有效载荷的开始包含了明确的属性。这些属性使用户可以轻松明确被编码的数据的类型以及如何使用它们。例如我们可以看到他们的不同,Base58Check编码的比特币地址是以1开头的,而Base58Check编码的私钥WIF是以5开头的。表4-1展示了一些版本前缀和他们对应的Base58格式。
下表 Base58Check版本前缀和编码后的结果
我们回顾比特币地址产生的完整过程,从私钥、到公钥(椭圆曲线上某个点)、再到两次哈希的地址,到最终的 Base58Check编码。例4-3的C++代码完整详细的展示了从私钥到Base58Check编码后的比特币地址的 步骤。代码中使用“3.3 其他客户端、资料库、工具包 ”一节中介绍的libbitcoin library来实现某些辅助功能。
从私钥中创建Base58Check编码的比特币地址
link:code/addr.cpp[]
密钥的格式
公钥和私钥的都可以有多种格式。一个密钥被不同的格式编码后,虽然结果看起来可能不同,但是密钥所编码数字并没有改变。这些不同的编码格式主要是用来方便人们无误地使用和识别密钥。
私钥的格式
私钥可以以许多不同的格式表示,所有这些都对应于相同的256位的数字。表4-2展示了私钥的三种常见格式。不同的格式用在不同的场景下。十六进制和原始的二进制格式用在软件的内部,很少展示给用户看。WIF格式用在钱包之间密钥的输入和输出,也用于代表私钥的二维码(条形码)。
同样的私钥,不同的格式
这些表示法都是用来表示相同的数字、相同的私钥的不同方法。虽然编码后的字符串看起来不同,但不同的格式彼此之 间可以很容易地相互转换。请注意,“raw binary”未显示在表4-3 示例中,根据定义此处显示的任何编码的格式,不是raw binary数据。
比特币 – 钱包
正如我们已经讨论过的,比特币是一种由 0 和 1 组成的虚拟货币。它们被收集并存储在称为钱包的软件组合中。钱包通过用于发送和接收资金的唯一地址来识别加密货币的数量。
加密货币钱包是一种数字钱包,用于存储和交易不同的加密货币。加密钱包并不像现实世界的钱包那样完全“存储”货币。
相反,它存储有助于发送和接收资金的公钥和私钥。比特币所有者将比特币保存在类似于实体钱包的在线钱包或纸质钱包中。
钱包持有每个比特币的密钥,保护它们并防止任何欺诈。
1. 什么是公钥和私钥?
公钥是其他人可以向您汇款的地址,而私钥是您将用来向任何人汇款的地址。重要的是只有您应该知道您的私钥;否则任何知道你私钥的人都可以窃取你的钱。
无论如何,您都不应该丢失或泄露您的私钥。否则,丢失您的私钥就像丢失您的钱一样。您应该至少使用两种不同的技术来保存和存储您的私钥。
到目前为止,让我们讨论两种可用于存储加密货币的存储方法;热库和冷库。
作为回顾,钱包用于 –
- 作为加密货币发送和接收资金
- 收集和存储矿工创造的比特币
- 将区块链与网络的所有节点同步
打开钱包相当简单;可以从互联网上下载免费和付费的比特币钱包。有些只处理比特币,而另一些则处理多种加密货币。
比特币钱包只是为您管理比特币私钥的应用程序、软件、网站或设备。
2.比特币钱包的类型
市场现在有以下几种类型的钱包
- 硬件
- 纸
- 手机钱包(移动钱包)
- 台式机
- 网络
2. 1. 纸钱包
纸质钱包是一张纸,上面印有公共地址和私人地址,通常采用二维码的形式。公共地址用于接收比特币,私有地址用于发送或转移存储在该地址的比特币。纸质钱包应安全使用,不得泄露或丢失。纸钱包可以通过Bitcoinpaperwallet或Bitaddress等服务生成,然后可以打印出来。
2.2移动、桌面和网络钱包
这些是允许比特币交易的手机、台式机、笔记本电脑或网站上可用的软件应用程序。
对于那些经常使用比特币、支付商品和服务的人来说,移动比特币钱包是必不可少的工具。移动应用程序在您的智能手机上运行,拥有您的私钥并允许直接从您的手机付款。
一个完整的比特币客户端需要访问完整的区块链账本,这需要数 GB 的存储空间。因此,移动钱包使用简化支付验证 (SPV) 技术,该技术适用于区块链的非常小的子集。尽管移动钱包是比特币交易的便捷解决方案,但手机钱包很容易受到黑客攻击,而且如果手机丢失,其他人也可以访问钱包。
2.3 硬件钱包
硬件钱包是一种保护比特币的物理电子设备。硬件钱包必须连接到您的计算机或智能手机,然后才能使用比特币。
三个最受欢迎和最好的比特币硬件钱包如下 –
- 莱杰纳米 S
- 特雷佐
- 保持密钥
如果需要存储大量比特币并且安全、可靠和方便,硬件钱包是首选。比特币硬件钱包将私钥与易受黑客攻击的联网设备隔离开来。您的私钥保存在硬件钱包的安全离线环境中。
2.4 热钱包
热钱包是在计算机、手机或平板电脑等联网设备上运行的比特币钱包。私钥是热钱包在联网设备上生成的密码。因此,我们不能说这些私钥是完全安全的。
热钱包就像你用来存储一些现金的实体钱包,而不是你的毕生积蓄。如果您进行频繁和小额付款,热钱包很有用,但不适合存储大量比特币。
软件钱包允许我们发送和接收比特币,并且大部分是免费的。有一些付费软件钱包提供一些额外的增值服务。
3. 开设比特币钱包账户
我们可以访问 coinbase.org 等网站并使用我们的姓名、电子邮件 ID 和电话号码进行注册。开一个钱包账户就像开一个银行账户,我们可以在其中发送、接收和存储比特币。
在 Coinbase,我们可以创建多个钱包,这是组织您的开支和储蓄记录的好方法。
Coinbase默认有以下钱包,分别是
- 比特币BTH钱包、
- 比特币现金BCH钱包、
- 以太坊ETH钱包
- 莱特币LTC钱包。
你也有一个美元钱包,这样你就可以用美元买卖加密货币。
Coinbase 上的每个帐户都是一堆地址。 Coinbase 上的每笔交易都会自动生成新地址,并永远与您的帐户保持映射,并且可以安全地重复使用它们。
每个钱包帐户都与显示的地址和二维码相关联。例如,选择比特币钱包,然后点击 BTC 钱包地址,会显示下面的地址及其二维码。
我们可以下载比特币软件客户端,这可能需要几个小时才能将所有块下载到我们现在充当网络节点的计算机上。我们必须确保为超过 145 GB 的完整区块链提供足够的带宽和存储空间。也可以在不下载比特币客户端的情况下使用钱包。
4.比特币钱包进一步阅读
4.1钱包技术概述
一个常见误解是,比特币钱包里含有比特币。 事实上,钱包里只含有钥匙。 “钱币”被记录在比特币网络的区块链中。 用户通过钱包中的密钥签名交易,从而来控制网络上的钱币。 在某种意义上,比特币钱包是密钥链。
提示比特币钱包只含有密钥,而不是钱币。 每个用户有一个包含多个密钥的钱包。 钱包只包含私钥/公钥对的密钥链。 用户用密钥签名交易,从而证明他们拥有交易输出(他们的钱币)。 钱币以交易输出的形式存储在区块链中(通常记为vout或txout)。
有两种主要类型的钱包,区别在于它们包含的多个密钥是否相互关联。
第一种类型是非确定性钱包(nondeterministic wallet),其中每个密钥都是从随机数独立生成的。密钥彼此无关。这种钱包也被称为“Just a Bunch Of Keys(一堆密钥)”,简称JBOK钱包。
第二种类型是确定性钱包(deterministic wallet),其中所有的密钥都是从一个主密钥派生出来,这个主密钥即为种子(seed)。该类型钱包中所有密钥都相互关联,如果有原始种子,则可以再次生成全部密钥。确定性钱包中使用了许多不同的密钥推导方法。最常用的推导方法是使用树状结构,称为分级确定性钱包或HD钱包。
确定性钱包由种子衍生创造。为了便于使用,种子被编码为英文单词,也称为助记词。
4.2非确定性(随机)钱包
在最早的一批比特币客户端中( Bitcoin Core,现在称作比特币核心客户端),钱包只是随机生成的私钥集合。这种类型的钱包被称作零型非确定钱包。举个例子,比 特币核心客户端预先生成100个随机私钥,从最开始就生成足够多的私钥并且每个密钥只使用一次。这种钱包现在正在被确定性钱包替换,因为它们难以管理、 备份以及导入。随机密钥的缺点就是如果你生成很多私钥,你必须保存它们所有的副本。这就意味着这个钱包必须被经常性 地备份。每一个密钥都必须备份,否则一旦钱包不可访问时,钱包所控制的资金就付之东流。这种情况直接与避免地址重复使用的原则相冲突——每个比特币地址只能用一次交易。地址重复使用将多个交易和地址关联在一起,这会减少隐私。当你想避免重复使用地址时,零型非确定性钱包并不是好的选择,因为你要创造过多的私钥并且要保存它们。虽然比特币核心客户端包含零型钱包,但比特币的核心开发者并不鼓励大家使用。
下图展示的是一个非确定性钱包,其含有的随机密钥是个松散的集合。
提示除了简单的测试之外,不要使用非确定性钱包。 它们对于备份和使用来说太麻烦了。 相反,推荐使用基于行业标准的HD钱包,可以用种子助记词进行备份。
4.3 确定性(种子)钱包
确定性,或者“种子”钱包包含通过使用单项离散函数而可从公共的种子生成的私钥。种子是随机生成的数字。这个数字也含有比如索引号码或者可生成私钥的“链码”(参见“ 分层确定性钱包(BIP0032/BIP0044)”一节)。在确定性钱包中,种子足够恢复所有的已经产生的私钥,所以只用在初始创建时的一个简单备份就足以搞定。并且种子也足够让钱包导入或者导出。这就很容易允许使用者的私钥在钱包之间轻松转移。
下图展示了确定性钱包的逻辑图。
4.4 分层确定性钱包(HD Wallets (BIP-32/BIP-44))
确定性钱包被开发成更容易从单个“种子”中生成许多密钥。确定性钱包的最高级形式是通过BIP0032标准定义的HD钱包。HD钱包包含以树状结构衍生的密钥,使得父密钥可以衍生一系列子密钥,每个子密钥又可以衍生出一系列孙密钥,以此类推,无限衍生。图5-3展示了树状结构。
相比较随机(不确定性)密钥,HD钱包有两个主要的优势。第一,树状结构可以被用来表达额外的组织含义。比如当一个特定分支的子密钥被用来接收交易收入并且有另一个分支的子密钥用来负责支付花费。不同分支的密钥都可以被用在企业环境中,这就可以支配不同的分支部门、子公司、具体功能以及会计类别。
HD钱包的第二个好处就是它可以允许使用者去建立一个公共密钥的序列而不需要访问相对应的私钥。这可允许HD钱包在不安全的服务器中使用或者在每笔交易中发行不同的公共钥匙。公共钥匙不需要被预先加载或者提前衍生,而在服务器中不需要可用来支付的私钥。
4.5 种子和助记词(BIP-39)
HD钱包具有管理多个密钥和地址的强大机制。由一系列英文单词生成种子是个标准化的方法,这样易于在钱包中转移、导出和导入,如果HD钱包与这种方法相结合,将会更加有用。 这些英文单词被称为助记词,标准由BIP-39定义。 今天,大多数比特币钱包(以及其他加密货币的钱包)使用此标准,并可以使用可互操作的助记词导入和导出种子进行备份和恢复。
让我们从实际的角度来看以下哪种种子更容易抄录、阅读、导出以及导入。
16进制表示的种子: 0C1E24E5917779D297E14D45F14E1A1A
助记词表示的种子:
army van defense carry jealous true garbage claim echo media make crunch
4.6 钱包最佳实践
由于比特币钱包技术已经成熟,出现了一些常见的行业标准,使得比特币钱包具备广泛互操作,易于使用,安全和灵活的特性。这些常用的标准是:
助记码,基于BIP-39
HD钱包,基于BIP-32
多用途HD钱包结构,基于BIP-43
多币种和多帐户钱包,基于BIP-44
这些标准可能会随着发展而改变或过时,但是现在它们形成了一套互锁技术,这些技术已成为比特币的事实上的钱包标准。
这些标准已被广泛的软件和硬件比特币钱包采用,使所有这些钱包互操作。用户可以导出在其中一个钱包上生成的助记符,并将其导入另一个钱包,实现恢复所有交易,密钥和地址。
列举支持这些标准的软件钱包,包括(按字母顺序排列)Breadwallet,Copay,Multibit HD和Mycelium。列举支持这些标准的硬件钱包,包括(按字母顺序排列)Keepkey,Ledger和Trezor。
以下部分将详细介绍这些技术。
提示如果您正准备开发一个比特币钱包,那么它应该被构建为一个HD钱包,一个种子被编码为助记词代码进行备份,遵循BIP-32,BIP-39,BIP-43和BIP-44标准。
比特币 – 挖矿
1. 比特币挖矿介绍
使用比特币,创建货币的过程称为挖矿。比特币矿工使用专门的软件和硬件来验证比特币交易并解决复杂的数学问题,并以一定数量的比特币作为补偿。这就是比特币货币的发行方式,任何人都可以开采比特币。我们可以使用挖矿来创造或赚取我们自己的比特币。目前,大约每 10 分钟创建一个新区块,一个成功的矿工将获得 25 个比特币的奖励。在每 210,000 个区块添加到链中后,这个共同商定的价值将减半。
比特币挖掘涉及验证交易记录并将其添加到比特币的过去交易或区块链的公共分类账中。区块链用于确认交易已发生在网络的其余部分。
比特币节点使用区块链来合法或验证真正的比特币交易,并防止比特币的双重支出,即停止重新花费已经在其他地方花费的硬币。
比特币挖矿被故意设计为资源密集型和困难的,因此矿工每天开采的区块数量保持适度和稳定。单个块还需要包含工作证明才能被视为有效。每次收到区块时,其他比特币节点都会验证此工作量证明。比特币使用 hashcash 工作量证明功能进行工作。
挖矿的主要目标是促进比特币节点达成安全、防篡改的共识。挖矿也是用于将比特币引入比特币生态系统的机制:矿工赚取(如果有的话)交易费用以及新创建的比特币的“奖励或赏金”。
这既可以用于分发新硬币,也可以激励人们保护系统。
2.工作量证明
区块链中有一个很重要的概念,那就是工作量证明,矿工挖矿如何挖出一个新的区块,靠的就是工作量证明。工作量证明(POW)从字面意思就知道,就是证明一个人干了这份活,得到大家认可之后,产生一个新区块,然后给干这份工作的人一定的比特币作为报酬。
2.1哈希函数
哈希函数(Hash Function),也称为散列函数,给定一个输入x,它会算出相应的输出H(x)。哈希函数的主要特征是:
- 输入x可以是任意长度的字符串
- 输出结果即H(x)的长度是固定的,比特币采用的是SHA256
- 输入输出是不可逆的,通过输入x能到到H(x),但是知道输出H(x)无法计算得出输入是x
- 对于长度为n的字符串x,计算出H(x)的时间复杂度应为O(n),即字符串越长,则计算时间越久。
对于比特币加密系统使用的hash函数,需要具备以下几点要求:
- 免碰撞,即避免输入两个不同的数,得到一个相同的输出。
这一点是无法避免的,就拿比特币使用的SHA256算法,有2256种输出,如果我们进行2256+1次输入,那么必然会产生一次碰撞;甚至从概率的角度看,进行2130次输入就会有99%的可能发生一次碰撞。但是2256是非常大的,发现碰撞的几率也是极其小的,几乎不太可能存在碰撞的可能性。
2. 隐匿性,也就是说,对于一个给定的输出结果H(x),想要逆推出输入x,在计算上是不可能的。
2.2工作量证明的基本原理
有两类证明工作协议。
- Challenge-response协议假设请求者(客户端)和提供者(服务器)之间相互连接。请求者发起一个请求,提供者选择一个挑战,请求者为了这个挑战进行工作,这个响应被提供者发回并检查。由于挑战是由供应商当场选择的,其难度可以适当调整。请求者完成这份工作后,将自己的工作量的成果提交到服务端进行验证,通过则开始下面的工作。
- Solution-verification协议不会假定这样的链接:因此,在请求者寻求解决方案之前,必须自行解决问题,并且提供者必须检查问题选择和找到的解决方案。大多数这样的方案是无限的概率迭代过程。
是不是比较难懂,我们举一个例子,因为比特币采用的工作证明是第二种,所以我们举一个Solution-verification协议的例子。【重点理解这个例子】
给定的一个基本的字符串”Hello, world!”,我们给出的工作量要求是
可以在这个字符串后面添加一个整数值(在比特币中为nonce的标记),对变更后的字符串进行SHA256哈希运算,如果得到的哈希结果(以16进制的形式表示)是以”0000″开头的,则验证通过。为了达到这个工作量证明的目标。我们需要不停的递增值,对得到的新字符串进行SHA256哈希运算。
按照这个规则,我们预计需要经过4251次计算才能找到恰好前4位为0的哈希散列。
"Hello, world!0" => 1312af178c253f84028d480a6adc1e25e81caa44c749ec81976192e2ec934c64 "Hello, world!1" => e9afc424b79e4f6ab42d99c81156d3a17228d6e1eef4139be78e948a9332a7d8 "Hello, world!2" => ae37343a357a8297591625e7134cbea22f5928be8ca2a32aa475cf05fd4266b7 ... "Hello, world!4248" => 6e110d98b388e77e9c6f042ac6b497cec46660deef75a55ebc7cfdf65cc0b965 "Hello, world!4249" => c004190b822f1669cac8dc37e761cb73652e7832fb814565702245cf26ebb9e6 "Hello, world!4250" => 0000c3af42fc31103f1fdc0151fa747ff87349a4714df7cc52ea464e12dcd4e9
注意观察前几位
在这个例子中,数学期望的计算次数,就是我们要求的“工作量”,重复多次进行的工作量证明会是一个符合统计学规律的概率事件。
2.3比特币的工作量证明
比特币网络中任何一个节点,如果想生成一个新的区块并写入区块链
关键的三个要素是工作量证明函数、区块及难度值。工作量证明函数是计算方法,区块决定了输入数据,难度值决定了所需要的计算量。
1.工作量证明函数
用的SHA256
2. 区块
比特币的区块由区块头及该区块所包含的交易列表组成。区块头的大小为80字节,由4字节的版本号、32字节的上一个区块的散列值、32字节的Merkle Root Hash、4字节的时间缀(当前时间)、4字节的当前难度值、4字节的随机数组成。将整个80字节的区块作为输入
区块的大致结构如图所示:
第二行就是能证明工作量的hash值.
第六行是nonce就是计算的次数,越高则证明难度越大
3. 难度值
难度值(difficulty)是矿工们在挖矿时候的重要参考指标,它决定了矿工大约需要经过多少次哈希运算才能产生一个合法的区块。
比特币的区块大约每10分钟生成一个,新区块的产生保持都基本这个速率,难度值必须根据全网算力的变化进行调整。简单地说,难度值被设定在无论挖矿能力如何,新区块产生速率都保持在10分钟一个。
每2016个区块,所有节点都会按统一的公式自动调整难度,这个公式是由最新2016个区块的花费时长与期望时长(期望时长为20160分钟即两周,是按每10分钟一个区块的产生速率计算出的总时长)比较得出的,根据实际时长与期望时长的比值,进行相应调整(或变难或变易)。也就是说,如果区块产生的速率比10分钟快则增加难度,比10分钟慢则降低难度。
这个公式可以总结为如下形式:
新难度值 = 旧难度值 * ( 过去2016个区块花费时长 / 20160 分钟 )
工作量证明需要有一个目标值。比特币工作量证明的目标值(Target)的计算公式如下:
目标值 = 最大目标值 / 难度值
其中最大目标值为一个恒定值:
0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
目标值的大小与难度值成反比。比特币工作量证明的达成就是矿工计算出来的区块哈希值必须小于目标值。
我们也可以简单理解成,比特币工作量证明的过程,就是通过不停的变换区块头(即尝试不同的nouce值)作为输入进行SHA256哈希运算,找出一个特定格式哈希值的过程(即要求有一定数量的前导0)。而要求的前导0的个数越多,代表难度越大。
2.4 工作量证明的定义
工作量证明是一系列数据片段,这些数据片段含有为满足某些要求而产生的资源密集型和耗时的数据。
产生工作量证明通常是一个低概率的随机过程,在产生有效的工作量证明之前需要进行大量的试验和错误。
此外,矿工还将获得用户支付的交易费用。费用是矿工将交易包含在他们的区块中的一种激励。未来,这些费用将占采矿收入的很大一部分。
有两种主要类型的挖矿:Solo 和 Pool。
单独挖矿
单独采矿是单独或您自己完成的。使用普通台式机或笔记本电脑的配置,由于采矿需要巨大的计算能力,因此需要数年才能获得实际的比特币。
矿池挖矿
我们可以使用的第二种方法是矿池挖矿。它涉及在任何一个不同的池站点注册一个帐户。这些网站使用他们的软件和硬件,汇集了很多人的计算机的挖掘工作。池中的每个人都会获得少量比特币作为他的份额作为奖励。对于个人而言,池化比单独挖矿更可取。
比特机(BitMinter)
BitMinter 是一个比特币矿池,旨在让任何人都能轻松制作比特币。它是最古老的游泳池之一。自 2011 年开通以来,已有超过 45 万人注册了账户。在早期,CPU 和 GPU 用于比特币挖矿。现在我们需要有专门的专用集成电路(简称 ASIC)机器来进行比特币挖掘。这些机器的速度由它们的哈希率给出,目前的数量级为 tera hashes/second 或 T H/s。
ASIC 在 2013 年接管了挖矿。用普通 PC 挖一个比特币需要相当长的时间。您将需要一台 1 TH/s 或更快的 ASIC 机器来在家中开始小型采矿作业。
如何使用BitMinter挖矿?
以下是使用 BitMinter 进行挖矿的过程 –
第 1 步 – 首先,我们使用我们的 google 或 yahoo 邮件帐户在 BitMinter 网站上注册,然后通过单击从 BitMinter 收到的邮件中的链接来确认我们的邮件 ID。
第 2 步 – 除了创建 BitMinter 帐户时创建的用户名之外,我们还使用工人名称和工人密码设置了一个工人帐户。我们将 Bitminter 客户端链接到工人帐户。
Step 3 – 然后我们通过填写帐户详细信息登录,如下所示。
第 4 步 – 在此之后通过打开 BitMinter 客户端应用程序,我们得到以下控制台,如下所示 –
第 5 步 – 我们按下引擎启动按钮开始挖掘。我们必须确保我们的机器的算力速度至少为 2500 万哈希/秒或 25M H/s。
第 6 步 – 我们还需要更改一些有关自动化的设置。我们可以让我们的机器整天整夜开着。
第 7 步 – 我们可以转到“设置”>“选项”来更改这些设置。自动设备是您设置的设备列表,以便它们在软件启动时自动启动。
第 8 步 – 我们将让我们的机器在夜间运行,从而增加制造更多比特币的可能性。
挖矿通过查找随机字符串来保护交易,这些字符串使块散列到具有许多前导零的值。零越多,解密就越困难。挖比特币并不意味着找到新的比特币,这些是由网络奖励完成对一个区块的所有未完成交易的验证并解决一些复杂的数学难题。
赚取比特币的方法
赚取比特币的最佳方式是找到并执行以比特币支付的工作。我们也可以购买比特币。最后,如果我们想通过艰苦的方式赚取它们,我们应该去挖矿。要挖掘比特币,我们可以在网站上购买一些便宜的硬件。
更深阅读
“挖矿”这个词有点误导。 一般意义的挖矿类似贵金属的提取,更多将人们的注意力集中到创造每个区块中获得的奖励。 虽然挖矿能够获得这种奖励作为激励,但挖矿的主要目的不是这个奖励或者产生新币。 如果您只是把挖矿视为创建新币的过程,则会将比特币系统中的这个手段(激励)作为挖矿过程的目标。 挖矿最重要的作用是巩固了去中心化的清算交易机制,通过这种机制,交易得到验证和清算//清除。 挖矿是使得比特币与众不同的发明,它实现去中心化的安全机制,是P2P数字货币的基础。
挖矿确保了比特币系统安全,并且在没有中央权力机构的情况下实现了全网络范围的共识。 新币发行和交易费的奖励是将矿工的行动与网络安全保持一致的激励计划,同时实现了货币发行。
提示:挖矿的目的不是创造新的比特币。 这是激励机制。 挖矿是一种机制,这种机制实现了去中心化的安全。
矿工们验证每笔新的交易并把它们记录在总帐簿上。每10分钟就会有一个新的区块被“挖掘”出来,每个区块里包含着从 上一个区块产生到目前这段时间内发生的所有交易,这些交易被依次添加到区块链中。我们把包含在区块内且被添加到 区块链上的交易称为“确认”(confirmed)交易,交易经过“确认”之后,新的拥有者才能够花费他在交易中得到的比特币。
矿工们在挖矿过程中会得到两种类型的奖励:创建新区块的新币奖励,以及区块中所含交易的交易费。为了得到这些奖 励,矿工们争相完成一种基于加密哈希算法的数学难题,这些难题的答案包括在新区块中,作为矿工的计算工作量的证 明,被称为”“工作量证明”。该算法的竞争机制以及获胜者有权在区块链上进行交易记录的机制,这二者是比特币安全的基石。
新比特币的生成过程被称为挖矿,是因为它的奖励机制被设计为速度递减模式,类似于贵重金属的挖矿过程。比特币的货币是通过挖矿发行的,类似于中央银行通过印刷银行纸币来发行货币。矿工通过创造一个新区块得到的比特币数量大约 每四年(或准确说是每210,000个块)减少一半。开始时为2009年1月每个区块奖励50个比特币,然后到2012年11月减 半为每个区块奖励25个比特币。之后在2016年7月 再次减半为每个新区块奖励12.5个比特币。基于这个公 式,比特币挖矿奖励以指数方式递减,直到2140年。届时所有的比特币(20,999,999,980)全部发行完毕。换句话说 在2140年之后,不会再有新的比特币产生。
矿工们同时也会获取交易费。每笔交易都可能包含一笔交易费,交易费是每笔交易记录的输入和输出的差额。在挖矿过 程中成功“挖出”新区块的矿工可以得到该区块中包含的所有交易“小费”。目前,这笔费用占矿工收入的0.5%或更少,大 部分收益仍来自挖矿所得的比特币奖励。然而随着挖矿奖励的递减,以及每个区块中包含的交易数量增加,交易费在矿 工收益中所占的比重将会逐渐增加。在2140年之后,所有的矿工收益都将由交易费构成。
比特币交易脚本语言操作符,常量和符号
Bitcore的功能列表
比特币 – 交易所
比特币套利和比特币交易类型
对于专业投资者和初学者来说,比特币交易可以带来高额利润。市场是新的,高度分散的并且具有巨大的价差。
它对套利和保证金交易开放。因此,许多人可以通过交易比特币赚钱。
比特币套利
套利基本上是在一个市场购买一种证券或资产,如比特币,同时在另一个市场以更高的价格出售,从价格的暂时差异中获利。
比特币保证金交易
保证金交易是交易者从经纪人那里借钱购买或出售比交易者用他的资金能够获得的更多的股票或比特币的过程。这就像增加交易者的杠杆和购买力的短期贷款。
每个比特币泡沫都会引起炒作,使比特币成为新闻。媒体的关注让更多的人对比特币感兴趣,价格一直上涨,直到炒作平息。
比特币交易
比特币交易很简单,因为比特币是全球货币并且很容易在任何地方发送。比特币的进入门槛很小。在许多情况下,比特币交易甚至不需要验证。由于比特币价格的急剧上涨,投资者和投机者被吸引到交易中获利。
没有官方的比特币交易所或官方的比特币价格。这使得套利交易成为可能。与其他股票交易不同,比特币交易 24/7 全天候运作。
比特币交易之所以令人兴奋,是因为比特币的剧烈价格波动、其全球性和 24/7 全天候交易。然而,了解和记住比特币交易带来的风险很重要。
比特币交易类型
当我们进入交易系统时,我们有两种工作方式。一种是日常交易或进行长期投资,在购买时等待其价值随着时间的推移而升值。
这两种策略可以同时遵循一些比特币的日常交易,同时投资一些其他比特币以获得长期收益。在这两种情况下,我们都必须在几个加密货币交易所之一开设一个账户。
Coinbase加密货币交易所
最好的选择之一是在 Coinbase 上开户,这是一种安全可靠的加密货币交易所。在 Coinbase 上,我们可以通过欧元转账或使用信用卡直接购买来购买比特币 (BTC)、以太坊 (ETH) 和莱特币 (LTC) 货币。每笔交易的费用是名义上的 4%。
Coinbase 非常简单和直观,这使其成为开始交易现在市场上重要的加密货币的完美选择。 mt.gox 曾经是日本流行的比特币交易所,直到一场骗局导致其关闭。
比特币和区块链常用术语
比特币 – 应用
比特币不是任何有形的货币,它的生产和运行基于互联网,是一种开源形式的P2P(Peer to Peer)数字“货币”。不同于人类早期的因其自然属性而选择的金银货币,也不同于近100年来人们习以为常的法币(Fiat Money)——由国家法律和主权信用支撑的纸币,比特币完全诞生于现代科技互联网时代。
比特币是区块链技术的第一个成功应用。传统金融体系的交易记录都被保存在银行中心的数据库中,而区块链则是比特币的账本,任何时刻产生的比特币的所有权以及交易记录,都记录在区块链账本中。任何人只要下载了客户端,就能接收相关信息。
比特币的地址、私钥类似于个人账户与支付密码。个人拥有的比特币被锁定在个人地址上,只有运用私钥才能解锁并发往别的地址,实现交易。交易过程中会向全网发送一份账单,其他用户会对其校验,一旦通过验证,交易行为就成功了。第一个校验出这笔交易是否有效的用户,会被奖励一笔比特币。这笔奖励的比特币分为两部分:一部分是交易的手续费,这部分由转账者支付,是系统中已经存在的比特币;另一部分则是系统新生成的比特币奖励。计算机的算力越大,越有可能得到比特币奖励。所谓的“矿工”就是专门进行验证交易信息并更新记录的人。
以下是比特币的应用列表
- 随着全球越来越多的商店接受比特币支付,比特币被用于购买商品和服务。
- 比特币交易提供了定制了一定级别的匿名性,追踪它们的踪迹相对困难。因此比特币被用于匿名交易。
- 由于比特币与任何国家/地区无关,也不受任何政府监管,因此可以轻松且廉价地进行国际支付。
- 您的交易无需任何权威机构的许可,这一事实是自由的。
- 比特币提供了一种安全的在线交易方式,因为它们使用非常强大的加密算法。
- 用户和企业喜欢比特币支付,因为无需支付信用卡费用。
- 比特币可以作为一种投资,期望它们的价值在未来会显着升值。
- 比特币可用于在 SatoshiDice、RoyalBitcoin、Bitzino、Peerbet 等在线网站上赌博。
- 随着越来越多的供应商允许比特币交易,比特币被用于在线购物。用户现在可以通过比特币钱包应用在智能手机上使用比特币进行支付。
- 与信用卡或银行付款不同,无需提供个人信息即可完成交易。因此可以避免提供身份的麻烦。
6.比特币和加密货币相关新闻
- 美国股市将大崩盘 黄金也会暴跌; 比特币大涨
- FTX创办人疑脱手顶级豪宅
- 萨尔瓦多总统亲自炒比特币,败光了一个国家
- 币圈市值蒸发2万亿美元 为何没伤到经济?
- 马斯克操弄狗狗币骗局 遭索赔2580亿元
- 狂跌70%,加密货币全线崩塌散户惨遭血洗
- Coinbase Exchanges 虚拟货币/加密货币(Cryptocurrency)交易公司
- 虚拟币一夜暴跌99.9%,曾经119.5美元的Luna币跌到0.1美元; 40万人血本无归有人自杀
- 投资银行巨头高盛 (Goldman Sachs) 确认向借贷方授予以比特币抵押的现金贷款
- 币圈茅台Luna和UST暴跌98%,2000多亿市值蒸发
- 比特币六个月下跌55% 数据显示40%投资者资不抵债
- 比特币的工作原理
- 用量子计算机破解比特币算法需要多长时间?
- 什么是区块链?为什么需要区块链?
- 什么是比特币?
- 加密货币是如何工作的?
- 虚拟货币集体闪崩,华人首富身家蒸发超100亿