初識區塊鏈——比特幣

比特幣

特點

去中心化:比特幣是第一種分佈式的虛擬貨幣,整個網絡由用戶構成,沒有中央銀行。去中心化是比特幣安全和自由的保證。

全世界流通:比特幣可以在任意一臺接入網的計算機上管理。任何地方、任何人都可以出售、挖掘、購買、收取比特幣。

專屬所有權:操控比特幣需要私鑰,它可以被隔離保存在任何存儲介質中,除擁有者以外,無人可以獲取。

低交易費用:可免費匯出比特幣,但最終每筆交易將收取約1比特分的交易費以確保交易能更快地被執行。

無隱藏成本:作爲由A到B的支付手段,比特幣沒有繁瑣的額度和手續限制,知道對方比特幣地址可以進行支付。

跨平臺挖掘:可以在衆多平臺上挖掘不同硬件的計算能力。

重要概念

地址、私鑰、公鑰

    地址:爲了便於交換比特幣,因爲公鑰太長了(130或66字符串)。地址的長度25字節,轉爲Base58編碼後,爲34或35個字符。(Base58類似於Base64編碼,但是去掉了易引起視覺混淆的字符,又在地址的末尾添加了4個字節的校驗位,以保障在人們用於交換的個別字符發生錯誤時,能夠因地址校驗失敗而制止誤操作)。

    私鑰:非公開,擁有者需安全保管。私鑰通常是由隨機算法生成的,一個巨大的隨機整數(佔32字節)。在1~0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4141之間的數都是一個合法的私鑰。私鑰還可以用特定的算法,有固定的輸入得到32字節輸出的算法,就可以成爲得到私鑰的方法。

    公鑰:一個私鑰通過推導可以推出唯一的公鑰,但使用公鑰無法推導出私鑰。公鑰有壓縮和非壓縮兩種形式。兩種公鑰的首個字節爲標識位,壓縮公鑰爲33字節,非壓縮公鑰爲65字節。以0x04開頭的爲非壓縮公鑰,以0x02/0x03開頭的爲壓縮公鑰。0x02/0x03的選取由右側開方後的奇偶決定。壓縮形式可以減小Tx/Block的體積,每個Tx Input可減少32字節。

橢圓曲線數字簽名算法:

    使用橢圓曲線密碼(ECC)對數字簽名算法(DSA)的模擬。

梅克爾樹:

    是區塊鏈的重要組成部分。梅克爾樹是哈希大量聚集數據“塊”(Chunk)的一種方式,它依賴於將這些數據“塊”分裂成較小單位(Bucket)的數據塊,每一個Bucket塊僅包含幾個數據“塊”,然後取每個Bucket單位數據塊再次進行哈希運算,重複同樣的過程,直至剩餘的哈希總數爲1,即根哈希。(二叉梅克爾樹,其中一個Bucket單位的數據塊總是包含了兩個相鄰的塊或哈希值)

哈希現金:

    比特幣使用了一種名叫“哈希現金”(Hash Cash)的工作量證明算法,這種算法的出現早於比特幣。這種算法最初創建的目的是使之成爲反DOS攻擊的工具。思想是採用一些數學算法的結果難於發現且易於校驗。例如:因數分解一i個大的數字(特別是因數較少的數字)。將數字相乘來獲得他們的乘積的代價是低廉的,但是找到哪些因數的代價卻要高得多。

    對交互式協商來說,使用因數分解就足以勝任。不過有些資源無法很方便地進行交互式協商。比如,反垃圾電子郵件或者支付交易。怎麼樣保證垃圾電子郵件不佔據郵箱?怎麼樣保證電子貨幣(內容)沒有被交易(發送)多次?

    哈希現金的解決方法是:

        在電子郵件的消息頭中,增加一個哈希現金戳記(Hash Cash Stamp)哈希值,該哈希值中包含收件人地址、發送時間、Salt值。該哈希值特別之處在於,它至少前20位必須是0纔是一個合法的哈希現金戳記。爲了得到一個合法的哈希值,發送者必須經過許多次嘗試(改變Salt值,即系統用來和用戶密碼進行組合而生成的隨機數值)才能獲得。一旦生成戳記,希望每一個發來的郵件 的郵件製造者都不能重複使用該戳記。所以,哈希現金戳記要帶一個日期,這樣可以判定比指定時間更早的戳記是非法的。另外,哈希現金的接收端要實現一個重複支付數據庫,用來記錄戳記的歷史記錄。

51%攻擊:

    是指某個客戶端或組織掌握了比特幣全網的51%的算力後,用這些算力來重新計算已經確認過的區塊。

    發起51%攻擊必須具備的兩個條件:

    1、必須掌握足夠的算力,無論是控制礦池還是利用其他計算資源。

    2、拿到足夠的比特幣作爲籌碼。

冷錢包:

    比特幣安全的主要問題在於私鑰的保存。

    比特幣的冷儲存(Cold Storage)是一種將錢包離線保存的方法。用戶在一臺離線的計算機上面生成比特幣地址和私鑰,並將其妥善保存起來,以後由挖礦或者在交易平臺得到的比特幣都可以發送到這個離線生產的比特幣地址上面。由這臺離線計算機生成的私鑰永遠不會在其他在線終端或者網絡上面。

    冷存儲步驟

    首先產生和備份私鑰:

    1、在一臺完全離線的計算機上生成10000個私鑰及對應的地址,並對私鑰進行AES加密,然後刪除原始私鑰。

    2、將AES密碼由兩個分屬異地的人掌握

    3、將加密後的私鑰和明文地址生成二維碼加密文檔,通過掃描完全離線計算機生成地址文檔二維碼,用於日常使用。

    熱錢包往冷錢包匯幣,每次必須使用一個未使用過的地址,每個地址不可重複使用,然後從線上往冷錢包匯幣,步驟如下:

    1、從地址文檔中取出相應地址

    2、根據安全級別,每個地址匯不超過1000枚比特幣,每個地址使用一次後就不再使用。

    最後從冷錢包取幣,取幣過程如下:

    1、把私鑰密文通過二維碼掃描放入完全離線計算機;

    2、掌握AES密碼的人在完全計算機上機進行解密,獲得私鑰明文。

閃電網絡

多重簽名

合併挖礦

彩色幣

技術原理

單位

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章