解密比特幣

作者:樂購科技 來源: 2013-12-02 09:43:20 閱讀 我要評論 直達(dá)商品

 近期 BitCoin 被炒作得沸沸揚(yáng)揚(yáng),看好的唱衰的,莫衷一是。我們不妨讀解一下 BitCoin 的技術(shù)原理。了解原理以后,BitCoin 能夠解決什么問題,尚存什么缺陷,自然就一清二楚。剩下的問題,就是討論隨著 BitCoin 的發(fā)展,將會有什么機(jī)會。

我們不妨把 BitCoin 體系拆分為四個問題來談,1. 交易(transaction), 2. 支付(payment), 3. 審計(audit), 4. 鑄幣(mintage)。

【1】 交易(transaction) 

交易的基本訴求,是付款人(payer)匯款給收款人(payee)。技術(shù)挑戰(zhàn)是加密(cryptography),目的是不讓第三者截獲甚至篡改匯款金額。

BitCoin 的交易加密方式沿用了現(xiàn)成的,基于公鑰(public-key)私鑰(private-key)的非對稱加密體系(asymmetric cryptography)。這里沒有什么創(chuàng)新。

[1] 第二節(jié)的圖例中,最左側(cè)的框,解釋了 Owner0 給 Owner1 匯款的交易機(jī)制,截圖如下。

1

1. Owner0 先查到 Owner1 的公鑰。用 Owner1 的公鑰(Public Key)把匯款詳情加密。這樣,只有 Owner1 本人用自己的私鑰(Private Key),才能打開加了密的匯款詳情。在圖例中,沒有畫匯款詳情。不過這個小小的敘述的疏忽無妨大雅。

2. 為了方便 Owner1 驗證這筆匯款的確來自 Owner0,而不是別人,Owner0 發(fā)出的匯款單里,除了有加了密的匯款詳情,還有 Owner0 的數(shù)字簽名(Signature)。Owner1 拿到匯款時,為了驗證這筆匯款的確來自 Owner0,他可以用 Owner0 的公鑰,來驗證匯款單中 Owner0 的數(shù)字簽名。

3. Owner0 發(fā)出匯款單時,匯款單不僅僅投遞到 Owner1,而且還要廣而告之,任何人只要愿意參與 BitCoin 審計,都可以收到全球所有人發(fā)出的所有匯款單。

4. 沿用 1、2、3 的原理,Owner1 給 Owner2 匯款,然后 Owner2 給 Owner3 匯款。BitCoin 通過 Hash 機(jī)制,把涉及同一枚 BitCoin 的所有匯款交易(Tranaction)串連起來,目的是為了追查重復(fù)付款(double spending)的欺詐行為。

【2】 支付(payment)

當(dāng)付款人(payer)向收款人(payee)發(fā)出匯款交易(transaction)后,支付過程(payment)并沒有完成。直到收款人簽收了匯款以后,支付過程才正式結(jié)束。

在收款人接受匯款以前,他必須確認(rèn)匯款人沒有重復(fù)付款(double spending)。這就類似于我們接受紙幣前,最好驗證一下紙幣是不是假鈔一樣。

BitCoin 驗證重復(fù)付款的辦法,是靠群眾檢舉。當(dāng)收款人收到匯款時,他把匯款單廣而告之。審計站點(diǎn)收到廣而告之的匯款單時,會檢查匯款單中涉及的 BitCoin,是否出現(xiàn)在其它匯款單中,是否被重復(fù)付款。如果出現(xiàn)這種重復(fù)付款,審計站點(diǎn)會檢舉,并通知收款人拒絕簽收匯款。

BitCoin 保證重復(fù)付款的行為,能夠被檢舉,但是不能保證能夠被當(dāng)場抓獲。[2] 假設(shè)了一個場景,

1. 騙子開設(shè)了兩個賬號,A 和 B。他先把一枚 BitCoin 由賬號 A 匯款到賬號 B,賬號 B 立刻簽收。賬戶 B 簽收匯款前,沒有把匯款單廣而告之。

2. 然后騙子去 C 的網(wǎng)店買東西,他把同一枚 BitCoin 由賬號 A 匯款到賬號 C。C 收到匯款單后,等待幾秒鐘,如果各個審計網(wǎng)站沒有檢舉,C 就簽收 A 的匯款,同時交付商品。

3. 但是就在 C 等待的時候,騙子把從 A 到 B 的匯款單廣而告之,并且這是一個已經(jīng)被 B 簽收了的匯款單。因為從 A 到 B 的匯款單是合法的,這個匯款單被各個審計站點(diǎn)接受。

