区块链白皮书阅读笔记
比特币白皮书 Bitcoin: A Peer-to-Peer Electronic Cash System
使用P2P的信任网络来防止double spending问题.
交易
每个交易的过程都包含owner使用private key对上一交易和下一用户的public key进行签名操作,并确保owner有钱且不会被冒充

防止双花(double spending)问题
为每一笔交易分配一个时间戳,并将其发布至P2P网络。经由各方验证后确认此交易的发生情况犹如在报纸上刊登。同时通过分配时间戳并将其发布以验证此交易的发生情况,并由此形成一个链条用于反复验证和增强信任

对于 PoW 信任网络系统,在区块中不断递增Nonce字段(因为Nonce字段位于区块中本身),从而导致整个区块的 SHA-256 结果发生变化;只有当最终达到 SHA-256 结果中包含至少 d 个前导零的要求时才会被接受。该共识机制采用 one-CPU-one-vote 策略的主要原因是防止矿工通过多重身份认证绕过网络验证机制进行恶意行为;与 one-IP-one-vote 策略相比,则是因为后者容易受到 IP 地址被篡改导致的有效性验证失效的风险所不具有的优势

对于成功完成的人,也会给予比特币激励(incentive)
简化交易验证过程
若对每一笔交易都需遍历完整区块链以核查user资金状况,则这一流程所需时间将较为冗长.然而实际上用户仅需保留主区块链头部信息接着可利用该头部信息查找与UTXO相关的Merkle分支树其中可通过头信息推断的时间戳值作为搜索依据

以太坊白皮书 Ethereum Whitepaper
历史
作为状态转换系统的比特币
从技术学角度来看,比特币账本可被视为一个状态转换系统.该系统的"状态"定义为所有已被开采并尚未被消耗的所有比特币(在技术术语中被称为"未被支出的交易输出"或UTXO)组成的集合。转移行为即为Transaction

挖矿
Merkle Tree
其他的区块链应用
- Namecoins(domaincoins),基于区块链的分布式身份认证系统.该系统采用哈希算法实现唯一标识,确保每个域名拥有独一无二的数字资产记录。
- Colorcoins(彩色币)是一种基于比特币区块链构建属于自身的代币平台.该平台允许用户生成具有不同视觉特征的虚拟货币并进行交易。
- Metacoins是一种基于主链开发独立于主链的新共识机制框架,并将元代币的所有交易记录映射到主链区块中以实现可追溯性。
脚本
比特币脚本存在一些重要的局限性:
- 不具有图灵完整性
- 展现出价值中立性(Value-neutrality)
基于UTXO模型的脚本无法为账户提取额度提供精确的调控机制.
- 仅局限于二元状态
该模型仅允许两种状态:已处理或未处理的状态.未留下任何中间状态可供多阶段合约使用.
- 缺乏对区块链数据的访问能力
例如交易随机数以及上一个区块哈希等关键信息被 UTXO 脚本所忽视.这种缺失限制了脚本语言基于随机性的潜在应用价值
以太坊
以太坊旨在整合基于脚本的开发框架、竞争币机制以及链上元协议(on-chain meta-protocol)概念,并通过这种方式提升性能与效率。从而让开发者能构建任意共识机制下的可扩展性增强的应用方案。
以太坊账户
以太坊系统中的状态主要由称为‘账户’的对象构成(每个账户拥有唯一的一个20字节地址),并伴随在两个账户之间转移价值与信息的变化。具体来说,则包含以下四个组成部分。
- 计数器用于控制每笔交易只能被处理一次
- 当前账户持有的以太币数量
- 如果该账户配置了合约,则为其分配唯一标识
- 该账户的数据字段初始化为空
通常情况下,在以太坊中存在两类账户:一类是全部由私钥控制的外部账户;另一类则是由合约代码直接控制的合约账户。
通常情况下,在以太坊中存在两类账户:一类是全部由私钥控制的外部账户;另一类则是由合约代码直接控制的合约账户。其中外部的所有账户和合同地址均属于此类别
消息和交易
与比特币交易存在某些相似之处但它们之间存在着三个关键的区别首先消息能够通过外部实体或智能合约生成而仅限于外部账户参与交易其次可选性地包含数据内容最后当接收方为合约账户时系统会自动触发响应机制从而实现功能集成
代码执行
以太坊合约采用底层堆栈架构的字节码编写,并以其名称称为'以太坊虚拟机代码'或'EVM代码'。操作允许获取三种存储空间。
- 堆栈是一种先进后出的数据存储结构,在支持容量为32字节的数据时可实现依次入栈操作。
- 内存则被定义为一种可无限扩展的字节队列结构。
- 在合约中设置长期存储时应考虑以下特点:其中秘钥和数值均为32字节大小,并且其区别在于一旦计算终止就会重置堆栈及内存结构而不会影响长期存储的内容。这种设计确保了合同中的条件在执行完毕后仍然有效,并且其数据将永久保存下来。
EVM代码的正式执行模型让人感到意外地简单。
在以太坊虚拟机运行时,系统采用元组的形式来完整描述其计算状态:(block_state*, transaction*, message*, code*, memory*, stack*, pc*, gas)。
这里block_state*表示所有账户余额和存储的整体状态。

