区块链 与 数据的分布式处理

王有天

演讲人

先后就读于北大、清华、华科学习管理、信息、系统。曾在国企、外企、民企从事管理、信息、系统工作。现在湖北经济学院管理信息系统专业任教,零空信息系统产业化发起人,梦想包括筹办(分布式?)开源组织维护倡导一套知识代码化体系。

内容提要

  1. 区块链及其关联技术:
    • 加密、
    • 分布式文件版本管理;
    • 虚拟货币
  2. 区块链的应用:
    • 智慧城市中的一些值得关注的支持技术
    • 智能合约、在智慧城市中的应用展望(智慧交通、停车);
  1. 演讲人目前有关区块链的研究进展:
    • 分布式备份系统及其保密举措
    • 分布式网站控件技术(含文档和幻灯片制作示例)
    • 分布式知识库建设等。

区块链技术简介

一切还要从 区块 说起

数据的最小单位是比特。

为了处理的效率,计算机处理的最小单位是字节(8个比特) 。

为了进一步提高效率,把很多字节作为一个整体处理:区块(Block)。比如:

  1. 文件系统中的文件Blob
    • 其实每个文件还分成不同的块
  2. 加密中的区块
  3. 版本控制系统中的快照

区块串

文件内容的存盘

在中心化的系统(比如文件系统、内存管理)中,用区块串就够了。

去中心化

扩展到分布式系统里不适用:

  • 由于没有中央服务器提供验证服务,怎么防止冒充、篡改、缺失?

区块链

还是串,但是用散列(杂凑,Hash)值 来串

通过Hash标记块而串联

多个区块链复合在一起的情况

区块 (无环连通)图

在分布式环境中,区块链解决了区块不能篡改。但是会冒出新问题: 多个区块链该选择哪一个?

解决方案1:自行决定

各个网络节点自行决定,责任自行承担

  1. 比如Git,网上有很多分叉,用户自己决定用哪个
  2. 为此,有网站提供各个分叉的评级服务
  3. 再次表明分布式在微观层面仍是中心化的。
    • 分布式系统只是中心化边界到哪的问题

解决方案2:多数原则

比如比特币,矿工不断延长链; 最长的链 票数最多

这里的问题是,如果一个矿工计算资源多,能够延长的比其它所有人都快怎么办?

  1. 人为制造工作量(proof of work)来确保公平 (减速带)。
  2. 不可能在所有的时间欺骗所有的人:过一会(等几个区块)再看谁最长

赌任何一个人不能控制半数以上

  • 没有作弊一说,多数即正义。

中心化、去中心化?

注意区块链技术不应看成对中央集成系统的否定

  • 相反,区块链技术是建立在中央集成系统这一基石之上;
    • 毕竟,参与区块链的每台计算机的内存、硬盘都是被计算机集中控制着的。
  • 但是,当很多计算机形成网络时,中央集成系统的边界扩充到管不过来时,则要考虑分布式管理
    • 没有中心的情况下如何管理或者应该把整个网络看成虚拟中心而自治

这好比经济运行时,宏观市场经济并不否定微观层面的企业内部靠行政命令运行。

 

小结:区块链的哲学

正确 === 整体/每个个体( 而不是中心 ) 的一种机制。

判断正误、获取数据来源不是服务器,也不是某一台电脑,而是整个网络。

当网络延展超过中心化边界时,可以采用分布式;但微观层面仍是中心化,所以不是中心化的否定,而是两个位面结合使用。

区块链相关技术

保密上的应用

哈希函数用于保密

分布式和集成式都能做到:可以不获取内容,只获取Hash值。从而互相引用,又能保密。

验证密码不需要存储加密内容,只需要存哈希值,从而密码不能逆向解密。

加密

AES,发布于1998, 标准化于2001

代码演示: nilnul._crypt_._TEST_.cript_.symmetric_.aes.onFile.UnitTest1

这是一个链

区块链相关技术-加密

注意AES密码不需要和密文存储在一起。但是,

  • 如果要验证密码正误,也可以把密码散列化后 与密文存储在一起;
  • 进一步的,可以更改散列算法(需标记散列算法在密文中)。

