《区块链技术与应用》学习笔记9——ETH概述和账户
Posted 九月星城
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《区块链技术与应用》学习笔记9——ETH概述和账户相关的知识,希望对你有一定的参考价值。
BTC和ETH为最主要的两种加密货币,BTC称为区块链1.0,以太坊称为区块链2.0。
以太坊对比特币涉及的某些不足进行改进,未来以太坊还会用权益证明替代工作量证明,此外以太坊增加了对智能合约的支持。
1.为什么要开发 “智能合约”
BTC本身是一个去中心化的货币,如果说比特币系统本身是一个货币应用,以太坊则因为智能合约升级为了一个平台,用户可以依据该平台自行开发业务应用。
2. 关于BTC和ETH
ETH为Vitalik Buterin收到BTC启发发明出来的““下一代加密货币与去中心化应用平台””。BTC中货币最小单位为“聪”,最少的钱为一聪;ETH中货币最小单位为“Wei”,最少的钱为一Wei。
3. 去中心化的合约
货币本身由政府发行,政府公信力为其背书,BTC通过技术手段取代了政府的职能。合约的有效性是需要政府进行维护的,如果产生 纠纷需要针对合法性合同进行判决。
ETH的设计目的就是,通过技术手段来实现取代政府对于合约的职能。
那么,去中心化的合约有什么好处?
若合同签署方并非一个国家,没有统一的司法部门(如:众筹)。如果可以编写无法修改的合约,所有人只能按照相关参与方执行,无法违约。
4. BTC系统的缺点
(1)BTC系统是基于交易的账本,系统中并未显示记录账户有多少钱,只能通过UTXO进行推算。
(2)账户中的钱在花的时候,必须一次性全部花出去
5. 以太坊的账户模型
(1)以太坊系统则采用了基于账户的模型,与现实中银行账户相似。系统中显示记录每个账户以太币的数量,转账是否合法只需要查看转账者账户中以太币是否足够即可,同时也不需要每次全部转账。同时,这也也天然地防范了双花攻击。
(2)账户模型的缺点:重放攻击。A向B转账,过一段时间,B将A的交易重新发布,从而导致A账户被扣钱两次。
(3)重放攻击防止的方法:可以给账户交易添加计数器记录该账户交易过多少次,转账时候将转账次数计入交易的内容中。系统中全节点维护账户余额和该计数器的交易数,从而防止本地篡改余额或进行重放攻击。
6. 以太坊系统中的账户类型
(1)外部账户:类似于BTC系统中公私钥对,存在账户余额balance和计数器nonce
(2)合约账户:并非通过公私钥对控制(不能主动发起交易,只能接收到外部账户调用后才能发起交易或调用其他合约账户)其除了balance和nonce之外还有code(代码)、storage(相关状态-存储)。
**ps:**为什么要做以太坊,更换为基于账户的模型而不是沿袭BTC系统?
比特币中支持每次更换账户,但以太坊是为了支持智能合约,而合约签订双方是需要明确且较少变化的,尤其是对于合约账户来说,需要保持稳定状态。
以上是关于《区块链技术与应用》学习笔记9——ETH概述和账户的主要内容,如果未能解决你的问题,请参考以下文章
区块链技术与应用肖臻老师笔记整理之------15-ETH-账户