区块链网站|NFTS 以太坊(ETH) 《以太坊白皮书》解读——下一代智能合约和分散应用平台

《以太坊白皮书》解读——下一代智能合约和分散应用平台

广告位

《以太坊白皮书》解读-下一代智能合约和去中心化应用平台

055-79000-下一代智能合同和分散应用平台

首先开篇部分讲一下2009年年中我们村全球社会化实验比特币的一些问题。例如,比特币没有内在价值,但它是区块链领域的一个创举。那么,以太坊要做什么?它计划提供一种在区块链使用的图灵完整编程语言,也就是我们现在所知的智能合约。

第1章比特币的基本概念

2009年,中本聪首次实施分布式货币。它通过公钥加密来管理所有权,并通过公式算法来跟踪谁拥有货币,也就是我们所知道的工作量证明。工作量证明解决了两个问题。首先,他解决了网络中节点同意更新比特币账本的问题。第二,他允许自由进入共识进程机制,并解决了谁将影响共识的政治问题。但是有一个问题,节点的权重和它的计算能力成正比。

比特币的状态转换系统

实际上,比特币的账本可以认为是一个状态转移系统,其中有一个由比特币现有的所有所有权状态组成的“状态”和一个状态转移函数。“状态”是生成的和未使用的货币的集合(未使用的交易输出或UTXO)。每个UTXO都有一个名称和一个所有者,这实质上是一个加密公钥。一个事务包含一个或多个输入,每个输入包含对现有UTXO的引用和由与所有者地址相关的私钥生成的加密签名,以及一个或多个输出,每个输出都被添加到新的UTXO。

采矿

比特币的分布式共识要求网络中的节点不断尝试生成“块”交易包。网络每10分钟生成一个块,每个块都有一个时间戳、一个随机数、对前一个块的引用以及自上次生成以来所有交易的列表。

这里不详细介绍挖矿的概念。可以去查比特币白皮书。或者阅读中本聪的比特币白皮书。

然后是恶意攻击。因为比特币是密码安全的,所以攻击会针对系统中没有密码保护的部分:交易序列。其实是双花款。

1.向商家发送比特币并购买一些产品(例如NFT或数字收藏),

2:等待货物送达3:创建另一个交易,将刚才的比特币发送到另一个账户。

4.尝试说服网络,这是第一笔交易,而不是发送给自己的交易。

