8種錯誤的區塊鏈應用

2021-10-02 10:12:43 字數 3944 閱讀 3457

區塊鏈現在是熱門的技術,每個人都在尋求用區塊鏈解決各種各樣的問題。自2023年我開始從事智慧型合約的安全審計以來,已經看到了太多錯誤的區塊鏈用例。有些錯誤的區塊鏈用例看起來符合邏輯並且也有益處,但是實際上其中存在著問題。本文將介紹存在8種典型的基於區塊鏈的錯誤的解決方案,以期幫助開發者/投資者/客戶更深刻地理解區塊鏈技術的邊界。

相關教程推薦: hyperledger fabric | ethereum | tendermint | bitcoin | eos

假設你訂購了一批貨物,承運人承諾了運輸條件,例如保持你的貨物處於冷藏狀態。一種區塊鏈應用解決方案是在貨車上安裝可以監視冷櫃溫度的感測器並定期將溫度資料寫入區塊鏈,這樣你就可以確信承運人所承諾的運輸條件在整個過程中都得到滿足。

這個區塊鏈應用案例的問題不在區塊鏈,而在於感測器。作為現實世界的一部分,感測器很容易被愚弄。例如,乙個惡意的承運人可能只會啟動貨車中的乙個小冷櫃然後把感測器放進這個小冷櫃,而把你的貨物放在貨車的沒有冷藏環境的空間以節省成本。

我將這種問題定義為:區塊鏈不是物聯網

在文字中我們將多次重溫這一定義。雖然區塊鏈不允許修改資料,但是它並不能保證資料是正確的。唯一的例外是鏈上交易,當系統不需要與現實世界互動時,才能保證基於區塊鏈的系統能夠驗證資料,例如乙個位址是否有足夠的資金來處理交易。

從區塊鏈外部向區塊鏈提交資訊的應用被稱為預言機/oracles。在預言機的解決方案完善之前,任何基於區塊鏈的**鏈管理,就像上面這樣的冷鮮物流跟蹤區塊鏈應用,都是毫無意義的,就像沒有可靠的引擎就去設計飛機一樣徒勞。

我從這篇文章你是否需要區塊鏈?借用了物流冷櫃的區塊鏈應用案例,也推薦你閱讀該文並對下圖深入思考區塊鏈應用的合理性:

雖然這個區塊鏈應用案例類似於上面的**鏈用例,但是我還是想單獨列出來,因為它以一種不同的形式出現。

然而,這個聽起來相當不錯的區塊鏈應用案例卻無法抵禦非常簡單的攻擊:乙個不良商人可以複製乙個帶通證的**的酒瓶,然後用劣質葡萄酒罐裝,或者換掉你的高階葡萄酒,賣給不關心是不是有通證驗證的人。為什麼會這麼簡單就被破解?是的,就是因為:區塊鏈不是物聯網

酒瓶是現實世界中的物理物件,因此酒瓶可以被偽造,這一點和數字簽名是不同的。

讓我們以大學畢業證書的驗證為例來介紹這個區塊鏈應用案例的背景。在這種區塊鏈應用案例中,我們需要驗證乙個宣告的真實性,例如:彼得是大學畢業生,而不是要驗證乙個物理物件的真實性。要確保文憑合規並且簽發日期正確,我們需要檢查數字簽名和時間戳。

數字簽名很好,有些人甚至將數字簽名的基礎 —— 非對稱密碼學 —— 稱為20世紀最偉大的發明。但是我們不要將其與區塊鏈混淆。實際上,數字簽名在區塊鏈之前很早就已經得以廣泛應用了。要注意的是,現在數字簽名常常與區塊鏈**在一起作為賣點。可能你需要的只是數字簽名,乙個區塊鏈應用並不符合你的需求。

時間戳和區塊鏈更接近一些。實際上,區塊鏈本身就是最可靠的打時間戳的方法。你不需要發明任何新東西,只需要將資料的雜湊寫入位元幣區塊鏈。

投票也是乙個流行的區塊鏈應用案例。當談到利用區塊鏈投票時,我們需要首先清楚地了解這個區塊鏈應用要解決的問題是什麼。

投票作弊/投票人驗證

要解決這個問題,我們需要的是數字簽名而不是區塊鏈。這裡主要的問題與私鑰有關:從**得到私鑰以及如何儲存私鑰。相信不用我解釋為什麼不能由使用者在自己裝置生成私鑰的系統是錯誤的,然而除此之外,**開源以及正確地審計金鑰生成軟體、第三方硬體也同樣重要,以確保使用者可以正確處理私鑰問題。

雖然乙個區塊鏈應用系統的開發者可以解決前兩個問題,第三個則要難的多。位元幣可以幫助我們學習如何使用金鑰。實際上,丟失你的社交**賬號的密碼是一回事,但是丟失你的資產的私鑰則要嚴重的多了。

再一次,是預言機/oracle將公鑰與特定的個人關聯起來,如果我們需要利用它投票的話。

公開計票

基本可以說以太坊智慧型合約可以很好地解決這個問題,因為它可以讓每個人都看到某個候選人得到多少投票。不過在這個區塊鏈應用案例中,開放程度有點過了,因為我們可以看到每個人地投票,因此可以影響他們。雖然系統可以設計成每個人只能看到自己的投票,但是這又有另乙個更複雜的問題:只要投票人了解別人可以知道他的投票情況,投票人就會有壓力。

這裡還要重申,在這個區塊鏈應用中,我們需要預言機來檢查是否存在虛假的投票人的投票。

