區塊鏈(以太坊智慧合約)與傳統軟體的區別
阿新 • • 發佈:2018-12-21
區塊鏈與傳統軟體設計有很多區別:
1. 區塊鏈是分散式的,而傳統軟體大多是中心化的
2. 區塊鏈通常有無數個備份(每個礦工處都會有一個完整的區塊鏈備份),而傳統軟體只會在單個或者若干個節點做備份
3. 區塊鏈是一個鏈式結構,在區塊鏈上的所有記錄都是可追溯且無法修改的,而傳統的系統可能難以追溯,且可以被人工修改
4. 區塊鏈無法停止,一經上線,就會一直執行,而傳統軟體存在伺服器停止的可能性
5. 區塊鏈是不需要被信任的,它本身可理解成一個能夠被絕對信任的系統,而傳統軟體需要運營商來保證他們的可信度
6. 基於區塊鏈執行的軟體通常有一個程式消耗的計量標準,如以太坊上,以gas為單位,來計算程式消耗成本。在以以太坊為標準的區塊鏈程式平臺上執行程式,需要給支付一定的代幣(支付給礦工,任何人都可以是礦工)。而傳統執行的程式,可能只需要給運營商支付流量成本,或者給軟體開發商一定的報酬。
7. 以以太坊為代表的智慧合約,程式執行在區塊鏈上,資料都是公開,無法隱藏,無法修改的。這裡的資料包括原始碼編譯後的bytecode,程式中的private變數。這一切的資料,都會儲存在區塊鏈上,每個礦工本地都會有一個備份,任何人都可以閱讀這些資料。而傳統的軟體,資料可能都是不公開,無法訪問,且可以修改的
8. 以太坊的智慧合約,目前不支援多執行緒,造成以太坊DAO攻擊事件的ReEntry bug,一定程度上也能歸結為單執行緒的原因。