导航:首页 > 以太坊区 > 深入以太坊原理

深入以太坊原理

发布时间:2025-08-11 17:28:14

A. 浠涔堟槸浠ュお銆佷互澶缃戙佷互澶鍧

鎻寮浠ュお銆佷互澶缃戝拰浠ュお鍧婄殑绁炵橀潰绾



浠ュお锛屼竴涓婧愯嚜鍙ゅ笇鑵婂摬瀛︾殑璇嶆眹锛屽師鎸囦竴绉嶆棤褰㈡棤璐ㄣ佸厖婊″畤瀹欑殑绁炵樹粙璐ㄣ傛棭鍦ㄥ叕鍏冨墠3涓栫邯锛屼簹閲屽+澶氬痉浠ヤ簲鍏冪礌鐞嗚鸿祴浜堝畠鐙鐗圭殑鍦颁綅锛岀劧鑰岋紝闅忕潃绉戝︾殑杩涙ワ紝浠ュお鐨勭炵樿壊褰╅愭笎琚绉戝︾悊鎬у彇浠c傜瑳鍗″皵寮曞叆浠ュお姒傚康鏃讹紝灏嗗叾瑙嗕负浼犻掑姏鐨勫獟浠嬶紝灏界″紩鍔涘钩鏂瑰弽姣旀柟绋嬬殑鑳滃埄鍓婂急浜嗗叾瀛樺湪蹇呰佹э紝浣嗗湪19涓栫邯锛屽厜娉㈢悊璁虹殑鍏磋捣鍙堝皢鍏舵帹涓婅垶鍙般傜劧鑰岋紝楹﹀厠鏂闊︾殑鐢电佺悊璁鸿瘉鏄庡厜鏃犻渶浠ュお濯掍粙锛屼互澶鐞嗚烘渶缁堝湪绉戝﹁瘉瀹炵殑璇佹嵁闈㈠墠榛鐒堕鍦恒



浠ュお缃戜笌IEEE 802.3鐨勯潻鏂扮瘒绔



灏界$戝︾晫鐨勪互澶鐞嗚哄凡缁忔贰鍑鸿嗙嚎锛屼絾鍦ㄧ幇瀹炵敓娲讳腑锛屸滀互澶鈥濊繖涓璇嶅嵈鍦ㄧ壒瀹氶嗗煙鐒曞彂鏂扮敓锛岄偅灏辨槸浠ュお缃戙備綔涓鸿$畻鏈虹綉缁滅殑鍩虹锛屼互澶缃戦伒寰狪EEE 802.3鏍囧噯锛屽彇浠d簡鍏朵粬鎶鏈锛屾垚涓哄綋浠婃渶鏅閬嶇殑灞鍩熺綉鎶鏈銆傚眬鍩熺綉鍜屽箍鍩熺綉鐨勫尯鍒嗭紝濡傚悓灏忓尯鍩熶笌澶ц寖鍥寸殑瀵规瘮锛屽眬鍩熺綉鍒欎富瑕佷緷璧栦簬浼犺緭浠嬭川锛屽傚悓杞寸數缂嗐佸弻缁炵嚎鍜屽厜绾ゃ傚悓杞寸數缂嗘浘鐢ㄤ簬妯℃嫙鍜屾暟瀛椾俊鍙蜂紶杈擄紝鍙岀粸绾夸互浠锋牸浼樺娍鍦ㄧ幇浠g綉缁滀腑鍗犳嵁涓甯涔嬪湴锛岃屽厜绾ゅ垯浠ラ珮閫熷拰浣庢崯鑰楁垚涓烘柊寤哄皬鍖虹殑棣栭夈



浠ュお缃戠殑浼犺緭鍗忚瓹SMA/CD锛屽傚悓鈥滃厛鍚鍚庤达紝杈硅磋竟鍚鈥濈殑绛栫暐锛岀‘淇濅簡鏁版嵁鐨勬湁搴忎紶杈撱傝屼互澶缃戠殑鍩烘湰鎷撴墤缁撴瀯锛岃櫧鐒剁畝鍗曚笖鏄撲簬鎵╁睍锛屼絾涔熷瓨鍦ㄤ紶杈撹窛绂绘湁闄愬拰鍐茬獊闂棰樸傞氳繃闆嗙嚎鍣ㄦ垨浜ゆ崲鏈猴紝缃戠粶鍙浠ユ墿灞曞埌鏇村嶆潅鐨勬槦鍨嬫垨鎵╁睍鏄熷瀷缁撴瀯銆



