主页 > imtoken钱包官网 > 有ETH?以太坊原理介绍

有ETH?以太坊原理介绍

imtoken钱包官网 2023-06-07 06:22:47

以太坊创始人是谁_以太坊是区块链吗_以太坊创始团队有哪些人

持有ETH的你了解以太坊的原理吗?

区块链本质上是一个去中心化的数据库。 它利用密码学的相关方法生成数据块,每个数据块包含比特币网络交易的所有信息,因此可以用来验证其信息的有效性并生成下一个块。

区块链格式首先应用于比特币。 2008年10月,在中本聪的论文中,“block”和“chain”这两个词被分开使用,当它们被广泛使用时,统称为blockchain-chain。 变成了一个词:“区块链”。

以太坊是一个开放的区块链平台,任何人都可以创建和使用基于区块链技术的去中心化应用程序。 与比特币一样,没有人控制或拥有以太坊,这是一个由世界各地许多人创建的开源项目。 与比特币不同,以太坊被设计为灵活且可根据需要进行修改。

以太坊平台应用了很多与信息安全和密码学相关的技术,如时间戳、非对称加密、哈希函数、默克尔树等。

一.以太坊概况

以太坊是一个开放的区块链平台,任何人都可以创建和使用基于区块链技术的去中心化应用程序。 与比特币一样,没有人控制或拥有以太坊,这是一个由世界各地许多人创建的开源项目。 与比特币不同,以太坊被设计为灵活且可根据需要进行修改。

以上对以太坊的介绍是官方的。 查阅了很多资料,自己也有了一些了解。 关于比特币技术,我们可以想象有一个账本,它有一个特点:世界上每一个参与者都有一份它的副本,也就是任何人在上面记录一笔交易,那么这条记录马上就会出现在所有的副本上在世界范围内,所有参与者都知道这笔交易,没有人可以删除账本上的任何记录。

基于上面的例子,我们来介绍一个交易流程:

1. Alice 想转 10 个比特币给 Bob。

2. Alice需要提供Alice的地址(通过Alice的公钥哈希得到),Bob的地址,以及转账金额。 同时,爱丽丝用自己的私钥对交易进行签名。

3.交易被发送到已签名的交易池,等待验证。

4. 系统验证Alice账户中确实有大于10个比特币的财富后,认为交易有效。

5. 验证完成后,将交易发送至验证交易池。 所有交易都经过验证后,打包成一个区块,加密签名后添加到区块链中。

6.区块链更新,所有参与者下载新的区块链,这意味着爱丽丝的交易显示在每个人的账本上。

7. Bob 现在从 Alice 那里收到 10 个比特币。

以上过程简单介绍了比特币的原理,以太坊在此基础上进一步发展,可以创建一些自动执行的小程序。 例如,Alice可以添加一个小程序:“如果1月4日NBA比赛雷霆队赢了湖人队,那么转10个比特币给Bob。” 鲍勃。 这类小程序的正式名称是智能合约。

智能合约有两个特点。 一是任何参与者都可以查看源代码,这确保了可信度。 另一个是智能合约不能突然删除。 比如以太坊创始人是谁,爱丽丝看了上半场比赛,感觉雷霆队快要赢了。 ,我想忏悔删除小程序,但是这种操作是不允许的。

二、以太坊关键技术

以太坊采用了很多与信息安全和密码学相关的技术,大致有5种,工作量证明(POW)、椭圆曲线密码学、散列函数、默克尔树和电子时间戳机制。

2.1 工作证明

工作量证明机制(Proof of Work,POW)是区块链的关键技术。 简单的说,就是用来确认你做了一定的工作量。 主要特点是worker需要做一些困难的工作才能得到结果,但是验证者可以很容易地根据结果检查worker是否做了相应的工作。 过程如下图所示。

以太坊是区块链吗_以太坊创始团队有哪些人_以太坊创始人是谁

如图所示,左边的矿工需要解决密码学难题才能“挖出”一个区块并将其添加到区块链中。 这个过程需要大量的能量和计算。 在系统中,这些谜题被设计成困难和繁重的。 当矿工解决一个难题时,他们会将他们的区块发布到网络以供验证。 右边的人验证一个区块属于一条链是一个非常简单快速的过程。

