6.ETH-挖矿算法

在比特币网络中,ASIC矿机的出现使得拥有大规模、高算力硬件的矿工占据了绝对优势,普通用户使用CPU或GPU几乎无法参与挖矿。为避免重蹈覆辙,新加密货币的开发者设计了新的挖矿算法。其特点是内存困难(Memory-hard)。这意味着该算法在进行哈希计算时,不仅需要大量的计算能力,还需要极大的内存带宽和容量。 莱特币-Scrypt算法 Scrypt 算法由加拿大计算机科学家科林·珀西瓦尔(Colin Percival)于2009年发明,它与比特币使用的 SHA-256 算法在设计哲学上有本质的区别。它不仅仅是一个简单的哈希函数,而是一个可调节难度的密钥派生函数 (Key Derivation Function, KDF),其设计精髓在于通过消耗大量内存来增加破解难度。 核心参数 在开始挖矿之前,需要先设定好关键参数。Scrypt 有三个关键参数来控制其挖矿的难度和资源消耗: 1. N (CPU/Memory Cost) - 内存成本参数: * 这是最重要的参数,直接决定了算法需要消耗多少内存。 * 它必须是2的幂(例如 1024, 2048, 16384)…

5.ETH-GHOST协议(PoW)

GHOST协议的出现是为了解决一个核心矛盾:如何在保证网络安全和去中心化的前提下,大幅缩短区块链的出块时间。 比特币(Bitcoin)网络大约每10分钟产生一个区块,这个时间足够长,可以确保新挖出的区块有充分的时间广播到全球绝大多数节点,从而让整个网络在“哪条是主链”这个问题上快速达成共识。比特币遵循的是“最长链原则”(Longest Chain Rule),即所有节点都默认最长的那条链是唯一合法的链。 以太坊为了提升交易处理速度(TPS)和用户体验,希望将出块时间缩短到几十秒的级别(最终在12-15秒左右)。如此短的出块时间带来了一些问题: * 高“孤块率”(High Orphan/Stale Block Rate):当一个矿工A挖出一个新区块并开始广播时,由于网络延迟,另一个矿工B可能在收到A的区块之前,也基于同一个父区块挖出了一个新区块。这时,网络中就同时存在了两个竞争的区块,产生了临时分叉。 * 在比特币的“最长链原则”下,最终只有一个分叉能胜出并被延长,另一个分叉上的区块就会被抛弃,成为**“孤块”(Orphan Block)**。 这种高孤块率会导致两个严重问题…

4.ETH-交易树和收据树

交易树(Transaction Trie) 交易树是为每一个区块单独构建的、一次性的数据结构,它的唯一目的就是存储该区块内包含的所有交易,并为它们生成一个唯一的、可验证的“指纹”。当一个验证者(Validator)要创建一个新区块时,它会为这个区块专门构建一棵交易树: 1. 收集数据:验证者从交易池中选择一批交易,并将它们按特定顺序(通常由验证者自己决定,以优化Gas费收益)排列好,形成一个列表。 2. 构建MPT:它会创建一个全新的、空的默克尔·帕特里夏·树,然后将这个交易列表存入其中。 * 键 (Key):不是交易哈希,也不是地址,而是这笔交易在这个列表中的索引(index),例如第0笔、第1笔、第2笔... 这个索引会经过RLP编码。 * 值 (Value):就是这笔交易本身的完整数据(包含了nonce, to, value, gasLimit, data等所有字段),同样经过RLP编码。 3. 生成根哈希:当所有交易都插入到这棵树中后,…

3.ETH-状态树

以太坊的核心功能,就是维护一个从“地址 (Address)”到其对应“状态 (State)”的、持续更新的、全球共享的巨大映射(Mapping)关系。这个宏大的、在某一瞬间的完整映射,就被称为以太坊的世界状态 (World State)。而我们之前讨论的状态树(State Trie),正是实现这个映射的技术手段。 以太坊的地址和状态 以太坊地址是一个独一无二的标识符,它代表了网络上的一个“位置”或“目的地”。所有可以接收资产或信息的实体,都拥有一个地址。一个以太坊地址是一个以0x开头的、由40个十六进制字符(数字0-9和字母a-f)组成的字符串。 例如:0x742d35Cc6634C0532925a3b844Bc454e4438f44e实际上这个地址也是由一个公钥进行一定的哈希算法得到的。 而以太坊所述的状态,具体指账户的状态,根据上节所述的不同的账户,EOA与合约账户往往状态不太一样。 一个外部拥有账户的状态,主要由两项数据构成: * nonce: 一个计数器,记录了“这个地址已经发送过多少笔交易”。每成功发送一笔交易,nonce就加1。它的核心作用是防止交易重放。…

2.ETH-账户