浜掕仈缃戜笌涓囩淮缃戠殑杩炴帴涓庡樊寮



浜掕仈缃戯紝涓涓鍏ㄧ悆浜掕仈鐨勭綉缁滐紝涓庝互澶缃戜笉鍚岋紝瀹冩槸涓鏇村箍娉涚殑姒傚康銆傝屼竾缁寸綉锛屼竴涓鐢辫秴鏂囨湰閾炬帴鏋勬垚鐨勫氬獟浣撶綉缁滐紝瀹冨熀浜庝簰鑱旂綉锛屼絾鍙堢嫭绔嬩簬鎶鏈灞傞潰锛屾槸淇℃伅鍜屾湇鍔$殑瀹濆簱銆備互澶缃戞槸搴曞眰鐨勯氫俊鎶鏈锛屼簰鑱旂綉鍒欐槸鍏跺簲鐢ㄥ眰闈锛岃屼竾缁寸綉鍒欐槸鍦ㄤ簰鑱旂綉涓婃瀯寤虹殑涓板瘜鍐呭圭殑涓栫晫銆



浠ュお鍧婄殑鍒涙柊涓庡尯鍧楅摼闈╁懡



浠ュお鍧婏紝杩欎釜鍚嶅瓧涓庝互澶缃戝拰浠ュお瀹屽叏涓嶅悓锛屽畠鏄鐜颁唬鍖哄潡閾炬妧鏈鐨勪唬琛锛屾彁渚涗簡涓涓鍙缂栫▼鐨勫钩鍙帮紝鍏佽稿紑鍙戞櫤鑳藉悎绾﹀拰浠e竵鍙戣屻備互澶鍧婇氳繃鍥剧伒瀹屽囩殑鑴氭湰璇瑷锛岄檷浣庝簡鍖哄潡閾惧簲鐢ㄧ殑寮鍙戦棬妲涳紝璁╃敤鎴疯兘澶熸瀯寤哄嚭鍚勭嶅垱鏂板簲鐢锛岃繖鏄鍦═CP/IP浜斿眰妯″瀷鐨勫簲鐢ㄥ眰涓瀹炵幇鐨勫垎甯冨紡鏁版嵁搴撶郴缁燂紝涓庝互澶缃戠殑鐗╃悊灞傚拰鏁版嵁閾捐矾灞傚伐浣滃師鐞嗘埅鐒朵笉鍚屻



浠ュお鍧婄殑鍑虹幇锛屼笉浠呴潻鏂颁簡閲戣瀺浜ゆ槗鐨勬ā寮忥紝杩樻帹鍔ㄤ簡鏁板瓧缁忔祹鐨勫彂灞曪紝灞曠幇浜嗘妧鏈濡備綍绐佺牬浼犵粺鐨勭晫闄愶紝鍒涢犲嚭鍏ㄦ柊鐨勫彲鑳芥с

B. ViaBTC微比特科普丨矿工小白必须要了解的以太坊知识

以太坊作为仅次于比特币的第二大加密货币,其受欢迎程度在币圈名列前茅,网络关键词搜索量甚至一度超过比特币。随着矿工纷纷转战以太坊,了解其知识成为矿工必修课。那么,以太坊是什么?挖矿原理又是如何呢?接下来,让我们一探究竟。

以太坊的创始人Vitalik Buterin,以其天才般的才能在编程领域崭露头角,从四岁开始编程,到七岁绘制数学图表,再到十二岁开发游戏,展现了非凡的天赋。19岁时,他提出在比特币区块链上开发应用的构想,从而催生了以太坊的诞生。V神的创新引领了以太坊在加密货币界的稳固地位。

以太坊定义为一个开放的区块链平台,允许用户创建并使用基于区块链技术的去中心化应用程序。与比特币的定位不同,以太坊更像是一个平台,供开发者构建应用,而比特币则更像是价值存储的黄金。

在以太坊网络中,挖矿是获取以太币的主要途径。当前采用的共识机制为PoW(Proof of Work),通过计算难题来获得奖励。以太坊挖矿速度更快,大约每12-15秒产出一个区块,且算法自动调整难度以保持产出速度稳定。爆块奖励为2个ETH,发行量不受限制。此外,手续费收益和叔块奖励也是矿工的收入来源。叔块奖励是其独特之处,若同一区块高度下有多个区块产生,其中最长链上的区块将成为主链,其他被后续引用的区块即为叔块,可获得奖励。

以太坊通过特定的工作量证明算法ethash弱化了比特币系统中的中心化趋势,避免ASIC硬件带来的问题,增强了网络的去中心化。随着PoS(Proof of Stake)共识机制的推进,以太坊2.0预计不久将上线。这将减少资源消耗,提高共识效率,为矿工带来机遇与挑战。