哈希函数也用于工作量证明机制。 矿工完成计算后,使用Hashcash算法作为计算结果的POW。 其他节点可以使用相关的数学公式轻松验证该值(新块)是否有效。

但是,目前工作量证明存在很多问题。 首先,工作量证明是一个效率极低的系统,因为它消耗大量的电力和能源。

其次,工作量证明不抗 ASIC,也就是说,能够购买速度更快、功能更强大的 ASIC 设备的个人和机构通常能够以比其他人更高的概率挖出区块。

针对上述缺点,权益证明(POS)被提出,将整个挖矿过程虚拟化,用验证者代替矿工。 首先,验证者必须锁定他们拥有的一些代币作为保证金。 在此之后,他们将开始验证块。 同时,当他们发现一个他们认为可以加入链中的区块时,他们会通过抵押来验证它。 如果区块成功上传到链上,验证者将获得与其股份成比例的奖励。

2.2 椭圆曲线密码学

区块链中使用的公钥密码算法是根据椭圆代数的特点发展起来的椭圆曲线算法。 椭圆曲线算法的安全性依赖于一个众所周知的数学问题,即离散对数问题。 椭圆曲线密码的加解密过程如下图所示。

以太坊创始人是谁_以太坊是区块链吗_以太坊创始团队有哪些人

如上图所示,用户Alice选择一条椭圆曲线Ep(a,b),并取椭圆曲线上的一点作为基点P; 用户A选择私钥k,生成公钥L=kP; 用户 A 发送 Ep(a, b) 并将 L 和 P 指向用户 Bob; 用户Bob收到信息后,对Ep(a,b)上的M点进行明文编码,生成一个随机整数x(x小于r); 用户Bob计算点C1=M+xL,C2=xP; 用户 Bob 将 C1、C2 发送给用户 Alice; 用户Alice收到信息后计算C1-LC2,结果为M点。

椭圆曲线密码学的出现也是受到 RSA 算法的启发。 RSA方法的优点在于原理简单,使用方便。 但是,随着大整数分解方法的进步和完善,计算机速度的提高和计算机网络的发展,对大整数作为RSA加解密安全保证的要求越来越高。 为了保证RSA的安全性,密钥位数一直在增加。 但是密钥长度的增加导致加解密的速度大大降低,硬件实现也越来越难以承受。 RSA的应用带来了沉重的负担,尤其是对于有大量安全交易的电子商务,这使得它的应用范围越来越受到限制。

与RSA 方法相比,椭圆曲线加密方法具有以下优点: (1) 更高的安全性能。 一个加密算法的安全性能一般通过算法的抗攻击强度来体现。 与其他几种公钥系统相比,ECC在抵抗攻击方面具有绝对优势。 例如,160bitECC 和 1024bitRSA 具有相同的安全强度。 (2)处理速度快。 在私钥处理(签名和解密)方面,ECC 比 RSA 快得多。 (3) 存储空间小,ECC的密钥大小比RSA小很多。

2.3 默克尔树

大多数 Merkle Trees 用于比较和验证。 用户首先从可信来源获取文件的默克尔树根。 一旦获得根,就可以从其他不受信任的来源获得 Merkle 树。 根据可信根检查收到的默克尔树。 如果 Merkle Tree 损坏或伪造,则从其他来源获得另一棵 Merkle Tree,直到获得与可信树根匹配的 Merkle Tree。

Merkle Tree可以看作是哈希表的推广,所以它的主要特点是哈希函数的主要特点,即输入数据的微小变化都会导致哈希运算的结果无法识别,而原始输入根据Hash值逆向数据表征困难,可用于验证处理。

Merkle Tree 协议可以说对以太坊的长期可持续性至关重要。 区块链网络中节点存储所有区块的所有数据所需的内存空间迅速增加。 Merkle Tree 协议使以太坊能够只下载区块头以太坊创始人是谁,使用区块头来确认工作证明,然后只下载与其交易相关的 Merkle 树“分支”。 这允许节点通过仅下载整个区块链的一小部分来安全地确定任何比特币交易的状态和账户的当前余额。

2.4 时间戳机制

