码迷,mamicode.com
首页 > 其他好文 > 详细

FinTech-Blockchain区块链

时间:2016-07-08 10:30:31      阅读:311      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

最近有同事研究Blockchain, 作为曾今在投行打拼过的人事,好吧,投行IT,更加适合来研究介绍新一代的黑科技FinTech-Blockchain,区块链, 另外其实区块链与最近研究的分布式存储息息相关,正好趁热打铁。


总目录

  • BitCoin比特币
  • 创始人-中本聪
  • 区块链-Blockchain
  • 核心算法
  • 技术架构
  • 交易过程-程序/数学
  • R3 CEV 
  • 总结

1. BitCoin比特币

提到BlockChain不得不先提及比特币, 其实比特币的核心就是区块链技术。BitCoin比特币最初由中本聪2009年提出,并发布开源软件。之后构建于其开源软件并 + P2P网络,逐步形成了P2P形式数字货币。点对点的传输意味着去中心化的支付系统,说的有点技术化。

总体来说Bitcoin作为一种网络虚拟货币,Bitcoin的发行、流通和管理权不属于某一个人、组织、公司或者国家。比特币发行依据特定算法,通过大量的计算产生,比特币使用整个P2P网络中众多节点构成的分布式存储/分布式数据库确认并记录所有的交易行为,并使用密码学的设计来确保货币流通各个环节安全性。同时P2P的去中心化特性与算法本身可以确保无法通过大量制造比特币来人为操控币值,造成大量的通涨,而这一点也为其后与很多央行正面冲突埋下伏笔。

2. 创始人

提到其创始人中本聪,这个名字是化名。据可靠推测,中本聪是京都大学数学系教授望月新一。

技术分享

其貌不扬,1969年出生于东京,16岁进入美国普林斯顿,3年后研究生师从著名德国数学家,23岁获得数学博士学位, 可见成名要早。

当然目前并无100%确凿证据说其为创始人,但种种迹象推测有很大可能是这位数学博士。尽管也有人质疑,如一个数学家开发出分布式网络,以及提出具有颠覆性质的虚拟货币,包括掌握高深密码学知识等等,我们不做贸然猜测。

3. 区块链Blockchain

让我们来引出区块链Blockchain, 比特币的核心就是区块链技术。简单来说,区块链是通过一套严谨的加密算法演变而来,通过复杂的公钥和私钥设置,区块链网络将整个金融网络中所有的交易数据/账本分布到每个客户端并打包成一个区块链,在连续6个区块链确认后交易基本确认,当然最终确认的话只有交易被网络中超过51%的客户端纪录后,才算交易成功。够分布够安全,当然还能保证每个人只能对自己财产进行修改,据说各位数学大牛甚者可以通过神秘公式证明其安全性,我们知难而退,呵呵。

技术分享

上图为Citi的研究报告,我们也简单说一下区块链的特点:

区块链特点:

1. 去中心化: 正如比特币以及上图描述的金融系统特征,区块链正引导金融体系从中心化转向去中心化金融体系,没有中介,所有节点的权利与义务都等同,任一节点失效不影响整体运作。

2. 去信任:基于分布式数据库以及整个体系的运作公开透明化,系统中所有节点之间无需信任也可以交易,换句话说,在系统的规则和时间范围内,节点间无法欺骗。

3. 集体维护: 系统是由其中所有具有维护功能的节点共同维护。

4. 可靠数据库:系统中每一个节点都用于最新的完整数据库拷贝,修改单个节点的数据库无效,系统会自动比较,最多出现次数的相同数据被识别为真记录。

越写越像分布式系统介绍啊,CAP等。来个例子吧:

技术分享

上图来自高盛研究报告,可以看出上图以6个保留数据库副本的节点举例,在第三个交易Transaction的位置5节点没有被验证通过(假设被恶意修改),但按照我们上边提到结论4,此例中节点5将被其他节点覆盖更改。

4. 算法原理

