区块链
一、区块链的基本流程
任何机器都可以运行一个完整的比特币节点,一个完整的比特币节点包括如下功能:
1.钱包,允许用户在区块链网络上进行交易
2.完整区块链,记录了所有交易历史,通过特殊的结构保证历史交易的安全性,并且用来验证新交易的合法性
3.矿工,通过记录交易及解密数学题来生成新区块,如果成功可以赚取奖励
4.路由功能,把其它节点传送过来的交易数据等信息再传送给更多的节点
二、区块链技术创新的发展方向
1. 从上面的流程图片我们可以分开来看
1-2 是交易的部分,我们可以将此部分进行扩展,比如:
-
从一方转移价值到另一方
-
一方或几方需要匿名
-
价值必须存储在合约本身,并且存储一段时间
-
希望避免转移真实货币产生的交易费用
-
需要建立共识
-
希望显示公开性,把状态存储在公共域
-
需要确保物理或虚拟材料的来源和真实性
马上想到的应用有:拍卖,借贷,遗嘱,注册,众筹,股权,和投票。智能合约就是再发展。
2.确认验证
3部分是交易的确认验证部分-区块链共识算法,比特币使用的工作量证明俗称挖矿,在此基础上进行扩展,还有其他一些验证机制,双花、分叉等问题的解决方案
3.区块链的结构
4-5部分主要是数据链的组成-比如 Merkle Tree,双链等机制。
三、代码的简单实现
对于研发人员来说,要透彻理解这些最简单的就是看代码研究明白或者自己写一遍。很幸运有前人这样做了。我们可以站在巨人的肩膀上。我也是从别人那里fork了一份。java版本的模拟比特币的源码