为了加强加密,可考虑 在 使用公开验证过的加密前后采用机构内部批准使用的私有加密。

区块链相关技术-版本管理

版本 快照 链

Git 诞生于 2005.4.7

是区链图(多个链交织)

每个快照(commit)可以理解为一个区块,包含有前置版本(可能有多个,称为合并)的Hash。

每个分支相当于区块链。

可以有多个分支,这就是我们这里定义的区链图。容纳多个分支的叫做库。

每个用户可以把分支推送到网上(或者本地另一个位置),也可以把自己选定的分支下载下来。然后通过合并、提交新版本增长其中的链,推送拉取,如此反复。

以哪个链为准?

  • 完全由用户自己选择
  • 为了协助用户选择,有辅助机制:服务器提供用户验证管理和评价功能。
    • 再一次的,中心化技术和分布式技术配合。

虚拟货币

区块链相关技术-虚拟货币

在区链族的基础上附加了额外的机制(相对而言,分布式版本管理git不需要考虑这些)。

虚拟的人:中本聪提出了比特币。是目前虚拟货币的一种。

目标:去中心化。因此,完全匿名,像中本聪一样。

  • 2009.1.3,起始区块产生。

以哪个链为准?-最长链获胜

比别人短6个(大约一个小时足够让局势明朗化完成共识)的链后来居上的概率非常小,因为

  • 大家都在热捧最长的。
  • 至少收款人有动力、也有能力 来 跟随最长链(在最长链后面追加)。

因此,区块链中的交易要想成立必须:

  1. 在最长链中
  2. 后面要跟至少5块

区块结构

区块结构

Nonce: 矿工要找的一个数,使得区块的hash值小于目标值

首条交易是给矿工的奖励。

给矿工的工作定额(Proof Of Work)

要向网络增加区块,矿工必须解决一个问题:

  • 寻找一个随机数nonce,跟区块其它内容合起来,然后使得散列值小于网络给定的值Target。由于散列函数不可逆向工程且随机,因此只能猜。显然Target越大猜对的概率越大,用时越少。因此Target可用于调解猜对的时间,一般定为10分钟。

目的:增加造假成本,使得造假不合算,但造真仍合算(大家概率差不多,说不定有奖励)。

原理:这是因为只能有一条链被接受(成本最高的),一条链上的每个区块是唯一的;避免了利用并行计算力同时造假多个区块(但仍可并行找随机数)。只能串行。给予矿工的奖励也按单个资源划得来而核定。

  • 计算资源越多,获取的概率越大。理论上仍有可能一个人控制操作半数以上的计算资源。

Demo: nilnul._crypt_._TEST_._this.hash_.sha_.twoFivSix.le

目标值的限定

target定为10分钟左右,每2016块(大概两周时间)后,每个客户端将调整Target。

  • 注意,每个客户端自行调整,但调整的不对会导致自己挖的矿被其它客户端拒绝;再一次民主集中制发挥作用--每个客户端都倾向于中心值。

把proofOfWork问题分解为多个小问题,将会降低方差。

虚拟货币-区块

实时区块链浏览

区块链相关技术-虚拟货币-地址

公私钥对中公钥被Hash后就是地址。一个人可以有许多个地址

区块包含的交易

金额的来源:以前的交易分录的Hash,数字签名和发送者的公钥(验证此人有无权限花这笔钱)。

金额送给谁:地址

超出的部分作为矿工打赏。目前多为0.

区块链相关技术-虚拟货币-交易

区块包含的交易浏览

交易_.采矿补贴

最初是50个比特币。每过210000块后,补贴减半。目前是12.5个。

为什么是210000?因为创始人设定减半周期大概4年。

而target设定使得10分钟一个区块,

6块/时  * 24时/天 * 365 天/年 *  4年/周期  = 210,240块每周期;取整。

 

总值上限

最开始的210000块 是 每个区块 产生50个比特币。下一个产生25个比特币,再下一个产生12.5个比特币,以此类推。

(50+25+12.5+... )*210 000= 21 000 000

不过由于比特币可以无限细分,因此能够保证足够流通。

