边看边记——今天来详细了解一下比特币
本帖最后由 3642578a 于 2013-12-20 14:40 编辑先来翻翻一堆一堆的软文章(与原理关系不大,可以先看原理再看这些拍脑袋的软文):
1.阮一峰写的《比特币的用途》
http://www.ruanyifeng.com/blog/2013/10/bitcoin.html
2.齐家军写的《阮先生,别被学院派经济学洗脑了!》
http://www.8btc.com/bitebi-tong-huo-jin-suo
3.李笑来写的《此物一出天下反!》
http://wordpress.lixiaolai.com/archives/10589.html
4.土木坛子的《此物一出天下反?》
https://tumutanzi.com/archives/2118
分歧颇大,有些蛋疼,经济学本来就有些软……
Never mind, 让他们互喷去吧,我们还是去了解了解bitcoin的原理吧
比特币约定以充分非对称加密之方式设立账户,以保证身份之自由产生、完全匿名与无法伪造;比特币约定以分布共享之方式维护总帐,以确保交易永远无法阻断、消除与回退;比特币约定以工作量证明之方式,以实现交易之确认与不可伪造;比特币约定 2100 万之极限并纪录于早期之区块,以奖励前期参与者之诚实贡献并抑制破坏之企图;比特币约定众人皆有平等参与结算与订立费用之权利,以确保结算以最高效率永远有效进行;比特币约定全部结算用软件必须公开代码并永远免费,并约定只接受此类软件之请求,以确保上述约定之完全执行与不可规避,并防止欺骗。
——2008 中本聪
一、关于比特币的发行,一个简单的描述是
二、准备知识
三、详细原理(推荐一看)
四、关于bitcoin的通缩
本帖最后由 3642578a 于 2013-12-20 14:42 编辑
在比特币系统中, 虽然人人都能发行货币, 但究竟是谁、 在什么时候、 发行什么数量的货币, 全都是由数学手段决定的。 这手段是什么呢? 两个字: 解题。 比特币系统不断地给玩家 (确切地说是他们的计算机) 提供所谓的 “苦力题”——即毫无捷径可循, 全靠卖苦力死算的题目,这种题目只能用计算机进行试错法来解, 谁先做出就可获得一定数量的新货币 (相当于是发行了这一数量的货币)。 这就是比特币的发行过程, 这个过程很象掘金者挖掘金矿——大家的贪欲虽然旺盛, 但要想拿到金子, 埋头挖掘才是硬道理。 有鉴于这种相似性, 比特币系统中的货币发行被称为 “挖掘” (mining), 参与 “挖掘” 的人则被称为 “挖掘者” (miner)。 比特币的发行过程与挖掘金矿之间的相似性还有另一个重要层面, 那就是比特币系统中的货币总量是有限的, 就象地球上的金矿总量有限一样。 这总量是多少呢? 是 2100 万枚 。 这是比特币有别于象腾讯的 Q 币、 “魔兽” 的金币那样的其它电子货币及实体货币的又一个重要特征, 也使得它在某些人眼里比其它货币更具收藏及升值潜力。
回目录
下一节:
准备知识
本帖最后由 3642578a 于 2013-12-20 14:09 编辑
要想了解bitcoin的技术原理,首先需要了解两个重要的密码技术:
HASH码:将一个长字符串转换成固定长度的字符串,并且其转换不可逆,即不太可能1从HASH码猜出原字符串。bitcoin协议里使用的主要是SHA256。
公钥体系:对应公钥和私钥两种密钥,一个公共密钥,一个专用密钥。如用其中一个加密,则可用另一个解密。在应用中自己保留私钥,并公开公钥。如当甲向乙传递信息时,可使用甲的私钥加密信息,乙可用甲的公钥进行解密,这样可确保任何人无法冒充甲发送信息,因为甲的私钥唯一;同时,乙向甲传递信息时,用乙的公钥加密后发给甲,甲再用自己的私钥进行解密,这样可确保第三者无法偷听两人之间的通信。最常见的公钥体系为RSA,但bitcoin协议里使用的是lliptic Curve Digital Signature Algorithm。
1.不太可能不是不可能,比如传闻清华王小云教授在炒菜的时候灵光一闪,发现了个算法,使得这种不可逆的过程变得更加可能!可以看看这里:http://zhiqiang.org/blog/science/computer-science/preliminary-computer-theory-xiao-yun-wang-from-the-hash-function-to-crack-md5.html
回目录
下一节:
详细原理
本帖最后由 3642578a 于 2013-12-20 14:56 编辑
认真阅读万以上准备内容,我们开始了解bitcoin的原理
Bitcoin账户与银行账户和在银行开立账户一样,bitcoin里的对应概念为地址(类比为银行账户)。每个人都可以有1个或若干个bitcoin地址(类似于银行账户),该地址用来付账和收钱。每个地址都是一串以1开头的字符串,比如有两个bitcoin地址:1911HhKdLbnsffT5cRSiHgK3mdzMiyspXf和1JSUzrzMk7f6iymfVkvqLBJDBZXBopyfZK。一个bitcoin地址由一对公钥和私钥唯一确定,要保存账户,只需要保存好私钥文件即可。和银行账户不一样的地方在于,银行会保存所有的交易记录和维护各个账户的账面余额,而bitcoin的交易记录则由整个P2P网络通过事先约定的协议共同维护。
那么我的账户地址里到底有多少钱?虽然使用bitcoin的软件可以看到当前账户的余额,但和银行不一样,并没有一个地方维护每个地址的账面余额。它只能通过所有历史交易记录去实时推算账户余额。任何人只要下载了客户端都能接收到从比特币成立那一天起的所有账单,所以,只要把所有账单都下载全了自然知道每个账户上应该剩多少钱(这里仔细思考下)
我如何付账?当我从地址A向对方的地址B付账时,付账额为e,此时双方将向各个网络节点公告交易信息,作如下广播:地址A向地址B付账,付账额为e。为了防止有第三方伪造该交易信息,该交易信息将使用地址A的私钥进行加密,此时接受到该交易信息的网络节点可以使用地址A的公钥进行验证该交易信息的确由A发出。(如果你没理解,再好好看一看第二部分的准备知识)
网络节点后收到交易信息后会做什么?这个是整个bitcoin系统里最重要的部分,需要详细阐述。简单起见,这里只使用目前已经实现的bitcoin协议,在当前版本中,每个网络节点都会通过同步来保存所有的交易信息。历史上发生过的所有交易信息分为两类,第一类为"验证过"的交易信息(相当于现金流已经发生过了),它保存在一连串的「blocks」里面。每个"block"的信息为前一个"bock"的ID(每个block的ID为该block的HASH码的HASH码)和新增的交易信息。另外一类指那些还"未验证"的交易信息,上面刚刚付账的交易信息就属于此类(即权责发生了,但收付还未实现)。当一个网络节点接收到新的未验证的交易信息之后(可能不止一条),由于该节点保存了历史上所有的交易信息,它可以推算在当时每个地址的账面余额,从而可以推算出付款的账户里是否有足够余额。在剔除掉无效的交易信息后,它首先取出最后一个"block"的ID,然后将这些未验证的交易信息和该ID组合在一起,再加上一个验证码,形成一个新的「block」,然后我们可以类比为现金流发生了。上面构建一个新的block需要大量的计算工作,因为它需要计算验证码,使得上面的组合成为一个block,即该block的HASH码的HASH码的前若干位为1。目前需要前13位为1(大致如此,不确定具体方式),此意味着如果通过枚举法生成block的话,平均枚举次数为16^13次。使用CPU资源生成block被称为「挖金矿」,因为按照规定,生产该block将得到一定的比特币奖励(这相当于货币发行!),该奖励信息已经被包含在这个block里面。当一个网络节点生成一个新的block时,它将广播给其它的网络节点。但这个网络block并不一定会被网络接受,因为有可能有别的网络节点更早生产出了block,只有最早产生的那个block或者后续block最多的那个block有效,其余block不再作为下一个block的初始block。(这样就限制了货币发行速度和现金流的唯一性)
对方如何确认支付成功?当该笔支付信息分发到网络节点后,网络节点开始计算该交易是否有效(即账户余额是否足够支付),并试图生成包含该笔交易信息的blocks。当累计有6个blocks(1个直接block和5个后续blocks,实际上只有第一个被采用)包含该笔交易信息时,该交易信息被认为「验证过」(可类比为权责发生,会计们记录了该交易,从而交易完成;或者类比为发生了现金流,从而交易完毕),从而该交易被正式确认,对方可确认支付成功。一个可能的问题为,我将地址A里面的余额都支付给地址B,同时又支付给地址C,如果验证通过则相当于我的账户余值翻了个倍,如果只验证单比交易都是有效的。此时,我的作弊的方式为在真相大白之前产生6个仅包括B的block发给B,以及产生6个仅包含C的block发给C。由于我产生block所需要的CPU时间非常长,与全网络相比,我这样作弊成功的概率微乎其微。
网络节点生产block的动机是什么?从上面描述可以看出,为了让交易信息有效,需要网络节点生成1个和5个后续block包含该交易信息,并且这样的block生成非常耗费CPU。那怎么样让其它网络节点尽快帮忙生产block呢?答案很简单,协议规定对生产出block的地址奖励BTC(这就是比特币的发行!),以及交易双方承诺的手续费。目前生产出一个block的奖励为50BTC,未来每隔四年减半,比如2013年到2016年之间奖励为25BTC。
回目录下一节:关于bitcoin的通缩 本帖最后由 3642578a 于 2013-12-20 15:00 编辑
一般来说,在交易活动相当的情况下,货币的价值反比于货币的发行量。不像传统货币市场,央行可以决定货币发行量,bitcoin里没有一个中央的发行机构。只有通过生产block,才能获得一定数量的BTC货币。所以bitcoin货币新增量决定于:
1、生产block的速度(便于理解可类比为货币流通速率):bitcoin的协议里规定了生产block的难度固定在平均2016个每两个星期,大约10分钟生产一个。CPU速度每18个月速度加倍的摩尔定律,并不会加快生产block的速度。
2、生产block的奖励数量(类比为货币发行量):目前每生产一个block奖励50BTC,每四年减半,2013年开始奖励25BTC,2017年开始奖励额为12.5BTC。
综合上面两个因素,bitcoin货币发行速度并不由网络节点中任何单个节点所控制,其协议使得货币的存量是事先已知的,并且最高存量只有2100万BTC(目前每周增加约5万BTC),这就是它通缩的本质
这一性质给这种货币带来了优点和缺点:
通货紧缩对生产者并非恶梦. 虽然货物价格变低, 但同时成本价格也会变低.
但对于储蓄者是美梦, 他们的储蓄会越来越值钱;
对于欠债者才是恶梦, 他们的债务会越来越多.
对于银行来说也是恶梦, 银行的主要利益来自杠杆操作, 通货紧缩会令其成本变高, 风险大增.
对政府来说也是恶梦, 因为政府是欠债最多的个体, 其赤字会越来越难弥补.
所以我认为银行和政府会排拆 bitcoin, 但平民百姓会欢迎这东西.
在bitcoin的官方文档里,bitcoin被描述为反通胀的货币,因为它的发行量是已知的,并且增长很慢。但反通胀,亦即通缩,并不是一件好事情。央行维持通货膨胀水平也从来不是固定住货币总量,而是将货币总量与经济活动挂钩(虽然在执行过程中往往会有较大的偏差)。而更严重地是,bitcoin的这种特性将使得它成为一种投机商品,而不是货币。费雪方程是最容易理解的描述物价和货币量的方程:
P×Q=M×V其中M表示一定时期流通中货币的平均数量;V表示一定时期单位货币的平均周转次数即货币流通速度;P表示商品和劳务价格的加权平均数;Q表示商品和劳务的交易数量。
那么当V和M保持不变或固定增长速度时,劳务和商品的价格将与使用该货币的劳务商品的交易量成反比,也即,该货币的价值与该货币的流行程度成正比。当bitcoin流行程度不变时,该货币的价值基本保持稳定(以当前货币的发行速度贬值,即很低)。但目前bitcion支持的交易量太少,当它越来越被接受的时候,通过它提供的商品和劳务数量会越来越大,根据上面的方程,商品开始贬值,货币的价值也就越来越大(注意物价和货币价值成反比)。事实上,在过去的14个月,bitcoin的价值(以美元记)增长了1000倍。如果我们将bitcoin也视为一种商品(和黄金类似),它的价值将随着流行程度而变高,使得越来越多的投资者选择持有bitcoin,而不是用它来交易。而当投资者选择持有bitcoin时,也就降低了市场上流通的bitcoin的数量,亦即降低上述费雪方程中的M,从而继续降低P,亦即bitcoin的价值继续升高。
这便是一个典型的泡沫形成过程。bitcoin的价值不会无限上涨,等到了某个阶段,泡沫便会破灭,货币价值暴跌,直到下一轮的泡沫形成。这使得bitcoin的价格将非常不稳定。你愿意接受一个今天价值10美元,但明天可能价值为20美元,也可能价值为5美元的物品作为你劳动的报酬吗?
谢谢整理 我理解比特币和多印美元没什么区别,它并没有创造实际的财富,通过挖坑机来工作,得到比特币,挖坑机浪费了电能,创造了什么,有什么用,谁在为比特币买单?
本质就是坑后来者,尤其用钱买比特币的人。
页:
[1]