4. 等到 C 簽收了 A 發(fā)來的匯款單,并廣而告之時,各個審計網(wǎng)站會檢舉,說 A 到 C 的匯款單是重復(fù)付款,無效。雖然騙子被檢舉,但是 C 已經(jīng)交付了商品,C 上當(dāng)了。

為了防范重復(fù)付款,現(xiàn)行 BitCoin 的支付方式,有很多可以改進(jìn)的地方。例如,可以強(qiáng)制付款人給收款人發(fā)匯款單時,必須把匯款單廣而告之,這時匯款單尚未被簽收。然后,當(dāng)收款人簽收匯款時,也必須再次廣而告之,不過與第一次不同在于,第二次廣而告之的,是已經(jīng)被簽收的匯款單。

但是似乎到目前為止,還沒有發(fā)現(xiàn)一種數(shù)學(xué)上完全嚴(yán)謹(jǐn)?shù)霓k法,能夠徹底杜絕重復(fù)支付的發(fā)生。

【3】 審計(audit)

為了杜絕重復(fù)付款的欺詐行為,一個簡單的辦法是全球人民每次匯款時,先把匯款單提交給一個權(quán)威機(jī)構(gòu),例如支付寶。支付寶收下付款人匯來的 BitCoin,然后發(fā)另一枚 BitCoin 給實際收款人。這樣做,可以保證收款人收到的 BitCoin 不會有詐,但是不能保證支付寶,從匯款人那里收到的 BitCoin,沒有被重復(fù)支付。

舉個例子,假如權(quán)威機(jī)構(gòu)除了支付寶以外,還有 Paypal 等等,付款人用同一枚 BitCoin,向兩個收款人匯款,匯款時分別經(jīng)過支付寶和 Paypal。假如重復(fù)支付成功,兩個收款人沒有損失,但是支付寶和 Paypal 中,一定有一家機(jī)構(gòu)被欺詐。

這種防范欺詐的機(jī)制,除了技術(shù)上有漏洞以外,依賴權(quán)威機(jī)構(gòu)的做法,與 BitCoin 的群眾路線的設(shè)計理念相違背。

BitCoin 的做法,是把任何一枚 BitCoin,從誕生到當(dāng)下,每一次交易都記錄在案,而且按時間順序串聯(lián)起來。這就像古董,通常要附帶歷史記錄,從制作出售之初,每一次轉(zhuǎn)手,都被記錄下來,這樣有利于防范被冒牌頂替。

BitCoin 的每次記錄都被廣而告之,并且記錄下來,并且連綴成串。這樣,每一次 BitCoin 的交易,不僅有付款人和收款人參與,而且有第三方審計人參與。審計人可以是專職機(jī)構(gòu),也可以是任何一臺電腦。審計不僅能夠及時發(fā)現(xiàn)違法操作,例如重復(fù)付款,而且即便當(dāng)時漏網(wǎng),事后也能回溯。

[1] 第八節(jié)的圖例中,解釋了 BitCoin 交易記錄的串聯(lián)的數(shù)據(jù)結(jié)構(gòu),截圖如下。

2

有兩點(diǎn)值得注意,

1. 為了提高審計效率,BitCoin 把多個交易(Transaction)合并成一個塊(Block),同時用 Merkle Tree(又稱 Hash Tree)[3],把這些交易詳情組織起來。

  如果想檢查一個 Block 里是否包含有某個 Transaction,最簡單的辦法是找到合適的私鑰,把 Block,以及其中包含的 Transactions,解密打開,然后逐一核對。很顯然,這樣的做法,既浪費(fèi)時間,又很不安全。

  使用 Merkle Tree 的好處在于,不需要解密開包,只需要把 Transaction 也 Hash 一下,然后把哈希結(jié)果與 Merkle Tree 中各個中間節(jié)點(diǎn)的哈希值,依次對比,就能夠很輕松地確定 Merkle Tree 中,是否包含著指定的 Transaction,如果有,它是哪一個葉子節(jié)點(diǎn)。

2. 如果每次交易,只包含一枚 BitCoin,那么每枚 BitCoin 的歷史記錄,是一根單線。但是事實上,每次交易,可以涉及多枚 BitCoins,所以,交易的歷史記錄,不僅有單線,還有多根單線合并成一根線的情況。

  不僅有合并,還有分叉,這種情況出現(xiàn)在 A 給 B 匯款了多枚 BitCoins,B 簽收了這筆匯款交易后,又把多枚 BitCoins 轉(zhuǎn)手分發(fā)給多個收款人。

  不僅 BitCoin 的歷史記錄有多線合并成單線,又有單線分叉成多線。而且一枚 BitCoin 還可以分裂成多個小幣。

