區塊鏈與其他技術的不同處
在本文中,我們將介紹區塊鏈與當今使用的其他技術有何不同。 本文會介紹區塊鏈與非區塊鏈平台的網路、應用和資料比較。
網路類型
一般技術解決方案存在三種主要的網路架構:集中、分佈(distributed)和去中心化(decentralized)。在集中式系統中,資料和解決方案組件都歸一個實體所有,資源集中在一個位置或系統中,易於維護。集中式系統的特性是單點故障,低容錯性和低(或固定)的可擴展性。
在分佈式系統中,資料由單個實體擁有,但資源分佈在多個位置、資料中心,系統不歸解決方案提供商所有 — — 這類似於現代雲端計算和“X as Services”解決方案。因此,分佈式系統提供了更高的容錯性和更大的可擴展性。大多數集中式系統隨著時間的推移演變為分佈式系統。
去中心化系統沒有資料或網路硬體資源的單一所有者,因為所有權和維護在所有參與者之間共享。去中心化系統提供極高的容錯性,並且由於資源是獨立的實體,因此具有無限的可擴展性。去中心化系統是最難維護的,因為沒有一個實體擁有它,它在系統的參與者(或peers)之間共享。
包括區塊鏈在內的去中心化系統通常在Peer-to-Peer(點對點或稱對等) 網路架構上運行。 P2P 是一個由同等權利的參與者組成的網路,其中tasks和workload被分配給所有參與者。參與者被稱為節點(node),每個節點都是資源的消費者和提供者。這與我們傳統認知的Server(供應者)和client(消費者)的集中式或分佈式系統相反。在真正的 P2P 系統中,所有節點同時既是客戶端又是服務端。去中心化系統中的處理請求由我們周圍的節點提供服務,而不是由集中式的資源提供。
區塊鏈是一種去中心化(P2P)系統,它不是分佈式的或集中的。其他 P2P 系統包括:
- Mesh Networking,其中網路連接和網路資源在參與的節點/系統之間共享
- 多媒體內容分佈
- Bittorrent 檔案和資料交易平台
- Content based addressing(IPFS)被稱為超媒體分佈式檔案系統,是一種開源的Peer-to-Peer(點對點或稱對等)檔案系統。
區塊鏈系統在不同程度上總是“優先考慮安全性而不是速度”。 這意味著擴大規模或添加更多節點會提高安全性,但不會提高效能,因為每個節點都必須驗證區塊上的所有交易。 添加更多節點會使交易變得更安全,但不會更快。 這是一個重要的區別,因為在分佈式系統上通常情況是相反的。
軟體與韌體
隨著互聯網時代的到來,軟體開發人員已經習慣於在他們想要或需要的時候隨時修補和升級他們的應用程式。軟體發布可以是定期或不定期發生,具體取決於部署的時間和功能。敏捷開發方法可以在發布前和發布後使用。
韌體(Firmware)開發人員通常沒有辦法這樣做,因為“韌體是嵌入硬體本身的軟體”。更新或修補基於韌體的軟體需要特殊的硬體,並且通常需要物理式的連接。例如,如果我們的洗衣機需要升級韌體,將其搬到洗衣機的商店來升級是不切實際的。
由於區塊鏈上的永久特性,智慧合約就像韌體,而不是軟體。一旦將智慧合約部署到區塊鏈上,它就是永久的並且永遠無法更改,就像存儲在區塊鏈上的任何其他交易一樣。合約的新版本可以發布以與舊版本並存,但舊版本永遠不能刪除。
儘管已發布的智慧合約無法變動,但可以更新代碼並建立和發布新的智慧合約,但舊的智慧合約將永遠保留在區塊鏈上。
另外智慧合約開發人員可以在任何智慧合約中添加一個特殊功能,稱為終止或自毀(self-destruct)。這一特殊功能使智慧合約能夠被“殺死”。被終止的智慧合約將拒絕任何新的交易,儘管它仍然存在。此功能不會刪除合約。智慧合約的開發人員應仔細考慮實現此功能的選擇,並且要非常謹慎,以確保它只能由正確的人或環境使用。開發人員和設計人員實施了一些智慧合約,他們沒有正確考慮其終止功能的運用,允許駭客能終止他們的合約,有時合約會持有其他人數百萬美元的資金。所以不要輕易決定實施殺死或自毀合約的功能!
區塊鏈與資料庫
我們在決定實施何種技術以及區塊鍊是否合適時,需要考慮許多因素。 任何解決方案的一個關鍵組成部分是解決方案的資料所在的位置。 今天的傳統系統是使用了幾十年來已經成熟的資料庫技術。 在研究區塊鏈作為選項時,以下情況下,傳統資料庫系統將更適合區塊鏈:
- 效能非常重要
- 需要有很多成熟的資源/技術/人力
- 高度機密的資料
- 不需要資料的整個歷史交易,只需要單一時間點的
- 容易維護
- 應用程式的邏輯會頻繁變更
- 保持對資源的集中控制很重要
- 分佈式資料庫或其他技術是否足夠?
而以下情況下,區塊鏈將更適合傳統資料庫系統:
- 需要高度透明和能公開驗證
- 需要極高的容錯能力
- 需要無限擴展
- 完整的資料歷史和生命週期很重要
- 沒有單一的單位/個人可以操控資料
在比較區塊鏈解決方案與傳統解決方案時,“資料主權”是另一個需要考慮的因素。 在集中式系統中,所有資料都歸系統擁有者所有。 在必須證明他們擁有和控制資料以及證明資料在哪裡存儲和不存儲在哪裡的情況下,區塊鏈可能不是一個好的解決方案(儘管Private Blockchain在這裡可能是一個可行的選擇)。