上面简单提到了区块链的交易,进一步来分析其本质及算法。比特币本质其实是一堆复杂算法所产生的特解,特解数学术语,即方程组能得到的无限个(当然比特币算法为有限个)解中的一组。而每一个特解都能解开方程并且唯一。呃,够抽象。不清楚的话,还是有请我的各位数学博士同学@林博士, @吴博士@杨博士指导吧。

举个个例子,以人民币来解释的话,比特币就是人民币序列号,你知道了这个钞票的序列号,就算拥有这张钞票。而挖矿的过程就是通过大量计算来求解这个方程组的特解,而这个方程组目前被设计成只有2100万个特解。这样举例是不是好懂一些?嗯,看到人民币你就懂了。

5. 技术架构

既然技术解析,让我们从其架构设计开始逐步深入。

技术分享

上图是Bitcoin的分布式交易网络,可以看出每个P2P节点包涵了一个区块链。

区块Block:

技术分享

一个区块是一些记录一些或者所有最新比特币(当然对于我们FinTech可以扩展为所有金融交易)交易信息的地方,数据以文件永久存储。我们可以简单认为一个区块是账本里面的一页,区块一旦添加,不能改变或者删除。

所以区块构成了整个一个公开共享的交易记录,所有已经确认的交易都被包含在块链中。其中,块链的完整性及时序性由加密算法保证。

技术分享

区块链Blockchain:

有了区块,很自然,按照双向链表形式链接起来就构成了区块链。

技术分享

每个区块都会保存上一个节点的hash值,这样保证顺序性,只有创始区块没有上一个节点。Block链全网唯一,每个节点都有备份replicaiton,区块链一旦有更新则全网广播通知。

挖矿Miner:

挖矿则是指将待确认交易数据归并包含到块链的过程,从而完成对交易的确认及分布式系统。挖矿可以同时保证强制块链中的数据按照时间顺序存储,并通过加密算法加密,以防止对已有块的修改。

用户账户:

如上图可以看出每个账户本质上包含了一对公钥,私钥。有私钥的人为账户所有人。

6 .  交易过程

技术分享

如A转账给B, A就把钱的数量加上B的公钥,再使用自己的私钥签名。整个签名包含了A所有人的私钥,以及上次交易信息T1, 转账目标B的公钥或称之地址,已经当前交易T2。当B看到这个签名,可以通过A的公钥结合签名确认A的身份。为了公正或者大家认可,交易在P2P分布式网络广播,最终当交易信息确认后,B就可以使用钱了,或者说交易正式完成。

其中值得提及的是数字签名包含了上一次交易信息T1, 其目的是要说明当前交易的货币来源。而签名则引入了著名的椭圆曲线数字签名算法(ECDSA)。

交易流程

总结来说,一笔交易区块链运作流程:

技术分享

1. 产生一笔交易

    一笔交易产生后,会被广播到区块链网络中的其他参与节点

2. 各节点将数笔新交易放进区块

    每个节点将数笔未验证的交易Hash值收集到区块中,每个区块可以包含数笔或上千笔交易

3. 决定由谁来验证这些交易

    各节点进行工作量证明的计算来决定谁可以验证交易,由最快算出结果的节点来验证交易,取得共识算法。

4.取得验证权的节点将区块广播给所有节点。

   最快完成POW的节点,会将自己的区块广播给其他节点

5. 各个节点验证并接上新的区块

    其他节点确认这个区块所含交易是否有效,确认没被重复话费且具有有效数位签章后,接受该区块,此时区块正式接入区块链,无法再被篡改。

6. 交易验证完成

    所有节点一旦接受该区块后,先前没算完POW工作的区块会失效,各节点会重新建立一个区块,继续下一回POW计算工作

程序流程

看到一段以程序员角度来描述整个交易过程的神逻辑,如下:

技术分享

发送转账付款流程:

1. 把一些有余额已确认的交易拿出来作为发送源

2. 根据目标地址生成支付交易

3.使用私钥对生成支付交易签名

4. 广播出去

清晰明了。

继续,再来看一下后续所谓的“挖矿”神逻辑:

技术分享

如我们所讲,挖矿实际上就是不断从比特网络获取所有未确认交易并进行计算特解的过程,所以是一个永远的循环while(true)

  1. 找到目前最长,难度最大的区块链,上文提到的全网唯一区块链。

  2. 产生一个随机数作为计算Block哈希散列的seed

  3. 从网络上获取尚未被确认的交易

  4. 把这些未确认交易打包成一个新的区块(临时区块),并挂载到刚获取的最长区块链

  5. 计算新的区块的散列值sha256(newBlock)

  6. 如果计算出的散列满足挖矿难度(即要求二进制散列值小于某个阀值,阀值越小其挖矿难度越大)则表明挖矿成功;

  7. 挖矿成功后进行网络广播,如果其他节点确认该区块后,交易正式被认可。

程序员的语言是不是看起来更亲切啊?

数学流程

有了上文的铺垫,我们再来看看数学家角度的挖矿:

技术分享

如何?数学家眼里只有方程式,方程式可以解释一切,包括E=MC^2 以及解释宇宙本身。

好吧,挖矿在数学家看来就是找到可以满足上边方程式的解 x, x要满足范围0 - 2^32。

version:block区块的版本

prev_hash:上一个区块的hash

merkle_root: 需要写入的交易记录hash数的值

ntime: 更新时间戳

nbits:当前难度

TARGET: Target目标是根据当前难度求出的

获取当前难度: http://blockexplorer.com/q/getdifficulty

下个预估难度:

所以,可以看出整个方程式,除了x,你还可以修改merkle_root, ntime来寻找解x。

7. 其他算法

上边我们把区块链核心之交易搞清楚了,但还有几个其他重要算法尚未提到,如比特币的产生,SHA256 等。

SHA256:

SHA256是一种求解Hash值的算法,属于密码学范畴,即将任何一串数据输入到SH256后其输出为一个256位的Hash散列值,相同的输入得到相同的结果。

但是输入只要有细微变化,则输出也是一个千差万别的结果,无法预测,或者术语雪崩效应。对于正向计算非常容易,但反向破解,有Hash值反算输入值极其困难,至少目前计算科技视作不可能。

比特币产生:

交易有点类似货币发行后的流通以及信用控制与认可,我们来简单看一下货币发行吧。

挖矿的过程,或者说创建新区块,以及确认交易的过程,其生成过程被认为是难以重现和 proof of work 的,而所谓其付出的回报,即比特币。注意,这个数量是动态调整递减的,按照目前速度几乎每四年自动减半,直至最后2100万左右耗尽。

8. R3 CEV

呃,差点忘了介绍R3 CEV组织了。R3 CEV - 分布式分类账联盟, R3公司是一家位于纽约的金融技术创业公司,专注于研究基于区块链的金融技术解决方案,已经建立了一个由40多家国际银行机构组成的团体,目标是建立一种定制的跨境区块链解决方案。R3联盟目前已经有华尔街金融大鳄纷纷加入,包括Citi,BOA,高盛GS,摩根JP,瑞银,大摩MS; 令人欣慰的还有中国的平安近期也宣布加入。当然作为技术服务金融,少不了技术大家,IBM, 微软等等。

总结

总体来说,区块链作为一种新兴金融技术,跨多领域,多技术,包括密码学、数学、演算法与经济模型,并结合了分布式,点对点网路关系,利用数学基础重建信任市场机制,成为一个自信任,去中心化的的分布式系统,而比特币便是第一个采用区块链技术而打造出的一套P2P电子现金系统。除此之外,各大金融机构各显神通,纳斯达克已经开始打造基于区块链的自动交易系统。相信未来诞生与比特币的区块链技术会大放异彩。


最后,上一段以前自己wechat发过的一段介绍,让大家脑洞继续:

技术分享

公众号:技术极客TechBooster

技术分享

FinTech-Blockchain区块链

标签:

原文地址:http://blog.csdn.net/erixhao/article/details/51854480

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!