矿工挖矿补贴没有,但可以挣交易费。

遗失

如果丢掉了私钥,也就丢失了地址所有权,对应的比特币也丢失了。

人们估计无主比特币占20%。

如果私钥被盗,则对应的比特币也会被控制或转走。人们估计大约有百万比特币被窃。

评论

漏洞:

  • 在收款人确认收款后,付款人再次把该比特币付给自己的另一个地址(每个人可以有无穷多个地址),然后利用自己的计算资源把这区块所在链变成最长。
  • 这是一个在研问题:https://en.bitcoin.it/wiki/Research
  • 这一漏洞并不造成双重支付因而不会摧毁整个机制,只是收款人被骗了。

匿名:

  • 匿名但是可完全追踪地址;从这个意义上讲,比特币可能是当今最公开透明的付款方式。

网络攻击?和其它网络一样会遭到攻击,也需要像其它网络一样防范。

价值?依赖外部而定。外部接受度高,就上涨。

参考:

科普

维基

实时交易

应用

基于区块链的身份验证

大家都在关注研究。

笔者随意试搜下有 研究文献:

  1. 北京邮电大学.顾燕. 基于区块链的身份认证系统的设计与实现 [硕士论文].2018.3
  2. 董贵山.陈宇翔.张兆雷等. 基于区块链的身份管理认证研究[J].《计算机科学》2018.11
  3. ...

好处:笔者初步认为很大,与传统的中心化验证突出特点是保持隐私,避免过多隐私散落在不同企业、App

智慧合约

技术基础

智能合约的技术复杂度小于虚拟货币 ,但有不同于虚拟货币的地方。

用到公钥体系,区块链技术(用到Hash)。但还需要身份验证,需要法律配合。

智慧合约好处多多

降低成本,提高效率:

  1. 财务有形成本更低
    • 降低公章及其保有成本
    • 降低纸张使用和打印成本
    • 降低人力成本
  2. 更快捷
    • 分布式办公
    • 出差旅行仍可审批
  3. 更安全
    • 避免当当抢公章
    • 避免被假章欺诈,降低验证成本
    • 避免档案丢失
  4. 更利于审计(从宏观层面更有利于监管)
  5. 更健康。可减少接触,尤其在防疫期间

智慧交通

智慧交通使得 自动驾驶更容易, 并将不止于自动驾驶而做更多更多的事

路的信息化

  1. 路车通讯
    1. 红绿灯对车来说多余,交通管理称为多余 ,标志标线费用
    2. 自动驾驶更容易,更健壮,驾驶位腾出
    3. 速度更快,调度效率更高
  2. 人路通讯
    1. 实时查看路线情况。人流(意愿)也会反馈给路(双向)
  3. 人车通讯

车的成本将降低、利用率提高

  1. 驾驶设备不需要(倒车雷达、指示灯、方向盘、踏板)
  2. 驾驶方式更环保
  3. 事故率降低

中心化+分布式

分布式必将应用,因为:

  • 更健壮,能够抵御不能实时联网的情况
  • 降低计算复杂度必须。

中心化也扮演作用。

智慧城市

区块链的应用:

远程办公-->智慧合约

电子证照

智慧交通

智慧停车

智慧医疗

...

智慧家居 -- 从家庭小范围走向更大范围 --> 智慧城市

智慧城市构成

作者从事的有关工作

致力于信息系统的研究和开发

技术团队成员由来自高校的专业教研人员和开发工程师组成;他们很多人致力于终身从事信 息系统的研发,以为人民生产和生活提供最新科技的支持,改善人民生活品质,提高工作效率和效果。

技术团队数十年来已积累 了大量和成体系的信息系统科学、技术、应用成果;并持续将这些成果应用转化服务社会。

与研究所、高校渊源深远,合作研发和进行产学研转化,把实践问题带到研究中,再把研究成果应用到实践

目前所取得的成果或进展

对分布式应用提供支持或与分布式有关的技术积累

基础及核心代码算法库

支持各项应用。

比如无限精度的实数计算。

  • 有科学和教育(通过阅读编写运行代码来深刻严格的理解定义)意义

文件系统类库