【4】 鑄幣(mintage)

在 BitCoin 體系中,任何參與審計的人,都自動參與貨幣的生產(chǎn)。貨幣的生產(chǎn),即鑄幣(mintage)的過程,在 BitCoin 體系中被稱為挖金礦(gold mining)。

從技術(shù)上講,審計和鑄幣完全是可以拆分的兩件事情。把鑄幣權(quán)與參與審計綁定在一起,是游戲規(guī)則的設(shè)定,目的是發(fā)動群眾,共同維護(hù) BitCoin 的誠信體系。

另外,BitCoin 的總蘊(yùn)藏量,被預(yù)先設(shè)定了上限。這樣做的目的,是通過限制貨幣流通量,遏制通貨膨脹。

從技術(shù)上來看,完全可以把 BitCoin 體系當(dāng)成一個工具箱,用這些工具,配置不同的規(guī)則,從而創(chuàng)造另一種貨幣體系。

例如,

1. 可以設(shè)定只有政府才有資格挖金礦,從而把鑄幣權(quán)收歸政府。

2. 不必設(shè)定貨幣流通上限,而是可以根據(jù)新增財富,來增加貨幣發(fā)行。

3. 可以通過認(rèn)證,給每個付款人設(shè)定信用值,用于加快支付簽收速度。

4. 也可以通過保險,讓每一筆匯款交易的收款人,立刻簽收匯款。如果出現(xiàn)重復(fù)付款,保險公司賠付。

5. 雖然理論上每個人(實際上是每臺電腦),都有資格成為審計員,實際上,必定會出現(xiàn)大型機(jī)構(gòu),憑借強(qiáng)大的計算和存儲能力,成為專業(yè)審計機(jī)構(gòu)。


  推薦閱讀

  北京自住房申請首日網(wǎng)站擠癱 正式搖號最快明年

  昨日19點(diǎn)后,登錄“御景灣”項目購房申請網(wǎng)站,網(wǎng)頁打開依舊極其緩慢。網(wǎng)絡(luò)截圖  新京報訊昨日,北京首個自住型商品住房項目,位于豆各莊的“御景灣>>>詳細(xì)閱讀


本文標(biāo)題:解密比特幣

地址:http://www.sdlzkt.com/a/05/20131202/292038.html

樂購科技部分新聞及文章轉(zhuǎn)載自互聯(lián)網(wǎng),供讀者交流和學(xué)習(xí),若有涉及作者版權(quán)等問題請及時與我們聯(lián)系,以便更正、刪除或按規(guī)定辦理。感謝所有提供資訊的網(wǎng)站,歡迎各類媒體與樂購科技進(jìn)行文章共享合作。

網(wǎng)友點(diǎn)評
我的評論: 人參與評論
驗證碼: 匿名回答
網(wǎng)友評論(點(diǎn)擊查看更多條評論)
友情提示: 登錄后發(fā)表評論,可以直接從評論中的用戶名進(jìn)入您的個人空間,讓更多網(wǎng)友認(rèn)識您。
自媒體專欄

評論

熱度

主站蜘蛛池模板: 国产成人精品免费视频大全五级| 欧美14videosex性欧美成人| 国产成人免费a在线视频色戒| 国产综合成人亚洲区| 成人午夜又粗又硬有大| 国内成人精品亚洲日本语音| 国产成人久久精品亚洲小说| 午夜亚洲国产成人不卡在线 | 久久久久成人精品无码| 2021最新国产成人精品视频 | 国产成人综合色视频精品| 国产成人精品免费久久久久| 亚洲国产精品成人精品无码区在线 | 亚洲av成人一区二区三区在线观看| 日韩成人精品日本亚洲| 四虎影视永久地址www成人| 成人三级k8经典网| 欧美日韩成人在线观看| 国产成人av一区二区三区在线观看| 成人片黄网站色大片免费观看app| 亚洲国产成人久久综合区| 国产成人高清视频免费播放| 欧美成人午夜片一一在线观看 | 精品免费久久久久久成人影院 | 四虎影视永久地址www成人 | 亚洲精品国产成人| 成人18视频在线观看| 成人性a激情免费视频| 日韩国产欧美成人一区二区影院| 亚洲最大成人网色| 国产成人久久av免费| 成人乱码一区二区三区AV| 成人毛片免费视频播放| 成人欧美一区二区三区视频| 欧美成人精品第一区首页| 999影院成人在线影院| 久久成人免费电影| 欧美成人怡红院在线观看| 成人精品视频一区二区三区尤物| 成人黄色在线网站| 成人免费视频一区二区|