在以太坊中,要求参与交易的各方不能否认自己的行为。 这就需要在经过数字签名的交易上加上可靠的时间戳来解决一系列的实际和法律问题。 时间戳服务的工作流程大致如下:首先,用户对文件数据进行Hash汇总处理; 用户发起时间戳请求,Hash值传给时间戳服务器; 时间戳服务器对哈希值和日期/时间记录进行签名,生成时间戳; 时间戳数据和文件信息将被绑定并返回,用户将进行下一步的电子交易操作。

2.5 哈希函数

首先简单介绍一下哈希函数。 一个可靠的单向散列函数必须具备以下特点: (1) 任意长度的输入数据都必须输出固定长度的散列值; (2)能够快速计算哈希值; (3) ) 输入数据的微小差异也会导致哈希值的较大差异; (4) 是单向的,不能根据哈希值逆向原始数据。 常见的单向散列函数有MD4/MD5、SHA-1/SHA-256/SHA-384/SHA-512、RIPEMD/RIPEMD-160、以Keccak算法为标准的SHA-3系列函数。 其中MD4/MD5、SHA-1、RIPEMD已经有破解算法,不建议在极其敏感的环境下使用。 以太坊中常用的哈希函数有SHA-256、Keccak-256等。

以太坊创始人是谁_以太坊创始团队有哪些人_以太坊是区块链吗

如上图,每个打包好的区块都有一个prehash值,prehash值指的是前一个区块的哈希值(通常是区块头),以太坊这里使用的是SHA-256算法。 当需要遍历验证所有区块时,就是通过preHash值索引到前一个区块,直到原始区块。 同时,上图中还有一个成员值得关注:MRH(Merkle Root Hash),即Merkle树根节点的哈希值。 矿工打包的一定数量的交易存储在区块链的每个Block中,区块链的交易记录不可篡改。 检测区块中的交易是否被篡改,是根据默克尔树的根哈希值是否一致。

在 2.3 中引入了 Merkle 树。 Merkle 树的本质是一个广义的哈希表。 当我们需要验证区块中的一笔交易是否被篡改时,我们只需要验证交易的哈希值即可。同时,默克尔树还有一个优势。 对于大块的数据,我们只能验证其中的一部分,大大减少了工作量。

以太坊也在很多地方使用哈希函数。 例如,区块链上的地址是通过公钥哈希得到的。 以太坊帐户地址是通过使用 Keccak-256 哈希方法计算公钥获得的。 以太坊上的签名是通过散列私钥和要签名的数据生成的。

三、以太坊的未来发展

目前的以太坊还存在很多问题,比如一直存在的可扩展性问题。 由于以太坊节点需要存储区块链网络上发生的一切,存储成本非常昂贵,而且这个成本可能会随着时间的推移而增加。 随着系统的扩展呈指数级增长。 针对这个问题,以太坊的创始人提出了“分片”的解决方案。 具体思路是将状态以某种形式进行分片,使得多个独立的应用在大多数情况下可以并行化。 处理方式。 我们自然会怀疑,分片后,发起交易只会引起参与节点之间的波动,是否还能保证它们相互传递信息的真实性? 针对这个问题,以太坊依靠验证管理合约来确保真实性。 每个区块,每个分片,都将由一个随机可靠的验证管理合约进行验证。 因此,要想达到欺骗的目的,让一个“说谎”的验证者能够被系统接受,就必须突破并接管整个系统中的大部分验证者。

另一个例子是隐私风险问题。 在以太坊中,隐私保护非常重要。 目前,针对该问题的一种流行解决方案是 zk-SNARKs(简明非交互式零知识证明)。 这个解决方案的原理是,让证明者说服验证者某个陈述是正确的,而不提供任何额外的有用信息,这是一种概率证明而不是确定性证明。 以爱丽丝和鲍勃为例,爱丽丝现在有一把钥匙,她需要向鲍勃证明她拥有这把钥匙。 有两种方法。 首先是 Alice 把钥匙给 Bob,Bob 用钥匙开门,Bob 知道 Alice 确实有钥匙进门。 另一种方法是鲍勃知道这所房子里有东西,他告诉爱丽丝,爱丽丝去房间把这个东西给鲍勃看。 既然爱丽丝可以做到这一点,鲍勃就知道爱丽丝有门的钥匙。 这第二种方法体现了零知识证明的思想。 当然,这是一个概率证明,而不是确定性证明。