根据区块链数据显示,比特币目前流通市值1752.98亿美元,比特币作为数字加密货币的鼻祖,受到了国内外很多投资者的欢迎,尤其是一年前比特币最低跌到了3155美金,不过随即开始报复性的大反弹,价格一度翻了三倍,甚至高于一万美金,这也使得投资比特币的人越来越多,但是大多数的币圈新手并不懂得如何进行比特币交易,那么,比特币交易详细步骤是什么呢?下面币小哥就给大家说说比特币交易入门教程。
比特币交易入门教程:
如下图,有甲、乙、丙、丁四个人,他们都有比特币钱包,钱包私钥自己持有,钱包地址(由各自钱包公钥生成)在比特币网络公开,用于UTXO的锁定和验证。
起始,甲给丙0.7BTC,在比特币网络里的记录是UTXO(1):甲给丙0.7BTC;乙给丙0.5BTC,在比特币网络里的记录是UTXO(2):乙给丙0.5BTC。此时,丙的比特币钱包的账户余额为这两个UTXO之和,丙的比特币总数=UTXO(1)+UTXO(2)=1.2BTC。如下图:
这天,丙向丁买了一批货物,需要向丁支付0.8BTC。丙通过比特币网络向丁转账,但丙现有的两个UTXO均不足0.8BTC,需要将两个UTXO一起使用,类似现金交易:给丁支付1.2BTC,丁找给丙0.4BTC。但在比特币网络中,这个找零的工作是由丙自己发起的。整个交易的流程如下:
丙通过比特币钱包准备交易信息,交易信息包括输入和输出两个部分,输入是UTXO(1)和UTXO(2),以及丙的钱包私钥签名(因为UTXO(1)和UTXO(2)均被丙的钱包公钥锁定,需要通过丙的私钥签名来解锁后,进行使用)
交易的输出是未确认的UTXO(3):丙给丁0.8BTC,这个新的UTXO指向丁的钱包公钥,待交易确认后,将被丁的钱包公钥锁定。此时还有0.4BTC需要找零给丙,因此还需要输出一个未确认的UTXO(4): 丙给丙0.3999BTC,这个新的UTXO指向丙的钱包公钥,待交易确认后,将被丙的钱包公钥锁定。为什么找零的数额不是0.4BTC呢?因为比特币网络要求,交易转账,需要向比特币网络支付交易手续费。剩余0.0001BTC未指向任何钱包公钥,将作为转账手续费支付给打包这笔交易的矿工(如果未找零,剩余所有未指定的比特币将全部作为手续费给打包交易的矿工,不过目前找零工作都由钱包自动完成,不用担心)。
交易信息准备完毕后,经过丙的钱包验证交易合法(UTXO合法,签名有效,输入输出金额有效等等)后,将交易广播到比特币网络中,由挖矿节点验证交易后,打包交易(将交易记入比特币区块中),并向比特币网络广播,交易完成。
旧的UTXO被消耗,新的UTXO开始生效,此时丁的钱包里有一个未使用的UTXO(3): 丙给丁0.8BTC,丙的钱包里有一个未使用的UTXO(4): 丙给丙0.3999BTC。
比特币交易手续费明细
一般一笔普通比特币交易是由一个输入两个输出(交易输出和找零输出)组成,约200字节,如果按每1000字节默认收费0.0001个比特币计算,那么一笔比特币转账手续费大约是0.001-0.002个比特币。但是当单笔输入不够用来支付输出时,就会出现上述的多个交易输入构成未花费输出的问题,这时候它的数据量就会变大。而未花费交易输出的构成越复杂,需要处理的字节就越多,手续费也就相应越高。
当你使用Bitcoin客户端发送比特币的时候,整个过程大致分为以下步骤:
1.选择合适的未花费输出
前面已经说到,交易最终会留下多个未花费的输出,而这些未花费输出是不会合并的!!比如说你收到两笔支付,分别是2BTC和3BTC,这两个未花费输出就单独保存在钱包中,而不会合并为5BTC。
当你要支付比特币给别人时,比特币客户端会选择合适的未花费输出发送出去,成为下一笔交易的输入。
2.不鼓励零碎支付
比特币的目前算法不鼓励零碎的支付,因为大量的零碎支付会让交易数据变大,造成整个系统交易缓慢。如果交易的“输出”低于0.01BTC,那么就要收取0.0001BTC的手续费。钱包在准备你的支付金额的时候有一个既定的规则,就是在众多输入中筹备支付金额的时候尽量避免产生小于0.01BTC的金额变动(比如你要支付5.005BTC,钱包尽可能的选择3+2.005或者1+1+3.005.而不是5+0.005)。
3.金额高、币龄大优先级越高
每一笔交易都会有一个优先级,一笔交易需不需要交手续费,取决于以下这个优先级数值的大小(只是一个简单的模型,真实情况更复杂):
如果X的值小于0.576则交易会被收费,如果X大于0.576.则可获得优先级从而避免收费。
大家发现了没有,有一种情况是肯定会被收费的,那就是支付的钱本来就很少,又是由多笔散钱组成,距离你拿到这些散钱的时间还很近,那这笔交易就难逃被收费了。
相反的,如果交易的输入金额大,且时间久远,那就可避免被收费。
4.“称重”收费
比特币的交易以一串数字数据出现,该交易包含更多的数据会占用更多磁盘空间,需要更多的网络带宽来传输。因此交易的输入项、输出项越复杂,数据量就越大,所需要交的手续费就越多。
举个例子,有一次蚁妹要给用户发奖,奖品是价值66元的BTC,使用某在线钱包发送比特币,但是我发现我每发一次奖要被扣50元左右的手续费,后来到区块链浏览器中一看,该在线钱包用的都是零碎的散钱,一笔很小的交易居然有6个输入,导致我这笔交易数据量变大,被扣了很多交易费。
如果没有获得在第三点中所说的优先级,那就一定要收交易手续费啦!具体交多少就要对你这笔交易的大小进行“称重”。
称重的公式为:
Size=148*输入数量+34*输出数量+10
费用按每千字节收费(不足1k按1k算),每千字节费用为0.0001BTC。一笔典型交易的输出数量是2个:一笔是给收款人,一笔是系统找零。按照上面这个称重公式,支付0.0001BTC,最大的输入数量只能是6笔,如果输入数量为7笔,那交易费就翻倍为0.0002BTC啦!
通过以上介绍,相信大家对比特币交易教程有所了解,目前比特币购买有场内和场外两种渠道。场内就是在交易所上直接购买,是适合一些比较小的交易量的投资者,这时候一定要选择靠谱的交易所,对于新人来说不要另辟蹊径,资金安全才是最重要的。场外的话,一定要找熟人进行交易,这样可以避免被骗的风险。如果想要了解更多相关问题,可以关注币世界,币小哥后续会持续更新相关报道!