一、 核心概念
1. 交易
分布式账本的参与者发生交易,导致账本状态的改变。
2. 区块(Block):
区块是区块链中的基本单位,包含了一批已验证的交易数据。每个区块都有自己的唯一标识符和时间戳,并包含对前一个区块的引用,形成一个连续的链条
区块= 【块头】+【块体】
- 块头:头哈希(当前页哈希)+父哈希(上一页账单哈希),前一区块的交易信息压缩
- 主体:记录前一区块结束到该区块创建前所有交易信息
3. 区块链(Blockchain):
区块链是一个被设计用来记录和验证交易的分布式账本系统。它由多个区块组成,每个区块包含一批已验证的交易,并通过哈希链接在一起形成一个不可篡改的链式结构。区块按照时间顺序串联,账本状态变化的精确日志记录,最新区块代表账本的最新状态
4. 共识算法(Consensus Algorithm):
共识算法是区块链网络中用于选择哪个节点可以创建新的区块,并决定交易的顺序的机制。常见的共识算法包括工作量证明(Proof of Work,PoW)和权益证明(Proof of Stake,PoS)等。
5. 哈希(Hash):
哈希是将任意长度的数据转换为固定长度字符串的算法。在区块链中,哈希算法被广泛应用于保证数据的完整性和安全性。
6. 去中心化(Decentralization):
区块链的去中心化意味着没有一个中心权威机构控制整个系统。相反,权力和决策分散在网络的各个节点之间,增加了系统的抗攻击性和可信度。
7. 智能合约(Smart Contract):
智能合约是一种以数字形式编写的自动执行合约。它们是基于区块链技术的程序代码,可以定义和执行特定条件下的交易和操作。
8. 加密货币(Cryptocurrency):
加密货币是基于密码学技术构建的数字资产,在区块链上进行交易和传输。比特币(Bitcoin)是第一个成功的加密货币,其他常见的加密货币包括以太坊(Ethereum)和莱特币(Litecoin)等。
二、 账户体系
1. 公钥/私钥
公钥 : 区块链世界里的账号 私钥 : 区块链世界里的密码
区块链体系:随机生成私钥,通过数学加密曲线(椭圆加密曲线函数)生成公钥,公钥与私钥存在数学关系,可以直接验证,外界知道你的公钥时,是无法反算出私钥。相当于通过一种密码学的方式来实现了私钥和公钥之间的映射,而不是传统体系中来吧这种人为给定的映射关系来存在数据库中来实现这种映射
2. 交易过程
交易发出过程== A: 发送交易单 B: 以A 的公钥验证签名
挖矿:竞争记账权
记账者(监听新的区块/监听交易广播/组装备选区块/找到一个有效的随机数/希望区块被全网接受获得工作报酬)
3. 哈希函数谜题
用工作量竞争记账权
- (上一个区块哈希值+记录的交易+随机数)取哈希
- 结果要满足一个很难达到的限制条件
- 因此需要不断尝试随机数,第一个尝试成功的人拥有记账权
4. 怎样才能被记账者接受(区块奖励):
- 验证上个区块哈希值
- 验证交易余额(签名是否存在/余额是否足够,交易是否合法)
- 验证本页的哈希值是否有效
三、UTXO模型
1、 UTXO模型
- Unspent Transaction Output 未花费的交易输出
- 关键点:重点记录"交易" 而非"余额"
- 传统账户交易:只看余额,加减账户的余额数字
- 基于UTXO 的交易:只记录交易过程,下一笔交易的输入必须是之前交易的输出
2、分叉与最长链原则
- 分叉的区块链代表了两个不同的交易账本,一个账本中A 转钱给了B,一个账本中A转给了C
- 少数服从多数,更多记账者认可的账本,就是公认的账本
- 更多记账者在认可的区块后面跟随记账,经过一段时间后该链的长度就会明显长于另一条,大家认可最长链的记账
- 在比特币中,大家一般等待6个区块来确认一笔交易得到最终确认
3、 优点
- 高度可扩展:UTXO模型具有高度的可扩展性,因为每个交易输出都可以独立验证和处理,而无需查看整个账本状态。这样可以提高系统的吞吐量和性能。
- 数据隔离:UTXO模型将每个交易输出视为独立单元,使得在验证和处理交易时不会相互影响。这种数据隔离性能够提高系统的安全性和可靠性。
- 更好的隐私保护:由于UTXO模型中的交易输出(UTXOs)可以被分割、组合和重组,这使得在交易过程中更难追踪和关联特定地址的交易记录,从而提供了更好的隐私保护。
4、缺点
- 存储开销:UTXO模型需要保存每个未使用的交易输出。随着区块链的增长,UTXO集合也会增加,导致存储需求不断增加。这可能会增加节点的存储成本和同步时间。
- 复杂性:相对于账户模型,UTXO模型更加复杂。在UTXO模型中,需要追踪和处理每个交易输出的状态和所有权,这可能对开发者和用户造成一定的学习和操作成本。
- 有限的智能合约功能:相比基于账户模型的区块链,UTXO模型对智能合约的支持相对有限。在UTXO模型中,实现更复杂的智能合约需要进行额外的编程和设计。
四、区块链的读写权限
1、 公共区块链(Public blockchains)
任何人都可以读取,可发送交易且交易能获得有效确认,任何人都能 参与共识过程 采取工作量证明机制或者权益证明机制等方式,将经济奖励和加密数字验证结合起来
2、 联盟区块链(Consortium blockchains)
共识过程(数据写入)受到预选节点控制,或许允许每个人都可读取
例如,一个有15个金融机构组成的共同体,每个机构都运行着一个节点,而且为了使每个区块生效需要获得其中10个机制的确认(2/3确认)
3、 完全私有区块链(Fully private blockchains)
写入权限仅在一个组织手里,读写权限或者对外开放,或者被任意程度的进行了限制。
数据库管理、审计,甚至一个公司
五、区块链的骨骼与灵魂
1、 【骨骼】-加密算法
- 非对称加密算法(私钥、公钥)
- 一对两把密钥,分别用于加密、解密(公开、私有)
- RSA 算法:大整数分解;ECC算法:椭圆曲线
- 破解228 比特的RSA密钥需要的能量可煮沸一茶匙的水,而破解228比特的ECC密钥需要的能量能煮沸地球上所有的水
- 哈希函数(梅克尔树、区块指针、比特币挖矿)
- 任意长度消息压缩成固定长度的二进制串
- SHA家族(SHA-1 已被攻破,SHA-256 比特币,SHA-384, SHA-512)
- MD4/MD5(已被攻破)
2、【灵魂】- 共识机制
什么是共识?
- 对某事达成的共同看法
- 分布式的记账者群体对账本记录的交易达成一致
- 分布式的数据库节点对记录的数据达成一致,具备相同的状态
3、 分布式系统的一致性问题
3.1 三种安全模型
- 非拜占庭容错模型(没有攻击者,节点安全可靠) 错误丢失、重复、延时 服务器宕机、通信协议不可靠
- 拜占庭容错模型(攻击者,节点互不可信) 非拜占庭容错 攻击者篡改消息内容
- 经济模型(拜占庭+具备经济实力攻击者) 购买大量资源试图发动攻击 贿赂其他节点发动合谋攻击
3.2 两个定理:FLP 和CAP 3.2.1 FLP: 在网络可靠、存在节点失效的最小化异步模型系统中,不存在一个可以解决一致性问题的确定性算法 节点失效、异步分布式系统,无法完全一致
3.2.2 CAP: 一致性、可用性、分区容错性,三者不可兼得 【一致性】: 所有节点访问同一份最新的数据副本 【可用性】:每次请求都能获取到非错的响应、 【分区容错性】:因为网络故障导致的系统分区不影响系统正常运行
分布式系统共识机制 拜占庭容错-适用于分布式账本(区块链)
4、 比特币类共识机制的特点:
1.【随机性】 随机选择将军/记账者,提高作恶者成本(连续作恶/大比例作恶) 随机数不可被预测、不可被操控
2.【抗女巫攻击】 抗击刷小号来提高被选中概率的作恶手法 增加门槛:计算力(工作量证明)、资源(权益证明)
3.【激励机制】 奖励诚实的参与者 包括对不诚实的作恶者的反激励机制
六、 区块链2.0:以太坊
1、什么是以太坊?
以太坊是一种用于在不受中心化监管机构管控的环境下构建应用程序和组织、持有资产、进行交易和通信的技术。使用以太坊时无需提供任何个人详细信息,用户控制自己的数据以及共享内容。以太坊有自己的加密货币 — 以太币,用以支付在以太坊网络上进行特定活动的费用。

