主页 > imtoken钱包苹果版用不了 > 以太坊与以太坊账户概述(一)

以太坊与以太坊账户概述(一)

imtoken钱包苹果版用不了 2023-12-12 05:07:24

以太坊概述

比特币和以太坊是两种最主要的加密货币

比特币被称为区块链1.0,以太坊被称为区块链2.0

在以太坊的设计中,针对比特币运行中的一些问题进行了一些改进。

说到出块时间,比特币的出块时间是十分钟,而以太坊的出块时间已经大大缩短到十几秒,而为了适应这个新的出块时间,以太坊还设计了一套Ghost-基于共识机制。

以太坊的另一个改进是用于挖矿的挖矿难题。 比特币的挖矿难题是计算密集型的,比拼的是计算哈希值的算力。 结果是采矿设备的专业化。 之前提倡的去中心化是不一致的,所以以太坊设计的挖矿难题对内存的要求非常高。 它被称为挖矿难题。 这种设计的目的是限制ASIC芯片的使用,称之为抗ASIC。 未来,以太坊将发生一些革命性的变化,用股权证明取代工作证明。

此外,以太坊还增加了一个重要的功能,支持智能合约。

比特币成功后,人们思考了一个问题,如果货币可以去中心化,那还有什么可以去中心化。

比特币系统谁在维护_比特币每十分钟产生多少个比特币_比特币分叉对比特币的影响

去中心化货币的好处

跟法币比起来,像美元、人民币这些都是法币。

应用场景:

跨境转账,比如从美国转一笔钱到埃及,用法币是很麻烦的。 时间长,手续多,手续费也贵。 如果用比特币转账,那就好很多了。 这就是比特币比特币的优势之一,虽然比特币每十分钟才出一个区块,还有各种不完善之处,但是用比特币跨境转账还是比法币快很多

去中心化合同的好处

现实生活中的合约系统已经很好用了,为什么还要创建一个去中心化的合约。

智能合约也有类似比特币的应用场景

如果合同的签署方来自世界各地,没有统一的管辖权,此时很难通过司法手段来维护合同的有效性,就像在网上做众筹一样,参与方众筹来自全国各地,各地人互不相识,也不知道去哪里打官司。 如果是这样的话,还不如使用事先写好的程序代码,保证大家只能遵守规则。 解决的办法是,即使合同当事人都在同一管辖范围内,通过司法手段维持合同的执行也是一个费时费力的过程。 打官司需要花费大量的时间和精力,即使官司赢了,也不一定能拿到钱,还得申请冻结对方资产,申请强制执行等等。

比特币每十分钟产生多少个比特币_比特币系统谁在维护_比特币分叉对比特币的影响

因此,最好是通过技术手段,从一开始就保证合同双方不能违约。

智能合约的好处

智能合约的优势在于一旦代码在区块链上发布,区块链的不变性只能按照代码中设定的规则执行。

以太坊账户基于交易分类账

比特币使用基于交易的分类账。 在这种模式下,系统不会记录每个账户中有多少钱。 必须要根据UTXO里面的信息去计算,包括想知道这个人总共有多少资产。 比特币,即使你查看这个人的所有账户,他在 UTXO 中有多少比特币用于那些有私钥的账户。 优点是隐私保护比较好。 自己有多少钱,可能连自己都说不清楚,别人就不清楚了。

但这带来了一个问题。 使用起来很别扭,和我们日常的体验不太一样。 比如在转账的时候,A想转10BTC给B,A需要说明这10个币的来源,其中7个币是在上一笔交易中收到的,另外3个币是在之前的另一笔交易中收到的,这证明了硬币来源的合法性。 这与我们通常去银行的经历不一样。 银行就是你存钱的地方。 解释一下钱的来源,下次你花钱的时候,不用解释每一笔钱是从哪里来的以后一定要一次性花掉,不能只花一部分,只花一部分会怎样? 健康)状况

image-20210813133447080

剩余的 7 个比特币将用作交易费用。 这个时候矿工会很开心,但是如果你不开心,这个时候你应该把他们转回给自己,如下图

比特币分叉对比特币的影响_比特币每十分钟产生多少个比特币_比特币系统谁在维护

image-20210813133504005

许多比特币钱包可以自动生成用于接收余额的地址。 每次交易更换一个新的地址也有利于隐私保护,但也有别于我们的日常习惯。 比如在银行,人家给你转十块钱,你有三万元,你就得转三万元,剩下的七万元你不用操心,放在账户里就行了。 问题是在比特币系统中没有维护账户的交易概念。

基于帐户的模型

以太坊采用基于账户的账本模型,类似于银行账户。 系统中要显示的记录是每个账户有多少以太币。

