- 区块链原理、架构与应用
- 魏翼飞 李晓东 于非
- 2646字
- 2021-03-31 14:12:49
3.1 加入比特币网络
与传统货币不同,比特币是完全虚拟的。用户通过网络进行交易,比特币隐含在发送方和接收方转移价值的交易中,通过交易数据表示,不存在任何实物。网络中的任何参与者都可以作为“矿工”使用计算机的处理能力来验证和记录交易,这些交易信息通过矿工存储在网络的不同节点中,无法篡改。但并非所有节点都强制存储完备的交易记录,比特币网络针对不同需求的用户拥有不同的节点类型。
3.1.1 网络节点
比特币网络采用P2P网络结构,每个节点在网络中地位对等,它们为用户提供相同的网络服务。可以按照比特币网络P2P协议运行的一系列节点的集合称作比特币网。中本聪在比特币白皮书中说明了如何运行比特币网络,大致包括如下过程:
(1)新的交易向全网进行广播。
(2)每一个节点都将收到的交易信息纳入一个区块中。
(3)每个节点都尝试在自己的区块中找到一个具有足够难度的工作量证明。
(4)当一个节点找到了一个工作量证明,它就向全网进行广播。
(5)当且仅当包含在该区块中的所有交易都是有效的且之前未存在过的,其他节点才认同该区块的有效性。
(6)其他节点表示它们认同该区块的方法,就是在该区块的后面添加新的区块以延长该链条,并将被认同区块的随机散列值视为先于新区块的随机散列值。
其中涉及的节点被称为全节点。每个完全节点都是路由、完整的区块链数据库、挖矿和钱包四种功能服务的集合,如图3-1所示。它们更新复制最新完整的区块链数据库,能够独立自主校验所有交易并对其进行广播,不需借由任何外部参照,同时可以运行设备的计算能力参与新区块的算力竞争。一般的核心客户端都是能够运行所有功能的全节点,如Bitcoin core。
图3-1 全节点包含功能模块示意图
但事实上,运行全节点对设备提出了较高的要求,需要存储的区块数据会随着交易数量的增加而日益庞大,对于只是想将比特币作为货币使用的用户而言,存储大量的区块数据是多余的。因此在现行的比特币网络中,针对不同的用户群体,存在不同功能集合的节点类型。
对于只想借助比特币充当一种交易方式的用户而言,参与网络后运行的节点可以是全节点或者轻量级节点,只要节点包含钱包功能即可。轻量级节点对比全节点,只保留了区块链数据的一部分,通过简易支付验证的方式完成交易验证,交易数据实时更新。用户只需要下载轻量级钱包,就能够使用比特币进行交易,轻量级钱包包含功能如图3-2所示。
而矿工主要依靠挖矿节点参与网络。一般维持挖矿节点运行的设备均配置有特殊硬件设施,节点间通过计算力竞争,破解新区块的工作量证明解。挖矿节点也分为完全节点和轻量级节点,其中轻量级节点依靠矿池服务器的完全节点进行工作,而完全节点一般指的是依靠单一节点进行挖矿的独立矿工节点。节点具有完整区块链副本的挖矿功能,以及比特币网络中的路由功能,具体如图3-3所示。
图3-2 轻量级钱包包含功能示意图
图3-3 独立矿工节点包含功能示意图
但是随着挖矿难度的日益增加,算力竞争愈发激烈,个体矿工通过独立挖矿获得的收益已经不能覆盖电力和硬件成本了。即使使用消费型ASIC进行挖矿,个体矿工也无法与拥有数万芯片、位于低电力成本地区的商业矿池进行竞争。所以,现在的矿工多通过组成矿池方法,汇集众多参与者的算力,凭借算力贡献按比例获取奖励,降低了风险性和不确定性。
图3-4 轻量级矿工节点包含功能示意图
矿池通过专用的挖矿协议协调矿工,而矿工会将个人的矿机连接到矿池服务器,通过服务器和其他矿工同步工作。这种情况下矿工可以选择轻量级的挖矿节点,如图3-4所示。轻量级节点保存的只是区块头信息,通过路由功能连接到比特币网络中,就可以通过P2P的方式找到中继节点,从而搜索到所需要的交易信息。因此没有足够空间存储区块数据的矿工节点,可以不保存全节点的链数据,按需所取,专注于挖矿即可。
3.1.2 比特币客户端
普通用户可以通过在线网站或者下载应用程序加入比特币网络。随着比特币的热潮,出现了很多比特币客户端软件,主要可以分为三种类型:完整客户端、轻量级客户端和在线客户端,其中中本聪客户端被称为标准客户端,标准客户端最开始由中本聪运行维护。
完整客户端存储比特币区块链的全部交易信息,用户可以直接进行交易,不依赖任何第三方服务器确认交易记录;轻量级客户端只存储用户钱包的相关信息,如果想要进行交易,需要访问第三方服务器中存储的交易记录;在线客户端完全依赖第三方服务器,用户通过网页浏览器访问和储存钱包。
用户钱包由系统产生的密钥进行保护,用户需要牢记自己的钱包密钥以确保对钱包中比特币的所有权。客户端会为每一个用户产生一个钱包和对应的比特币地址,一个用户可以有多个钱包,每笔交易也可以有不同的地址。
获得比特币的方式,除了通过挖矿获得开发新区块的比特币奖励和确认交易的交易费以外,用户也可以通过专门的通货交易所进行比特币购买,或者寻找该地区的比特币卖家使用现金进行线下交易,如果本地区存在比特币ATM,那么可以直接在ATM获取。
下面简单介绍几个比特币在线交易平台。
1. Bitstamp
欧洲比特币交易所(Bitstamp)的网址是https://www.bitstamp.net/,该平台支持多币种的交易和电汇方式,网站首页如图3-5所示。
图3-5 Bitstamp网站首页截图
2. Coinbase
美国比特币钱包和交易平台(Coinbase)的网址是https://www.coinbase.com/,该平台已获得美国多个州监管机构的合法执照,可以通过ACH系统连接美国支票账户。网站首页如图3-6所示。
图3-6 Coinbase网站首页截图
3. Localbitcoins
总部设在芬兰的LocalBitcoins,是目前全球最大的场外交易平台,通过该平台可以寻找当地比特币卖家,网址是https://localbitcoins.com/,网站首页如图3-7(a)所示,通过localbitcoins搜索中国比特币卖家的结果如图3-7(b)所示。
4. CoinDesk
比特币新闻资源网(CoinDesk)是一个发布数字货币新闻和数据分析的平台,利用该平台提供的比特币ATM在线地图可以非常方便地查询本地区的比特币ATM,网址是https://www.coindesk.com/bitcoin-atm-map/,网站如图3-8所示。
比特币作为一种全球性流通的数字货币,可以在世界范围内进行交易,同时也可以换算为其他不同的币种,用户可以通过查询比特币市场汇率来获得第一手信息,有很多应用和网站都能满足该项需求,下面列举几个。
1. Bitcoincharts
Bitcoincharts是市场数据服务网站,网址是https://bitcoincharts.com/,该网站显示了全球众多交易所的比特币市场汇率,以当地不同的汇率来进行结算,网站如图3-9所示。
2. BitcoinAverage
BitcoinAverage提供每个币种的交易量加权平均价格的简单视图,是比特币历史价格数据的主要来源,网址是https://bitcoinaverage.com/,网站如图3-10所示。
图3-7 Localbitcoins网站首页截图和通过Localbitcoins搜索中国比特币卖家结果截图
图3-8 CoinDesk网站截图
图3-9 Bitcoincharts网站截图
图3-10 BitcoinAverage网站截图
3. ZeroBlock
ZeroBlock是一个免费的安卓和iOS应用程序,可以显示不同交易所的比特币价格,网址是https://zeroblock.com/,网站如图3-11所示。
图3-11 ZeroBlock-PC端截图
4. BitcoinWisdom
BitcoinWisdom是一家数字货币行情网站,提供市场数据索引服务站,网址是https://bitcoinwisdom.com/,网站如图3-12所示。
图3-12 BitcoinWisdom网站截图