何为区块链 ? 何为比特币?
比特币采用区块链技术, 但不等于比特币就是区块链
如果用一句通俗的话来概括:区块链,是一种(去中心化)技术,它解决的是市场经济中最核心的“信任”问题,把陌生人之间的信任成本降到极低的水平,对于中介成本很高或者缺乏信任场景的领域很适用区块链技术.
市场经济体制下,有一个很重要的问题就是信任, 如果没有信任, 任何交易都不可能成立. 曾经有一度我经常在想, 比如在初中 高中 大学的食堂, 如果有丧心病狂的人在饭菜里下毒那可怎么办? 困惑了我很久, 还好我没有遇到这种事情, 虽然我不懂食堂有何种的监督机制, 但一定是有的, 所以可以让我信任 放心的每天去吃饭, 就像菜市场买菜, 如果他给你的菜农药残留超标或者质量不好, 那么你就不再会去买, 并且告诉身边的人不去买, 然后他的菜就不好卖了,弄坏了他的生意, 所以这种熟人经济, 欺骗我们的可能性比较低,但是陌生人呢? 别说买菜了, 给你一瓶水你敢喝吗?因此一旦超出熟人范围, 我们就需要很高的成本来识别一个陌生人会不会骗我, 怎么识别, 当然是大品牌, 有认证, 口碑好的, 所以大品牌都很贵,或者说超过这个质量该有的价格
在互联网时代, 我们的交易不可能都是熟人经济, 那么中介模式就来了, 支付宝啊微信啊 paypal 啊等, 这就是信任中介, 但是成本往往巨大的, 政府其实也是信任中介, 不然你的人民币就是一张纸而已, 政府每年要收多少税? 最赚钱的拿个行业? 金融服务业,支付宝的蚂蚁金服年利润超过百亿, 这意味着交易的双方都付出了很大的信任成本, 有人说我淘宝买东西没有额外付钱啊, 但是羊毛出在羊身上的道理都懂
有什么办法可以降低这种信任成本? 互联网时代,区块链技术登场了, 他让交易双方甩开中介, 解决陌生人之家的信任问题, 大幅降低信任成本.
理论上讲区块链技术可以推广到所有可数字化的领域, 比如数字货币, 支付清算, 数字票据, 权益证明, 征信, 政务服务, 医疗记录等等
先讲个故事吧
中心化
比如你在淘宝买了一本书,会有以下流程
1> 你在淘宝下单,把钱支付给了支付宝
2> 支付宝收到钱后通知卖家给你发货
3> 你收到后 确认收货 支付宝收到通知把钱给卖家
完成交易 , 其中支付宝起了一个媒介作用, 也就是所谓的中心化, 为什么需要中心化呢? 因为他有权威, 万一哪个环节出现问题都可以通过支付宝寻求帮助,让支付宝仲裁, 它的价值显著, 就是建立权威, 通过权威背书来获取多方的信任, 也就成就了淘宝和支付宝, 同时依赖权威背后的资本和技术实力确保技术的安全.
但是它有弊端, 它的弊端是什么呢?如果哪天阿里的数据库损坏了或者重大 bug 你的交易数据不见了, 那么没有人承认你付过钱或者你发过货, 过分依赖权威和中心, 也就意味丧失了自己的话语权
去中心化
那么你说如果没有支付宝这种中心化的权威媒介怎么办呢? 那就是区块链这种去中心化的交易模式了, 不然那你可想而知, 你付款了卖家说你没付款就不给你发货,你找谁说理去, 在人的精神境界没有那么高的时候, 就靠监督了
在没有支付宝的世界里你是如何买到一本书的呢?
1> 你下单把钱打给卖家
2> 你讲这条转账信息记录在你的小本本上,然后广播出你的这条信息,比如你付了多少钱给某某,买了什么东西,什么时间,或者编号等,一些独特的标记信息
3> 其他的很多人旁观者也记下这条信息,谁第一个记下奖励多少,然后就有一堆人帮你记录了这个信息,这样卖家想赖账也赖不掉了
4> 卖家收到钱发货,并在自己小本本上记录下发货信息,同时广播发货信息,然后很多人记录这条信息,至此交易完成
看起来很弱智对不对,比如我没有转账专门找一些人记录说我转账了,这就是计算机概论和计算机网络中都有提及的”类两军”和”拜占庭将军”问题,感兴趣的可以找一下,在区块链系统中,这两个 bug 都可以通过巧妙的设计解决
区块链
其实在上面的例子中已经透漏出区块链的影子
1> 分布式存储,通过多地备份,制造数据冗余
2>让所有人都有能力都去维护共同一份数据库
3> 让所有人都有能力彼此监督维护数据库的行为
没错,这就是区块链的核心思想
1 区块链是一个放在非安全环境中的分布式数据库(系统)。
2 区块链采用密码学的方法来保证已有数据不可能被篡改。
3 区块链采用共识算法来对于新增数据达成共识。
具有以上三个性质的系统,就是区块链。
那么怎么实现区块链?
交易数据写在区块里, 第一个区块叫做创世区块,写啥都行, 从第二个区块开始,每个区块的第一部分有前一区块的哈希值, 莫名的跟 isa 指针好像, 或者程序的存储很像, 第一位一般存放内存地址, 或者类的 isa 指针. 此外区块里的每一笔交易, 都有发起人的数字签名来保证真实和合法性,于是先前区块里的任何数据都不可篡改, 可能有人会问, 为什么要弄个链, 直接给所有数据加个哈希值不就行了, 因为这个数据库并不是静止的啊, 数据库的数据不断增加, 每次增加的数据 就是一个区块, 于是这些在生成时间不同的区块, 就以这种新式链在一起了
区块链是如何增加区块的?
区块链采用共识算法来对新增数据达成共识, 共识算法的目的就是让所有节点认可并达成共识, 对于有中心的系统,这很简单, 中心就是权威, 中心说的就是对的, 就像支付宝说你支付了卖家就得认 就得给你发货, 所以这个中心要有强大的数据技术能力和资本背书
那么去中心化的呢 如何让所有人对新增区块达成共识呢
这里说一下最简单的无签名同步系统
我们管三个系统叫ABC,正常工作流程是三个人每次得出结果就互相告诉一下,然后每个人选多数人同意的结果。这是个没有中央节点的分布式系统,也就是说三人不能聚在一起开个会啥的,仨人只能两两通信。这个时候,假设C有恶意,它的目标是破坏这个系统。于是,假设正确的读数是1,A和B都得出了1这个结果,这个时候C这个小婊砸告诉A说“我的结果是0,B也觉得是0”,同时打个电话跟B说“哎我觉得是0,A也这么说”,于是A和B就懵逼了。假设你是A,你听到了两个不同版本的B的答案,B说自己选了1,C说B选了0,可是A这个时候没法知道B和C谁才是那个骗了自己的小婊砸,因为如果B真的告诉A选了1然后告诉C是0,他听到的结果和现在是一模一样的。
于是结论是,拜占庭容错,也就是需要容下一个恶意系统而非错误系统,需要4个独立系统。
(当然,签名可以解决这个问题,但是这只是同步系统的情况,在异步系统里这问题会变得更加复杂,原因是正常节点的回答有延迟,而恶意节点可以不回复,所以,正常节点一方面要等另一个节点的回复,但是它又不知道对方会不会回复因为对方有可能会有恶意,而在收到回复之前,它完全没法判断对方是正常节点还是恶意节点,这个问题叫异步BFT,也是BFT的最复杂的情况,这里不再做更多的解释,下文提到的BFT算法,其实都是异步BFT的算法)
Lamport提出这个问题之后,有无数的算法被提出来,统称BFT(拜占庭容错)算法,其中最有代表性的叫PBFT,然后由于最近区块链的热度,无数针对区块链应用场景优化过的BFT算法也涌现出来,但是一个重要的问题是,所有目前的BFT算法,都只能应用在小型网络里。原因很简单——因为BFT这个问题是设计给类似于航天飞机控制系统这样的场景的,早期的算法考虑的也主要是这种场景。PBFT论文里考虑的就是一个5个节点的系统。就算算上新提出的BFT算法,也最多应用在不超过100个节点的网络里
这个问题被搁置到直到比特币的诞生,也就是中本聪从某种意义上简化了这个问题,同样是共识问题, 比特币采用了一个假设-奖励机制, 他之所以这么做他考虑的是一个数字货币,也就是说共识这个东西是有价值的
于是在这样的系统上,他提出了工作证明机制。
所有挖矿,矿工,最长链,分叉等等等等,都可以归结为一句话:
说话是要有代价的,说真话是有好处的,说假话是要扣钱的……
这就是目前两类共识算法的核心区别:
BFT共识模型:恶意节点可以干任何事。
比特币共识模型:模型中有公认的“价值”,每个节点说话都需要一定代价,诚实节点会受到奖励,而恶意节点由于只付出代价而收不到奖励,变相受到了惩罚,比特币共识对于BFT的优势在于,由于给恶意节点的能力做了限制,恶意节点所能造成的破坏大大降低了,尤其是对于异步系统——BFT共识里恶意节点可以一直拒绝相应而诚实节点还需要一直等它(因为不知道它是不是恶意的),而对于比特币共识,随你便,你不响应就没有奖励可拿。于是,比特币共识算法可以应用于成千上万个节点,而且,任何人随时都可以加入,不需要预先在网络里注册自己的身份(而BFT算法里,网络中节点的数量和身份都必须是已知的)。
但比特币共识的缺陷在于,首先,得有个有价值的东西,也就是说放在比特币里这东西还行,以太坊的话现在可能也凑合,但是其他数字货币嘛……BFT共识有个严格的限定,就是恶意节点不能超过总数的1/3,然而其实比特币共识没有这样的限制,唯一的限制就是假定大部分节点都是理性的,是逐利的,也就是会采用最佳的策略来赚取最大的价值。所以,严格来说,自私挖矿这种行为在比特币共识里是允许的,而多数攻击,其实也算不上一种攻击,因为这些都没有突破比特币共识的框架——如果这个价值无限大,比特币共识是非常可靠的。然而这并不是事实,因为并不是每个虚拟货币都和比特币一样值钱,而在价值不高的情况下,比特币共识的前提就站不住脚了——当损失可能是几千上万块钱的时候,假定每个人都是理性的是合理,但是如果损失就几分钱这个假设就相当扯淡了,事实上也发生过一个比特币矿池跑到另一个货币恶意挖矿搞垮对手的情况
简单的说也就是如果你说了假话代价很小的情况下, 就损失几分钱, 那么这个共识就不可靠了,因为可以肆意的说谎, 如果像比特币这种价值比较高的, 说谎的代价也就高了, 几千几万就没有多少人说谎了, 恶意节点也就很少, 这个共识也就非常可靠, 现在好像只有比特币是公有链的死忠了
当你花了巨大的算力来记录假账,被其他的记账节点发现了, 推翻了这次记账, 就相当于你付出了巨大的成本一无所获,所以奖励机制和记错账损失机制保证了大家尽可能多的参与记账,并且诚实的记账
说了那么多,比特币到底是什么玩意?
还是先讲故事, 就像刚才的去中心化的系统, 比如 A 借了 B 100块钱, A 在人群里大喊:我是 A, 我借了 B100块钱! B 在人群里大喊: 我是B 我借给了 A100块钱, 此时路人甲乙丙丁都听到了, 所有人都在心里默默记下这个事情, A 借了 B 100块钱. 这不就是一个去中心化的系统建立了, A 借了 B 100, 这就是一个事实, 那么你说如果 A 是自己编造的呢, 或者甲乙丙丁都是 A 雇来的恶意说谎的, 那么还是去看类两军和拜占庭将军问题吧, 这样人与人就不需要建立长期的信任关系, 如果有一天 A 说我没接 B100块钱, 那么甲乙丙丁就会站出来说:不对,我的小本本上可都记着呢? 当然了这个当然是参与人越多越准确
可能你已经发现, 100块钱这个东西并不重要了, 我只要大喊我借什么给谁谁都可以,任何东西都可以在这个模型中交换, 甚至可以凭空杜撰出来一个东西流通, 比如我大喊: 我借给100个查克拉给 B, 我自己甚至都不需要查克拉是什么, B 也不需要知道, 记账的吃瓜群众更不需要知道, 你只管记下就好了, 从此以后我就可以声称我给了B100个查克拉, 只要路人都承认这个事情, 那么就是真的, 我就真的有100个查克拉, 并且借给了 B, 就算完成了这个交易, 哪怕世界上根本没有查克拉
是不是想到了比特币, 没错 就是比特币
但是肯定有人想问,吃瓜群众闲的吗,他们为什么要帮你记这个事情呢?
这就是中本聪提出的关于共识问题的解决办法: 奖励机制
第一个听到我喊话并记录下来的人,你就凭空得到了1个查克拉,这个查克拉是整个系统对你幸苦记账的报酬,而你记录了这句话之后,要马上告诉其它人你已经记录好了,让别人放弃继续记录这句话,并给你自己的记录编号让别人有据可查,然后你再把我的话加上你的记录编号一起喊出来,供下一个人记账。
当这个规则定下以后,这个系统中一定会出现一批人,他们开始竖着耳朵监听周围发出的声音,以抢占第一个记账的权利。对的,你脑海中是不是又浮现出了“比特币挖矿”的字眼?
到底该听谁的?
如果我和另一个人同时广播了一件事情, 那么甲乙丙丁就开始记了, 有人记下是我说的这个事情, 有人记下是那个人说的, 然后后面的人跟着记, 这就形成了两派, 事情就得不到求证, 这个事情到底是谁说的呢, 就是分叉, 他们小本本上记录的东西不一样了,失去了真实性, 那还怎么交易?
为了解决这个问题,我又增加了规则:每个人在记录小本本的时候,需要脱鞋然后用脚拿笔,在小本本上用正楷体书写!有了这个规定,由于用脚写字难度很大,每个人至少需要10分钟才能写完,而且由于每个人用脚写字的熟练度不通,写完这句话所用的时间也不同,因此一定会有人先写完然后高呼“我写完了!那句话是Chris喊的!”,这样其它正在写这句话的人便会停笔,然后在小本本上重新开始写“那句话是来文写的,上一句的编号是xxx”。 这样那个跟我一起喊的人就被 pass 掉了, 小本本上记得一模一样了
那么下面的术语就可以这样套了:
“听谁的”——中本聪破解“拜占庭将军问题”的算法(其实就是换个思路)
“在小本本上记录”——比特币挖矿
“脱鞋用脚写字”——比特币挖矿难度
“脱鞋写字速度”——算力
“新的规则”——工作量证明链
总结一下, 首先不要把区块链想的过于高深,他是一个分布在全球各地、能够协同运转的数据库存储系统,区别于传统数据库运作——读写权限掌握在一个公司或者一个集权手上(中心化的特征),区块链认为,任何有能力架设服务器的人都可以参与其中。来自全球各地的掘金者在当地部署了自己的服务器,并连接到区块链网络中,成为这个分布式数据库存储系统中的一个节点;一旦加入,该节点享有同其他所有节点完全一样的权利与义务(去中心化、分布式的特征)。与此同时,对于在区块链上开展服务的人,可以往这个系统中的任意的节点进行读写操作,最后全世界所有节点会根据某种机制的完成一次又依次的同步,从而实现在区块链网络中所有节点的数据完全一致。
什么是比特币?
通俗的讲,比特币是一种总量恒定2100万的数字货币,和互联网一样具有去中心化、全球化、匿名性等特性。向地球另一端转账比特币,就像发送电子邮件一样简单,低成本,无任何限制。比特币因此被用于跨境贸易、支付、汇款等领域。
比特币是怎么产生的?
比特币的核心原理是区块链, 每一个区块对应一个账单,将所有的区块链接起来就是区块链, 任何交易信息和转账记录都记录在区块链里(其他货币都是在银行里),要注意的是区块链存在整个互联网中, 所以任何比特币持有者都不担心比特币遭受损失.每隔一个时间点,比特币系统会在系统节点上生成一个随机代码,互联网中的所有计算机都可以去寻找此代码,谁找到此代码,就会产生一个区块,随即得到一个比特币,这个过程就是人们常说的挖矿。计算这个随机代码需要大量的CPU GPU运算,于是矿工们采购海量显卡用以更快速的获得比特币获利, 由于设置为了2100万所以比特币不会像钞票一样越来越多,购买力下降而出现通货膨胀.目前一个1个比特币基于目前的数据结构被分割到8个小数位,也就是0.00000001 BTC,矿工们挖到比特币最小的单位就是0.00000001 BTC。通俗点说,比特币好比是一座由总量为2100万个金币组成的金山,想要得到它,就需要玩家们利用电脑的运算能力,根据现有的算法计算出一组符合特定规律的数字。当然,这些数学题随着现有比特币的增加正变得越来越难
中本聪挖出了第一个创世区块,
关于比特币挖矿?
举个例子
- 我手上有100人民币 谁关注公众号就给谁
- 但是要在评论里给出这个钱的编号(够难吧 比特币那个数学题也很难)
- 自己想尽办法求解, 猜中获得100全款
- 出来召集一群人 大家组成一个小团体 集思广益 通过猜测的次数 按比例分配这100元(矿池)
挖矿速度,专业说法叫算力, 就是计算机每秒产生 hash 碰撞的能力, 算力越高 挖出的比特币越高,回报也就越高, 比特币挖矿总共经历了5个时代
CPU(20MHash/s)→GPU(400MHash/s)→FPGA(25GHash/s)→ASIC(3.5THash/s)→大规模集群挖矿(3.5THash/s*X)
在比特币的世界里,大约每10分钟会记录一个数据块。所有的挖矿计算机都在尝试打包这个数据块提交,而最终成功生成这个数据块的人,就可以得到一笔比特币报酬。最初,大约每10分钟就可以产生50个比特币的比特币报酬。但是该报酬每4年减半,现在每10分钟比特币网络就可以产生25个比特币。
而要成功生成数据块,就需要矿工需要找到那个有效的哈希值,而要得到正确的哈希值,没有捷径可以走,只能靠猜,猜的过程就是计算机随机hash碰撞的过程,猜中了,你就得到了比特币.
比特币是谁在发行,发行多少?
比特币的货币是通过挖矿(工作量证明)来发行的,总数量是通过程序写死了2100万个,而第一笔区块奖励也是硬编码写死的。矿工挖出一个区块所获得的奖励,每隔21万个区块将减少一半,按照平均10分钟挖出一个区块的执行效率,也就就说差不多每四年会锐减一次。2009年1月起每个区块奖励50个比特币,2012年11月减半为每个区块25个比特币,2016年7月减半为12.5个比特币。基于这个规则,到2140年,所有比特币(20,999,999,980)将全部发行完毕,之后不会再有新的比特币产生。
比特币和人民币和 Q 币什么区别?
最大的区别就是比特币是去中心化的,其他的都是中心化的,什么意思呢? 人民币由政府发行, Q 币由腾讯发行, 他们就是中心和权威, 发行量都是他们定,虽然不是想发行多少就发行多少, 但是确实是可以控制的, 比特币不同,就像没有人能凭空变出黄金来一样,没有人能变出比特币-除了烧钱挖矿或者花钱购买,在比特币区块链启动后,就算中本聪也没有能力凭空变出比特币,或增加、扣减他人的比特币。另外,Q币和人民币都是局域性货币,Q币只能在腾讯系统内消费,人民币主要在大陆流通。而黄金和比特币都是全球性货币。
矿工节点的收益除了挖出区块以外还有哪些?
矿工节点的收益主要由两部分组成:1)挖出新区块的奖励;2)挖出新区块内所含交易的交易费。但就目前来说,一个区块内的交易费大概只占到矿工总收入的0.5%甚至更少,大部分收益主要还是来自于挖矿所得的比特币奖励。然而,随着挖矿奖励的递减,以及每个区块中包含的交易数量增加,交易费在矿工收益中所占的比重将会逐渐增加。在2140年之后,所有的矿工收益将完全由交易费构成。有人说奖励减半最后没有的情况下,那不是没人做矿工了,也就没人帮忙确认交易了, 答案是否定的, 到时候矿工的收益会变成交易手续费,例如在转账时可以指定其中1%作为手续费支付给记账的人, 各个记账的就挑选手续费高的优先记账
比特币的价值由谁定义?
黄金的价值由谁定义? 市场, 比特币也是一样, 比特币的波动主要是由于他的货币属性导致的, 他作为货币主要在市场流通, 二级市场做出的预判造成了他的波动, 比特币之前的基础涨跌是有价值基础的,现在的暴涨暴跌主要是市场行为
如果还不理解比特币?
和法定货币相比,比特币没有一个集中的发行方,而是由网络节点的计算生成,谁都有可能参与制造比特币,而且可以全世界流通,可以在任意一台接入互联网的电脑上买卖,不管身处何方,任何人都可以挖掘、购买、出售或收取比特币,并且在交易过程中外人无法辨认用户身份信息。 2009年,不受央行和任何金融机构控制的比特币诞生。 比特币是一种电子货币,由计算机生成的一串串复杂代码组成,新比特币通过预设的程序制造,随着比特币总量的增加,新币制造的速度减慢,直到2140年达到2100万个的总量上限,被挖出的比特币总量已经超过1200万个。
总结:
其实很简单,中本聪设计了一个软件,这个软件有自己独特的加密方法,生成的随机值基本无法被固定算法破译,只能通过穷举法来试验出正确答案,而穷举法就需要大量的算力来不断测试这个随机值到底是什么,一旦猜对了,软件就会给你比特币奖励,并对所有参与猜数字游戏的人发公告说某某人已经猜到了,然后生成一个新的随机值继续让你猜,一直循环下去。
刚开始参与猜谜的人少,这个随机值容易猜,需要的算力不大,随着越来越多的随机值被猜出来,奖励的比特币越来越多,参与的人也越来越多,你就需要更快更强大的算力,不然就都被别人猜走了。
一堆人组成了一个猜谜团体,针对一个谜题各抒己见,有的人比较聪明提供了10个答案,有的人提供了5个,有得人比较笨只有1个,然后经由团体领导人把所有答案提交上去,一旦正确答案在你们提供的答案里,得到了奖励,再根据每个人提供的答案数量分配奖励。
中本聪达到了他的目的,我们先不说他是否对这个软件有掌控力,就算他没有,他也完成了自己的目标,让一堆人不事生产参与进自己的组织,他甚至什么都不用干,后面参与的人为了自己的利益都会不断的继续让更多人参与进来,人越多,比特币就越难挖,物理价值就越高,创始人说自己手里只有50个,可是,比特币是自由的,你虽然知道哪个账号有多少比特币,却不知道帐号是谁的,你压根不知道也许路上遇到的一只狗就是那个10万比特币帐号的拥有者。
比特币自由吗? 只要有交易,就不存在自由,资本巨鳄有得是办法调控他的价值,而且因为没有国家级的势力作为后台,比特币本身对其价值的起伏毫无应对办法。所以除非以后哪天我们真的全都生活到互联网里,比特币的每一个打包块都是一块地皮,那么这玩意才能真正拥有价值,成为硬通货,否则,就永远是一个传销骗局,不,传销都比他好,因为大部分传销组织其实都有自己的产品,虽然这产品可能很廉价。比特币的热度,目前是将近18000美金一个比特币,我不会劝说已经在盘里的人出来,大部分人都已经被几百几千倍的利益迷红了眼,很多矿工也投入了无数的金钱或时间。
我只想劝说还没有入盘或者还在犹豫的人,不管你是想当矿工还是想入盘持币,请多思考一下,不要再让这个对人类的发展毫无意义的组织扩大了,他没有生产,只是在无谓的耗电,得到的打包块也没有任何意义,目前拥有的价值,全部,全部是泡沫,一巴掌拍下去就能到底,你可以想象一下,如果哪天美国或者中国宣布比特币非法,禁止参与,那么,你逃都来不及,你期望谁来给你说话,毒枭还是军火商?不要天真的认为美国或者中国不会那么做,现在没那么做的原因是没必要,而不是有什么原因阻止他们那么做。
原文地址:https://www.cnblogs.com/ChrisZhou666/p/8611455.html