对于以太坊的更多行业科普内容,欢迎搜索“ViaBTC微比特”,获取最新资讯。

C. 一文了解以太坊矿机及挖矿原理

在以前的文章中,我们分别了解了比特币挖矿和以太坊挖矿的区别。本文重点介绍以太坊挖矿及矿机部分。

以太坊是一个开源的有智能合约功能的公共区块链平台,通过其专用加密货币ETH提供去中心化的以太虚拟机来处理点对点合约。目前ETH的挖矿主要是通过显卡矿机,所谓显卡矿机,其实就是类似家用台式机,只不过每台机器里面有6-10张显卡,并且没有显示器(如图)。

图:显卡矿机

之所以以太坊没有发展出类似于BTC一样的ASIC矿机,主要是由于ETH的特殊挖矿机制决定的。

在ETH挖矿过程中,会产生一个DAG文件,该文件需要一直被调用,因此必须有专门的存储空间放置。这个对于存储空间的硬性需求会导致即使生产出来了ASIC芯片,也并不能大幅度降低单位算力的成本。简单来说,就是性价比很差。

以太坊的DAG大小自2016年6月份引入Dagger-Hashimoto 算法时的1GB开始,以每年约520MB的速度增大到了现在的 3.7G,预计2020年底以太坊的DAG大小将增加至4G。届时,显存小于4G的显卡都将被陆续淘汰。

还需要介绍一点的是,由于显卡矿机的体积通常是比特币矿机的2-4倍,而消耗的电力却只有比特币矿机的1/2甚至更低,这就导致一般人不愿意修建专门的显卡矿机矿场(因为矿场主要赚取的是电费差价,同样面积的场地,可以放置的显卡数量少,消耗的电量更少)。即使有少量的显卡矿场,收取的电费成本通常也比比特币矿机矿场的高。

D. 如何简单理解以太坊的pos(casper)机制

Casper是用保证金的下注机制来验证以太坊网络中的交易。验证人需对共识结果进行下注,猜测下一个区块会由谁生成,并以此作为保证金的一部分。如果验证人正确预测了区块生成者,则将获得交易费用和新发行的货币作为奖励。反之,若预测错误,则只能回收部分保证金。这样,随着验证人下注的持续,共识结果会逐渐趋向稳定。

为了避免验证人的投机行为,Casper设定了一条规则,即如果验证人在短时间内多次改变下注对象,将面临严厉惩罚。这一机制确保了只有在确信其他验证人也会对同一区块下注时,验证人才会下注,从而避免了下注结果的反复波动。

与Casper类似,工作量证明(POW)共识机制也基于下注原理。矿工通过计算能力选择一个区块进行挖矿,即对区块胜出进行下注。如果成功,矿工会获得区块奖励,反之则损失电费。在POW中,下注的经济价值随着确认次数线性增长。而在Casper中,验证人通过协调下注比例实现指数增长,加快了共识达到最大安全性的速度。

在Casper中,验证人对每个区块高度上的候选块独立下注,并为每个块分配一个胜出概率,公布给网络。通过反复的下注过程,验证人会最终选出唯一的胜出块,从而确定交易的执行顺序。若验证人公布的概率总和超过100%,或出现负概率,或对无效块赋予正概率,都将受到保证金罚没的惩罚。

E. 【深度知识】以太坊数据序列化RLP编码/解码原理

RLP(Recursive Length Prefix),中文翻译过来叫递归长度前缀编码,它是以太坊序列化所采用的编码方式。RLP主要用于以太坊中数据的网络传输和持久化存储。

对象序列化方法有很多种,常见的像JSON编码,但是JSON有个明显的缺点:编码结果比较大。例如有如下的结构:

变量s序列化的结果是{"name":"icattlecoder","sex":"male"},字符串长度35,实际有效数据是icattlecoder 和male,共计16个字节,我们可以看到JSON的序列化时引入了太多的冗余信息。假设以太坊采用JSON来序列化,那么本来50GB的区块链可能现在就要100GB,当然实际没这么简单。

所以,以太坊需要设计一种结果更小的编码方法。

RLP编码的定义只处理两类数据:一类是字符串(例如字节数组),一类是列表。字符串指的是一串二进制数据,列表是一个嵌套递归的结构,里面可以包含字符串和列表,例如["cat",["puppy","cow"],"horse",[[]],"pig",[""],"sheep"]就是一个复杂的列表。其他类型的数据需要转成以上的两类,转换的规则不是RLP编码定义的,可以根据自己的规则转换,例如struct可以转成列表,int可以转成二进制(属于字符串一类),以太坊中整数都以大端形式存储。

