首页 > 比特币交易

币行比特币交易时间,比特币交易

互联网 2021-02-26 21:37:57

    比特币交易是比特币系统中最重要的部分。比特币交易的本质是一种特殊设计的数据结构。而区块链是记录比特币交易的总账簿,每个比特币交易都被记录在区块链上。这种数据结构的生命周期包括:被创建、被签名加密、被广播、被验证、被添加到新创建的区块。

       1. 交易结构

    比特币交易这种数据结构包含6个字段:版本、输入数量、输入、输出数量、输出、时钟时间。比特币交易的基本单位是未使用交易输出(UTXO),一个比特币用户在整个区块链上的所有UTXO之和即为其比特币余额(实际上比特币的设计中并不存在“余额”的概念)。在交易中,被消耗的UTXO就是交易的输入,产生的UTXO就是交易的输出。一笔比特币交易通过所有者签名来解锁其当前拥有的UTXO,通过新所有者地址来锁定并创建新的UTXO。此外还存在一种特殊的交易称为Coinbase交易,这是每个区块中的首个交易,是作为挖矿奖励产生的全新的比特币给赢家矿工。

        交易输出包含三个字段:总量(8字节),表示以聪为单位的比特币值;锁定脚本尺寸(1~9字节),用字节表示后面的锁定脚本长度;锁定脚本(变长),定义了支付所需条件的脚本。

         交易输入结构包含五个字段:交易(32字节),指向交易包含的被花费的UTXO的哈希指针;输出索引(4字节),被花费的UTXO的索引号,第一个是0;解锁脚本尺寸(1~9个字节),解锁脚本尺寸,用脚本表示的后面的解锁脚本长度;解锁脚本(变长),一个达到UTXO锁定脚本中的条件的脚本;序列号(4字节),目前未被使用的交易替换功能,设成0xFFFFFFFF。

        交易费可以当作为了包含交易到下一个区块的一种奖励,也可以当作针对欺诈交易和任何种类的系统滥用的一种避免方法。交易费不是强制的,但是包含交易费能够提高交易被处理的优先级。交易的数据结构中没有显式包含交易费的字段,但是交易费=输入之和-输出之和。

       2. 交易链条和鼓励交易

      交易链条类似于信用卡的透支消费。

        3. 交易脚本

      比特币钱包客户端通过两类脚本来验证交易:解锁脚本和锁定脚本。

      锁定脚本用来锁定比特币交易的输出,即交易后新的比特币拥有者获取了比特币。解锁脚本是用来满足先前锁定脚本所设定的锁定条件的脚本。比特币客户端会同时执行锁定和解锁脚本来验证一笔交易。对于每一笔比特币交易的输入,验证软件会先检索输入所指向的UTXO,每个UTXO中本身包含着定义其花费条件的锁定脚本。软件再从输入交易中读取解锁脚本,同时执行这两个脚本。具体地,软件采用从解锁脚本中复制而来的数据放入主堆栈中和解锁脚本一起执行,如果执行结果为真,则这个输入就是一个对UTXO的有效授权,这使得UTXO被标记为“已使用”,并从UTXO集中被移除。考虑脚本在主堆栈中的执行情况,如果脚本执行完毕后堆栈顶部结果为真(任何非零值)或执行后堆栈内为空,则交易有效;如果脚本执行完后堆栈顶部结果为假或者执行被操作符禁止(OP_VERIFY     OP_RETURN)或者有条件终止(OP_ENDIF),则交易无效。

(未完待续)

免责声明:非本网注明原创的信息,皆为程序自动获取自互联网,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责;如此页面有侵犯到您的权益,请给站长发送邮件,并提供相关证明(版权证明、身份证正反面、侵权链接),站长将在收到邮件24小时内删除。