区块链进阶之交易

in #cn7 years ago

通过之前的文章,大家对区块链已经有了基本了解,不但了解了区块链的发展历史,而且也学会了怎样使用钱包,怎样通过交易所购买区块链资产,最重要的是理解了区块链的私钥、地址相关概念。

至此,你对区块链的了解已经超越了80%以上的人。 但,只懂得以上这些知识距离精通区块链还有很遥远的距离。今天,就带大家学习一下区块链世界里最重要的概念交易,相信通过今天的学习,你对区块链的理解会更加深刻。

01 为什么交易很重要?

区块链是21世纪最伟大的技术革命,虽然以比特币为代表的区块链技术已经发了8年多,但距离区块链大面积应用还需要很长的时间,这一切都刚刚开始。现在是学习区块链的绝佳时机,每个人都可以抓住,只要你愿意。

回到正题,我们一块来学习区块链世界里最重要的概念--交易。

在区块链里,交易是最重要的概念,其它都是为了确保交易可以被生成、能在网络中得以传播和通过验证,并最终添加入交易总账簿中(区块链)。

交易的本质其实是数据库结构。这些数据结构里包含交易参与价值转移的相关信息。由于区块链是全球复式记总账簿,因此每笔交易都是区块链上的一个公开记录。

以比特币为例,比特币从2009年1月4到现在的每一笔记录都被记录在区块链上,任何人有可以查看。为了使大家方便理解,我们通过blockchain.info这个网站来直观的了解一下交易。

下图是比特币在2017年11月7日10:27最新的区块,当前区块的高度是493405。对于区块的高度大家可以理解为积木的高度,后面我会专门给大家介绍区块、区块链的概念。

以下是当前区块里包含的部分交易信息。有兴趣的朋友可以访问blockchain.info亲身体验一下。

02 交易的生命周期

在比特币中,交易的本质其实是一个有着货币转移目的的工具,与现实世界中的支票比较类似。当然由于比特币的核心功能是货币,因此交易信息里只包含了交易相关信息。

一笔完整的交易过程需要经过创建、传播、验证、添加到区块中四个环节。

一旦一笔比特币交易被创建,它会被资金所有者签名,如果这笔交易的签名是合法的,则这笔交易是有效的,这笔交易包含了转移资金的所需的所有信息。

一笔比特币交易只有300-400个字节的数据,它会被发送到成千上万的比特币任意节点中。由于交易是经过持有者签名不包含任何加密信息、私钥和密码,因此它可以被任何潜在的便利网络公开传播。

由于交易是一个数据结构,因此可以通过任何网络进行交易的传输,本质上是任何人都不可能阻止交易的创建。

03 交易工作原理

在比特币系统中,交易的基本使用单位是是一个交易输出,简称UTXO。UXTO是一个被持有者锁定在比特币网络中的比特币货币单位。

在比特币世界里没有账户的概念,也没有余额,只有分散到区块链网络里的UTXO。

被交易消耗的UTXO被称为交易输入,由交易创建的UTXO被称为交易输出。通过这种方式,一定量的比特币价值在不同所有者之间转移,并在交易链中消耗和创建UTXO。一笔比特币交易通过使用所有者的签名来解锁UTXO,并通过使用新的所有者的比特币地址来锁定并创建UTXO。

比特币在实际使用中会使用不同的策略满足付款的需求。如果交易所需量比UTXO大,系统会自动组合若干个小的个体,并算出准确的找零。如果交易所需比UTXO小,系统会使用一个较大的UTXO并进行找零。所有这些操作都是比特币钱包完成的,只有你需要编程方式使用UTXO构建交易时,你才需要进行UTXO操作。

大多数交易都包含交易费,这是为了保证网络安全给矿工的一种补偿。交易费是基于交易的尺寸,用千字节来计算的,而不是比特币的价值。

举两个例子:

咖啡店的例子:
Alice在咖啡店的交易。Alice想为咖啡支付0.015比特币。为了确保这笔交易能立即被处理,Alice想支付一笔交易费,比如说0.001。这意味着总交易成本会变成0.016。因此她的钱包需要凑齐0.016或更多的UTXO。如果需要,还要加上找零。我们假设他的钱包有一个0.2比特币的UTXO可用。他的钱包就会消耗掉这个UTXO,创造一个新的0.015的输出给Bob的咖啡店,另一个0.184比特币的输出作为找零回到Alice拥有的钱包,并留下未分配的0.001比特币内含在交易中。

菲律宾的儿童募捐:
在菲律宾的儿童募捐项目主管,完成了一次为孩子购买教材的筹款活动。她在世界范围内接收到了好几千个小数额的捐款,总额是50比特币。所以她的钱包塞满了非常小的UTXO。现在她想用比特币从本地的一家出版商购买几百本的教材。

现在Eugenia的钱包应用想要构造一个单笔大额付款交易,它必须从可用的、由很多小数额构成的大的UTXO集合中寻求钱币来源。这意味着交易的结果是从上百个小数额的UTXO中作为输入,但只有一个输出用来付给出版商。输入数量这么巨大的交易会比一千字节要大,也许总尺寸会达到两至三千字节。结果是它需要更高的交易费来满足0.0001比特币的网络费。

至此,我们已经学了区块链世界里最重要的概念-交易,后面我们会围绕着交易继续学习区块、区块链、共识机制、P2P网络。

注:本文部分内容参照了《mastering bitcoin》,感谢Andreas M. Antonopoulos对区块链世界的贡献,期待他的新作《mastering Ethereum》,也欢迎大家在亚马逊预定。

Coin Marketplace

STEEM 0.19
TRX 0.13
JST 0.030
BTC 63186.04
ETH 3392.68
USDT 1.00
SBD 2.50