三、比特币转账的原理

匿名 (未验证) 提交于 2019-12-03 00:32:02

◆比特币怎么转账?

生活中我们都有自己的银行账户,转账是在银行账户之间进行的,同样,比特币转账就是把比特币从一个比特币地址转移到另一个比特币地址上的过程。

如果想要转账比特币给别人,你需要在比特币交易平台(比特币钱包或者比特币客户端)中输入你的比特币地址、接收方地址、转账金额和手续费金额,确定支付后交易信息会在比特币网络进行全网广播。矿工每隔10分钟会将比特币网络中未被记账的交易打包进一个区块,这就完成了一次确认,此时,比特币已转到对方账户。通常需要经过6次确认,确保交易记录不能被任何人篡改,转账才算真正完成。

◆比特币转账手续费

是交易者付给矿工的一笔费用,用于激励矿工竞争记账,为比特币提供足够的算力从而确保比特币网络的安全。

有的地方也叫“矿工费”,用户在比特币网络发起一笔转账时,一般需要支付给矿工一定的转账手续费。

转账手续费一般为0.001-0.0015个比特币。由于区块能容纳交易记录的容量有限,矿工会优先打包手续费高发交易,所以多付手续费可以更快地被记账。比特币交易手续费的存在能提高转账门槛,有效防止区块链中充斥垃圾信息,并且能够保证在比特币被挖完之后矿工仍有动力维护比特币网络。

◆区块链转账按字节收费

银行间转账手续费一般是按照转账金额的一定比例收取,比如跨行转账手续费约5‰;异地转账的手续费为1‰―1%不等;而跨过转账除了支付以上手续费以外,还需支付50-200元每笔的电报费。

而区块链本身是全球化的,没有跨过的概念 且区块链资产之间的转账手续费与转账的金额无关,按字节收费。以比特币转账为例,一笔普通交易约占250字节,手续费约为0.001-0.0015个比特币(约20-30元)

如果一笔交易中同时转账给多个比特币地址,那么这笔交易所占字节数会更大,所以需多付一些手续费,才会有矿工及时来打包交易。即便如此,从转账成本来看,用区块链进行跨国转账还是有很大的优势

◆比特币地址

是一串由字母和数字组成的26―34位字符串(看起来有些像乱码),通过区块链可以查到每个比特币地址的所有转账记录。

比特币地址就是个人比特币账户(相当于银行卡卡号),可下载BTC钱包(官网下载)或者在交易平台注册获取个人比特币地址,有地址就可进行转账。

◆比特币节点

比特币是一种点对点的电子现金系统,更直接地说是节点对节点。每笔交易由发起方向周围的节点进行广播,节点收到之后再广播给自己周围的节点,最终扩散至全网。

每一个比特币钱包都是一个节点,其中拥有完整区块链账本的节点叫做全节点。

2017年10月,比特币全网约9300个全节点负责比特币转账交易的广播和验证,转账交易发生后由所有节点共同广播至全网,挖矿的节点验证该交易正确后会记录至区块链账本。

美国、德国、法国拥有的比特币全节点数最多,中国的全节点数量约占全球5%。

运行比特币节点不提供任何奖励且不需要全节点也可以进行比特币转账。(所以比特币全节点数只占节点数的一小部分)

◆从发出交易到矿工打包需要几步

当你发起一笔比特币转账后,你需要将交易广播至全网,挖矿节点接到这笔交易后先讲其放入本地内存池进行一些基本验证(比如,该笔交易花费发比特币是否是未被花费的交易),如果验证成功,则将其放入“未确认交易池(UnconfirmTransaction)等待被打包”,如果验证失败,则该交易会被标记为“无效交易”(Invalid Transaction)不会打包。、

也就是说,挖矿节点在比拼算力的同时还需要及时验证每笔交易,更新自己的“未确认交易池”,节点抢到记账权后,将从“未确认交易池”中抽取约近千笔“未确认交易”进行打包。(有时候交易不能被及时打包,是因为“未确认交易池”中的交易笔数太多,而每个区块能记录的交易笔数有限,这时候就会造成区块拥堵。)

◆比特币的数字签名

就是只有比特币转账中转出的人才能生成的一段防伪造的字符串。

通过验证该数字串,一方面证明交易是转出方本人发起的,另一方面证明交易信息在传输中没有被篡改。

数字签名由数字摘要非对称加密技术组成

1.通过数字摘要技术,把交易信息缩短成固定长度的字符串,然后用自己的私钥对摘要进行加密,形成数字签名。完成后需要将完整交易信息和数字签名一起广播给矿工。矿工用牛牛的公钥进行验证,如果验证成功,说明该笔交易确实是牛牛发出的,且信息未被更改。

2.非对称加密技术是指数字签名的私钥和解密的公钥不一致

(看起来好复杂,其实真实转账过程中只需要输入私钥就瞬间完成了!)

◆比特币交易和找零机制

比特币转账可以一次把多个地址的余额转出,也可以一次转入多个地址。

例,你需要支付给小猪5个比特币,但是你的A/B/C3个地址里各有1/2/2个比特币,每个地址的余额都不足以支付5个比特币,这时候,你可以发起一笔转账,同时把A/B/C 3个地址共5个比特币转账给小猪;

再例,如果你的比特币地址有5个比特币,但是你只需要转给1个给小猪,你需要在转账的时候告诉矿工 我有5个比特币,其中1个转给小猪,另外4个转回给我自己,可以是原地址或创建新的地址,千万不要忘了说,不要剩余四个比特币就全给矿工当手续费了,这就是比特币的找零机制。

转载请标明出处:三、比特币转账的原理
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!