从RLP编码的名字可以看出它的特点:一个是递归,被编码的数据是递归的结构,编码算法也是递归进行处理的;二是长度前缀,也就是RLP编码都带有一个前缀,这个前缀是跟被编码数据的长度相关的,从下面的编码规则中可以看出这一点。

对于值在[0, 127]之间的单个字节,其编码是其本身。

例1:a的编码是97。

如果byte数组长度l <= 55,编码的结果是数组本身,再加上128+l作为前缀。

例2:空字符串编码是128,即128 = 128 + 0。

例3:abc编码结果是131 97 98 99,其中131=128+len("abc"),97 98 99依次是a b c。

如果数组长度大于55, 编码结果第一个是183加数组长度的编码的长度,然后是数组长度的本身的编码,最后是byte数组的编码。

请把上面的规则多读几篇,特别是数组长度的编码的长度。

例4:编码下面这段字符串:

The length of this sentence is more than 55 bytes, I know it because I pre-designed it
这段字符串共86个字节,而86的编码只需要一个字节,那就是它自己,因此,编码的结果如下:

184 86 84 104 101 32 108 101 110 103 116 104 32 111 102 32 116 104 105 115 32 115 101 110 116 101 110 99 101 32 105 115 32 109 111 114 101 32 116 104 97 110 32 53 53 32 98 121 116 101 115 44 32 73 32 107 110 111 119 32 105 116 32 98 101 99 97 117 115 101 32 73 32 112 114 101 45 100 101 115 105 103 110 101 100 32 105 116
其中前三个字节的计算方式如下:

184 = 183 + 1,因为数组长度86编码后仅占用一个字节。
86即数组长度86
84是T的编码
例5:编码一个重复1024次"a"的字符串,其结果为:185 4 0 97 97 97 97 97 97 ...。
1024按 big endian编码为004 0,省略掉前面的零,长度为2,因此185 = 183 + 2。

规则1~3定义了byte数组的编码方案,下面介绍列表的编码规则。在此之前,我们先定义列表长度是指子列表编码后的长度之和。

如果列表长度小于55,编码结果第一位是192加列表长度的编码的长度,然后依次连接各子列表的编码。

注意规则4本身是递归定义的。
例6:["abc", "def"]的编码结果是200 131 97 98 99 131 100 101 102。
其中abc的编码为131 97 98 99,def的编码为131 100 101 102。两个子字符串的编码后总长度是8,因此编码结果第一位计算得出:192 + 8 = 200。

如果列表长度超过55,编码结果第一位是247加列表长度的编码长度,然后是列表长度本身的编码,最后依次连接各子列表的编码。

规则5本身也是递归定义的,和规则3相似。

例7:

["The length of this sentence is more than 55 bytes, ", "I know it because I pre-designed it"]
的编码结果是:

248 88 179 84 104 101 32 108 101 110 103 116 104 32 111 102 32 116 104 105 115 32 115 101 110 116 101 110 99 101 32 105 115 32 109 111 114 101 32 116 104 97 110 32 53 53 32 98 121 116 101 115 44 32 163 73 32 107 110 111 119 32 105 116 32 98 101 99 97 117 115 101 32 73 32 112 114 101 45 100 101 115 105 103 110 101 100 32 105 116
其中前两个字节的计算方式如下:

248 = 247 +1
88 = 86 + 2,在规则3的示例中,长度为86,而在此例中,由于有两个子字符串,每个子字符串本身的长度的编码各占1字节,因此总共占2字节。
第3个字节179依据规则2得出179 = 128 + 51
第55个字节163同样依据规则2得出163 = 128 + 35

例8:最后我们再来看个稍复杂点的例子以加深理解递归长度前缀,

["abc",["The length of this sentence is more than 55 bytes, ", "I know it because I pre-designed it"]]
编码结果是:

248 94 131 97 98 99 248 88 179 84 104 101 32 108 101 110 103 116 104 32 111 102 32 116 104 105 115 32 115 101 110 116 101 110 99 101 32 105 115 32 109 111 114 101 32 116 104 97 110 32 53 53 32 98 121 116 101 115 44 32 163 73 32 107 110 111 119 32 105 116 32 98 101 99 97 117 115 101 32 73 32 112 114 101 45 100 101 115 105 103 110 101 100 32 105 116
列表第一项字符串abc根据规则2,编码结果为131 97 98 99,长度为4。
列表第二项也是一个列表项:

