比特币装逼指南

赞赏 2017-05-15

最近的WannarCry病毒把比特币又推上了风口浪尖,这么适合装逼的机会又怎么能错过,因此写了一篇比特币装逼指南,适合各位在饭局公司朋友圈装逼,拿好不谢。

比特币装逼指南

1、什么是比特币

比特币是基于区块链的数字货币,利用工作量证明防止双花,具有去中心化、匿名性等特点。

重点:装逼时,可以直接说BTC,而不是说比特币。区块链可以直接说成BlockChain,工作量证明要说成PoW(Proof of Work),双花可以直接说,有人不明白再解释这是double spend的简称。淡淡的说完这一切,然后在别人的一脸懵逼中深藏名与利。


2、什么是区块链

区块链是由一个个区块组成的,每个区块的数据可以计算出一个hash,然后这个hash值是下一个区块的数据的组成部分,然后下一个区块也可以计算出一个hash,这个hash值放在再下一个区块里面。这种数据结构是由一个一个区块组成的链式结构,所以是区块链。

重点:如果有人问这个问题,那说明初步装逼已有效果。这时区块链还是要说成BlockChain,然后区块要说成Block。然后再深层次的扩展一下,比如比特币中,每个区块主要存储的是交易(Transaction),这些交易是用默克尔树(Merkle Tree)计算hash的,hash值是放在BlockHead里面。


3、什么是工作量证明

工作量证明是做了多少工作的证明。比如小明说他下午没有玩游戏,而是在抄书,那他的证明就是抄的厚厚的一摞纸。验证一下发现字迹是他的,那就证明了他没有说谎。比特币的工作量证明就是哈希碰撞,计算机不停的改变区块里面的一个幸运数字,计算hash值,直到找到一个值比预定目标小数字,来证明自己做了足够多的工作。

重点:工作量证明跟前面说的概念有点跳脱,这是因为没有说明工作量证明的意义。如果想要人蒙圈一些,就点到即止,不过我建议还是要怜悯一些,做出一脸嫌弃的样子,不情愿的说清楚为啥需要工作量证明。前面说过,区块是存储交易的数据块,而比特币去中心化的特点又没有一个中心机构有权来往区块里面写数据,所以采用工作量证明的方式,让做得最多的计算机来得到这个写区块的权利。这个过程,也叫做挖矿。


4、挖矿有啥好处

挖矿可以得比特币。

重点:是的,就这么简单。切记要高冷,言简意赅。矿工付出了工作,就需要回报。挖到区块的矿工,能够增加一条给自己50个比特币(大概每4年奖励减半,当前一个区块奖励12.5的比特币)的交易,而且还能给每个交易收取手续费。


5、什么是交易

比特币采用的是UTXO(Unspent Transaction Output)模型,普通情况下,每笔转账交易并不是简单的说从账户A扣多少钱,账户B增加多少钱。而是账户A从名下未消费的交易里面指定某几个合并为两个交易,然后对每个交易出一道非常难的数学题,并指定知道答案的人就是这笔新交易的拥有人。这两个交易一个是账户B的转账,另一个是给账户A自己的找零,这两笔交易跟输入交易相比的差额就是给矿工的手续费。转账的那个交易在出题过程中使用了账户B的信息,所以几乎所有的情况下,只有账户B才知道这个问题的答案。也就是说账户B才拥有这笔新交易的所有权。

重点:问出这个问题的人,已经开始对比特币有兴趣了,为了防止他深挖,所以要赶紧抛出一连串的名词,防止自己装逼失败。


6、什么是XXX

如果有人还有问题冒出来,那咱们就说人话吧。

比特币实质上是建立在一个记录了所有比特币转账记录的互联网账本上。这个账本的数据结构就是区块链。每个节点都有一份这个账本的副本,因此这个账本是公开的。


矿工们为了比特币奖励,夜以继日的用矿机挖矿,大概每十分钟会有一个或多个矿工胜出,夺得记账权利。每个胜出的矿工会把各自挖出的区块广播到网络中,此时账本会出现短时间的分叉。对于收到多个分叉的矿工来说,随机选择一个继续挖矿。由于矿工们只承认链最长的那个账本,所以这个分叉情况在下面的一个区块产生后将会消失,其他没有产生后续区块的分叉将会被抛弃。


对于普通用户来说,要发起一笔交易,要提供交易的输入,也就是之前未被消费的交易。然后要指定交易的输出。输出并不是某个账户,而是一个脚本。脚本需要额外的输入才能执行,而能使脚本返回为TRUE的那个输入就可以消费这笔交易。通过拿到目的账户的信息,就可以简单的构建出这种脚本。这样一个交易的输出通常包含两部分,一部分是给目的账户转的帐,另一部分是给自己的找零。输出与输入之差就是给矿工的手续费。因为给自己的找零可以控制,所以手续费可以指定。这样的交易就广播到网络上,由矿工收集打包到区块。

可能会有矿工不诚实,比如把给自己的奖励改成了100个比特币一个区块,或者是用非常少的工作量假装自己挖到了区块。看起来他们好像获利很大,不过这样的区块广播到网络上是没有诚实的矿工会承认的,所以这个矿工除了自嗨之外没有任何收益。


对于不诚实的用户来说,可以用同一笔交易在相近的时刻向不同的账户转账,也就是双花。这其实也不用担心,对于矿工来说,后收到的那个交易会发现输入已经被花费过了,所以第二个交易会被抛弃。而不同的矿工收到交易的顺序不同,所以就会出现两笔交易被打包到不同分叉的情况。不过再过一个区块之后,分叉就被消灭了。两笔交易最终只能有一个能被承认,无法双花。(前面为了叙述方便,只说了一个区块之后分叉会被消灭。不过事实上分叉可能会存活到多个区块之后。为了保证交易所在的分叉不被抛弃,现在一般是等到六个区块的确认才认为转账成功。)


以上几点,对于初级装逼已经足够,还望各位司机好好开车,安全驾驶。

登陆后阅读全文
阅读 1565 赞赏 0 有用 4 没用 0 收藏 0 分享

   



0 条留言

相关文章

比特币和山寨币的地下商业模式

有料推荐

这世界欠我一个这样的老公!

高校学生模仿“世界名画”摆拍,可以说是戏精本精了

iPhone X 跌破发行价,苏宁200亿入股恒大 | 财经日日评

果然是高手!这次在日本,特朗普竹杠敲得不是一般狠

资深黄牛现身说法:iPhone X价格秒变不停,就像炒股一样

长一样的双胞胎也能识别?蚂蚁金服发布「眼纹识别」技术

苏联是怎么被阿富汗拖垮的?

美团或入局「分时租赁」共享汽车,王兴要大笔投入「泛出行」领域了? | 36氪独家

你或许被“一盘番茄炒蛋”刷屏了,但有人辛酸,有人质疑

iPhone X发售前夜,黄牛与苹果公司的不安

他的文章

JAVA NIO 一步步构建I/O多路复用的请求模型

JAVA 中原生的 socket 通信机制

6款程序员必备的开源中文汉字拼音转换及处理工具 (PHP Java .net)

java如何获取网页标题title? (用htmlparser)

Tomcat9配置HTTP2的流程

快速上手 Kotlin 的 11 招

为什么我要改用Kotlin

比特币装逼指南

printf %8s %4s %-12s 这个数字是啥?

mysql: ERROR 1292 (22007): Truncated incorrect DOUBLE value:

手机扫一扫
分享文章