假設藝術家a希望利用區塊鏈來註冊他的乙個作品。該藝術家拍攝了畫作的**,然後將**雜湊上傳到區塊鏈,然後他可以將**貼到自己的部落格裡現在,如果藝術家b宣稱這副作品是他創作的,藝術家a可以利用區塊鏈上的雜湊輕鬆地證明其著作權。

這個聽起來蠻不錯的區塊鏈應用案例中存在兩個潛在的問題:

原因在於:區塊鏈不是物聯網

是的,總的來說,這個區塊鏈應用案例是有價值的,然而,除了位元幣區塊鏈也不需要別的什麼東西了。

注意,我說的只是著作權的證明,在我的理解中智財權沒有意義。

另乙個常見的區塊鏈應用案例是將基於區塊鏈的通證與土地所有權關聯,這裡面至少有兩個問題:

權威機構修改

雖然乙個酒瓶/手錶/汽車可以在個人之間轉讓,土地所有權和轉讓必須由監管機構登記,這通常需要實地走訪你的土地。如果監管機構堅持你已經轉讓了土地,那麼區塊鏈記錄會怎麼樣?第乙個選項是:區塊鏈記錄依然表明你是土地的所有人,雖然這已經不符合實際情況了。第二個選項:權威機構生成自己的記錄,因此覆蓋了你之前的記錄,這意味著區塊鏈也沒有起作用。這是乙個非常重要的問題,因為區塊鏈被宣稱的一大優點就是保護你免於這種修改行為。

中心化的開發與支援

誰負責開發這樣乙個系統並提供支援?如果是監管機構自己或其合作夥伴負責,那麼這樣乙個系統不是去中心化的。乙個去中心化的協議再加上中心化的開發等同於中心化的協議。

此外,每次當有人向你推銷區塊鏈應用案例時,問問自己:是不是用分布式資料庫就夠了?

如果答案是yes,那麼為什麼還要用區塊鏈呢?實際上,區塊鏈要慢的多,而且會消耗更多的資源。另外資料庫開發和整合方面的專家成本要低的多,也更容易找到。

考慮到所有這些問題,我相信對於土地登記而言,乙個分布式資料庫是更好的選擇,即使該系統的確需要更加可靠和開放。

實際上,看起來這個區塊鏈應用案例已經成為了現實。bitfury最近宣布其基於exonum框架開發的區塊鏈土地登記系統已經上線,並計畫拓展到烏克蘭和摩爾多瓦。非常奇怪的是,我沒有找到該項目的任何技術資料,這表明出於某種原因bitfury並不急於鼓吹這一專案。

根據之前的一些研究,這個應該算是乙個好的區塊鏈應用案例。銀行間轉賬涉及到一組彼此並不信任的機構,利用區塊鏈可以無需第三方可信機構的介入。雖然在這裡可以使用位元幣,銀行也不會將其相互之間的支付活動公開化。因此我們需要乙個私有的區塊鏈,只有參與跨行轉賬的銀行可以輸入資料、執行節點並驗證交易。

在功能方面,這樣乙個系統和具有訪問控制的分布式資料庫有區別嗎?是的,的確有一些區別,但是只有當機構之前有分歧時才能看到區別之處。這裡的問題在於:銀行是認同系統提供的共識,還是更願意訴諸法庭?如果銀行可以選擇第二個選項,那麼這個系統就沒有什麼意義。

另外,如果立法機構禁止或限制這樣的系統,或者要求法院不承認該系統的資料,那麼這整個區塊鏈應用案例也沒有什麼意義了。

是的,我要說的就是2023年的ico。為了證明這種行為還在繼續,提醒你別忘了在2023年1月28號,bittorrent成功ico。

我的意思是,有些創業公司通過發行代幣給你分紅權這種行為。問題還是在於:區塊鏈不是物聯網

和風險投資或監管機構不同,區塊鏈並不為投資者負責。代幣形式的承諾並不能強制企業的創始人做任何事情。在這方面,ico更像是眾籌而非ipo。

雖然喜歡去中心化機構這個概念,我必須承認在這一領域幾乎不存在這樣的系統,這意味著你要麼選擇現有的工具,要麼信任公司的創始人。

區塊鏈的20種應用場景

區塊鏈不是現有交易處理機制的替代品 至少在目前的情況下不是 為了能夠取代我們目前現有的交易機制,區塊鏈必須具備一些重要的標準,如 它擁有乙個被廣泛接受的交易網路,該網路支援交易無縫進行並且安全 它應該能夠驗證分布式網路中的多個帳戶 應該能夠跟蹤並記錄是誰交易以及在哪個時間交易了多少價值 應該有能力做...

區塊鏈 區塊鏈技術在教育領域的應用

系列第一篇文章主要是從商品流通的角度入手,通過分析消費者在目前 鏈中遇到的問題,逐步引申出目前 鏈中上下游整個體系中資訊系統解決不了的問題,尋找痛點,再結合區塊鏈技術特性來給出解決方案。本文為該系列第二篇文章,主要是從目前教育領域中遇到的問題著手,通過分析問題的表象,結合整個教育體系各個維度的資訊與...

區塊鏈應用場景實現 區塊鏈技術應用開發解決方案

區塊鏈支援下的位元幣已安全執行近七年,足以驗證該技術的可靠性。區塊鏈技術可以在保障內容不被竄改的前提下實現資料的去中心化儲存,可提公升資料安全性 降低資料維護成本 推動組織智慧型化發展,未來有望在銀行 審計 物聯網 醫療 公證 版權管理等領域廣泛應用。下面主要談談區塊鏈技術應用開發解決方案可以實現的...