本文由【区块链研习社】优质内容计划支持,更多关于区块链的深度好文,请点击《区块链研习社》。
大家有没有想过,你的币真的在你的钱包吗?如果不在,那币存在哪里?钱包存的又是什么东西?
首先,我们的币确实不在钱包。以比特币为例,我们的币是以UTXO(未花费的交易输出)的形式存在区块链中。
其次,我们钱包其实存的是密钥。
上面的说法可能有点晦涩,下面我打个比方:
想象一下,我们所有人的金银财宝集中在一个宝库,都装在宝盒里面,这些宝盒是上了锁的,你拥有宝箱的钥匙,别人就认你是这些金银财宝的主人,我们只要保管好钥匙就好了。
上述的宝库指的就是区块链,而UXTO就是那些你还没有花费的金银财宝,宝箱的钥匙就是你的密钥。
关于UTXO的特性,有一个比较形象的类比,UTXO就好比你的钱(纸币),当然这些是你未花费的。
有一天,你去便利店买零食,花了9块钱,你刚好有4张1块钱,1张5块钱,此时,4张1块钱和1张5块钱就是你的UTXO,结账后,这4张1块钱和1张5块钱就是店家的UTXO了。
如果你只有1张10块钱,此时,这张10块钱就是你的UTXO,买单后,店家找你1块钱,这1块钱就是找零,这就是你新的UTXO,而那10块钱就成了店家的UXTO。
这个过程对你来说就是交易输出,对店家来说就是交易输入,等到用这10块钱店家进货,对店家来说就是交易输出,对供货商来说就是交易输入,如此往复。
和纸币一样,UTXO也是不可分割的,就像你不可能把1张10块钱撕成两半,当成2张5块钱使用一样。
和纸币不同的地方是:UTXO的面额可以是任意的,但是纸币的面额只有几种。找零的时候店家可能会找给你几张1块钱的,但是比特币区块链只会找给你一个UTXO。
上述的宝箱锁的就是一个个UTXO,需要用各自的钥匙打开才能打开。
那你可能会问了,每次交易可能会产生新的UTXO,那么多钥匙保管起来不会很麻烦吗?放心,比特币已经帮你解决了问题,你的父私钥是可以推导出子私钥的,就好比你拥有了一把能开自己所有宝箱的万能钥匙,当然这把万能钥匙仅仅只能打开你的宝箱。
你可能也会问,宝库里那么多宝箱,你怎么知道哪些是你的?这些工作就是钱包做的事了,钱包会用你的密钥试着打开每个宝箱,能打开的宝箱就是你的。
关于我们的币确实不在钱包,现实生活中就有类似的例子:我们所熟知的银行也是这样的,你把钱存到银行里,其实钱并不在你的卡(钱包)里,它只存在银行账本的。
当然,比特币区块链和银行还是有很多不同的。首先,银行是中心化的,账本由银行自己维护,不向你公开,但是比特币是去中心化的,账本由所有全节点共同维护,对所有人都是公开的。上面把比特币账本类比成宝库只是为了便于理解,其实不是很恰当,因为每个全节点都拥有完整的账本。
其次,比特币区块链是去中心化的,它只认密钥,不会检查你的身份,你的密钥就代表你,而银行可能会检查你的身份,密码并不能唯一标识你。
最后,比特币的密钥分公钥和私钥,私钥可以推导出公钥,但是公钥不能反过来推导出私钥,这就好像知道你的银行卡账号,并不能推导出你的密码。但是,只知道你的密码,是不能推导出你的账号的。
网友评论