主页 > imtoken钱包下载2.0版本 > 以太坊账户交易消息挖以太币

以太坊账户交易消息挖以太币

imtoken钱包下载2.0版本 2023-03-25 06:04:01

比特币:基于交易的账本

比特币使用基于交易的分类账。 在这种模式下,系统不会记录每个账户中有多少钱。 必须要根据UTXO里面的信息去计算,包括想知道这个人总共有多少资产。 对于比特币,即使你看这个人所有的账户,只要他有私钥的那些账户的UTXO中的币数就够了。

优点是隐私保护比较好。 你有多少钱,你自己可能都不清楚,别人就更不清楚了。

但这带来了一个问题。 使用起来很别扭,和我们日常的体验不太一样。

例如:A想转B10BTC,A需要说明这10个币的来源,其中7个是上次交易收到的,另外3个是上次交易收到的,证明转账来源的合法性硬币性。 这与我们通常去银行的经历不同。 当你在银行存钱时,你需要说明钱的来源。 下次花钱的时候,不用解释每一笔钱是从哪里来的。

另一个尴尬的地方是你在之前的交易中收到了一个输出/收到了一些币。 以后要花的时候,一定要一次性花完,不能只花一部分。 如果你只花其中的一部分会怎样? 剩余的 7 个比特币将用作交易费用。 这时候矿工会很开心,而你却不开心。

以太坊账户分为哪些类型_sitehqz.com 以太坊账户停付_以太坊地址分大小写吗

这时候就应该转回给自己了,如下图

以太坊账户分为哪些类型_sitehqz.com 以太坊账户停付_以太坊地址分大小写吗

以太坊账户分为哪些类型_sitehqz.com 以太坊账户停付_以太坊地址分大小写吗

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

以太坊:基于账户的分类账

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

例如:A转入B10ETH,这笔交易的合法性只需要检查A的账户中是否有足够的钱。 例如,如果 A 的账户中有 100 个以太币,他想转 10 个给 B,就可以了。 不需要解释100个以太币中的哪10个转给了B,也不需要解释币的来源/来自哪笔交易之前。 以后B转3个以太币给C也是可以的,剩下的就不用转给自己了,因为有显示余额的概念,所以剩余的币可以直接放在账户里.

用于解释硬币来源的哈希指针也没有使用。

双花攻击(double spending attack)---比特币的一个问题

- 花钱的人不诚实,想把以前花过的钱花掉

基于账户的模式的优势在于它对双花攻击有天然的防御能力,因为无论货币的来源如何,你每次花钱都会从你的账户中扣除,如果你花了两次,它将被扣除两次。

重放攻击(replay attack)---以太坊中的问题

以太坊地址分大小写吗_sitehqz.com 以太坊账户停付_以太坊账户分为哪些类型

- 收钱的人不诚实以太坊账户分为哪些类型,别人已经转账给他了,他还要再转账

A向网络发布转账交易A->B(10ETH)。 一段时间后,交易写入区块链,A认为转账交易完成。 假设B是恶意的,在网上转播了这笔交易,其他节点就认为是新的转账,两次扣掉A的钱。

解决方案:

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

例如:A->B(10ETH),A一共发出了20笔交易以太坊账户分为哪些类型,本次是21笔,所以写nonce=21,然后在整个内容上写上A的签名,如下图

以太坊账户分为哪些类型_sitehqz.com 以太坊账户停付_以太坊地址分大小写吗

然后把上图中的交易发布到网上,因为有签名保护,所以nonce的值不能被别人改变。 系统中的每个节点维护A的状态,不仅要维护A账户上的货币余额,还要维护nonce的值。 一开始,nonce=0,每次收到A发出的交易,nonce+1。

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

以太坊账户分为哪些类型_sitehqz.com 以太坊账户停付_以太坊地址分大小写吗

sitehqz.com 以太坊账户停付_以太坊地址分大小写吗_以太坊账户分为哪些类型

以太坊账户分类

以太坊中有两种账户:外部账户和合约账户。

外部拥有账户(外部账户)

外部账户由公私钥控制,本地生成一对公私钥,私钥控制账户(类似于比特币中的账户),也称为普通账户。

状态:

余额(账户余额)

随机数(计数器)

智能合约账户(contract account)

合约账户不受公私钥对控制。

sitehqz.com 以太坊账户停付_以太坊地址分大小写吗_以太坊账户分为哪些类型

余额(账户余额)

随机数(计数器)

代码(代码)

storage(相关状态——存储,包括每个变量的值)

一个合约可以调用另一个合约,所以调用的次数必须通过nonce值来记录。

合约账户不能主动发起交易。 根据以太坊的规定,所有交易只能由外部账户发起。 如果外部账户发起交易调用合约账户,合约账户可以发送消息调用另一个合约,但不能自己白白发起交易。

调用合约账户

创建合约将返回一个地址。 知道合约的地址,就可以调用合约。 在调用过程中,状态会变,代码(code)不会变,存储(storage)会变。

为什么要设计这样一个新的账户模型?

以太坊账户分为哪些类型_sitehqz.com 以太坊账户停付_以太坊地址分大小写吗

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

为什么不直接改进比特币系统设计,比如改出块时间,挖矿难题,为什么还要改账户系统?

比特币基于交易的模型的好处之一是隐私保护,但以太坊必须支持智能合约。

智能合约要求参与者具有相对稳定的身份。

这与日常生活相似。 例如,您与某人签订合同。 如果你和他签下契约,他的身份是一样的。 签了合同之后,他的身份就变了,你也找不到了。 那么问题来了,可能会突然出现另外一个人,说当初跟你签了合同,只是换了个身份而已,会给合同的执行带来一些困难。 以后发生纠纷的时候,还需要知道合同最初是和谁签的。

现在有人提出用智能合约来实现一些金融衍生品。

比如期权/期货,在合约中投入一笔钱,预测未来的价格走势,如果预测正确,给你一些收益,把钱还给你。 但问题是,如果你投钱后账户发生变化,到时候钱怎么退还给你呢?

此问题不仅限于外部帐户。 合约账户的问题就更严重了。 如果你往合约账户里投钱,投完后地址变了,找不到就麻烦了。

因此,以太坊在创建这个系统时,考虑了过去一些现有模型的优缺点。 最终,它没有采用比特币中基于交易的模型,而是采用了基于账户的模型。

从目前的情况来看,这还是一个比较合适的决定。 只要以太坊账户有望保持稳定,无论是个人账户还是合约账户,如果需要隐私保护,也可以创建多个账户。 根据使用不同的账户进行不同的交易。