1.比特币节点
节点,是区块链的分布式账本中,通过网络连接服务器等设备的网络节点。比特币网络中,各节点相互对等,每个节点都具有路由、区块链数据库、挖矿、钱包服务的功能。进一步,各节点又根据不同的功能有不同的分工。这里我简单介绍一下全节点和轻量级节点。
全节点:拥有完整区块链账本的节点,负责对新生成的区块和交易进行验证,是支撑比特币转账交易的核心力量。因此,全节点需要拥有完整的区块数据,有时他们还需要承担路由功能。
轻量级节点:是SPV(Simplified Payment Verification)简单支付验证)的缩写。轻量级节点的任务的“支付验证”,不是“交易验证”。支付验证不需要运行全节点,只需要保存所有的区块头就可以;交易验证需要运行全节点的矿工完成。轻量级节点主要是方便普通用户使用。
由于运行比特币节点不提供任何奖励,且不需要全节点也可以进行比特币转账,所以比特币的全节点数只占节点数的一小部分。
2.从发出交易到矿工打包过程
一笔比特币转账交易发起后,要经过如下步骤:
基本验证:将交易广播至全网,挖矿节点接到这笔交易后,先将其放入本地内存池进行一些基本验证,比如该笔交易花费的比特币是否是未被花费的交易;
验证后分配:如果验证成功,则将其放入“未确认交易池”(Unconfirm Transaction),等待被矿工打包;如果验证失败,则该交易会被标记为“无效交易”(Invalid Transaction),不会被矿工打包。
挖矿节点在比拼算力的同时还需要及时验证每笔交易,更新自己的“未确认交易池”。节点抢到记账权后,将从“未确认交易池”中抽取约近千笔“未确认交易”进行打包。有时候我们的交易不能被及时打包,是因为“未确认交易池”中的交易笔数太多,而每个区块能记录的交易笔数有限,这时候就会造成区块拥堵。
3.比特币数字签名
数字签名(digital signatures)是基于非对称加密实现的,由数字摘要和非对称加密技术组成。非对称加密,是密码学的一种算法,它需要两个密钥,一个是公钥,另一个是私钥;一个用作加密的时候,另一个则用作解密。使用其中一个密钥把明文加密后所得的密文,只能用相对应的另一个密钥才能解密得到原本的明文;甚至连最初用来加密的密钥也不能用作解密,非对称加密技术使得数字签名加密的私钥和解密的公钥不一致。
而比特币的数字签名,就是只有比特币转账中转出的人才能生成的,一段防伪造的字符串。通过验证该数字串,一方面证明该交易是转出方本人发起的,另一方面证明交易信息在传输中没有被更改。首先通过数字摘要技术把交易信息缩短成固定长度的字符串,然后用自己的私钥对摘要进行加密,形成数字签名。完成后,需要将完整交易信息和数字签名一起广播给矿工,矿工用公钥进行验证,如果验证成功,说明该笔交易是真实,且信息未被更改。
4.比特币找零机制
比特币找零机制:将用户有权使用的若干比特币汇款地址上的之前交易的输出金额作为一次交易的输入,若干比特币收款地址上增加的交易金额作为本次交易的输出;输入金额必须大于等于输出金额,超出部分作为本次交易的手续费。手续费没有输出地址,奖励给将本次交易记账成功的矿工。因为有时作为输出的金额超过了用户想要支付的金额,在这种情况下,比特币客户端会创建一个新的比特币地址,并把差额发送回这个地址,这就是比特币的找零机制。
当你“支付”比特币,并创建一次交易时,你必须将你支付地址上可供支付的金额(来自该地址之前交易的输出)作为新交易的输入。这样的地址可能不止一个,你的比特币钱包会暗自寻找你钱包中所有可供支付的输出金额(可能来自于不同地址),并把它们加在一起显示为钱包可用余额。所以,当你的比特币钱包说你有200个BTC时,它只是意味着你的所有地址上可供支付的交易输出加在一起共有200个BTC。这和你的普通钱包中放着1张100元和5张20元人民币差不多一个意思。
5.比特币支付功能
中本聪在比特币白皮书中阐述了比特币是一套“基于密码学原理而不基于信用,使得任何达成一致的双方能够直接进行支付,不需要第三方中介参与”的电子支付系统。比特币发行的原意是用于支付,而比特币发展至今,更多的人是想通过比特币投资而一夜暴富,以至于很多人忽略了,相比于投资资产,比特币的支付工具属性,才是中本聪创造比特币的初始意义。
去中心化是比特币支付的核心特点,这意味着用比特币支付可以在全球范围内自由地、高效地进行。现在国际上已经有很多机构开始支持比特币这种支付方式,可以想象未来比特币的支付功能将得到进一步的开发。 所以说,现在进入比特币市场,不仅仅是投资,也是提前适应未来比特币的普及化。未来,比特币的支付功能很有可能会超越其投资能力而被越来越广泛的应用。
领取专属 10元无门槛券
私享最新 技术干货