比如A转10ETH给B,那么这笔交易的合法性只需要检查A的账户中是否有足够的钱。 比如A的账户有100个ETH,需要转10个ETH给B,这个没有问题,不需要说明100个以太币中有哪10个转给了B,也没有必要说明币的来源, 哪个交易来自之前。 也有可能B以后转3个以太币给C,剩下的就不用转给自己了,因为有显示余额的概念,剩下的币可以直接打到账户里,并且不使用哈希指针,不需要币种来源。

这样做的好处是对双花攻击有天然的防御能力比特币系统谁在维护,因为不管币的来源是什么,你每花一次钱,都会从你的账户里扣,花两次就扣两次.

重放攻击(replay attack)A->B(10ETH)在网络上发布,过一段时间,这笔交易被写入区块链,A认为转账交易完成,假设B是恶意的,重新广播这笔交易网,其他节点看到是新的转账就会扣掉A的钱。

解决方案:

比特币分叉对比特币的影响_比特币每十分钟产生多少个比特币_比特币系统谁在维护

加上一个counter nonce,记录这个账户历史上发布了多少笔交易,然后在转账的时候,交易笔数必须成为交易内容的一部分,一起包含进去,这些都是通过签名者的签名来保护的已发布的交易。

比如A->B(10ETH),A一共发出了20笔交易,也就是21笔,所以写nonce=21,然后在整个内容上写上A的签名,如下图

image-20210813133839441

然后把上图中的交易发布到网上。 由于签名的保护,nonce 值不能被其他人更改。 然后系统中的每个节点维护A的状态,不仅要维护A账户上的钱,还要维护nonce的值,一开始nonce=0,每次收到A发出的交易,nonce +1。

比如一开始节点A以nonce=20开始,现在发布了一笔交易。 节点看到交易来了,是合法的,可以执行交易。 同时更新一下, nonce=21 ,如果以后有人重放这个交易,节点会看到这个nonce已经是21了,已经执行过了,所以不会再执行了。

以太坊账户分类 external owned account(外部账户)

定义:上面提到的比特币中的账户是由公私钥控制的,本地生成一对公私钥,私钥控制账户的控制权,也称为普通账户。

Status:balance(账户余额),nonce(计数器)

比特币系统谁在维护_比特币分叉对比特币的影响_比特币每十分钟产生多少个比特币

智能合约账户(contract account)

合约账户不受公私钥对控制。 除了balance和nonce,还有code(代码),storage(相关的state-storage,包括每个state的值),一个合约可以调用另一个合约,所以必须通过nonce值记录调用次数,但合约账户不能主动发起交易。 根据以太坊的规定,所有交易只能由外部账户发起。 如果外部账户发起交易调用合约账户,合约账户可以发送消息调用另一个合约,但他不能自己发起交易。

调用合约账户

创建合约将返回一个地址。 知道这个合约的地址,就可以调用这个合约。 在调用过程中,状态会发生变化,因此存储也会发生变化。

系统设计中账户模型的改进

以太坊的创始人是 Vitalik,一个 19 岁的孩子。 在他最初创建以太坊时,比特币已经有了比较成熟的代码可以作为参考。 他为什么不使用现有的比特币代码并制作另一个? .

系统设计可以改进,改变出块时间,挖矿难题,不一定是账户系统,比特币基于交易模型的好处之一就是隐私保护,但是以太坊需要支持的智能合约要求参与者有一个比较稳定的身份,类似于日常生活。 例如,您与某人签订合同。 如果你和他签下契约比特币系统谁在维护,他的身份是一样的。 签订合同后,他的身份发生了变化。 你如果找不到,那就有问题了,另外一个人可能会突然出现,说他当初跟你签了合同,只是换了个身份而已,这会给执行带来一些困难合同。 包括以后发生纠纷的时候,你也要知道合同原来是跟谁签的。

现在有人提出用智能合约来实现一些金融衍生品,所谓金融衍生品,比如期权期货,在合约里投入一笔钱,预测未来的价格走势,如果预测正确,给你一些收益, put 的钱会退还给你,但是问题是如果你投资的账户在投资之后发生了变化,那时候钱怎么退还给你呢? 这不仅是外部账户的问题。 合约账户的问题就更严重了。 如果投资合约账户,投资后地址会变,找不到就麻烦了。 所以,以太坊在创建这个系统的时候,考虑了一些现有模型的优缺点,最终没有采用比特币中基于交易的账户模型,而是采用了基于账户的账户模型。 从目前的情况来看,这还是一个比较合适的决定。 至于以太坊的账户,希望保持稳定,无论是个人账户还是合约账户,如果需要隐私保护,也可以创建多个账户,根据情况使用不同的账户进行不同的交易.