2008年10月31日,中本聪(Satoshi Nakamoto)发布了叫《比特币:点对点的电子现金系统》(Bitcoin: A Peer-to-Peer Electronic Cash System)的论文,标志着比特币的诞生。
比特币是一种P2P形式的数字货币。比特币的交易记录公开透明。点对点的传输意味着一个去中心化的支付系统。
与大多数货币不同,比特币不依靠特定货币机构发行,它依据特定算法,通过大量的计算产生,比特币经济使用整个P2P网络中众多节点构成的分布式数据库来确认并记录所有的交易行为,并使用密码学的设计来确保货币流通各个环节。
比特币具有“货币”的特性,如:可流通性,可交易性,可存储性,可分割性,同时对比法币,有更好的稀缺性。但比特币价值并不是由中央权力机构赋予或物理特性(贵重金额)决定,而是由广泛的共识来决定。
在分布式系统中,多台计算机同时执行同一个任务并保持数据一致性一直是个挑战。在比特币系统中,各个节点需要通过达成“共识”来确保账本数据(通常称为“状态”)的一致性,所有节点必须遵循统一的规则。
在比特币网络中,所有节点都会接收到一组交易记录,这些记录被打包成一个区块,然后节点将区块更新到本地的账本中。如果每个节点都可以随意增加记录,那么整个网络的账本就会变得不一致。为了避免这种情况,必须确定哪个区块优先写入账本,也就是需要一个公认的区块来作为标准。如果人为指定一个节点优先,这会破坏比特币去中心化的特性,因为这相当于设立了一个中心节点。
比特币使用的共识算法叫做工作量证明(Proof of Work,PoW)。在这个机制下,哪个节点最先完成工作量证明,就能获得将区块写入账本的权利。其他节点则会以这个区块为基础,在最长链的基础上继续进行后续交易的工作量证明。
工作量证明的核心是解一个数学难题,解这个难题唯一的方法就是不断尝试,直到找到正确答案。第一个找到答案的节点会获得一定的奖励。最初每个区块的奖励是50个比特币,大约每四年奖励减半,目前每个区块的奖励是6.25个比特币。因为工作量证明的成功具有随机性,这个过程通常被称为“挖矿”,参与其中的节点被称为“矿工”。
矿工的收益不仅仅来自于区块奖励,还包括交易手续费。根据中本聪的设计,随着区块奖励逐渐减少,矿工的主要收入来源将转向交易手续费。
比特币作为一种去中心化的加密货币,有以下主要特点:
无需权威机构背书:比特币不依赖于任何政府、银行或权威机构的支持。它通过密码学和共识算法来确保安全性和信任。
点对点网络:比特币通过点对点网络运作,没有中心化的服务器。所有节点在网络中平等地参与交易验证和区块生成。
分布式账本存储:比特币的账本数据存储在区块链中,而区块链本身分布在全球成千上万的节点中,没有任何一个中心化的存储设备。每个节点都可以持有区块链的完整副本。
公开透明:比特币的账本数据向所有人公开,任何人都可以下载并存储到自己的设备上。这种透明性增强了系统的可信度和安全性。
无管理员:比特币网络没有中央管理员,所有节点共同参与网络的管理和维护。网络通过共识机制自动调节和运行。
开放参与:任何人都可以成为比特币网络的一部分,成为一个节点并参与网络管理,与其他节点享有同等的权利。
平等竞争:比特币网络中的所有节点地位平等,每个节点都有可能通过工作量证明获得下一个区块的记账权。
去中心化的供应:比特币的产生是由网络中节点通过挖矿而生成的,这个过程不受任何中心化机构控制,因此比特币的供应也是去中心化的。
自由账户生成:与传统银行不同,任何人都可以生成任意数量的比特币账户,不需要中心化机构的审批。
自由转账:任何人都可以在比特币网络中发起转账操作,不需要通过任何中心化机构的审批或许可。
但是,在现实中,比特币也有一些中心化的倾向
矿池联盟:由于比特币的奖励机制,节点争夺记账权的欲望很强烈,结果导致大量节点联合起来,形成矿池联盟。矿池成员共同努力争取记账权,并在成功后分享奖励。
矿场的集中化:矿池的出现导致比特币网络节点的某种程度中心化。这些联盟(矿场)可以集中大量计算能力,从而对整个网络的算力有较大影响。
比特币是一个去中心化的系统,没有中心化的第三方来管理账户余额。那么,比特币是如何确定某个账户的比特币属于谁的呢?
在比特币的公共共享账本中,记录了所有比特币地址(账户)持有的余额。当需要转账时,交易信息会包含以下内容:
比特币网络需要验证这笔交易是由哪个地址发起的,以确保只有持有发起地址对应私钥的人才能真正发起这笔交易。为了证明这一点,发起人需要用与发起地址对应的私钥对交易信息进行数字签名。
当创建一个新比特币地址(账户)时,首先生成一个随机数作为私钥。然后,通过椭圆曲线算法(ECDSA)从私钥计算出对应的公钥。最后,通过哈希运算和编码处理生成比特币地址。
因此,比特币的所有权实际上由私钥控制,只有掌握私钥的人才能对相应地址中的比特币进行操作。当我们持有某地址的私钥,就是持有该地址下的比特币,因此私钥必须妥善保管。
UTXO模型(Unspent Transaction Output,未花费交易输出)是比特币等加密货币采用的一种账本管理方式。它通过追踪未花费的交易输出来记录每个账户的余额和处理交易。以下是UTXO模型的简要说明:
UTXO模型通过追踪未花费的交易输出,确保每一笔交易的合法性和资金的正确流动,是比特币等加密货币系统的基础。
在区块链中,“钱包”是一个软件或硬件工具,用于生成和管理用户的加密货币地址、私钥和公钥,并与区块链网络进行交互。钱包的主要功能是帮助用户安全地存储、发送和接收加密货币。
私钥:私钥是一个随机生成的、唯一的数字,它是钱包中最重要的部分。持有私钥的用户可以对相应地址中的加密货币进行操作,如发起交易。私钥必须严格保密,一旦泄露,相关资产可能被盗。
公钥:公钥是从私钥通过加密算法生成的,它可以公开分享。公钥用于生成区块链地址,其他人可以通过这个地址向你发送加密货币。
地址:地址是公钥的简化形式,用于接收加密货币。它类似于银行账户的账号,任何人都可以使用你的地址向你发送加密货币。
交易签名:当用户发起一笔交易时,钱包会使用私钥对交易进行签名,以证明交易的合法性和发起人的身份。区块链网络的节点会验证签名,以确保交易的真实性。
软件钱包:这是一种安装在电脑或手机上的软件,用于管理私钥和公钥。软件钱包又可以分为热钱包(始终连接互联网)和冷钱包(通常离线存储)。
硬件钱包:硬件钱包是专门的物理设备,用于离线存储私钥。因为不直接连接到互联网,硬件钱包比软件钱包更安全。
纸钱包:纸钱包是一种离线保存私钥和公钥的方式,通常打印在纸上。虽然安全性较高,但如果纸张丢失或损坏,资金可能无法恢复。
生成和管理私钥与公钥:钱包负责创建和管理用户的私钥与公钥。
存储和显示余额:虽然钱包本身不存储加密货币,但它通过区块链网络查询地址上的余额,并显示给用户。
发起和接收交易:钱包允许用户通过签名发起交易,并可以接收其他人发送的加密货币。
与区块链交互:钱包通过与区块链网络通信,广播用户的交易并更新余额。
钱包是用户与区块链交互的关键工具,通过它用户可以安全、便捷地管理和使用自己的加密资产。
一笔比特币交易要进入区块链,需要经历一系列步骤,从构建交易到最终被矿工打包到区块中。以下是这一过程的详细步骤:
SHA256(SHA256(version + prev_hash + merkle_root + ntime + nbits + nonce )) < HASH 目标值
version: block的版本
prev_hash: 上一个block的hash值
merkle_root: 需要写入的交易记录的hash树的值
ntime: 更新时间
nbits: 当前难度
挖出的区块由于包含了上一个区块的 Hash,通过这个方式把所有的区块串联起来了,区块挖出之后,会迅速的广播的网络的其他节点,只有当一笔交易被包含进一个带有有效工作量证明的区块,并且该区块被整个网络接受之后,我们就说这笔交易 “被确认了”,此时才可以认为资金的转移已经完成了。
通过上述过程,交易从最初的广播到最终被打包进区块,成为区块链的一部分,从而实现交易的不可篡改性和安全性。