区块链(以太坊智能合约)与传统软件的区别

区块链与传统软件设计有很多区别:

1. 区块链是分布式的,而传统软件大多是中心化的

2. 区块链通常有无数个备份(每个矿工处都会有一个完整的区块链备份),而传统软件只会在单个或者若干个节点做备份

3. 区块链是一个链式结构,在区块链上的所有记录都是可追溯且无法修改的,而传统的系统可能难以追溯,且可以被人工修改

4. 区块链无法停止,一经上线,就会一直运行,而传统软件存在服务器停止的可能性

5. 区块链是不需要被信任的,它本身可理解成一个能够被绝对信任的系统,而传统软件需要运营商来保证他们的可信度

6. 基于区块链运行的软件通常有一个程序消耗的计量标准,如以太坊上,以gas为单位,来计算程序消耗成本。在以以太坊为标准的区块链程序平台上运行程序,需要给支付一定的代币(支付给矿工,任何人都可以是矿工)。而传统运行的程序,可能只需要给运营商支付流量成本,或者给软件开发商一定的报酬。

7. 以以太坊为代表的智能合约,程序运行在区块链上,数据都是公开,无法隐藏,无法修改的。这里的数据包括源代码编译后的bytecode,程序中的private变量。这一切的数据,都会存储在区块链上,每个矿工本地都会有一个备份,任何人都可以阅读这些数据。而传统的软件,数据可能都是不公开,无法访问,且可以修改的

8. 以太坊的智能合约,目前不支持多线程,造成以太坊DAO攻击事件的ReEntry bug,一定程度上也能归结为单线程的原因。

你可能感兴趣的:(区块链)