第三章为什么说比特币一个状态转移区块链技术系统

区块链技术角度来说, 这加密货币的账本,如比特币可以被看作为一个状态转移的系统, 在这个系统里, 有一个包含了现在所有已存在的比特币的持有者的状态,并且有一个“状态转移函数”可以使用一 个状态和一个交易来产生一个新的状态。在一个标准的银行体系里,  这状态就是一个资产负债表, 当一个交易要求把 X$的钱,从 A 转移到 B 时, 那么它的状态转移函数就会从 A 的账户中减去数量 为$X 的金额,然后在 B 的账户中增加数量为$X 的金额。如果 A 的账户中没有$X 的钱,那么状态转移函数就会返回一个错误。
比特币状态转移系统图解
所以,我们可以做如下定义:

//使用一个状态和一个交易才生一个新状态,或者返回错误APPLY(S,TX) -> S' or ERROR

在银行系统中,它可以定义成这样:

APPLY({ Alice: $50, Bob: $50 },"send $20 from Alice to Bob") = { Alice: $30, Bob: $70 }

或者:

APPLY({ Alice: $50, Bob: $50 },"send $70 from Alice to Bob") = ERROR

这“状态” 在比特币中是指所有的已经被挖出的但是还没消费的硬币的集合 (技术上, “没有被花掉的交易的产出(unspent transaction outputs)” 或 UTXO) ,每个 UTXO 都有一个面值和一个持有者 (持有者是由 20 个字节组成的地址,其本质是一个加密的公钥). 一个交易包含了一个或多个输入,每一个输入都包含了对一个已存在的 UTXO 的引用,和用持有者的地址所关联着的私钥来产生的一个加密签名, 并且会产生一个或多个输出, 每一个输出包含一个用于添加到状态的新的 UTXO。

这状态转移函数 APPLY(S,TX) -> S' 可以被大概的定义如下:
1、在 TX 中的每个输入: 

  • 如果被引用的 UTXO 不在 S 里,返回一个错误.
  • 如果提供的签名和 UTXO 的所有者匹配不上, 返回一个错误.

2、如果所有的输入的 UTXO 的面值的和少于所有输出的 UTXO 的面值的和,返回一个错误.
3、返回一个所有输入的 UTXO 都被移除的,所有输出的 UTXO 都被加进的新的 S' . 

第一个步骤的前半部分防止交易的发送方消费不存在的硬币, 第一步骤的后半部分阻止了交易的发送方使用别人的硬币,
第二个步骤是强制的价值保护。为了使用这种支付方式,协议如下:
  假设Alice 想发送 11.7 BTC 给 Bob. 首先, Alice 要找到一组她自己拥有的有效的 UTXO ,且总数要至少不低于 11.7 BTC. 实际上, Alice 不会恰巧刚好拥有 11.7 BTC; 她得到的最小值是 6+4+2=12, 她然后使用这 3 个输入和 2 个输出创建了一个交易。 这第一个输出是 11.7 BTC ,是输出 Bob,第二个输出是剩下的 0.3 BTC “找零”。如果 Alice 没有要求把这个找零发送到她自己的账户上, 那么这矿工可以要求拥有这个零钱.
讲到这里我们用案例讲清楚了比特币其实就是一个状态转移系统的区块链技术实现过程。

参考资料:
1、状态转移算法   
2、银行内部控制原理与评价
3、区块链之状态转换系统

 

免责声明:本文由信比特作者原创文章,不构成投资建议,请谨慎对待。

版权声明:信比特作者保留原创权利。文章为作者独立观点,转载请注明出处

原文链接:http://www.bitpoa.com/BlockchainCollege/44.html

生成海报
收藏

相关推荐

比特币正在帮助勒索软件行业

前言:我们生活在一个世界里,无偿金钱的第二种后果(例如更多地使用勒索软件)已经显而易见。智能手表制造商Garmin,以色列保险公司Shirbit,电子产品制造商Foxconn,宾夕法尼亚州的特拉华县 ...

为什么硅谷没有得到比特币(图文)

前言:在比特币存在的最后十二年中,硅谷一直误解了比特币,由于他们认可了愚蠢的想法甚至更糟的骗局,导致了许多值得纪念的时刻。硅谷的两个主要参与者是科技公司和风险投资(VC,又称投资者)。高科技公司生产我们大家都使用的产品,而风险投资人则为他们的努力提供资金。 ...

重塑金钱:比特币对中央银行的警告

前言:比特币的价格上涨反映了人们对现有金融体系的信心下降。像克里斯汀·拉加德(Christine Lagarde)这样的中央银行会注意吗?再过一周,又一辈子生活了: 美国总统再次弹imp 。 ...

0 条评论

微信扫一扫

微信扫一扫

微信扫一扫,分享到朋友圈

第三章为什么说比特币一个状态转移区块链技术系统