零空文件系统库 对 文件系统的操作进行了梳理,使其更符合人们的思维习惯,操作更简便,能够支持文件系统的管理需要。其特点包括:

  1. 能够按照事先设定规则解析文件名字(比如将括号内的内容识别为注释,将路径自动转换为库名从而支持后续的版本管理等)
  2. 能够采用SymLink和HardLink对文件进行软链接和硬链接(与快捷方式不同,这里的链接对用户应用来讲与普通文件无区别),从而允许在多个目录放置同一个文件,而不用担心占用空间和内容不一致的问题。
    1. 甄别链接,避免遍历时的循环
  3. 能够查找重复文件并以上述的链接代替。
  4. 支持基于正则以及更复杂逻辑的查找
  5. 能够调用压缩程序对指文件进行压缩。
  6. 可以对文件自动加密

分布式、支持版本控制、多人协同

零空团队基于Git进行了二次开发,能够

  1. 对文件自动进行版本控制。一个文件的历史版本得以保留
  2. 支持自动合并多人修改(有不能自动解决的,用户可以手动修改指定某一版本)
  3. 支持分布式存储,文档能够存储在多个电脑、存储设备上,并可以各自独立并行工作,需要时进行合并
    1. 因此数据不丢失更安全、随时工作更简便

分布式网页控件技术

每个控件 包含 结构内容( HTML ) + 格式样式 (CSS)+ 行为 (JS)。由各个网站提供。

网站开发者:从服务器 或者客户端抓取这些控件,合成自己的控件。

  • 最终合成网页

通过缓存可以提高访问速度。

分布式控件的好处

提供控件,相当于不仅提供数据,也不仅提供操作的函数,还提供了界面;控件可以自行和后台的服务器通讯。

控件化意味着开发者只需要负责把自己的控件弄好,使用者不用再操心细节;使得众多网站可以广泛、多层次合作,各展其长。

  • 降低了网页复杂度。
  • 便于分控件逐层次测试,从而减少错误。

能够自动升级

支持各种应用到网页,减少各种手机应用下载。

应用:我们已经使用在自己网站建设中。可替代目前的一些网页框架。

文档渲染系统

零空团队提供一整套方案支持论文等知识标书文章的呈现。这种呈现全部采用W3支持的国际标准和公开技术,无需依赖私有软件。

  1. 该方案采用MathML呈现数学公式,可以在支持的浏览器中美丽呈现。我们提供有相应的VisualStudio工具栏按钮,用户只需拖放,即可编辑常用公式;此外用户也可以自定义或定制控件。
    1. 对于一个单位而言,有些公式常重复使用,此时只需做一次控件,可以减轻知识工作者负担,并减少错误发生的可能。
  2. 采用SVG呈现插图时,本系统也提供各种模板和控件,支持用户定制控件。
  3.  支持自动编号。用户编辑时,无需给给各级标题分级编号,本系统会按照用户定制或缺省要求编号。
  4. 支持插图、公式、代码块、表格的交叉引用。以插图为例,系统自动对插图编号;而引用文字无论在插图前后的,都可以正确插入编号,并生成超链接指向插图。
  5. 可以支持参考文献。其中参考文献可以采用我司的文献数据库格式。 我们已经应用本系统编纂过大小篇幅的文档(如本文——请在较新版的浏览器如FireFox中查看),包括长篇的、科技性极强的投标书和技术方案。

建立一套分布式知识共建体系

维护一套分布式开源知识库共建标准,例如:

  • 建立给动物、植物、人员建立目录,用分布式的库人人都可参与。而且当库容量过大时,提供分成子库的机制(包括标准和工具支持如合并检索)

提供一套工具管理和检索。

形成分布式的社区:开发者、维护者、使用者;筹建非盈利组织维护。

相对于维基百科等更方便、可编程、分布式(意味着用户可以有私有库,并可和公有库一起使用),让散落的五花八门的信息能够有个结晶整合的去处。

法律问题:标准是公开的。公开库里的资源必须是公开的、版权允许的;但用户可以有自己的私有库。

更多详情

产业化网站-产品与服务 

谢谢收看!





让知识有力!