尽管存在一些差异,在多个方面类似于比特币区块链。它们的区块链架构的不同之处在于,以太坊区块不仅包含了交易记录与最新状态,并且还包括区块编号与难度值。
尽管存在一些差异,在多个方面类似于比特币区块链。它们的区块链架构的不同之处在于,以太坊区块不仅包含了交易记录与最新状态,并且还包括区块编号与难度值。
应用
通常而言,在以太坊的扩展生态中存在着三种主要的应用类型:其一是金融应用领域则为用户提供了一套更为完善的财务管理和参与智能合约的机制;其二是半金融应用涉及存在金钱因素的同时也伴随着非金钱属性的情况;其三是完全不依赖于金钱的应用如在线投票和去中心化治理这类完全不依赖于金钱的应用。这些应用场景涵盖了从传统金融到去中心化的新型服务模式。
EOS.IO 技术白皮书
EOS.IO软件实现了新型区块链架构设计,该架构采用了一个类似于操作系统的核心组件,即仿系统支撑层,从而能够实现从水平与垂直方向上的扩展能力。该软件支持创建包含账户系统、身份认证机制、分布式数据库、异步通信网络以及跨数百个CPU核心或集群的应用程序调度功能,基于此开发的技术能够实现每秒处理数百万笔交易的能力,同时完全消除用户支付交易费用的需求,并能快速而便捷地部署独立运行的去中心化应用。
区块链应用的要求
具有广泛的应用基础
- 免费使用:零成本
- 支持便捷的升级操作以及快速的故障排除
- 低时延:极低的传输延迟
- 时序性能:时间序列处理能力
- 并发性:多线程处理能力
共识算法(DPOS)
EOS.IO软件通过独特且高效的去中心化共识机制满足区块链底层应用性能需求。该软件采用委托股权证明(Delegated Proof of Stake, DPOS)技术实现这一目标。EOS.IO软件通过精确的时间间隔管理机制,在每3秒内生成一个数据块,并确保仅由一名经过授权的生产者负责生成下一个数据块。若未能按时产生,则该区块将被忽略。当系统检测到连续未产生超过一定时间后(每隔至少6秒),就会触发一次监控机制以恢复正常运行流程。
EOS.IO 软件中的区块由 21 名独特的生产者轮流生成。 每一轮开始时会筛选出 21 名独一无二的区块生成器,在这一轮之外将被排除掉获得最高票数的前 20 名。 最后剩下的一个参与者则按照得票比例确定最后一个参与者的身份。 被选中的生成器将利用块确认的时间作为伪随机数来重新排列顺序。 这种重新排列是为了确保所有参与者之间能够均匀地连接起来以促进网络的整体稳定性与安全性
账户
EOS.IO软件支持所有账户采用独特的、易于理解的名字进行索引,并且这些名字长度为两个到三十二个字符不等。每个名字都由账户创建者自主决定。
EOS.IO 软件赋予每个账户独立的消息接收和存储功能。 每个账户不仅能够接收并分析来自其他账户的消息内容,并且可以通过编写程序或设置规则的方式传递信息。 通过这种方式, EOS.IO 实现了对所有交易行为的高度自动化监控与管理,从而确保网络的安全性和稳定性。
应用程序的确定性并行执行
Minimize communication latency. Latency represents the time interval from when a message is sent by one account to when it is received and acknowledged by another account. Our objective is to consolidate the messaging exchange between two accounts within a single block, avoiding the 3-second wait required for each message. EOS.IO divides each block into loops, with each loop further partitioned into threads that encapsulate lists of transactions. Each transaction encompasses a collection of messages to be dispatched. This architecture can be intuitively represented as a tree structure, where parallel interactions are executed sequentially at different levels.
区块
循环 (顺序)
线程 (并行)
交易 (顺序)
消息 (顺序)
接受者和被通知帐户 (并行)
Token 模型与资源使用
带宽和计算有两部分,瞬时使用和长期使用.
区块生产者对外发布她们可分配的带宽、计算能力和状态信息。 EOS.IO 支持帐户按照比例使用3天对赌合约中的可用资源。举例来说,如果一个基于 EOS.IO 的区块链系统启动运行,某个账户持有该网络发行总量1%的代币,那么该账户就具备使用1%状态存储空间的能力。
接收方付费
不强制服务使用者付费,而将付费转移到了接收方.
区块链学术 Sok: Exploring Research Frontiers and Addressing Current Issues within the Context of Bitcoin and Cryptocurrencies
比特币的三大技术:
Each transaction consists of multiple inputs and outputs. It utilizes a cryptographic algorithm to sign ("pay-to-pub-key-hash") and verify the signature.
- 同意与挖掘
为了避免过多分支的影响, 该协议旨在保证最长链能够在短时间内实现广播. 在节点相互连接的过程中, 每个节点会有8条出线接口, 同时能接收最多125条入线连接.
比特币的稳定性:
针对交易系统的验证过程及其稳定性的研究仍有待进一步探讨。其中一种常用的算法是由中本村提出的canonism。
- 共识算法的稳定性
客户端的安全性:
- 优化交易验证(SPV)的安全性。
- 密钥管理方案包括以下几点:
a. 本地存储并独立完成密钥的生成与更新。
b. 采用加密技术保护钱包数据。
c. 离线完成敏感操作以确保数据完整性。
d. 防止他人访问或操作以维护系统安全。
比特币更新:
软分支( Soft branches ), 硬分支( Hard branches ), 中继策略升级(Relay policy update)
- 替代币
新的创世区块,Forking比特币等
其他共识算法:
参数调节
- 区块间隔时间(若间隔时间过短,则会产生大量冗余区块;若间隔时间过长,则会导致交易无法及时得到验证),大小设置、货币政策
采用虚拟币挖矿与基于 Proof-of-Stake(PoS)机制的方式相比传统加密货币采用 Proof-of-Work 模式,在安全性上具有显著优势:相比传统加密货币采用 Proof-of-Work 模式,在安全性上具有显著优势:相比传统加密货币采用 Proof-of-Work 模式,在安全性上具有显著优势;相比传统加密货币采用 Proof-of-Work 模式,在安全性上具有显著优势
通过指定一系列权威机构来开展验证工作,在这些权威机构中完成相关任务后,则共识达成的时间将大大缩短。
匿名和隐私:
未细看
扩展比特币功能:
- 使用比特币去中介化(Desintermediation)
原子性,抵押,可审性
将比特币作为数据存储的基础。确保时间戳的安全性,并可发展出自定义货币和金融工具(Colored Coins)。通过建立全新的交易语法实现区块链上记录其他数据的功能。
- 扩展比特币交易方式
