区块链技术
2016-04-19 11:51
351 查看
区块链(blockchain) 技术是指利用去中心化和去信任的方式集体维护一个可靠分布式数据库的技术。
关键词:去中心化(Decentralized)、去信任(Trustless)、集体维护(Collectively maintain)、可靠数据库(Reliable Database)。
它是比特币的一个重要概念,任何发生在此比特币网络上的交易会被约定的算法记录到区块链上,且满足以下条件:
- 包含一个分布式数据库
- 分布式数据库是区块链的物理载体,区块链是交易的逻辑载体,所有核心节点都应包含该条区块链数据的全副本
- 区块链按时间序列化Block,且是整个网络交易数据的主体
- 区块链只对添加有效,对其他操作无效
- 基于非对称加密的公私钥验证
- 记账节点要求拜占庭将军问题可解/避免
- 共识过程(consensus progress)是演化稳定的,即面对一定量的不同节点的矛盾数据不会崩溃。
- 共识过程能够解决double-spending问题
1.存放在互联网的各个比特币节点上,每个节点都有一份完整的备份
2.里面记录着自比特币诞生以来的所有比特币转账交易
3.账本是分区块存储的,每一块包含一部分交易记录。每一个区块都会记录着前一区块的id,形成一个链状结构,因而称为区块链
4.当你要发起一笔比特币交易的时候只需把交易信息广播到p2p网络中,矿工把你的交易信息记录成一个新的区块连到区块链上,交易就完成了。
公开区块链(public blockchain)
例子:比特币,Ethereum Frontier。公开区块链上的数据所有人都可以访问,所有人都可以发出交易等待被写入区块链。共识过程的参与者(对应比特币中的矿工)通过密码学技术以及内建的经济激励维护数据库的安全。公开区块链是完全的分布式。
协作区块链(federated blockchain)
例子:Hyperledger以及德勤等会计所尝试的审计系统。参与区块链的节点是事先选择好的,节点间很可能是有很好的网络连接。这样的区块链上可以采用非工作量证明的其他共识算法,比如有100家金融机构之间建立了某个区块链,规定必须67个以上的机构同意才算达成共识。这样的区块链上的数据可以是公开的也可以是这些节点参与者内部。部分意义上的分布式。
私有区块链(private blockchain)
例子:Eris Industries。参与的节点只有用户自己,数据的访问和使用有严格的权限管理。近期部分金融机构公布的内部使用的区块链技术大都语焉不详,不过很可能都在这个范围内。
区块链技术的应用领域
1. 银行业
作为一种数字化,安全防干扰的帐户,区块链实现了银行业的核心功能:即价值的安全储存和转移中心。也就是说,在将来的几年内,一波基于区块链技术的公司或将影响到银行业。
2. 支付和转账
区块链技术能够避开繁杂的系统,在付款人和收款人之间创造更直接的付款流程,不管是境内转账还是跨境转账,这种方式都有着低价、迅速的特点,而且无需中间手续费。
3. 网络安全
虽然区块链的系统是公开的,但其核验、发送等数据交流过程却采用了先进的加密技术。这种技术不仅确保了数据的正确来源,也确保了数据在中间过程不被人拦截。如果区块链技术的应用更为广泛,那么其遭受黑客袭击的概率也可能会下降,因此人们认为区块链系统要比传统系统更为稳妥。区块链系统之所以能降低传统网络安全风险,一大原因就是它解除了对中间人的需求。
4. 选举
大家的投票“绝不可能被我们——即程序员,学校管理员或学生修改、删除。”
5. 智能合同
智能合同实际上是在另一个物体的行动上发挥功能的电脑程序。和普通电脑程序一样,智能合同也是一种“如果-然后”功能,但区块链技术实现了这些“合同”的自动填写,无需人工介入。这种合同最终可能会取代法律行业的核心业务,即在商业和民事领域起草和管理合同的业务。
6. 股票交易
许多年来,各个公司都在想方设法简化股票的购买、销售和交易过程,新兴的区块链技术创企认为他们能够超越以往,实现整个流程的自动化,提高安全性和效率。
区块链2.0 合约
区块链3.0 超越货币,经济和市场的公正应用、协作应用
关键词:去中心化(Decentralized)、去信任(Trustless)、集体维护(Collectively maintain)、可靠数据库(Reliable Database)。
0x01. 区块链技术介绍
区块链技术是维护一个不断增长的数据记录的分布式数据库,这些数据通过密码学的技术和之前被写入的所有数据关联,使得第三方甚至是节点的拥有者难以篡改。区块(block)包含有数据库中实际需要保存的数据,这些数据通过区块组织起来被写入数据库。也可以将其理解为账簿系统(ledger)。它是比特币的一个重要概念,任何发生在此比特币网络上的交易会被约定的算法记录到区块链上,且满足以下条件:
- 包含一个分布式数据库
- 分布式数据库是区块链的物理载体,区块链是交易的逻辑载体,所有核心节点都应包含该条区块链数据的全副本
- 区块链按时间序列化Block,且是整个网络交易数据的主体
- 区块链只对添加有效,对其他操作无效
- 基于非对称加密的公私钥验证
- 记账节点要求拜占庭将军问题可解/避免
- 共识过程(consensus progress)是演化稳定的,即面对一定量的不同节点的矛盾数据不会崩溃。
- 共识过程能够解决double-spending问题
0x02. 区块链技术原理
以比特币的区块链为例,你可以把区块链想象成一个比特币的公共账本,这个账本:1.存放在互联网的各个比特币节点上,每个节点都有一份完整的备份
2.里面记录着自比特币诞生以来的所有比特币转账交易
3.账本是分区块存储的,每一块包含一部分交易记录。每一个区块都会记录着前一区块的id,形成一个链状结构,因而称为区块链
4.当你要发起一笔比特币交易的时候只需把交易信息广播到p2p网络中,矿工把你的交易信息记录成一个新的区块连到区块链上,交易就完成了。
0x03. 区块链技术应用
目前区块链技术大致分为三类:公开区块链(public blockchain)
例子:比特币,Ethereum Frontier。公开区块链上的数据所有人都可以访问,所有人都可以发出交易等待被写入区块链。共识过程的参与者(对应比特币中的矿工)通过密码学技术以及内建的经济激励维护数据库的安全。公开区块链是完全的分布式。
协作区块链(federated blockchain)
例子:Hyperledger以及德勤等会计所尝试的审计系统。参与区块链的节点是事先选择好的,节点间很可能是有很好的网络连接。这样的区块链上可以采用非工作量证明的其他共识算法,比如有100家金融机构之间建立了某个区块链,规定必须67个以上的机构同意才算达成共识。这样的区块链上的数据可以是公开的也可以是这些节点参与者内部。部分意义上的分布式。
私有区块链(private blockchain)
例子:Eris Industries。参与的节点只有用户自己,数据的访问和使用有严格的权限管理。近期部分金融机构公布的内部使用的区块链技术大都语焉不详,不过很可能都在这个范围内。
区块链技术的应用领域
1. 银行业
作为一种数字化,安全防干扰的帐户,区块链实现了银行业的核心功能:即价值的安全储存和转移中心。也就是说,在将来的几年内,一波基于区块链技术的公司或将影响到银行业。
2. 支付和转账
区块链技术能够避开繁杂的系统,在付款人和收款人之间创造更直接的付款流程,不管是境内转账还是跨境转账,这种方式都有着低价、迅速的特点,而且无需中间手续费。
3. 网络安全
虽然区块链的系统是公开的,但其核验、发送等数据交流过程却采用了先进的加密技术。这种技术不仅确保了数据的正确来源,也确保了数据在中间过程不被人拦截。如果区块链技术的应用更为广泛,那么其遭受黑客袭击的概率也可能会下降,因此人们认为区块链系统要比传统系统更为稳妥。区块链系统之所以能降低传统网络安全风险,一大原因就是它解除了对中间人的需求。
4. 选举
大家的投票“绝不可能被我们——即程序员,学校管理员或学生修改、删除。”
5. 智能合同
智能合同实际上是在另一个物体的行动上发挥功能的电脑程序。和普通电脑程序一样,智能合同也是一种“如果-然后”功能,但区块链技术实现了这些“合同”的自动填写,无需人工介入。这种合同最终可能会取代法律行业的核心业务,即在商业和民事领域起草和管理合同的业务。
6. 股票交易
许多年来,各个公司都在想方设法简化股票的购买、销售和交易过程,新兴的区块链技术创企认为他们能够超越以往,实现整个流程的自动化,提高安全性和效率。
0x04. 区块链技术发展历史
区块链1.0 货币区块链2.0 合约
区块链3.0 超越货币,经济和市场的公正应用、协作应用
相关文章推荐
- 多线程学习05-线程状态
- CALayer的介绍
- java大数据学习笔记(二) 线程池与应用
- C++学习笔记十五 - C++的类
- hashCode与equals源码分析与应用
- mybatis重复扫描package的问题
- js 小数点前面的0不显示
- redo和undo的区别
- 笔记sql语句
- js,javascript四舍五入round
- 南京理工大学第八届程序设计大赛count_prime
- js下读取或者设置input中的value值
- 欢迎使用CSDN-markdown编辑器
- 快速向表中插入大量数据Oracle中append与Nologging
- php使用 ajax操作购物车
- JavaScript replace() 方法
- 什么是JSON
- 数据库设计规范
- ANgularjs练手篇——Server的调用
- VS快捷键