2018年6月15日 星期五

從 ASIC 礦機看數位貨幣的安全性

隨著以太幣、比特幣的價格上漲,在炒作的同時,也有許多人加入礦工的行列

而如果有去了解數位挖礦,就會知道有分成用顯示卡挖礦跟用礦機挖礦,而礦機一直是一個很有爭議的東西,而其中又以佔有最大市占率的比特大陸(Bitmain)最有爭議性

顯示卡挖礦就不說,先來解釋一下所謂的礦機,其通常是以 ASIC 晶片為架構,而早期則是以 FPGA 晶片為主
  • 特殊應用積體電路(Application-specific integrated circuit,ASIC)
  • 現場可程式化邏輯閘陣列(Field Programmable Gate Array,FPGA)
早期多半是使用 FPGA 晶片,把演算法電路設計好後再燒錄進去晶片裡面,所以多半是從硬體開發板修改而來,後期才出現一張電路板上安裝多顆 FPGA 晶片的訂製礦機



像是 Earthsoft PV4 這張日本製色差擷取卡就是以 FPGA 晶片作為演算核心

以 Spartan-3 XC3S200 FPGA 晶片為核心的硬體開發板當作礦機

之後也出現這種使用雙實體 FPGA 晶片的開發板礦機

後期則是出現了這種訂製的,堆疊大量 FPGA 晶片的礦機

然而 FPGA 跟人類一樣,終究有其極限的,FPGA 的優點是它的電路都可以重新燒錄跟抹除,但如果開發用途不變時,那沒用到電路就是累贅了,如果挖比特幣只需要 SHA-256 的加密演算,那其他功能的電路就是佔據空間的累贅,如果要在單位面積內堆疊更多的演算力,那就會演變到 ASIC 晶片


南瓜博士設計的 Avalon 算是最早的 ASIC 礦機

初次接觸比特幣等數位貨幣大概是 2013 年中旬,那時候都是以開發板衍生的 FPGA 礦機為主,比特大陸剛剛成立,南瓜博士的阿瓦隆(Avalon)剛設計完成在作原型機測試,比特幣的價格是美金一百五十,折合約新台幣四千六百

那時一台 ASIC 礦機都要台幣十萬,要購買還有很大的麻煩(多半是跨國貨運跟付款的問題),重點是大家都不確定比特幣會不會改演算法,如果改了,那所有以 SHA-256 演算為特化的礦機會直接變成廢鐵

但最後比特幣並沒有改變演算法,它分歧出去的分叉幣也多半是沿用這個演算法

當初賭了一把買礦機的人也多半暴富,也開啟了 ASIC 礦機壟斷算力的不歸路



比特大陸的螞蟻礦機 T9,ASIC 礦機

有些人會不懂為什麼礦機會這麼討人厭,甚至會理解成一種仇富心態,但這其實是不正確的

礦機,尤其是ASIC 礦機造成的最大問題,是算力的集中化,這與數位貨幣的開放、公平理念違背,而更大的問題是安全性

數位貨幣的區塊驗證制度,以比特幣來說是要持有接近過半的演算力,因此有所謂的 51% 攻擊,只要有過半的演算力是由惡意攻擊者持有,他就可以竄改挖出來的新區塊(因為數位貨幣不可逆的特性,他沒辦法竄改已經挖出來的區塊,但可以竄改新區塊)

下面用五個節點來示範數位貨幣的驗證制度,當然現實中的節點不會這麼少,但如果你把礦池當作是一個單一節點的話也可以這樣解釋



正常情況下每個演算節點都是個別持有,且承認新挖出來的區塊

如果兩個演算節點被同一個惡意攻擊者持有,即使他竄改來搶先挖出新區塊,也會因為沒過半被駁回

但如果他持有過半的演算節點,那他就可以達成所謂的 51% 攻擊

由於 ASIC 礦機在單位成本上與 GPU/CPU 挖礦相比,佔有壓倒性的優勢,因此較少數量(比較之下)的 ASIC 礦機就可能達成 51% 攻擊,考慮到大部分的礦機都是比特大陸的螞蟻礦機系列,且大部分算力都是在比特大陸的螞蟻礦池之下,這又在安全性上造成了更多疑慮
  • 如果大部分 ASIC 礦機都是同一家公司製造,然後管理軟體有同樣的安全性漏洞或是後門可以劫持?
  • 如果大部分 ASIC 礦機都是同一家公司製造且在同一個礦池之下,然後礦池的控制權被劫持?
在這兩個假設下,你就會發現 ASIC 礦機是一個很危險的東西

