比特币-原理
可以把区块链想象成比特币网络的数据库
• 这个数据库以文件形式存放在互联网的各个比特币节点上,每个节点都有一份完整的备份。
• 这个数据库记录着自比特币诞生以来的所有比特币转账交易。
• 这个数据库是一块一块存储的,每一块包含一部分交易记录。
• 当要发起一笔比特币交易的时候只需要把交易信息广播到网络中,矿工把交易信息记录成一个新的区块连接到原来区块链上,交易就完成了。
比特币不能作为货币应用于经济:因为比特币总量只有2100万,螺旋式通缩最后会导致经济逐步停滞
比特币特性
• 独立性:密码学安全
• 不可重复花费
• 匿名性
• 不可伪造性
• 可传递性
• 可分性
比特币≠区块链
区块链技术是比特币诞生之后,从比特币中提取出其中的技术体系架构(去中心化),称之为“区块链技术”,并且在这之后不断的发展完善
区块内容
区块头:区块编号、上一区块HASH值、本区块HASH值、挖矿随机数、挖矿难度、时间戳
区块内部数据:交易信息1、2、…、n
区块链技术特征
• 去中心化:没有中心服务器,所有结点权限对等、数据公开透明,数据分布式,高冗余存储
• 用户匿名:基于非对称加密技术,公钥作为用户名,私钥作为密码,数字签名技术提供用户交易的密码学证据,因此不需提供实名认证
• 数据透明:系统是开放的,区块链的数据对所有人公开,任何人都可以通过公开的接口查询区块链数据和开发相关应用,因此整个系统信息高度透明
• 不可篡改:一旦信息经过验证并添加至区块链,就会永久存储起来,单个节点上对区块链的修改是无效的,因此区块链的数据稳定性和可靠性极高。
• 集体维护:所有当前参与的节点共同维护交易及区块链,交易基于密码学原理而不基于信任,使得任何达成一致的双方,能够直接进行支付交易,不需第三方的参与
区块链技术分类
公有链:全世界任何人都可读取的、任何人都能发送交易且交易能获得有效确认的、任何人都能参与其中共识过程的区块链。
联盟链:共识机制受到预选节点控制的区块链。如30个金融机构组成的共同体,每个机构都运行着一个节点,而且为了使每个区块生效需要获得其中20个机构的确认。
私有链:写入权限仪控制在一个组织手里,而读取权限对外开放的程度完全由该组织控制的区块链。
联盟链和公有链属于不同特色的两种区块链,他们的特点也受制于蒙代尔三角,即去中心化和高效不可兼得。
区块链基础技术架构
• 应用层(智能合约层):实现转账和记账,EVM,执行代码等功能
主要由客户端完成对账户的记账和转账功能
• 激励层:发行机制、分配机制
发行机制、激励机制:以比特币为例,所有的比特币均通过奖励给那些创建新区块的矿工的方式产生,该奖励大约每四年减半。刚开始比特币系统每10分钟产生一个新区块,每个区块奖励25个比特币给矿工,这是货而发行的方式。
另一个激励的来源则是交易费,所有交易都需要支付手续费给记录区块的矿工,如果某笔交易的交易费不足,那么矿工将拒绝执行。
• 共识层:PoW(挖矿,算力证明)、PoS(权益证明)、DPOS(授权股权证明)、PBFT等
拜占庭将军问题:区块链通过发送信息时加入成本,常用的方法是通过挖矿运算的“工作量证明(Proof of Work)” ,保证在一个时间只有解出算法答案的那个将军有权利可以进行广播,从而解决了这个问题。
“双花”问题:区块链为每一笔交易加入了时间戳,精确到毫秒,矿工每隔一定时间才生成一个区块,在这个时间内的所有交易都按照时间进行排序并验证,验证通过后才能写入区块。
• 网络层:P2P网络、传播机制、验证机制
P2P网络又称点对点技术(point to point),其特点是没有中心服务器,依赖用户群体交换信息的一种网络架构体系。基于所有节点都是对等的,那么即使部分节点网络状态不好或者遭到破坏,对于整个网络影响不大。
• 数据层:区块数据、链式结构、数字签名、哈希函数、Merkle tree、非对称加密
钱包地址:通过大随机数生成私钥,然后私钥通过加密算法生成对应的公钥,接着公钥通过BASE可逆算法生成钱包地址。(钱包地址也可以算出公钥)
区块链矿工工作内容
1、不断接收来自全网广播的交易信息,验证这些交易信息,排除掉不合理的交易。
2、PoW过程:通过不断计算挖矿的随机数nonce,一直得到符合难度的随机数。
3、将交易信息打包成区块,并广播给全网。
4、全网中所有节点验证该区块。
5、对分叉进行判断,如果没有问题,选择“最长有效链”,最后打包上链,完成挖矿。
区块链技术发展史
• 区块链1.0:电子货币、去中心化交易
• 区块链2.0:智能合约、数字资产、去中心化在各行业应用
• 区块链3.0:~~
智能合约
加粗样式智能合约是由事件驱动的、具有状态的、获得多方承认的,运行在一个可信、共享的区块链账本之上的,且能够根据预设条件自动处理账本上资产的程序。说白了就是一个可以运行在分布式账本上的程序,当满足合约上的条件时,自动触发动作。
智能合约的优势是利用程序算法替代人仲裁和执行合同。
智能合约特点
• 数据透明
• 不可篡改
• 永久运行
后续待补充…