以太坊路线
- 建立在区块链技术上的去中心化应用平台
- 区块链2.0 的代表
1.0 非图灵完备:只能执行有限类型指令 2.0 图灵完备
1.0不支持智能合约 2.0支持只能合约
1.0 定位于支付网络 2.0 定位于平台,可实现各种应用

以太坊目标
2、 什么是图灵完备?
图灵完备(Turing complete)是指一种计算系统或编程语言的能力,即能够模拟图灵机(Turing machine)。图灵机是由英国数学家阿兰·图灵提出的一种理论计算模型,被视为通用计算模型的基础。
一个系统或语言被称为图灵完备,意味着它具备了执行任何可以通过算法描述的计算任务的能力。换句话说,通过适当的算法和程序设计,图灵完备系统能够处理和计算任何可行的问题。
一个语言或系统是否是图灵完备的,取决于它是否具备以下几个关键元素:
- 指令集:它必须提供足够多的基本指令,以便可以进行各种计算操作,如加法、乘法、逻辑运算等。
- 控制流:它必须支持条件语句(如if-else)和循环结构(如for循环、while循环),以便能够进行分支和重复操作。
- 存储机制:它必须具备足够的内部状态或存储空间,以便保存计算过程中的数据和中间结果。
如果一个系统或语言具备上述特征,那么它就被认为是图灵完备的。图灵完备性是计算理论中的一个重要概念,它使得我们能够用一种统一的方式来讨论计算问题和编程语言的能力。
3、 以太坊虚拟机(Ethereum Virtual Machine,EVM)
EVM指的是以太坊虚拟机(Ethereum Virtual Machine)。它是基于栈和堆的虚拟机,这个栈堆是在节点上运行的,不是运行主机。
3.1 执行环境: EVM是一个沙箱执行环境,意味着代码在隔离的容器中运行,不会对主网络或其他合约产生影响。这提供了安全性和可靠性,确保合约在预期的环境中执行。
3.2 指令集: EVM使用基于堆栈的指令集来执行智能合约。指令集包含各种操作符,如数学运算、逻辑运算、存储、读取等,使得智能合约能够执行各种功能和计算。
3.3Gas 概念: 以太坊中引入了 Gas 的概念来衡量智能合约的执行成本。每个指令和操作都消耗一定数量的 Gas,合约的执行费用由消耗的 Gas 数量决定。这有助于限制合约的计算复杂度和防止恶意行为。
3.4 状态转换: EVM通过状态转换模型来改变合约和账户的状态。当智能合约执行时,它可以修改自己的内部状态,还可以与其他合约进行交互或修改账户状态。这些状态变化会被记录在区块链上。
3.5 跨合约调用: EVM允许智能合约与其他合约进行交互,即跨合约调用。通过调用其他合约的函数,合约可以获取外部数据、执行其他合约的逻辑等。
3.6 字节码和编译器: 以太坊智能合约使用一种称为字节码的低级编程语言编写。开发者将高级语言(如Solidity)编写的合约代码编译成字节码,然后在EVM上执行。
4、共识机制
4.1 Pow共识机制 工作量证明(Proof of Work,PoW)。开始以太坊也采用了Pow共识机制,靠工作证明来进行验证挖矿,简单来说你机器的运算能力越强工作的越多,越容易挖。基本原理是,你的节点经过大量的运算,来计算区块链给你出的一个数学问题,大家抢着做答,谁先答对就有奖励(不考虑叔块等其他奖励),所以大家都尽可能提高自己的算力,来提高运算能力,提高产出率。总结Pow是需要大量运算能力来进行的挖矿,是极大消耗能源的。
4.2 Pos共识机制 权益证明(Proof of Stake,PoS)。现在ETH采用的是权益证明,与Pow最大的不同是他不要大量的运算能力即可参与挖矿。它只需要通过质押ETH代币的方式来参与挖矿,影响选举参与者(奖励者)通过质押权重来计算,也就是质押的越多则越容易挖,和Pow中算力类似。运行过程:只需要在电脑上安装相对应的软件,通过质押,即可参与挖矿。
5、 智能合约:机器式的契约信任
5.1 智能合约是什么? 一种基于区块链技术的自动化合约。它是一段以编程方式定义的、具有自动执行能力的计算机代码,旨在管理、验证或执行合约中设定的条款和条件。
- 非智能合约的交互:A和B 达成交易,需要第三方协助执行条款,并且第三方来为交易进行信用背书
- 使用智能合约的交互:
- 协议被全网记录,不需要第三方协助,无人可以违背合约,无人可以伪造合约;
- 开发者可以开发任何应用,实现智能合约。以太坊提供平台支持智能合约的应用和部署
5.2 智能合约具有以下特点:
- 自动执行:智能合约在特定条件满足时会自动执行代码逻辑,无需第三方介入或信任。
- 不可更改性:一旦智能合约被创建并部署到区块链上,它的代码和规则将不能被篡改,确保了合约的安全性和可靠性。
- 去中心化:智能合约通过区块链网络上的多个节点来验证和执行,没有单一的中心化机构控制,提供了更高的透明度和防止单点故障的能力。
- 透明和可验证:区块链上的智能合约可以被所有参与者查看和审计,保证了其透明性和可验证性。
智能合约可以应用于各种场景,例如金融交易、供应链管理、去中心化应用(DApp)的开发等。它们可以实现自动化的交易和业务逻辑,减少人为干预和中介机构,提高效率和安全性。然而,需要注意的是,智能合约的执行结果完全依赖于其在区块链上的编程代码,因此安全审计和正确性非常重要。由于智能合约执行后不可更改,一旦存在漏洞或错误,可能会对系统造成不可逆的损失。