["The length of this sentence is more than 55 bytes, ", "I know it because I pre-designed it"]
根据规则5,结果为

248 88 179 84 104 101 32 108 101 110 103 116 104 32 111 102 32 116 104 105 115 32 115 101 110 116 101 110 99 101 32 105 115 32 109 111 114 101 32 116 104 97 110 32 53 53 32 98 121 116 101 115 44 32 163 73 32 107 110 111 119 32 105 116 32 98 101 99 97 117 115 101 32 73 32 112 114 101 45 100 101 115 105 103 110 101 100 32 105 116
长度为90,因此,整个列表的编码结果第二位是90 + 4 = 94, 占用1个字节,第一位247 + 1 = 248

以上5条就是RPL的全部编码规则。

各语言在具体实现RLP编码时,首先需要将对像映射成byte数组或列表两种形式。以go语言编码struct为例,会将其映射为列表,例如Student这个对象处理成列表["icattlecoder","male"]

如果编码map类型,可以采用以下列表形式:

[["",""],["",""],["",""]]

解码时,首先根据编码结果第一个字节f的大小,执行以下的规则判断:

1.如果f∈ [0,128),那么它是一个字节本身。

2.如果f∈[128,184),那么它是一个长度不超过55的byte数组,数组的长度为 l=f-128

3.如果f∈[184,192),那么它是一个长度超过55的数组,长度本身的编码长度ll=f-183,然后从第二个字节开始读取长度为ll的bytes,按照BigEndian编码成整数l,l即为数组的长度。

4.如果f∈(192,247],那么它是一个编码后总长度不超过55的列表,列表长度为l=f-192。递归使用规则1~4进行解码。

5.如果f∈(247,256],那么它是编码后长度大于55的列表,其长度本身的编码长度ll=f-247,然后从第二个字节读取长度为ll的bytes,按BigEndian编码成整数l,l即为子列表长度。然后递归根据解码规则进行解码。

以上解释了什么叫递归长度前缀编码,这个名字本身很好的解释了编码规则。

(1) 以太坊源码学习—RLP编码( https://segmentfault.com/a/1190000011763339 )
(2)简单分析RLP编码原理
( https://blog.csdn.net/itchosen/article/details/78183991 )

F. Lebron科普:比特币、以太坊挖矿原理以及区别

在区块链世界中,比特币和以太坊的挖矿过程虽然共享了基础原理,但各自有其独特之处。首先,比特币挖矿是通过特定的挖矿节点和电脑消耗算力,每大约10分钟通过算法调整难度,成功验证新区块的节点会得到比特币奖励。挖矿过程涉及准备工作、加入矿池、设置账号等步骤。而以太坊的挖矿则是基于工作量证明机制,矿工通过提供数学证明验证新区块,以太币作为奖赏。以太坊的独特之处在于其交易可能包含可执行代码,且以秒为单位确认交易,使用ethash算法,其目标在于支持智能合约和去中心化应用。

尽管两者都是区块链技术的应用,但比特币更像是去中心化的全球银行,专注于价值存储和交换,账本公开且交易可追溯。相比之下,以太坊更侧重于平台功能,其区块链被设计为支持比特币以外的智能合约和DApp发展。尽管市值上,比特币通常排名更前,但以太坊凭借其生态系统的潜力,与比特币以及其他加密货币在市场竞争中占据一席之地。

G. 20.了解以太坊经典基本原理

以太坊经典基本原理如下

综上所述,以太坊经典是一个致力于保留区块链历史、提供安全透明交易环境,并支持智能合约的加密货币平台。然而,它也面临着市场认可度低、安全挑战和技术升级等多重压力。

阅读全文

与深入以太坊原理相关的资料

热点内容
比卡通bcd区块链 浏览:66
以太永恒与以太坊经典 浏览:386
深入以太坊原理 浏览:785
数字货币研究中心御银 浏览:243
小鸟矿池下载 浏览:559
以太坊官网教学 浏览:96
炒区块链的软件 浏览:754
区块链保利马 浏览:23
以太坊钱怎么提现 浏览:337
领鲸金融区块链 浏览:539
日月信区块链 浏览:922
京东加入区块链 浏览:593
2017热词区块链 浏览:721
以太坊的eos发行价 浏览:677
以太坊token交易 浏览:39
跨国贷款区块链 浏览:616
区块链共识层应用层 浏览:507
区块链为什么用代币 浏览:631
报价输入数字变货币快捷键 浏览:935
朝阳矿池 浏览:633