特点:公开、透明,解决交易中信任问题,通过技术推动社会交易成本的降低。
采用新的清算方式, 使用流水账记录。
1. 区块链的六层结构
- 数据层
数据区块, 链式结构, 时间戳, 非对称加密, 哈希函数, Merkle树。- 网络层
P2P网络, 传播机制, 验证机制- 共识层
PoW, PoS, DPoS- 激励层
发行机制, 分配机制- 合约层
脚本代码, 算法机制, 智能合约- 应用层
可编程货币, 可编程金融, 可编程社会
从1 —-》6 由底而上
各层之间相互配合, 实现一个去中心化的信用机制。
2. 区块链技术概念
- 通俗说: 分布式记账; 形成 公开,透明,不可篡改、不可伪造的数据库.
- 区块链技术的本质是一种互联网协议。
只有当所有网络节点(或大部分节点)进行区块确认后, 该笔交易才算真正结束。
区块链技术在没有中央控制点的分布式对等网络下,使用分布式集体运作的方法,构建了一个P2P的自组织网络。通过复杂的校验机制,区块链数据库能够保持完整性、连续性和一致性,即使部分参与人作假也无法改变区块链的完整性,更无法篡改区块链中的数据。核心技术1:区块+链 = 时间戳.
- 核心技术2:分布式结构——开源的、去中心化的协议.
- 5.1 分布式记账、分布式传播、分布式存储这三大技术: 实现该系统的”不可被控”.
- 核心技术3:非对称加密算法
- 核心技术4:脚本. 增加区块链技术的可拓展性, 会使系统有机会去处理一些无法预见到的交易模式,保证了这一技术在未来的应用中不会过时,增加了技术的实用性。
- 总结:
- 1 区块链是一种分布式的不可篡改的数据库;
- 2 该数据库由按时间顺序的区块组成;
- 3 区块由一段时间内的网络交易信息组成;
- 4 该数据库的特点是: 分布式, 所有者共同维护;
3. 共识机制
POW : 工作量证明 (第一种)
- 比特币的共识机制(POW): 工作量证明机制. (以太坊前三个阶段也采用该机制);
- 工作证明: 设立一个奖励,要想得到就得付出代价,付出代价的方式是解题(比特币是SHA-256,以太坊是SHA-3),谁先解出来,奖励就归谁,一旦计算出来后,要告诉大家,大家会帮你验证,大家都承认后你就可以拿到这个奖励,然后基于这道题目继续算下一个题目,如此反复;
- 因为每一个区块链都是基于前一个区块链产生的,如果有攻击者要修改之前的记录,从那之后每一个区块链都要重新付出劳动,POW机制通过控制区块的平均生成时间,降低攻击者试图赶上随后区块的概率;
- 大家帮忙验证其实是一个集体投票的结果,大多数人决定了最长那条链,因为那条链中包含最多的工作量证明,并且投票是基于计算力(CPU),有计算力才有投票权;
- POW机制解决了拜占庭将军问题 : 即在 互相不信任 的情况下,只要 好人的数量大于坏人,就保证系统的正确运转(符合大多数的意愿),让系统具备一定的 容错性,这也就是大家所说的:区块链具备去信任的能力;
POS : Proof of Stake,权益证明 (第二种)
- 权益证明 : 主要思想是节点记账权的获得难度 与 节点持有的权益成反比, 相对于PoW,一定程度 减少 了数学运算带来的资源消耗,性能也得到了相应的提升,但 依然是基于哈希运算竞争获取记账权的方式;
POW 和 POS 共识机制的不同之处在于:
- 1 POW 在于对各节点计算出来的结果进行共识;
- 2 POS 在于对选择哪个节点进行记账进行共识;
- 3 所以不同之处在于: 一个是进行记账结果的共识, 一个是进行选择谁进行记账的共识;(以上属于自己的理解)
4. 区块链基础 (散列法hashing)
- 在区块链中,散列是作为区块、交易和地址的标识符。
- 一个散列函数(hash function),即取任何的输入,就可以产出一个特定大小的输出。
- 散列算法 与 压缩算法的区别:
- 简单地解释下这两者之间的区别,N兆视频数据, 散列法总是会产生相同数量的灯泡,而压缩一部N兆(MB)视频的结果,仍然会产生数以百万计灯泡的一个输出。一个压缩过的视频,可被解压缩然后获得原始的视频。而当一个视频被散列到仅仅只有256个灯泡时,从这个散列来重新构建原始视频的可能性就很小了.
- 一个安全的加密散列函数,它的一个关键特征就是,它是单向的。这意味着,从数学和计算机学角度上来看讲,从输出来反推输入,这几乎是不可能的。术语为: 逆原像阻力.
- 安全的散列函数,即使输入仅相差一个bit,也会产生显著不同的输出。
- 如: passwd1 与 passwd2 分别计算散列, 确保产生的输出显著不同; 否则, 如果图案相似, 那对方就可以推断出输入也是类似的.
- 加密散列函数也应该是抗碰撞的。 一个碰撞过程,意指当一个散列函数为超过1个输入进行运算,而产出相同输出的结果。如果用散列法运算数据1(可能是一份电子表格),而用散列法运算数据2(可能是一张图片),这两者产生了相同的输出,那么这个碰撞冲突就发生了。
- 散列还享有安全与隐私的优势。
- 例如: 一首歌是以数字格式被记录的,并且这首歌的散列是被记录在区块链之上的,那任何他人都无法声称是他们是第一个创造了这首歌,并生成了这个散列,他们也不会知道歌曲本身:某人不能写歌,也没法篡改这个散列。同样地,除非歌曲或其他数字化财产或数据被表明了,展示在区块链上的仅仅是散列本身而已。 所有权记录也可以存储在区块链上,举个简单的例子,车辆登记处可以将汽车数据散列(照片,VIN, 车牌)存储在区块链上,只有车辆所有者,保险公司以及政府会知道这个车辆的实际细节。
>8.
function withdrawBalance() {
amountToWithdraw = userBalances[msg.sender];
if(amountToWithdraw > 0){
if(!(msg.sender.call.value(amountToWithdraw)())) { throw; }
userBalances[msg.sender] = 0;
}
}
五. 比特币挖矿
1. 实质是 : 不断重复计算随机字符串的哈希值(一种字符串变换运算), 并检查结果是否满足特定的需求.
2. 流程上, 是这样实现的:
* 1 网络内节点收集有效但还未验证的交易;
* 2 这些交易以时间先后顺序 被放入到区块(block)中;
* 3 各个节点纷纷加入, 试图解决工作量问题(及上述的哈希运算);
* 4 节点这种行为被称为挖矿(Mining);
六. 区块链的去中心化共识系统的关键:
* 1. 去中心化共识系统的窍门在于:它们怎样保证每个参与者(完全节点)有一个账本的副本,并使每个人确信自己的账本与别人的账本是同步的。
*
七. 智能合约
- 智能合约的本质:
* 1. 一个可以自动执行的计算机程序;
* 2. 一个系统的参与者(以太坊中每个合约都有自己的账户地址 )
* 3. 可以对接收到的信息进行回应, 可以接收和储存价值, 也可以向外发送信息和价值.
* 4. 像一个可以信任的人, 按照事先约定的规则执行操作;
- 运行环境:
* 它是运行在 可复制, 共享的账本上的计算机程序.可以处理信息, 接收,储存和发送价值;
八. 以太坊:
- 以太坊借鉴了比特币的 区块链技术, 对它的应用范围进行了拓展.
* 1. 例如比特币是利用区块链技术的专用计算器(因为智能合约支持不完善);
* 2. 以太坊就是利用区块链技术的通用计算机.( 以太坊 = 区块链 + 智能合约)
本文来自, 多篇博客的阅读集合…