区块链学习<一> 核心技术概览
定义与原理
区块链最早出现应用在比特币项目中,作为比特币背后的分布式记账平台。
- transaction:一次对账本的操作,导致账本状态的改变;
- block:记录着一段时间内交易状态和结果;
- chain:由block按照发生顺序连接而成,相当于账本的日志记录;
假设存在一个分布式的记账本,这个账本只允许添加,不允许删除。而这个账本的底层数据结构是由一个线性链表组成的,其中每个元素即block。后续block的加入要加入前一个block的信息,并必须得到共识机制来选择。
任何结点都可以提一个区块。
特点
基于区块链的分布式账本应具备以下特点:
- 维护一条不断增长的链,只能添加,禁止删除;
- 去中心化,避免集中控制,达成共识过程采用分布式的做法;
- 基于密码学的特性来避免交易被破坏;
分布式共识
其实这个。。。我也不大懂,大概意思就是怎样确保某个transaction能在分布式网络中得到一致的、同步的执行结果,而且这个执行结果被多方确认,同时这个执行结果是一旦确定就无法被推翻的。
目前学术界和工业界大概确定了两类算法思想:
- 基于概率的算法;
- 确定性算法;
性能
区块链衡量性能的指标主要以transactions per second即tps为主,区块链系统不能通过单纯增加结点来进行扩展,很大程度上取决于单个节点的处理能力,因为当节点数过多时,可能会因为一致性的达成过程所需时间过长而降低全网的性能。