遇上数学不好的收银员怎么办?(有关UTXO要知道的)|从0开始学习区块链08

(图片来源于网络)

同事小张前段时间休假去泰国,满世界都是白牙齿咧嘴笑的美女,小张心情无限好。他走进一家商店买饮料,16元。小张递过去一张20元纸币,想了想,又递过去1块钱,“美女,找零凑个整。”他淳朴的脸上写满了真诚。


收银员妹子拿到小张递过去的1块钱,眉头紧蹙。完蛋了,妹子数学不好,明明给你4块钱就行又给我1块是啥意思?妹子看着计算器上显示的4块,从抽屉取出4个硬币,又把手里还没焐热的那个1块一起还给了小张。整个操作无(尴)缝(尬)衔(至)接(极)哈哈哈。


小张内心OS:说好的凑个整,一把1块啥意思?

妹子内心OS:这人不会是个傻子吧,还给1块干啥?是我太美?


收银员妹子为啥这么纠结?对,因为她要计算余额。把小张的操作分开看可以是这样:


操作一:

小张一共给21元,先给20元,又给1元,

收银员计算:

20-16=4,小张买一瓶水应该找给小张4元。

4+1=5,小张刚刚又递过来1元,现在我有5元,这5元都是要给小张的。

收银员给小张5元。


操作二:

小张有2张钱,1个1块1个20块,买水拿20块就够了,所以1块钱不动,给20元。

收银员计算:

20-16=4

收银员给小张4元,小张手里还有刚刚的1元,共5元


小张手里都是5元,但是操作二收银员明显少算1步,对于数学不好的人来说这可是减轻一个大负担。你设想下,这只是极端的小例子,把这个放大,100个小张“要凑整钱”,1000个小张“要凑整钱”,收银员妹子脑子还够用么能不气么?(替妹子鄙视小张哈哈)


把这个问题放在比特币世界,要引出今天的话题,UTXO(Unspent Transaction Output),即未花费的交易输出。


把上面例子中小张的钱变成比特币,小张手里的5块就是未花费的交易输出,而小张买水的钱花出去了,就是花费的交易输出。


为什么举小张买水的例子呢?因为UTXO的计算方式很像操作二只确认交易本身,以及比较反直觉。


只确认交易本身,举个例子:UTXO方式care的是小张给收银员多少钱,收银员收到了多少;不去管每一次找零小张钱包里还有多少,收银员抽屉里赚了几万。如果你想知道小张钱包还有多少钱咋办呢?你只需要计算在这个时间点之前,小张钱包进进出出的总数据,加加减减瞬间get小张的存量。


这样做有什么好处呢?


首先,计算上减轻了负荷。计算小意味着数据库轻便,比特币运行8年多,所有交易记录的数据可以拷贝在一台电脑上。同理,想想天猫想想京东,1天的交易记录需要成百上千台服务器支持,为什么呢,因为数据库太大。


其次,这种方式可以避免双重支付。这里对比用“余额”的数据库方式。


用余额需要实时更新每个用户的账户剩余数额。比如小张今天在商店买了8次东西,啤酒饮料瓜子花生矿泉水。系统在小张每一次买东西都会更新一次:钱包余额80个比特币,钱包余额25个比特币,钱包余额16个比特币……看似没有波澜,一番买卖之后,暗黑的小张上线了——


小张买了一个苹果,用比特币钱包支付1比特币,支付出去了但是矿工还没有确认。小张对收银员哈哈一笑,收银员妹子就被迷惑了,只看了账户有小张支付的币,便把红彤彤的苹果给了小张。注意,这里收银员妹子的账户上显示的是小张确实支付了1个币,只是没有矿工给他确认。我们前面讲过分叉的概念,这时候,小张就利用分叉的特性开始做坏事了。


小张出门即进入下一个商店,用刚刚的那个买苹果的比特币又买了1个梨,并且找矿工把这笔交易确认了。而且是利用算力呼哩哗啦找了6个矿工确认。


好了,现在收银员妹子懵逼了。刚刚看余额显示小张的币支付了,只是没确认,现在一看,纳尼?小张支付的币没有了!小张利用算力和分叉把1个比特币当作2个花,啧啧啧~


苹果已经被小张吃下肚,可小张的比特币给了隔壁超市老王。妹子气晕。


这就是双重支付问题。现实生活中,1笔款不可能实时到账,交易越多越容易出现确认延迟的情况。当矿工没有完成确认的时候,小张可以把这笔钱再次付给另一个商家,只要他的算力足够,让新的交易得到多个确认,并把写上这个交易的块变成最长链。


为了避免双重支付问题,现在一般要求收款方这么做:等到币到账,并且6个矿工确认,再发货。一旦6个矿工确认了,想要硬分叉改变刚刚的交易记录需要很大的算力,这时候作案成本太高,发生这种事情的概率就小。


再来说下反直觉。文章开头小张花了16元买水,小张有1个20元,1个1元,这时候系统会从小张的地址上扣20,而不是16。小张输出的是20,还有4块是未花费输出。这时候小张有2个未花费输出,1个4元,1个1元。


这个过程和我们平时花钱的习惯有点不同,但是也很好理解。你只要想到小张手里的比特币就像纸币,不能撕开,必须一次出一整个,这样就好明白一些。你虽然花出去了20,但是系统会给你找零,4块还会回到你的地址上。这里只是让大家对概念更加清晰,实际交易上并没有太多干扰。


OK,让我们再来回顾一下,UTXO是未花费的交易输出,它只对应着地址概念,并非我们熟悉的“账户和余额”。UTXO只确认交易本身,因此交易计算量小数据库也小,运行至今未曾有误。当然,UTXO也有着一些让人不适应的特点,每次的币不能拆开来花,不过不影响交易~好啦,这就是今天要讲的区块链知识,让我们共同进步!

PS,感谢小张亲身演绎~哈哈哈~


注:

反直觉这个概念是引用汤强老师的《李笑来的比特币账户并没有余额》,公众号:汤强(tangqiang0401),不知道为啥我觉得这个用“花钱找零”的类比解释来蛮好理解的哈哈哈~也许是我哪个地方理解还不够深刻,大家可以去看看他的文章,欢迎给我提出建议~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容