比特幣的一些特點


本文截摘自:比特幣與區塊鏈的大眾科普文

1.P2P網絡

  我們比較熟悉的電驢,迅雷下載使用的就是P2P下載,這種下載的風格是,文件切成小的片段,每個主機上只存一份,然后每個主機同時上傳和下載。具體的思路請看《為什么P2P模式下載的人越多速度越快,為什么P2P傷害機械硬盤》。
   在比特幣的場景下,我們知道有兩條鏈,一條是交易鏈,一條是區塊鏈,多條交易鏈形成一張完整的交易網,這張交易網維護着貨幣的屬主信息,而區塊鏈則維護者交易的有效性信息,不管是交易網還是區塊鏈,都必須讓全網都認可才能達成共識,形成信任。因此這張交易網和這條區塊鏈就是通過P2P網絡廣播到全網的每一個節點的,理想情況下,每一個節點都會有這張交易網和這條區塊鏈。但實際實施中,並非如此理想,總是有一些優化,這里就不再贅述了。

2.非對稱算法與比特幣錢包

  非對稱算法的發明絕對是一個創舉,這里不再贅述這類算法的細節。對於比特幣場景而言,由於每一個人都可以隨意生成一對密鑰,其中公鑰的意義讓其十分適合做錢包的地址,舉個例子來講,公鑰就相當於一個存錢罐,而私鑰則相當於打開存錢罐的那個鑰匙,誰都可以往存錢罐里放錢,但是只有自己可以把里面的錢取出來。
   比特幣使用的非對稱算法是ECC算法,這個算法相比RSA而言,同樣的加密強度所需要的密鑰長度要短很多,ECC單位安全強度很高,這特別適合內存受限的嵌入式環境。

3.哈希算法,摘要算法

  這個要說的是,就在前段時間2月23日,Google公布了一例SHA-1碰撞的實例,如果這個實例發生在比特幣當前的交易網或者區塊鏈中,將會有多少利用的方案呢?

4.比特幣的匿名性

  由於在比特幣環境中,對於收錢的人,任何發給自己的錢都可以無條件接收,那么只需要隨時生成新的公私鑰對,然后公開公鑰作為錢包收錢即可,這樣就使得交易軌跡很難被追蹤了,這也在一定程度上保證了匿名性,就像你使用的是人民幣一樣。但是比特幣也好,人民幣也罷,都不是真正完全匿名的。對於比特幣而言,意思是說,你可以隨時隨地創建自己新的錢包來收錢。

5.如果構建數學難題

  計算的結果集必須是一個均勻的分布,只有這樣要想得到特定的答案,就必須要一個數字一個數字的猜。這就意味着沒有投機取巧的方案,除了遍歷,沒有什么算法可以利用。因此,一個逆哈希的過程將會是一個合適的難題,前提是哈希函數一定要好,哈希結果分布一定要均勻。

6.比特幣的生成

  首先有一個初始的創世區塊確認了一筆從天而降的初試交易額,然后由這筆錢開始交易,其余所有的新產生的比特幣均產生於挖礦。類似於物理世界的淘金,比特幣挖礦也有挖完了的時候,按照設計,每過4年挖礦所得就會減半,這樣最終肯定會把比特礦挖空,此時世界上的比特幣總量就是2100萬個!這個和黃金特別相似。金礦在地球上的黃金儲備量是一個定值,所以說黃金的總量一定有一個上限,黃金本身不會通貨膨脹,引發通貨膨脹的是與其直接掛鈎的美鈔,關鍵看1美元怎么定義,是一美元的含金量為0.888671克黃金呢?還是說一美元的含金量為1.888671克黃金,這對世界的影響絕對不同,這就是不雷頓森林體系的弊端。看看比特幣的情況,雖然比特幣本身的數量是固定的,但是它的基本單位卻可以幾乎無限向下分割的,比如即便總量只有1個比特幣,還是可以用0.0000000000001作為比特幣的基本單位來主導支付,關鍵看名字怎么叫了。因此我覺得,說比特幣是一種緊縮貨幣是不正確的,該出問題的時候還是會出問題。
  實際上,世界上根本就沒有真正正確的金融體系。
  現在說一下當比特礦挖完了后,新的比特幣不再產生,礦工們靠什么激勵繼續去解那些fingerprint難題,很簡單,靠交易手續費。如果還想讓比特幣系統繼續運轉下去,那就在交易的時候付給別人足夠的手續費,這樣別人才會解決fingerprint難題從而幫你將你的交易囊入區塊形成共識。

7.如何確保比特幣交易絕對安全

  沒有絕對的安全!囊入越新的區塊的交易越不安全,因為攻擊者需要解決的fingerprint難題越少,到底等待幾個區塊才確認交易完成是合適的呢?並無定論,簡單點說就是交易的金額越大,越值得你多花點時間來等待更多的區塊被掛入區塊鏈以保證安全。

8.區塊鏈技術和PKI有何本質區別

  這是溫州老板問的,區塊鏈不就是解決認證,完整性,不可抵賴這種問題的嗎?PKI體系不是已經很成熟了嗎?然而並不是這樣。PKI需要一個信任中心,而區塊鏈完全靠技術解決了本應該需要人介入的問題。我反問,要是根CA里工作的人都是壞人或者別人策反了怎么辦呢?它簽發的證書還可以相信嗎?即便不是根CA,隨便一級的CA被策反,它下面的各級CA簽發的證書均將失去信任。然而區塊鏈是一種共識機制,類似議會的投票,除非你動員半數以上的議員一起搞事兒,不然僅靠你自己,就算你把總統綁架了也不行,因為總統說了也不算。以上就是我的回答。此時王姐姐表示區塊鏈網絡中如果大多數是壞人,就能發動所謂的51%攻擊,而這種動員,在中印等國家非常容易,每人每家一台電腦,組成全國性的集群,這個運算能力怎么樣?一起干點什么不是很容易嗎?上面一聲令下即可。是嗎?
  我的回答比較短,我說這樣做沒有意義,等於說玉石俱焚,區塊鏈上的比特幣將不再被信任,體系將會徹底被摧毀,誰也沒收益,相反大家都會有損失。
  其實這就是為什么51%攻擊遲遲不會發生的原因吧…

9.挖礦能力的集中

  本初,每個幾點用CPU共享均等的挖礦能力,逐漸,挖礦能力開始拉開差距,從CPU挖礦到GPU,FPGA,再到專業的ASIC芯片,在利益的驅使下,本應該平攤的挖礦能力逐漸集中化。這是否跟社會主義貧富分化是一個道理呢?

10.如何快速驗證交易單的數據完整性

  其實,區塊中的比特幣的交易單哈希並不是疊加在一起計算的,而是組織成了一棵樹,叫做Merkle樹,它的結構非常簡單:

這里寫圖片描述

  這么做的目的在於可以快速進行完整性校驗操作。校驗從根部開始進行,按照二叉樹的時間復雜度O(logn)進行,最終的校驗失敗會把出問題的交易單范圍局限在某個子樹上。在空間利用上,由於每一個節點實際上並不需要傳輸整個交易網和整個區塊鏈,這種只校驗HASH的方式也會減少數據的傳輸量,特別適合廣播頻繁的比特幣P2P網絡。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com