智能合约
6、DApp(去中心化应用)
6.1 DApp(去中心化应用)是什么? DApp(去中心化应用)是基于区块链技术和智能合约构建的应用程序。DApp 的特点是具有去中心化的架构、开放的协议和透明的操作。智能合约是DApp的核心组成部分。它是一段以编程方式定义的、自动执行的计算机代码,用于管理和执行DApp中的业务逻辑和交易规则。智能合约通过区块链网络上的节点来验证和执行,确保安全性和可靠性。
6.2 DApp特点:
- 去中心化:DApp不依赖于单一的中心化机构或服务器,而是由多个节点共同验证和执行,确保系统的安全性和抗攻击性。
- 透明度:所有的交易和操作都被记录在区块链上,并可以被公开查看,确保了系统的透明性和可验证性。
- 开放性:DApp通常基于开放的协议和标准,允许第三方开发者构建和扩展应用程序生态系统。
- 用户控制:用户对自己的数据和资产有更大的控制权,无需信任中介机构。
智能合约为DApp提供了执行逻辑和交易规则的能力。DApp可以利用智能合约实现各种功能,如数字货币交易、电子投票、去中心化的身份验证、游戏逻辑等。智能合约的代码被部署到区块链上后,具有不可更改性,确保了DApp的安全性和可靠性。
7、 发币(Token Issuance)和ICO(Initial Coin Offering)
- 发币(Token Issuance):指创建并发布一种新的加密货币代币或数字资产,将其引入到区块链网络中。发币通常涉及选择适当的区块链平台,并使用智能合约创建和分发代币。代币可以具有不同的功能和用途,例如数字货币、代表股权或资产所有权、用于访问特定服务或平台等。
- ICO(Initial Coin Offering):是一种集资模式,通过发售新代币来筹集资金以支持项目的发展。ICO类似于传统市场中的首次公开募股(IPO),但是区块链领域的ICO更加开放、去中心化和全球化。在ICO中,项目方会发行自己的代币,并向公众出售这些代币,以获得项目开发和运营所需的资金。
ICO的过程通常如下:
- 项目方公布白皮书,详细介绍项目的愿景、技术、应用场景等。
- 确定募集资金的目标和代币的发行总量。
- 开展预售(Pre-sale)和公开销售(Public Sale)阶段,向投资者出售代币。
- 投资者购买代币并获得相应的权益或使用权。
- 募集到的资金用于项目的开发、推广和运营。
8、以太币ETH的作用
Ether(ETH)以太币是以太坊用来构建和维护其网络运行的加密货币。它的工作方式与比特币类似,矿工通过创建区块和解决难题来创建ETH,这种行为被称为"挖矿"。
大约每隔15秒,以太坊区块链就会增加一个新区块,解决区块核心难题的矿工将获得ETH奖励。以太坊目前使用与比特币相同的工作量证明(PoW)挖矿技术,但它计划被称为"以太坊2.0"的升级中转向一种称为持有量证明(PoS)的技术
作用:
- 以太坊上 用于支付交易手续费和运算服务的介质
- 交易手续费:同比特币等电子现金系统,记账者奖励
- 运算服务费:支付费用来运算智能合约或者其他以太坊上的程序
- ICO 众筹中最常见的募资款项
- 加密货币交易市场中的主流交易对