BTC的交易结构不符合常识 比特币的账本不记录任何人的“账户余额”。它只记录一笔笔“未被花费的交易输出”,即 UTXO (Unspent Transaction Output)。这个账本记录有一些不符合我们日常常识的地方: * 没有“账户”这个概念:比特币协议层面没有“账户”。你的“余额”并不是一个存在某处的数字,而是你的钱包软件在背后默默地帮你扫描整个区块链,把你所有能花的“电子钞票”(UTXOs)加起来的总和。 * 花钱就像用现金,必须整张花掉:假设你的钱包里有一张价值5 BTC的UTXO(一张电子钞票),而你只想给朋友转1 BTC。 * 你不能从这张5 BTC的“钞票”上撕下1 BTC给朋友。 * 你必须把整张5 BTC的钞票都花掉。这笔交易会产生两个新的输出(两张新钞票): * 一张价值1 BTC的新钞票,支付给你的朋友。 * 一张价值4 BTC的新钞票(扣除手续费后略少于4 BTC),作为**“找零”**支付给你自己的一个新地址。…

1.ETH-概述

以太坊是一个开源、去中心化的全球计算平台。它不仅仅是一种像比特币那样的数字货币,更是一个强大的基础设施,允许任何人在其上构建和运行去中心化的应用程序。 以太坊于2015年由程序员维塔利克·布特林(Vitalik Buterin)等人推出,其核心愿景是创建一个超越比特币单一货币功能的、图灵完备的区块链平台。 核心组成部分 1. 以太币 (Ether, ETH) * 网络原生货币:ETH是以太坊生态系统的“血液”和官方货币。 * 价值载体:像比特币一样,ETH可以被用作价值存储、投资品或支付手段。 * 网络燃料 (Gas):在以太坊上执行任何操作,无论是转账还是运行复杂的应用程序,都需要消耗计算资源。用户必须支付ETH作为“Gas费”(燃料费),以补偿那些为网络提供计算能力和安全保障的验证者。 2. 智能合约 (Smart Contracts) * 核心创新:这是以太坊与比特币最根本的区别。智能合约是部署在以太坊区块链上的一段代码,它能根据预设的规则自动执行。 * 工作方式:一旦合约被部署,它就无法被篡改,并会严格按照代码逻辑执行,无需任…

10.BTC-匿名性

不牢固的匿名性 比特币的隐私模型更应该被准确地描述为 “假名性”(Pseudonymity),而非“匿名性”(Anonymity)。因为比特币交易是公开的,但你的真实身份是默认隐藏的。在比特币中,比特币地址就是“假名”。它是一串由字母和数字组成的字符串(例如 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa),用来接收和发送比特币。这个地址本身不包含姓名、身份证号或任何个人信息。 但是,比特币的所有交易都记录在一个公开、永久、不可篡改的公共账本上,这个账本就是区块链。 任何人都可以通过“区块浏览器”(Blockchain Explorer)这样的工具,查看任何一个比特币地址的所有历史交易记录——包括它接收过多少比特币、发送给了哪些地址、以及当前的余额。既然所有交易都公开可查,那么打破“假名”的关键就在于将一个比特币地址与一个现实世界的真实身份关联起来。一旦这个关联被建立,追踪者就可以“顺藤摸瓜”,通过分析交易记录,揭示出所有的金融活动。 实际上,BTC的匿名性被破坏有几个关键的时刻: 1. 与现实世界交互的时刻 这是最常见、最直接的隐私破坏点。当你把数…

9.BTC-分叉

分叉的本质,就是对整个比特币网络“宪法”(即共识规则)的修改。 共识规则是所有节点用来判断一笔交易或一个区块是否“合法”的黄金标准。例如,“一个区块的大小不能超过1MB”、“只有提供了正确的私钥签名才能花费比特币”等等,这些都是共识规则。当我们要改变这些规则时,就必须通过协议分叉来完成。协议分叉是比特币作为一个去中心化、开源项目进行演化、升级和修复的核心机制。它主要分为两种类型:软分叉和硬分叉。 硬分叉 (Hard Fork) 硬分叉是对协议规则的一次根本性改变,通常是放宽了限制或引入了全新的、与旧规则不兼容的逻辑。新规则产生的区块,在旧节点的眼中是完全非法、无效的。 核心特征: * 不向后兼容:旧节点会坚决拒绝新节点产生的区块。 * 导致永久分裂:如果社区未能就升级达成压倒性共识,网络将不可避免地分裂成两条独立的区块链。一条遵循旧规则(原链),一条遵循新规则(新链)。 * 需要所有人生态位升级:所有希望跟随新链的参与者(矿工、交易所、钱包服务商、用户)都必须升级他们的软件。 * 创造“分叉币”:链分裂后,一条新的加密货币随之诞生。…