正常的工作顺序应该是,例如,发生1个事务。几分钟后,挖掘器将事务包含在一个块中,例如,块27,000。1小时后,大约产生5个新区块,都指向这个交易,然后商家会发货。但是如果攻击者发起攻击,他必须首先生成另一个版本的“27000”块,然后将父块指向26999,然后他必须生成一个新的27001-27005指向自己的27000块。因为比特币的规则是默认最新的块是最长的一个,所以攻击者希望比其他块更长,所以他要有比其他网络更强的计算能力(

默克尔树

因为比特币是以多级数据结构存储的,所以块的“hash”其实只是块头的hash,包含时间戳、随机数、上一个块hash、Merkle数的数据结构的根hash。Merkle数是一棵二叉树,由一组根节点组成,每个节点是两个子节点的散列,最后一个是单个根节点,代表树的顶部。如果一个恶意用户想改变虚假事务来替换Merkle树的底部,就会引起上面的节点改变,最后改变整个根,所以可以很容易地判断他是否是有效的事务。

目前由于Merkle tree协议,前一个节点存储了所有的账簿,到2014年已经占用了15GB的磁盘空间,于是出现了一种“轻节点”,即只存储头块和它们相关交易的分支。

其他区块链的应用

Namecoin创建于2010年,名为分布式名称注册数据库。比如人家用“张三”存储账号,别人再用张三这个名字注册就不被识别了,因为他的方法是先档模式。

Colorcoin,这是一种允许人们在比特币链上创建自己的数字货币的协议。人们创造的数字货币是用一种不同的颜色来区分的(实际上它被命名为一种颜色的UTXO)。

以上两个案例说明了在比特币网络上创建共识协议的方式。第一种有一个缺点,就是要建立一个独立的网络,比较困难。第二个是应用太小,无法保证自身安全,因为神V认为分布式共识技术的应用会遵循幂律分布。

脚本

虽然可以在比特币上实现一个简单的脚本,但它仍然存在以下缺陷:

1.缺乏图灵完备性。它不支持所有计算。缺少的是类循环。

2.价值盲0UTXO无法精细控制可撤销金额。

3.状态缺失——UTXO只有两种状态:用完和没用完。

4.区块链盲,UTXO对区块链数据(随机数,时间戳,区块哈希)视而不见。

综上所述,以太坊就是要构建一个新的区块链,可以用脚本来构建元协议,而且协议不限,脚本简单,标准化。

以太坊

以太坊的区块链网络本质上是通过构建终极抽象基础层来实现的:一种内置图灵的完整编程语言,允许任何人编写智能合约和分布式计算程序。这些程序可以为所有权、交易格式和状态转换功能制定自己的规则。

一台房账户

在以太坊中,状态是由“账户”组成的,每个账户都有一个20字节的地址,状态转换是账户之间的值和信息的直接传递。包含4个字段:

1,用于确定每笔交易只能处理一次的计算机的随机数。

2.对账

3.客户的合同代码

4.账户的存储

“以太”是以太坊内部主要的加密燃料,用来支付交易费用。账户分为两种类型,由私钥控制的外部账户和由合同代码控制的合同账户。所有外部账户都没有代码,人们从所有外部账户发送消息来创建和签署交易;在契约账户中,契约账户每收到一条消息,代码就被激活,依次允许内部存储读写、发送其他消息或创建契约。

和消息事务。以太坊中的“交易”一词是指所有外部账户发送的带有消息的签名数据包。交易内容包括:1 .邮件的收件人

2.能够证明发送者身份的签名

3.一定数量的以太币从发送者转移到接收者

4.可选数据字段。

5.可选数据字段。

6.tartgas的值表示执行事务时可以运行的最大计算步骤数。

7.GASPRICE值,表示发送方为每个计算步骤支付的费用。对于6和7,主要是为了防止代码中出现意外和恶意的无限循环,因为每一步都需要耗费气费。

新闻

合同能够向其他合同发送“消息”。消息是从未序列化过的虚拟对象,只存在于以太坊执行环境中。邮件包含:

1.消息的发送者

2.邮件的收件人

3.与消息一起传送的以太坊号

4.可选数据字段

5.起始气体值

事实上,消息是一个事务,它是由契约而不是外部参与者产生的。一条消息将使接收者的帐户运行它的代码。

以太坊的状态转移函数

1.检查交易是否构造良好(例如,它具有正确的值),签名是否正确,随机数是否与发送方帐户的随机数匹配。否则,将返回一个错误。

2.通过STARTGAS * GASPRICE计算交易成本,确定发生地址来自签名,从发件人账户中减去成本,同时增加发件人随机数。如果没有足够的余额,将返回一个错误。

3.初始化GAS=STARTGAS,并在事务中支付确定的每字节GAS数。

4.将交易金额从汇款人账户转移到收款人账户。如果收件人的帐户不存在,请创建一个。如果接收方的帐户是合同,则运行的合同代码要么完成,要么用完所有的汽油。

5.如果转账失败是因为发送方钱不够,或者密码没气了,恢复除已付费用外的所有状态变化,将费用支付到矿工账户。

6.反之,将剩余费用改由发送方承担,将消耗的费用支付给矿工。

比如这一段就很重要。明白了就明白了以太坊的交易逻辑。

假设合约的存储从空开始,发送交易:10以太坊,2000gas,0.001 gasprice,64字节,其中字节0-31代表数字2,字节32-63代表字符串CHARLIE。

1.检查交易是否有效且组织良好。

2.检查交易发送方至少有2000 * 0.001=2以太币,从其账户中扣除2以太币。

3.初始gas=2000,假设事务为170字节,每字节5gas,减去850gas,剩下1150 gas。

4.从寄件人账户减去10以太币,加到合约账户。

5.检查是否使用了合约账户的存储索引2,如果没有,则将存储索引2的数据设置为CHARLIE。假设花了187气,剩下的就是1150-187=963气。

6.将963 * 0.0001=0.963以太币返回发送方账户,同时返回结果状态。

执行代码

以太坊契约中的代码是用低级的基于栈的字节码编写的,称为“EVM代码”。它由一些列字节组成,每个字节代表一个操作,然后是程序计数器1。知道代码循环的结束或错误或停止。这些操作可以访问三种类型的数据存储:

1.堆栈,后进先出容器,数据在其中压入和压出。

2.内存,一个无限扩展的字节数组

3.契约的长期存储是一种键值存储,不同于计算后的堆栈和内存重置,会保存很长时间。

EVM执行时,其完整的计算状态可以由元组(block_state,transaction,message,code,memory,stack,pc,gas)定义,其中block_state表示账户的全局状态,包含余额和存储。在每一轮执行之前,可以通过指令找到所有元组的定义。然后,在运行时,您可以更改元组的定义,将gas减少1,将PC th增加1。

区块链和采矿

以太坊的区块链类似于比特币,但也有区别。以太坊的区块链不仅包含交易列表和最新状态副本,还包含方块数和难度。

他的数据结构用的是Patricia树而不是Merkle树,比比特币效率高一点,节省5-20倍的空间。

app应用

一般来说,有三种应用。现在我们知道以太坊有成千上万的应用。

第一类是金融程序,包括电子货币、金融衍生品、对冲合同、储蓄钱包、雇佣合同等等。

第二种半金融应用

第三种网上竞价、分布式治理等应用。

令牌系统:这里就不多说了。我什么都知道,但是我需要补充一点,以太坊的好处是可以用货币支付交易费用,因为所有的应用都可以直接使用以太坊进行交易。这就使得以太坊有了价值,也就是说在它上面运行的应用越多,以太坊的价值就越大。

示例应用程序

1.金融衍生品和币值稳定的货币。他们太多了。搜一把。

2.前段时间流行的身份和信誉系统,比如DNS和域名系统。

3.分散式文件存储。

4.分散的自治组织、人民等。

5.商店钱包,metamask。

6.作物保险

7.分散数据反馈,谢林碧

8.智能多重签名托管

9.云计算

10.点对点赌博

1.预测市场

12.连锁起来集中市场,uni等。

总结:

以太坊最初的想法是加密货币的升级版,通过高度的编程语言提供一些高级功能,而且是图灵完全的,可以支持任何类型的应用和合约。相信以太坊将非常适合作为未来大量金融和非金融协议的基础层。

广告位
本文来自网络,不代表区块链网站|NFTS立场,转载请注明出处:https://www.qklwz.com/jzb/ytf/25146.html
上一篇
下一篇

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

返回顶部