也因此,開發社群抵抗的從來就不是誰、或哪家公司因為賣出大量的挖礦設備而大賺硬體財,而是抵抗算力的集中化,要讓算力分散化,最簡單的方式就是盡量讓大家都可以用手上都會有的硬體挖,不論顯示卡、處理器或是智慧型手機,乃至於硬體開發板

而在同樣的資本投入下,建立 GPU/CPU 礦場與建立 ASIC 礦場一比,後者的壓倒性算力優勢造成了很大的不公平,也產生了上述的安全性問題

目前採用 PoW 機制(Proof of Work,工作證明機制)的數位貨幣如果沒有發展出抗 ASIC 演算法,則多半有這個問題,除非改成 PoS 機制(Proof-of-Stake,權益證明機制),來透過價格跟持有量壓制達成 51% 攻擊的難度

簡單說?買以太幣就對了(欸?

2018年6月5日 星期二

Sony WI-1000X 簡易開箱

用了差不多兩年半的 Sony SBH70 遇到了電池衰減的問題,感覺續航力降低了許多,開始物色新的藍芽耳機

這次把預算放寬許多,拉到萬元線,選擇了有主動式降噪、支援 AAC 跟 aptX 編碼格式的 Sony WI-1000X


2016_02_28_205554
使用了兩年多的 Sony SBH70
2018_06_05_214926
新購買的 Sony WI-1000X,包裝正面
2018_06_04_210442
包裝背面,詳細講述了規格與注意事項
2018_06_05_214958
從包裝裡可以退出一個黑色盒子
2018_06_05_215052
打開就是固定在高密度泡綿的耳機本體,這是事後重拍的,已經把保固序號貼紙移除
2018_06_05_215216
黑色布質收納袋、說明書、充電用的 Micro USB 傳輸線,民航機的雙插孔轉換頭、耳機轉 Micro USB 傳輸線、耳機套
2018_06_05_215246
Sony 原廠提供了六對不同的耳機套,讓使用者依照耳道形狀更換
2018_06_05_215252
充電用的 Micro USB 傳輸線,民航機的雙插孔轉換頭、耳機轉 Micro USB 傳輸線
2018_06_05_215226
黑色布質收納袋
2018_06_05_215422
右側紅色標示,馬來西亞製造說明、五伏特直流電驅動、電檢與藍芽標示
2018_06_05_215414
右側前端的按鈕,用於切換、開始或關閉降噪模式
2018_06_05_215436
電源指示燈、電源開關、音量按鈕、播放、暫停與接聽按鈕
2018_06_05_215734
充電與耳機接入用的 Micro USB 傳輸埠在蓋子下

Sony WI-1000X 的 Micro USB 傳輸埠有點微妙,只支援充電跟音訊傳輸(需要透過專用的 3.5mm 轉 Micro USB),也就是說更新韌體這種功能要靠跟耳機搭配的工具軟體,透過藍芽傳輸新版韌體,過程大概是三十分鐘至五十分鐘不等(視使用的手機而定

2018_06_05_215746
專用的 3.5mm 轉 Micro USB 傳輸線
2018_06_05_213313
插上耳機,連接電腦後,就是一般的耳機而已,可以自己選擇要不要開啟電原來使用降噪

Sony WI-1000X 本身支援多種傳輸編碼格式,從基本的 SBC 到 AAC 跟 aptX 編碼格式

而如何在 macOS 上驗證不同的編碼格式需要從蘋果的開發者專區下載 Bluetooth Explorer 去作調整,從 Apple Developer 下載的工具整合壓縮包裡面找到 Bluetooth Explorer 然後放進應用程式資料夾就可以了


2018_06_05_214327
將連線連線至 Mac 而沒有啟用音訊傳輸時,按下 option 去檢視進階資訊會顯示未啟用
2018_06_05_214508
把 Bluetooth Explorer 扔進應用程式資料夾後啟用
2018_06_05_214515
選擇 Audio Options
2018_06_05_214527
就可以調整系統預設的傳輸編碼,當然最終還是要依你使用的耳機支援性而定
2018_06_05_214344
啟用 Sony WI-1000X 的 AAC 編碼格式傳輸,其實 macOS 對支援 AAC 的藍芽耳機預設應該都是有開啟 AAC 的支援性
2018_06_05_220834
當然你高興也可以調整成 aptX 編碼格式

要說總結的話,耳道式的降噪耳機好像也沒幾家可以挑,但 Sony WI-1000X 的音質確實是很不錯,支援 AAC 格式也讓 macOS 跟 iOS 裝置不會再屈就於傳統的 SBC 有損壓縮編碼

唯一的小遺憾,就是這耳機不防水(是的,這耳機真的不防水,戴著運動流汗可能沒差,但千萬不要賭說下雨不會怎樣

點我前往 Sony 官網檢視 WI-1000X 的詳細資訊