比特幣的發展速度驚人,但你要做的只是放慢腳步
Wendy/張詠晴編譯
2019-05-15 17:54

 

本文為技術公司Blockstream研究主管Andrew Poelstra在紐約MCC會議中發表的演講。他在演講中從密碼學講到了數位簽名的安全,指出簽名機制的設計從理論和實際應用情況來看,是完全不同的,因此對於很多自稱能創造神奇效果的項目來說,用戶應該選擇保持警惕。同時,在他看來,比特幣的發展速度驚人,因此從技術角度來看,適當地放慢腳步並沒有錯。

 

以下為演講全文:

 

我沒有準備PPT。我想要盡可能地讓這次演講不是那麼技術,我試圖剝奪自己在螢幕上寫下方程式的權力。我演講的主題是為什麼在加密貨幣中所有的一切都是奇怪和困難的。從數學和科學角度來看,什麼是密碼學?其在實踐中是如何運作的?

 

數位簽名

 

理論上來說,有人可以生成一個簽名,其他人可以拿到這個簽名的交易,在另一個交易上創建一個簽名,這是針對不同密鑰的代數關係攻擊。

 

在實際情況中,這對比特幣來說不是一個問題,因為基於比特幣的設計,在比特幣交易中籤名的數據不僅包括有關交易的所有細節,還包括之前的交易(以及其公鑰)。所以結果就是你得到了一個看起來像Schnorr簽名的東西(除了公鑰)……但事實證明,這比「強簽名」更安全,這就是對簽名訊息和同一簽名密鑰的零知識簽名。這比我想講的要複雜得多。

 

在每一個步驟中,我都在強化安全的概念,並徹底消除偽造的可能性。我們花了一些時間來探索這個設計,研究偽造行為以及其在實際情況中的表現。對於簽名,我能夠在舞台上描述一個安全比賽,而不需要到處使用圖表和箭頭。多重簽名則更加複雜。

 

當你談論零知識證明_包含一個零知識證明和一個模擬器和所有不同的規則_試圖證明這些複雜系統的獨特性,部署更理想的模型等等,直到你得到一些具體的東西。然而,在現實生活中,擁有可證明的安全性具有巨大的價值。

 

可證明的安全性

 

接下來我想談談可證明安全的概念,儘管我告訴過你們這很難。其中一件事就是隨機數生成的概念。我將把話題從定義安全性切換到部署安全系統實際操作。

 

基於ECDSA或Schnorr,生成這些簽名需要生成一致隨機數據。一致隨機是指你可以選擇所有可能的隨機數_實際上是在0和某個固定的大質數之間。如果你沒能隨機生成數字,你在多個簽名中重複使用相同的數字或相同的nonce,那麼你的幣就會被盜。這種情況已經發生過幾次了,比如有人用這個小問題破解了ps3。2012年比特幣就發生了這種情況,一些安卓錢包重複使用了nonces,並且生成了一個糟糕的隨機數生成器。最終很多人的密鑰及幣都丟了。

 

並不是nonce被重用了。隨機的nonces是存在的,但是有一些軟體生成的nonces在某種程度上是有偏差的,比如前幾位始終是0。即使與隨機數無關,只要有足夠的簽名,也足以洩露你的私鑰。所以我們有這些在學術模型中被證明是安全的簽名方案,但他們總是需要一致的隨機性。直覺告訴我們隨機不能被猜出來,但這裡隨機和一致隨機沒有區別。把兩者區分開來就足以打破學術證明,而在實踐中,你會丟失密鑰和幣。

 

總結

 

這些東西是困難而微妙的,對於那些自稱能夠創造神奇事物的新項目,你不應該感到興奮,而是該保持懷疑態度。比特幣的發展速度非常快。我們需要慢下來,保持警惕。

 

本文為巴比特資訊授權刊登,原文標題為「加密貨幣中的「加密」:為什麼一切又怪又難