首页> 搜索结果页
"广州市dns服务器" 检索
共 5 条结果
shell脚本分析IP归属地
因最近需要对大量的accesslog进行IP归属地分析,一些网页上的分析效率太低,而且每次只能分析500个IP,根本满足不了我的需求,所以自己写了一个IP归属地分析脚本。 一、去下载纯真IP地址数据库     1)www.cz88.net --> 下载 --> 纯真IP地址数据库     2) 解压,打开IP.exe       点解压就可以获取到IP及归属地址的txt文本,保存为ip_zone.txt 二、 对ip_zone.txt进行改造并导入到数据库     1)先对ip_zone.txt进行编码转换             用记事本打开,然后选另存为,改成UTF-8   2) 因ip_zone.txt要导入数据库并且能准确的定位,改照是必不可少的             a) 将ip_zone.txt上传到linux服务器上             b) 将ip_zone.txt改照成我们需要 导入数据库的格式    点击(此处)折叠或打开 1.cat ip_zone.txt |sed 's/\./ /g'|awk '{printf "%03d%03d%03d%03d,%03d%03d%03d%03d,%s%s\n",$1,$2,$3,$4,$5,$6,$7,$8,$9,$10}' > a.txt 2.在linux下把a.txt转换成unix格式的,以防止出现^M符号。  linux# dos2unix a.txt 3) 修改my.cnf             安装数据库就不说了,修改my.cnf                         将max_connections修改为2000 4)创建数据库及表    点击(此处)折叠或打开 1.create database ip_zone; 2.                use ip_zone; 3.                CREATE TABLE `ip_zone` ( 4.  `id` int(10) unsigned NOT NULL AUTO_INCREMENT, 5.  `begin` varchar(255) NOT NULL, 6.  `end` varchar(255) NOT NULL, 7.  `zone` varchar(255) NOT NULL, 8.  UNIQUE KEY `id` (`id`), 9.  KEY `begin` (`begin`), 10.  KEY `end` (`end`) 11.) ENGINE=MyISAM AUTO_INCREMENT=381085 DEFAULT CHARSET=utf8; 5) 将txt文本load入数据库    点击(此处)折叠或打开 1.load data LOCAL infile '/root/a.txt' into table ip_zone fields terminated by ',' (begin,end,zone); 6) 测试一下IP归属是否成功8.8.8.8    点击(此处)折叠或打开 1.select zone from ip_zone where begin <= '008008008008' and end >= '008008008008'; 2.+------------------------------------------------------------+ 3.| zone | 4.+------------------------------------------------------------+ 5. |美国加利福尼亚州山景市谷歌公司DNS服务器 6.+------------------------------------------------------------+ 7.1 row in set (0.00 sec)   基本没有问题了 三、写个脚本调用数据库      点击(此处)折叠或打开 1.vim check_ip.sh 2.#!/bin/bash 3.#create by wenlin.kuang 2012-04-26 4.cat $1|sort|while read line 5.do 6.(b=`echo "$line"|sed 's/\./ /g'|awk '{printf("%03d%03d%03d%03d\n", $1,$2,$3,$4)}'` 7.echo "$line#`mysql -u用户名 -p密码 ip_zone -N -e "select zone from ip_zone where begin<='"$b"' and end>='"$b"'" `" >> $1_zone.txt )& 8.c=$(expr $c + 1) 9.       if [ "$c" -eq "500" ];then 10.                sleep 1 11.                c=0 12.        fi 13.done 四、测试脚本是否运行OK 随便输入些IP到一个test.txt文本里面,一行一个IP vim test.txt 8.8.8.8 202.96.128.86 61.144.56.100 202.96.134.133   sh check_ip.sh test.txt  会生成一个test.txt_zone.txt 内容如下 8.8.8.8#美国加利福尼亚州山景市谷歌公司DNS服务器 61.144.56.100#广东省广州市电信ADSL 202.96.134.133#广东省深圳市福田区电信 202.96.128.86#广东省广州市电信IDC机房 本文转自 vfast_chenxy 51CTO博客,原文链接:http://blog.51cto.com/chenxy/1170380,如需转载请自行联系原作者
文章
Shell · Linux · 数据库 · Perl · 网络协议 · 关系型数据库 · 数据安全/隐私保护 · MySQL · 开发工具 · Unix
2017-11-14
【广东唯一网络科技有限公司】- 招聘职位详情(社招)
广东唯一网络科技有限公司介绍 广东唯一网络科技有限公司(简称“唯一网络”)正式成立于2006年,是国内知名的云服务综合解决方案提供商。2018年4月通过中国证券监督管理委员会上市公司并购重组审核委员会审核,正式成为南兴装备股份有限公司(股票代码:002757)的全资子公司。 唯一网络总部位于东莞,并设立了深圳、厦门、北京、广州、上海五大分公司。目前唯一网络及旗下子公司共拥有软件著作权达90多项,申请发明专利7项,其“唯云公有云服务平台”和“唯一网络安全防护技术服务”产品均被认定为2019年广东省高新技术产品,并已通过信息系统安全等级保护备案证明(第三级)、ISO9001质量管理体系认证、ISO27001信息安全管理体系认证、ITSS运维能力成熟度认证,两化融合管理体系认证,先后获得了“国家高新技术企业”、“广东省守合同重信用企业”、”广东省创新发展示范企业“、“东莞市十大倍增标杆企业”等荣誉称号。 职位1: 业务助理 Base地点: 厦门岗位职责:1、处理客户日常业务咨询,收集客户问题,快速响应;2、跟进与客户的需求落地、合同签署、回款;3、业务数据、销售提成统计,协助分析;具体要求:工作年限:一年以上 学历: 本科以上 专业:管理类或统计类专业1、本科或以上学历,管理类或统计类专业优先;2、有大型企业工作经验优先,一年以上助理类或运营类工作经验;3、熟练办公软件操作及公式的应用,擅长EXCLE,WORD,PPT,必须具备数据分析及书面表达能力;4、善于沟通,具备良好逻辑思维能力和沟通协调能力;5、抗压性强,做事有自己的思考,懂得主动反馈并提供多种解决方案,执行能力强。 简历投递方式:1.简历通过邮件同时发送至stephanie.zhangx@alibaba-inc.com和zengl@wy.cn2.邮件命名方式:姓名-投递公司-投递岗位 招聘人数:1人;持阿里云认证优先 职位2: 产品运营 Base地点: 厦门岗位职责:1、负责产品市场推广,活动运营的规划,执行,协调内外部资源,确保产品运营目标的实现;2、负责合作伙伴的引入,维护,制定合作伙伴协作机制,确保合作顺畅;3、负责产品数据分析,监控核心数据指标,支持业务进展中的数据分析;4、行业调研、竞品分析,产品研发需求梳理。5、参与产品定价策略,制定产品运营规范。6、编写交流材料,配合销售部门完成与用户的技术交流、产品资料撰写、技术方案宣讲、应用系统演示等工作。具体要求:工作年限:三年以上 学历: 本科以上 专业:互联网及计算机类相关专业1、统招大学本科及以上学历,互联网及计算机类相关专业为佳;2、三年以上互联网行业工作经验或有参与IDC、云计算相关项目经验;3、出色的文档撰写能力,能够熟练使用各种工具描述业务需求及撰写产品文档;4、较强市场推广,活动运营策划能力,有开发者活动策划经验者优先;5、对数字敏感,有较强数据分析能力,了解AI产品效果评估工作方法与流程;6、具备良好的团队协作能力,对外沟通能力强,执行力强,逻辑思维能力强,工作积极主动;7、通过阿里云ACP或类似云计算认证的优先录取。其他要求:有IDC、云计算相关项目经验优先简历投递方式:1.简历通过邮件同时发送至stephanie.zhangx@alibaba-inc.com和zengl@wy.cn2.邮件命名方式:姓名-投递公司-投递岗位 招聘人数:1人;持阿里云认证优先 职位3:售前技术支持 Base地点: 厦门/北京/深圳/东莞/广州岗位职责:1、解决方案:负责整合集团公司内外部产品线,根据客户需求和自有能力制作适合各行业与客户类型的前期综合解决方案,为销售部门提供方案培训及售前支持;2、售前咨询:负责编写交流材料,配合销售部门完成与用户的技术交流、产品资料撰写、技术方案宣讲、应用系统演示等工作;3、项目监管:熟悉项目管理流程,负责项目实施进度、质量情况,协调项目中各内外单位的工作,解决项目中出现的技术和管理问题,保证项目的正常进行及交付;4、客情管理:负责跟进客户对我司的满意度,知晓并传达客户的意见与投诉,并跟踪问题的解决情况,持续提升客户满意度。具体要求:工作年限:三年以上 学历: 本科以上 专业:计算机、网络相关专业优先1、本科及以上学历,计算机、网络相关专业优先;2、有阿里云、腾讯云、天翼云、京东云等主流云服务商从业经验者优先,具有1年以上云计算或网络安全领域解决方案或云业务项目管理经验;3、对互联网、云计算、网络安全行业有清晰的认知和激情,具有敏锐的市场嗅觉和客户感知能力,理解客户的业务需求和痛点,能随时根据客户需求完成方案制作;4、熟练掌握基于云计算的应用架构设计方法、应用迁移方法、过程及工具;5、具备网络、数据库、系统、云计算、网络安全中的某一项或者多项专长者优先;6、较好的逻辑思维能力、表达能力、沟通能力及PPT撰写能力和宣讲能力;7、学习能力强,有激情,爱岗敬业,抗压能力较强,良好的组织协调、团队合作及学习能力。其他要求:有阿里云、腾讯云、天翼云、京东云等主流云服务商从业经验者优先,具有1年以上云计算或网络安全领域解决方案或云业务项目管理经验简历投递方式:1.简历通过邮件同时发送至stephanie.zhangx@alibaba-inc.com和zengl@wy.cn2.邮件命名方式:姓名-投递公司-投递岗位 招聘人数:1人;持阿里云认证优先 职位4:客服主管 Base地点:厦门岗位职责: 熟悉公司主要产品,负责公司产品的推广和销售; 通过电话或网络寻找客户,开发新客户,拓展与老客户的业务,建立和维护客户档案; 执行公司制定的销售政策和销售业绩目标; 具体要求:工作年限:三年以上 学历: 大专及以上 专业:不限1、两年以上团队管理经验,有IT销售工作经验者优先(对域名、服务器、云主机、系统集成或硬件等互联网产品熟悉者优先);2、较熟悉计算机和互联网,坚持建立长期、诚信的客户关系,良好的人际沟通能力和表达能力,良好的客户服务意识;3、表达能力强,逻辑思维清晰,具备较强的执行力和沟通表达能力。其他要求:有IT销售工作经验者优先(对域名、服务器、云主机、系统集成或硬件等互联网产品熟悉者优先)简历投递方式:1.简历通过邮件同时发送至stephanie.zhangx@alibaba-inc.com和zengl@wy.cn2.邮件命名方式:姓名-投递公司-投递岗位 招聘人数:1人;持阿里云认证优先 职位5: 客服专员 Base地点:厦门岗位职责:1、熟悉公司主要产品,负责公司产品的推广和销售; 2、通过电话或网络寻找客户,开发新客户,拓展与老客户的业务,建立和维护客户档案;3、执行公司制定的销售政策和销售业绩目标; 具体要求:工作年限:一年以上 学历: 大专及以上 专业:不限1、有IT销售工作经验者优先(对域名、服务器、云主机、系统集成或硬件等互联网产品熟悉者优先);2、较熟悉计算机和互联网,坚持建立长期、诚信的客户关系,良好的人际沟通能力和表达能力,良好的客户服务意识;3、表达能力强,逻辑思维清晰,具备较强的执行力和沟通表达能力。其他要求:有IT销售工作经验者优先(对域名、服务器、云主机、系统集成或硬件等互联网产品熟悉者优先)简历投递方式:1、简历通过邮件同时发送至stephanie.zhangx@alibaba-inc.com和zengl@wy.cn2、邮件命名方式:姓名-投递公司-投递岗位 招聘人数:2人;持阿里云认证优先 职位6: 政务专员 Base地点:厦门岗位职责:1、关注、研究各级政府部门的政策文件,定期给出观察报告与建议;2、协助政府政策申办中的了解文件要求,准备、制作符合政府要求的申报文件;3、助公司相关经营资质的申请工作;4、完成部门相关项目的统计与跟进工作;5、领导交予的其他工作。 具体要求:工作年限:不限 学历: 本科以上专业:不限1、本科以上;2、熟练使用office办公软件;3、熟练掌握行政管理、商务写作、公共关系等方面知识;4、文档阅读与撰写能力强,擅于沟通;5、优秀应届生亦可考虑。 简历投递方式:1.简历通过邮件同时发送至stephanie.zhangx@alibaba-inc.com和zengl@wy.cn2.邮件命名方式:姓名-投递公司-投递岗位 招聘人数:1人;持阿里云认证优先 职位7:前端开发工程师 Base地点:厦门岗位职责:1、负责网站项目中的Web前端功能开发和实现,与后端开发人员配合,实现网页的交互制作;2、使用Web前端技术,创建用户友好、符合标准、跨平台及跨浏览器的应用,促进产品易用性改进和界面技术优化;3、Web前沿技术研究和新技术调研;具体要求:工作年限:一年以上 学历: 本科以上 专业:计算机相关专业1、了解VUE应用框架并有相关的项目经验,具备前端开发工作经验1-2年,并理解其设计原理,熟悉组件化开发;2、熟悉W3C标准,对表现与数据分离、Web语义化等有深刻理解;3、精通JavaScript、ES6、Ajax、HTML5、CSS3、Jquery 等Web 开发技术,熟悉页面架构和布局;4、熟悉Sass、Less等css框架;5、熟悉Web应用系统开发,对HTTP协议及web服务器等有所理解; 6、善于主动思考总结,倡导创新与持续优化,思路周密,代码严谨,对技术有强烈兴趣。 简历投递方式:1.简历通过邮件同时发送至stephanie.zhangx@alibaba-inc.com和zengl@wy.cn2.邮件命名方式:姓名-投递公司-投递岗位 招聘人数:1人;持阿里云认证优先 职位8:开发工程师 Base地点:厦门岗位职责:1、负责资源管理、运维监控、工单等后端API系统后台研发工作,含架构设计、编码、优化等;2、熟悉资源、仓储管理优先;3、熟悉机房、物理服务器、网络设备等优先; 具体要求:工作年限:两年以上 学历: 本科以上 专业:计算机相关专业1、精通golang,有2年以上实际使用golang语言开发经验,做过中大型golang项目;2、熟悉Mysql,mongodb等多种数据库的基本使用;3、精通TCP/IP协议,熟悉接口的开发,精通Json+HTTP协议开发;4、熟悉缓存系统(如MemCache/Redis等);5、熟悉Linux系统及常用命令,能协助处理服务器的常见问题;6、熟悉面向对象设计模式,了解基本的编程算法,有数据库优化能力;7、有海量服务、高性能、分布式系统设计、开发经验者优先,对系统性能有独到见解与解决方案;8、具备高度责任心,良好沟通能力和团队合作精神;其他要求: 简历投递方式:1.简历通过邮件同时发送至stephanie.zhangx@alibaba-inc.com和zengl@wy.cn2.邮件命名方式:姓名-投递公司-投递岗位 招聘人数:3人;持阿里云认证优先 职位9: 机房运维工程师 Base地点:厦门岗位职责:1、负责公司客户服务器日常维护;2、负责服务器故障的处理,网络不通,无法远程 等等故障;3、负责其他运维事项;具体要求:工作年限:不限 学历: 不限 专业:计算机等相关专业1、熟悉windows服务器操作系统并能熟练运用 windows2003/2008 ;2、了解Linux和UNIX系统;3、熟悉常用服务器软件的操作与使用; 4、熟悉网络知识,处理常见网络故障; 5、有责任心,服从管理,做事细心,有团队合作精神,能承受工作压力;6、具备良好的服务意识,头脑清晰,思维敏捷,能接受7*24小时轮班制;7、欢迎优秀的应届生加入。 简历投递方式:1.简历通过邮件同时发送至stephanie.zhangx@alibaba-inc.com和zengl@wy.cn2.邮件命名方式:姓名-投递公司-投递岗位 招聘人数:2人;持阿里云认证优先 职位10: 运维工程师 Base地点:厦门岗位职责:1、负责维护公有云项目集群服务器的稳定运行,并能根据需求完成扩容、调优;2、协助开发人员,完成研发服务器环境的搭建与维护; 3、协助产品经理对产品需求中涉及的相关技术进行调研;4、公司自有系统服务器维护;5、负责协助客户处理云服务器故障具体要求:工作年限:两年以上 学历: 本科以上 专业:计算机、网络相关专业优先1、2年工作经验以上,本科及以上学历,计算机、网络相关专业优先;2、有OpenStack项目一年以上经验;3、熟悉Linux/Unix,windows系统运维;4、精通LNMP环境的配置,熟悉mysql 主从环境的配置及维护,熟悉redis,memcached; 5、熟悉Shell、Python脚本编写;6、精通Zabbix、Ansible、KVM/Docker, prometheus ;7、有阿里云、腾讯云、天翼云、京东云、华为云、AWS等主流云服务器管理经验者优先;8、性格沉稳,良好的沟通表达能力。其他要求:有阿里云、腾讯云、天翼云、京东云、华为云、AWS等主流云服务器管理经验者优先简历投递方式:1.简历通过邮件同时发送至stephanie.zhangx@alibaba-inc.com和zengl@wy.cn2.邮件命名方式:姓名-投递公司-投递岗位 招聘人数:1人;持阿里云认证优先 职位11:业务经理 Base地点:东莞/厦门岗位职责:1、根据公司及部门销售任务开展销售工作,完成各项销售指标;2、对现有市场和客户进行分析,发现客户的潜在需求,引导相关客户的现有需求,达成销售目标;3、根据客户需求的特点,为客户提供最优产品解决方案;4、负责与客户之间的商务谈判,建立客户关系,提高合同额和利润率;5、负责协调各种内部、外部资源,解决在项目实施过程中出现的问题,提高客户满意度;6、负责对项目回款过程的监控和执行,提高回款率;7、通过客户回访,了解客户需求及潜在需求,以提高客户满意,促成客户二次开发;8、上级领导交待的其他工作事项。具体要求:工作年限:两年以上 学历: 大专以上 专业:计算机、通信等相关专业优先1.大专以上学历,计算机、通信等相关专业优先;2.两年以上互联网业务销售经验;3.有过互联网营销推广、互联网服务器业务、云计算等相关行业工作经验者优先;4.对计算机软硬件、互联网及网络技术、云计算、DNS产品有一定的知识基础;5.具备很强的沟通能力,能够快速建立和维系客情关系;6.为人正直,踏实肯干,吃苦耐劳,抗压能力强。其他要求: 简历投递方式:1.简历通过邮件同时发送至stephanie.zhangx@alibaba-inc.com和zengl@wy.cn2.邮件命名方式:姓名-投递公司-投递岗位 招聘人数:1人;持阿里云认证优先 职位12:业务经理 Base地点:东莞/广州/深圳/北京岗位职责:1.负责跟进公司提供的客户资源,提供客户在线服务,维护客情关系,客户全业务周期跟踪;2.跟进获取客户需求信息,针对客户需求结合公司的资源给出合适的解决方案;3.与客户进行在线沟通,协助客户在线完成业务下单及流程中的客户服务;4.解决客户就产品或服务提出的问题,对客户关系进行维护及跟进,挖掘客户更多潜在需求;5.从业务和客户需求的角度,对产品的开发和升级提供指导性建议;6.整理销售数据,分析销售报告,配合上级制定产品营销方案;具体要求:工作年限:2年以上 学历: 大专及以上 专业:不限其他要求:1、两年以上互联网业务客服或销售经验;2.有过互联网营销推广、互联网服务器业务、云计算等相关行业工作经验者优先;3.对计算机软硬件、互联网及网络技术、云计算有一定的知识基础;4.具备很强的沟通能力,能够快速建立和维系客情关系;65具有较强的企图心,主动性和协作能力。简历投递方式:1.简历通过邮件同时发送至stephanie.zhangx@alibaba-inc.com和zengl@wy.cn2.邮件命名方式:姓名-投递公司-投递岗位 招聘人数:6人;持阿里云认证优先 职位13: 运维工程师 Base地点:东莞岗位职责:1、负责公司的服务器设备安装,系统部署和日常的运维工作;2、根据要求安装和配置操作系统.3、根据要求进行系统故障的排查和处理4、安装和维护公司计算机、服务器系统软件和应用软件;5、解决排除各种软硬件故障,做好记录;具体要求:工作年限:应届生 学历: 大专及以上 专业:计算机相关专业 1、了解常见计算机的硬件、能排除简单硬件故障。2、了解计算基础网络和具备计算机基础知识.3、熟悉Windows、Linux系列服务器系统安装及操作,可以进行简单系统配置和故障分析和系统维护,熟悉系统常用的命令和配置步骤。4、熟悉常见的网络服务,FTP、WEB、Email等服务原理; 其他要求:1、有责任心,服从安排,做事细心,有团队合作精神,能承受工作压力;2、沟通良好,计算机相关专业的应届毕业生或者有IDC行业工作经验的。简历投递方式:1.简历通过邮件同时发送至stephanie.zhangx@alibaba-inc.com和zengl@wy.cn2.邮件命名方式:姓名-投递公司-投递岗位 招聘人数:1人;持阿里云认证优先
文章
云计算 · 运维 · 前端开发 · 数据挖掘 · 网络安全 · Linux · 监控 · Go · 数据库 · Windows
2020-07-24
【华云中盛科技股份有限公司】- 招聘职位详情(社招)
华云中盛科技股份有限公司介绍 华云中盛科技股份有限公司成立于1998年,是国内领先的智能创新解决方案服务商,国家高新技术企业。公司总部位于深圳市南山区高新科技园,在北京、上海、广州、南京、杭州等全国20多个省市及河内、埃塞、雅加达、孟买等多个海外城市设有分支机构和办事处。 公司长期致力于新型数据库、大数据、人工智能产品和工具的研发,通过技术沉淀和产品创新,研发出了分布式数据库、数据资产管理平台、统一应用开发中台、HAI人工智能开放平台、AI风险控制平台等核心产品,并以此为基础,结合多年行业经验,为税务、政务、检务、金融等各行业提供了丰富的智能化行业解决方案,助力客户持续创新,有效提升客户数据的利用价值和智能化管理水平,帮助用户实现业务系统从数字化到智能化的转型。 公司现有员工一千多人,拥有专利数十项,著作权近百项。 随着数字经济的高速发展,公司携手阿里云、华为云、腾讯云等主流云厂商进行深度合作,为行业客户提供云计算、大数据全栈式服务,打通最后一公里。为国家实施大数据战略,加快数字中国建设,推动数字经济做大做强贡献力量。 未来,将继续深耕云服务、大数据+人工智能+行业领域,不断丰富和优化行业服务解决方案,以“助力客户持续创新,让智能技术普惠国人”为使命,挖据数据价值,成长为行业中具有深远影响力的高科技企业。 职位1:迁移上云咨询工程师 Base地点: 北京/武汉岗位职责: 1、基于阿里云产品和解决方案的能力,协助企业客户实现IT系统架构转型和云化,提供上云迁移方案设计、云上架构规划、迁云咨询、与实施服务; 2、客户上云以后,基于阿里云产品的能力,为客户设计应用系统在云上同城异地高可用架构、两地三中心容灾架构方案、以及云上监控运维、云上架构最佳实践方案等。 3、为客户提供云上DevOPS体系建设方案的咨询和实施服务,优化业务交付效率,加速企业的数字化转型具体要求: 1、计算机、电子类相关专业毕业,电子,自动化,计算机,通信等相关专业专业背景,五年以上工作经验。 2、精通Linux、windows系统,对于常用的运维工具,开源软件(Nginx、Tomcat、Hadoop、Hbase、zookeeper、MQ、Redis等)的部署安装及配置优化经验。 3、熟悉微服务、容器化架构,以及相关技术,对Istio、Docker、Kubernates,mesos等容器编排技术有丰富的实践和落地经验。 4、精通MySQL、SQL Server、Oracle、PostgreSQL、Redis、Memcache等两种以上主流数据库和缓存技术,有丰富的数据库的优化维护经验。 5、熟悉阿里云产品,通过阿里云ACP、Oracle OCP、PMP等相关认证优先。 6、有大型综合项目的交付和上云经验。 7、有较好的文档书写能力。其他要求:1、有阿里云项目经验优先 2、善于沟通,具有团队意识简历投递方式:1.简历通过邮件同时发送至stephanie.zhangx@alibaba-inc.com2.邮件命名方式:第一步:登录阿里云大学人才计划官网:https://edu.aliyun.com/recruit第二步:进入 我的大学-->我的简历,创建简历第三步:在阿里云大学人才计划官网选择岗位,投递简历 招聘人数:1人;持阿里云认证优先 职位2: 大数据运维工程师 Base地点: 北京岗位职责:1、独立完成云平台或数据中台软硬件环境搭建;2、独立完成应用上云包含应用评估、指导改造、配合上云实施、添加监控等;3、在指导下完成应用安全加固、服务器各类软件版本升级;3、及时处理各类异常报警、保障平台的运行稳定;4、及时响应用户咨询,为用户提供技术支持,架构优化建议等;5、深入研究云平台各类组件,提出优化意见,推进平台完善。具体要求:1.良好的语言表达和沟通能力,较强的服务意识与团队合作精神2.有主动推进预定计划/方案实施的意识,愿意主动学习3.熟悉阿里云弹性计算或大数据产品(包括ecs、odps、rds、drds、SLB、VPC、ads等常规组件使用),熟悉阿里云OpenApi;4.深入理解Linux操作系统,能够对主机性能进行分析和优化;5.熟悉常用的监控软件nagios、zabbix、cAdvisor、Prometheus、openfalcon中的一种或多种及Ansible自动化工具;6.熟悉常用的虚拟化技术,了解docker常见的使用方法,编排方式;7.熟悉常用服务的安装配置,例如:Nginx、JDK、DHCP、DNS等;熟悉网络路由配置;8.熟练使用shell、python、go中的一种或多种;9.具备2年以上阿里云规划、实施、运维和管理经验;具备阿里云ACP认证;有大规模服务器自动化安装、自动化运维经验的优先其他要求:1.熟悉阿里云大数据组件优先 2.善于沟通,具有团队意识简历投递方式:第一步:登录阿里云大学人才计划官网:https://edu.aliyun.com/recruit第二步:进入 我的大学-->我的简历,创建简历第三步:在阿里云大学人才计划官网选择岗位,投递简历 招聘人数:2人;持阿里云认证优先 职位3:云平台运维工程师 Base地点: 福州/武汉岗位职责: 1、负责基于阿里专有云云平台建设、系统规划、日常运营等工作; 2、负责云平台资源的分配、搭建、部署、监控、调优、升级、日常维护工作; 3、建立和完善云平台安全的监控体系和事件处理机制,确保业务的稳定运行; 4、解决云平台运行过程中技术问题,对疑难问题进行分析并解决; 5、制定云平台的运维流程、制度和规范;参与运维工作相关流程标准设计、编写。具体要求: 1、 计算机、电子类相关专业毕业,电子,自动化,计算机,通信等相关专业专业背景,五年以上工作经验。 2、熟悉阿里云平台架构及相关组件特性; 3、熟悉主流的私有云产品(阿里云、华为云),掌握KVM、Xen、VMware等虚拟化技术、SDN虚拟网络、分布式云存储、传统SAN存储等相关技术; 4、熟悉Linux操作系统、主流的存储产品、主流数据库的日常运维,掌握网络技术和信息安全知识; 5、具有系统集成、业务迁云等相关工作经验,参与过私有云建设项目者优先; 6、具备阿里云计算相关认证证书和相应从业经验优先。 7、做事积极主动,有强烈的责任心,善于学习,有较强的团队沟通协调能力;其他要求:1.有阿里云项目经验优先 2.善于沟通,具有团队意识简历投递方式:第一步:登录阿里云大学人才计划官网:https://edu.aliyun.com/recruit第二步:进入 我的大学-->我的简历,创建简历第三步:在阿里云大学人才计划官网选择岗位,投递简历 招聘人数:1人;持阿里云认证优先
文章
运维 · 大数据 · 监控 · 关系型数据库 · 数据库 · 人工智能 · 容器 · 虚拟化 · Linux · 存储
2020-07-24
【揭晓】工业互联网平台浪潮来临,最全的国内外平台都长的啥样!
        工业互联网刚刚兴起,十九大和两会领导人也多次提及。但是对于新生事物,每个厂家、每个组织、每个人的都理解都不一样,甚至千差万别,正因为如此才会有无限生机。但是也有其共性的东西,1、要是一个云平台、2、是一个资源平台,3、是一个物联网平台,4、是一个数据存储平台、5、是一个分析平台......更高是工业互联网平台,有没有超越工业互联网平台的体系?可能区块链的理念更有可能超越工业互联网平台,有可能有人认为这个太遥远了,人生不过百年,这些事情的发生也只是瞬间的事。         在数字化转型、智能制造的的大背景下,物联网站在了时代的风口。芯片、传感器、模组、网路、平台、终端设备、系统集成、应用服务等整个产业链不断扩大。而素有物联网“战略要塞”之称的物联网平台,也正成为各环节参与方必争之地。        传统IT企业、通信运营商、通信设备商、互联网企业、工业方案提供商、新型创业公司等多股势力如雨后春笋般纷纷涌入,在经过井喷期的热闹,平台沉淀进入下半场盘整,物联网平台基于IaaS、PaaS、SaaS三种云计算服务模型,逐步完善了其功能体系,即ICP(基础设施云服务平台)、CMP(连接管理)、DMP(设备管理平台)、AEP(应用使能平台)、BAP(业务分析平台)等。      本文按照4大领域的玩家的分类方法逐一介绍PaaS物联网平台,其中包含通信领域、互联网领域、软件系统服务领域、垂直领域。其中,通信领域包括以移动、联通、电信、华为、新华三为代表的电信运营商和电信设备商;互联网领域包括阿里、腾讯、百度、小米等;软件系统服务领域包括IBM、微软、PTC等;垂直领域主要分为两个部分,包括以三一重工、GE、西门子等为代表的工业类企业,以基本立子、普奥云、机智云、涂鸦智能、寄云等为代表的创业企业。 玩家领域 企业名称 平台名称 通信领域 中国移动 OneNET CCMP 中国联通 联通物联网平台2.0 中国电信 中国电信 物联网开放平台 沃达丰 GDSP Verizon Verizon ThingSpace IoT Platform 华为 Oceanconnect 新华三 绿洲平台 中兴 ThingxCLoud 思科 Jasper 爱立信 DCP 诺基亚 IMPACT 互联网领域 百度 天工物联网平台 阿里 Link物联网平台 腾讯 QQ物联 谷歌 Android Things 亚马逊 AWS IoT 小米 小米开放平台 软件/系统服务领域 IBM IBM Watson IoT  Platform 微软 Microsoft Azure Oracle Oracle IoT Cloud Service PTC ThingWorx SAP Leonardo Bonc(东方国信) Cloudiip 垂直&创业领域 西门子 MindSphere GE Predix 徐工集团 Xrea 博世 Bosh IoT Suite 2.0 施耐德 Ecostruxure 霍尼韦尔 Movilizer ABB Ability 研华 WiseCloud 海尔 海尔U+ COSMOPlat 航天云网 INDICS 联想 联想全球智联平台 树根互联 根云 机智云 机智云 艾拉物联 Ayla IoT Platform 基本立子 立子云 普奥 普奥云 智物联 Mixlinker 智云奇点 AbleCloud 远景能源 EnOS能源物联网平台 涂鸦智能 涂鸦智能 云智易 云智易物联云平台 上海庆科 FogCloud 小葱智能 小葱智能物联网平台 寄云科技 NeuSeer工业互联网平台 myDevice Cayenne 中兴CLAA MSP多业务统一平台 粒聚科技 LETSIOT平台 物联智慧 Kalay云   通信领域   中国移动的OneNET和CCMP   公司:中国移动 名称:OneNET 网址:open.iot.10086.cn          OneNET是中移物联网有限公司基于开放、共赢的理念,面向公共服务自主研发的开发云平台,为各种跨平台物联网应用、行业解决方案提供简便的云端接入、海量存储、计算和大数据可视化服务,从而降低物联网企业和个人(创客)的研发、运营和运维成本,使物联网企业和个人(创客)更加专注于应用,共建以OneNET设备云为中心的物联网生态环境。      OneNET平台提供设备全生命周期管理相关工具,帮助个人、企业快速实现大规模设备的云端管理;也开放第三方接口和,加速个性化应用系统构建;同时,可定制化的“和物”APP,为您提供云、管、端整体解决方案。   公司:中国移动 名称:CCMP 3.0 网址:暂无          2017年11月25日中国移动发布自主研发的全球最大规模的物联网连接管理平台CCMP 3.0版本。该平台由中国移动历时5年自主研发、逐步演进而来的新一代物联网连接管理平台。       全新的CCMP3.0主要提供5个方面的能力,包括业务运营能力、应用集成能力、国际业务拓展能力、NB-IOT能力和安全防护能力。其中,业务运营、应用集成和安全防护三个能力在2.0版本的基础上进行了完全的内核更新演变成全新业务能力;国际业务和NB-IoT两大能力是新上线的两大能力,这两大能力为企业客户拓展跨国业务以及更丰富的物联网业务场景提供了新的可能。  中国联通的物联网平台2.0 公司:中国联通 名称:联通物联网平台2.0 网址:www.m2m10010.com          中国联通物联网平台2.0是自中国联通2015年首次发布物联网连接管理平台的升级,是一个基于云的先进平台,它提供新一代连接管理功能可支持启动、管理并迅速扩展联网设备业务或企业部署。主要基于Control Center 7.0这一全新的物联网平台,面向客户提供六大能力(1)SIM卡姿服务;(2)自动化规则设置;(3)API集成;(4)设备实施诊断;(5)账单及报表查询;(6)企业账户管理。并在原有的平台基础上,新增全方位安全防护、业务洞察能力、协作应用集成、低功耗广域网络支持以及增值业务运营等七大功能,支持企业用户多样化商业模式的同时满足其多种运营需求。   中国电信的物联网开放平台 公司:中国电信 名称:中国电信物联网开放平台 网址:open.189.cn          物联网开放平台由连接管理、应用使能和垂直服务三大板块构成,全球化、安全可信的端到端服务贯穿始终。平台将具备三大优势:一是全球连接、一点服务,二是开放创新、安全可信,三是数据感知、智能决策。中国电信将依托物联网开放平台,借鉴行业经验、整合内部资源,联合全球合作伙伴,打造产业核心竞争力、共创商业价值。     中国电信物联网开放平台由爱立信的设备连接平台提供支持,该平台于2012年推出,现在支持超过25家运营商和超过2000家企业客户,并且成为爱立信物联网(IoT)加速器平台的一部分。  沃达丰的GDSP 公司:沃达丰 名称:Global Data Service Platform,GDSP 网址:m2m.vodafone.com          沃达丰全球数据服务平台(GDSP)旨在提供安全自助服务平台管理所连接的M2M部署。帮助企业在世界上的任何地方都可以简单有效的管理它们的物联网设备。该平台提供完整的身份验证和访问控制机制,授权用户可以通过一个易于使用的自助服务门户来访问关键信息。      该平台赋予客户资产可视化能力,客户可以在沃达丰全球网络上控制其所有的物联网设备。它可以追踪安装了沃达丰全球SIM卡的资产的位置,在设备状态异常的时候能够发出提醒,还能提供性能和数据使用的相关报告。  华为OceanConnect 公司:华为 名称:华为OceanConnect物联网平台 网址:developer.huawei.com/ict/cn/site-oceanconnect         华为OceanConnect物联网平台是面向运营商和企业/行业领域的统一开放云平台,提供开放的三层架构,提供开放的连接管理平台,ICT融合的设备管理平台和灵活的应用使能平台。通过开放的APIs和独有的Agent,向上集成各种行业应用,向下接入各种传感器、终端和网关,帮助运营商和企业/行业客户实现多种行业终端的快速接入,多种行业应用的快速集成。华为OceanConnect物联网平台提供安全可控的全联接管理,使能行业革新,构建IoT生态。      OceanConnect提供众多行业生态API供开发者灵活使用,包括数据模型、设备管理、用户管理、规则处理等,覆盖了多种行业生态。比如智能家庭、车辆网、油气能源生态、智慧城市生态等。基于OSGi框架的Agent,支持边缘计算功能,同时支持家庭网关、工业网关以及网关下的设备平台,另外推出系列化Agent Lite、Agent IPC、Agent Tiny(可部署在Lite OS之上)等,扩展了更多种协议的设备接入可能,比如Onvif摄像头、Modbus设备、OPC-UA设备等。  新华三的绿洲物联网平台 公司:新华三集团 名称:绿洲物联网平台 网址:www.h3c.com           新华三绿洲物联网平台,是针对物联网解决方案的专用PaaS平台,在物联网解决方案中,负责对上支撑应用,对下适配终端,同时实现横向能力集成。为达到上述目标,绿洲物联网平台提供数据处理能力、应用支撑能力、生态开放能力、架构适应能力(大并发,高可靠,自恢复,可伸缩)、安全保障能力、设备管理能力等。      绿洲物联网平台继承了新华三绿洲平台架构,采用了全分布式、可弹性扩展、基于Docker技术的微服务架构。绿洲物联网平台提供一部分通用PaaS功能,包括架构管理子系统、在线开发子系统、安全管理子系统及认证管理子系统。同时,在此基础上,提供了一系列物联网基础服务,包括连接管理子系统、设备管理子系统、数据处理子系统、应用支撑子系统以及内嵌的物联网基础应用等。   中兴ThingxCloud兴云 公司:中兴通讯 名称:ThingxCloud兴云 网址:iot.zte.com.cn      2017年12月12日,中兴通讯于上海召开2017物联网产业峰会,发布新一代物联网平台ThingxCloud兴云。ThingxCloud兴云作为专为使能而生的IoT PaaS平台,上承应用、下联设备、内生数据、赋能物联网、助力生态圈,开启了物联网共建、共享、共赢新模式。基于大数据、AI、安全基础能力,实现了物联网的设备管理、连接管理以及应用使能管理,适配各种通讯协议,屏蔽网路技术差异,使底层网络对上层应用透明,为物联网行业提供终端连接、应用创新、数据共享、运营支撑、集成服务等能力。     中兴通讯通过ThingxCloud兴云生态运营门户,简单、友好、易用的物联网开发工具,丰富的技术资料等,支撑GIA(Global Iot Alliance)联盟中的各方合作伙伴,贡献自己的力量,完成共建、共享、共赢,开创物联网新时代。   思科Jasper的Control Center   公司:Cisco 名称:Control Center 网址:www.jasper.com        2016年,思科(Cisco)斥资14亿美元收购了Jasper全部股权,从而Jasper变成了Cisco Jasper,而Control Center也从电信业走向物联网,首先,电信运营商下多种接入方式,例如LTE-M,NB-IOT等这两种接入方式都是面向物联网的;其次,灵活扩展,利用Jasper的全球电信运营商资源,可以很方便地将一个地区的服务扩展到多个地区或者全球;最后,完善的设备在线监控,管理,维护,自动优化等等服务功能。     Jasper 作为全球 CMP 行业的领军者,在全球550多个运营商网络上管理物联网设备,超过15000企业正在使用该平台,并以每个月增加150万个设备速度继续扩大。目前,设备连接量已超6200万。     爱立信DCP 公司:爱立信,Ericsson 名称:Ericsson Device Connection Platform,DCP 网址:www.ericsson.com/ourportfolio/products/device-connection-platform           爱立信设备连接平台,是2011年并购TelenorConnexion而来,支持运营商从设备生命周期管理连接,销售准备和业务扩展这三个角度建立M2M业务。该平台可处理连接管理、业务签约管理和OSS/BSS,实现运营商与企业之间业务流程的自动化,支撑企业自主管理其联网终端。在DCP之外,爱立信还开发了物联网加速器方案,该方案包括数据管理、计费、终端管理、连接服务和分析,主要目的是通过在终端适配、数据管理以及应用呈现、管理等方面提供引擎和软件开发套件,大大缩短物联网应用的开发和部署时间,降低客户从CAPEX到OPEX投资的初始风险和成本。      据悉,DCP已经为数千家企业提供按需自主可管理的、全球化的物联网连接管理能力,创新的物联网加速引擎支撑着快速的物联网应用开发和部署。  诺基亚的IMPACT 公司:诺基亚 名称:IMPACT 网址:www.nokia.com      诺基亚作为物联网的创新者和使能者,多年前就开始对物联网平台进行打造,经过多年的技术积累和现网优化形成了目前业界领先的物联网管理平台IMPACT, 透过IMPACT平台来打造端到端的产业链。以IMPACT物联网智能管理平台为核心的方案架构给运营商、企业和政府,提供了一个针对任何终端、任何协议和贯穿任何应用的物联网解决方案平台,可以处理数据收集、事件处理、设备管理、数据分析, 支持安全性和多样化的应用。      诺基亚IMPACT平台已在全球广泛应用,在设备管理领域全球市场份额第一,目前全球连接到此平台的设备种类达到15000种,设备总量达15亿。截止2017年6月,全球共用53个应用案例。客户涵盖Vodafone、Orange、Verizon、AT&T、KT、Airtel等全球一类运营商以及Continental、Mercedes-benz等全球行业大客户。并在国际上获得多项奖项,包括2017最佳物联网/ M2M战略创新奖、2017 GLOMO最佳移动网络IoT创新奖、2016 Broadband最佳IoT创新奖、2016 eTECH工业物联网创新奖。   互联网领域   阿里的Link物联网平台 公司:阿里巴巴 名称:Link物联网平台 网址:iot.aliyun.com          2017年10月12日,阿里云在2017杭州•云栖大会上宣布正式发布Link物联网平台。该平台战略投入物联网云端一体化使能平台、物联网市场、ICA全球标准联盟等三大基础设施,推动生活、工业、城市三大领域的智联网。在未来5年内,将持续投入,实现“服务100万开发者、沉淀100万物联网应用解决方案、链接100亿物联网设备,撬动全球物联网产业实现万亿市场规模”目标。     平台提供生活物联网平台、城市物联网平台、AliOS things、物联网语音服务、物联网套件、ID²设备身份认证平台、TEE安全套件、嵌入式系统安全套件等多种产品服务。   腾讯的QQ物联 公司:腾讯 名称:QQ物联 网址:iot.open.qq.com      2014年10月,“QQ物联智能硬件开放平台”发布,将QQ账号体系及关系链、QQ消息通道能力等核心能力,提供给可穿戴设备、智能家居、智能车载、传统硬件等领域合作伙伴,实现用户与设备及设备与设备之间的互联互通互动,充分利用和发挥腾讯QQ的亿万手机客户端及云服务的优势,更大范围帮助传统行业实现互联网化。主要优势是创新产品能力、降低研发成本、扩大社交影响。  百度的百度天工 公司:百度 名称:百度天工智能物联网平台 网址:cloud.baidu.com/solution/iot/index.html          百度天工是融合了百度ABC(AI、Big Data、Cloud)的“一站式、全托管”智能物联网平台。从端到云,从数据采集、传输、计算、存储、展现到分析,天工提供了全面的基础产品和服务。立足于”连接”、”理解”到”唤醒“的各项关键能力,从而轻松构建各类智能物联网应用,促进行业变革。      凭借百度在人工智能、大数据、云计算、移动服务、安全等领域的优势,百度天工物联网云平台建立起了四大优势:一是基于百度云提供从网络到中间件,从计算到存储,从大数据到人工智能的全栈服务;二是遍布国内的自研数据中心,丰富的资源(节点/IDC),T级带宽接入,提供高扩展性,支撑海量设备快速接入;三是支持Modbus、BACnet等各种协议解析与转换;四是基于国内最大的服务器集群提供最具优势的大数据分析能力,快速发现数据的价值。   谷歌的AndroidThings 公司:谷歌 名称:Android Things 网址:developer.android.com/things/index.html      2016年12月,谷歌第一次对外公布了物联网操作系统Android Things的开发者预览版本。新版操作系统将能够支持一系列物联网设备的计算平台。而其前身是2015年5月29日,谷歌I/O开发者大会上,谷歌宣布推出了全新的Brillo操作系统。Android Things除了继承 Brillo 的功能,还加入了 Android Studio、Android SDK、Google Play 服务以及 Google 云平台等 Android 开发者熟悉的工具和服务。任何 Android 开发者现在都可以利用 Android API 和 Google 服务轻松构建智能联网设备。      Android Things 天生支持物联网通讯协议 Weave,可让所有类型的设备能够连上云端并与其他服务如 GoogleAssistant 交互,现在已经有一些 IoT 设备像 Nest、Hue、SmartThings、WeMo、LiFX 等前来支援 Weave。  亚马逊的AWS IoT 公司:亚马逊 名称:AWS IoT 网址:www.amazonaws.cn/en/inbounddg-events/iot          AWS IoT 解决方案是一个全托管的云平台,使互联设备可以轻松安全地与云应用程序及其他设备交互。AWS IoT 可支持数十亿台设备和数万亿条消息,并且可以对这些消息进行处理并将其安全可靠地路由至 AWS 终端节点和其他设备。AWS IoT 平台支持您将设备连接到 AWS 服务和其他设备,保证数据和交互的安全,处理设备数据并对其执行操作,以及支持应用程序与即便处于离线状态的设备进行交互。   小米的IoT开发者平台 公司:小米 名称:小米IoT开发者平台 网址:iot.mi.com/index.html           小米IoT开发者平台是小米面向IoT(Internet of Things)领域的开放平台,主要服务智能家居设备、智能家电设备、智能可穿戴设备、智能出行设备等消费类智能硬件(家庭使用)及其开发者。小米IoT开发者平台不仅提供联网模组、云平台、APP远程控制、数据云端存储、OTA、用户账号等软硬件服务,更有开放设备互联互通、小米用户群体、小米AI控制、小米众筹/有品商城等小米特色资源,帮助开发者打造真智能、可互通、受众广、活跃高的智能产品。(注:小米IoT开发者平台当前仅面向中国大陆地区拥有独立自主品牌的智能硬件企业开放,智能硬件集成商、方案商、ODM/OEM企业、模组商等相关开发者群体暂未开放。同时,也暂未面向应用开发者和个人开发者群体开放。)   软件/系统服务领域   IBM的Watson IoT  公司:IBM 名称:IBM Watson IoT Platform 网址:www.ibm.com/internet-of-things/cn-zh/iot-solutions/watson-iot-platform          IBM Watson IoT Platform架构在基于Cloud Foundry 开源项目的Blumix云产品之上,通过它,企业安全、轻松地将包括芯片、智能设备在内的各种设备连接到应用及行业解决方案,确保为企业提供创新与转型所需的新洞察力。IBM Watson IoT Platform平台提供四大物联网解决方案:分析、连接、信息管理、风险管理。 分析:从海量物联网数据中获得洞察,作出智慧决策,优化运营。应用实时分析,监视当前状况,作出相应的响应。对结构化和非结构化数据进行认知型分析,了解状况,通过各种选项进行推理,并随着情况的不断变化进行学习。 连接:将各种设备(小到芯片,大到智能家电)轻松连接到应用和行业解决方案。执行设备管理功能,通过基于云的服务实现扩展,然后利用丰富的分析功能,获取洞察并实现组织转型。 信息管理:智能地转换和存储物联网数据。从各种数据源和平台获取数据,然后使用丰富的分析功能提取重要价值。 风险管理:使用丰富的仪表板功能和高级警报功能,管控风险,获得整个物联网境中的洞察。通过单个控制台,根据通知采取行动,发现企业环境中任何位置发生的事件。   微软的Azure IoT  公司:Microsoft 名称:Microsoft Azure IoT 网址:azure.microsoft.com/zh-cn/suites/iot-suite           Azure 是一个综合性云服务平台,开发人员和 IT 专业人士可通过我们的全球数据中心网络使用该平台来生成、部署和管理应用程序。集成工具、DevOps和Marketplace支持高效生成任何内容。其中IoT套件架构在Azure之上,可帮助客户加速物联网解决方案的开发。       迅速连接,高效扩展:使用适用于多个平台(包括 Linux、Windows 和实时操作系统)的设备 SDK 添加新设备并连接现有设备。无论你的项目大小,都可从少数几个传感器轻松扩展至数百万台同步连接的设备,并依赖 Azure 的全球可用性。 分析并处理数据:从设备和传感器收集以前未使用的数据,并使用内置功能显示并处理该数据。以灵活、可扩展的高性能方法使用基于 SQL 的语法来设置实时分析,而无需管理复杂的基础结构和软件。使用大型算法库来扩展预测分析解决方案。将 R 和 Python 语言中的代码直接集成到你的工作区中,从而扩展实时分析和机器学习解决方案。 集成并转换业务:AzureIoT可与第三方应用程序(包括Salesforce、SAP、Oracle Database 和 MicrosoftDynamics)轻松集成,轻松访问数据并使分散的系统保持最新。只需极少的开发工作即可通过移动推送通知引擎将数百万消息发送给异构设备。生成与 Microsoft 和第三方 Web API 相集成的移动和 Web 应用程序,并使用 OAuth2.0 生成自己的安全 WebAPI。 设备身份验证:为每个连接的设备设置标识和凭据,并帮助保持云到设备和设备到云消息的保密性。并且,选择性地撤消特定设备的访问权限以保持系统的完整性。   Oracle的IoT Cloud Service  公司:Oracle 名称:Oracle IoT Cloud Service 网址:https://docs.oracle.com/en/cloud/paas/iot-cloud/index.html           Oracle 物联网云服务是一种托管的平台即服务(PaaS)云服务,可帮助用户制定关键业务决策和策略,允许设备连接到云端,实时分析设备的数据并将数据与企业应用程序,Web服务或其他Oracle云服务(如Oracle商务智能云服务)集成。       Oracle物联网云服务可进行设备虚拟化、高速消息传递、端点管理、事件存储、允许连接3大类型设备:网关设备、流处理以及企业软件库连接等。其中,设备虚拟化支持三大类设备的管理,包括网关设备、直连设备以及通过网关连接的设备;Oracle物联网云服务提供了一个设备消息传递服务器,用于在设备和企业应用程序之间交换消息传递REST请求;端点管理支持可连入其物联网云服务设备类型的从注册、激活、停用、退役全生命周期的信息存储与管理;进行实时数据流分析以及对接聚合其他软件服务。   SAP 的Leonardo IoT  公司:SAP 名称:SAP Cloud Platform IoT 网址:cloudplatform.sap.com/index.html        SAP Cloud Platform IoT可以将设备连接到SAP云平台,从而在物联网应用中使用设备传入的数据。它提供了规模化的物联网设备从注册到退出的全生命周期管理能力,通过各种各样的物联网协议安全地连接到远程设备的能力,对边缘端或云端的传感器数据进行收集、处理和存储的能力,把SAP云平台上的数据提供给应用程序进行调用的能力。      SAP Leonarod IoT平台可以划分为四层: 1)边缘层-SAP Leonardo Edge:提供边缘端的协议转换、数据持久化和数据分析等一系列服务,实现不用考虑连接方式的情况下,将数据轻松发送到云端,同时支持在边缘端执行关键的业务流程 2)平台层-SAP Leonardo Foundation:提供原始数据的接入能力、海量数据的处理能力、与业务系统的集成能力,并提供端到端的物联网应用开发工具集 3)应用层-SAP Leonardo Applications:覆盖6大领域的应用,实现产品互联、设备互联、车队互联、基础设施互联、市场互联、人的互联 4)桥接层-SAP Leonardo Bridge:提供一个可配置的基于岗位的业务场景,建立业务数据与物联网应用数据的关联,实现智能化的业务解决方案 其中SAP LeonardoFoundation和SAPLeonardoBridge都是基于SAP CloudPlatform。    东方国信 Cloudiip 公司:bonc(东方国信) 名称:Cloudiip 网址:http://biop.bonc.com.cn/          赵宏博介绍了东方国信对工业互联网平台的理解,工业互联网平台的研发和推广情况,工业互联网平台从应用层面如何为工业企业解决设计、仿真、制造、管理、服务等全生命周期存在的核心问题,以炼铁、能源、空压、工业锅炉为核心介绍典型行业/领域的工业云应用情况,工业互联网平台从开发层面如何为开发者降低难度以快速汇聚工业专家和形成工业APP,重点包括工业大数据的全流程服务、拖拉拽方式的快速开发环境及工具、形成的工业微服务和工业APP。       “平台得有生命,不能搭了平台,看着架子好看,但在企业不能落地。我们做一些基于大数据的画像系统都可以迁移,形成工长画像和设备画像。现在监测覆盖的设备接近百万台,百万台的设备拥有很多的传感器,设备到底在现场运行的怎样,不用设备厂家说设备好不好,而是基于第三方客观地评价,对云监测的大数据进行排名,然后对第三方进行推送。”   PTC的ThingWorx 公司:PTC 名称:ThingWorx 网址:www.ptcchina.com/internet-of-things/technology-platform-thingworx       PTC ThingWorx是一款专门为物联网应用量身定制的、完整的、端到端的技术平台。它使得物联网应用程序开发者可以快速连接、创建以及部署企业级的物联网应用。ThingWorx Foundation连接了ThingWorx的所有组件,提供了开发者创建完整物联网应用最简单的路径。     Thingworx AEP平台功能及亮点: 1)“拖拽式”聚合页面构建器,ThingWorx“拖拽式”聚合页面构建器使用户快速创建富应用,缩短开发时间,聚合页面构建器生成的是纯HTML应用程序,完全支持安卓设备和iOS设备。 2)提供SQUEAL工具,客户通过SQUEAL的交互式搜索能力,从数据中找到业务关键问题的答案 3)提供REST APIs,第三方系统可以通过REST APIs和ThingWorx平台进行交互和集成 4)提供建模环境和业务逻辑,ThingWorxComposer是为创建应用程序而设计的一个端到端的应用程序建模环境。在Composer中,开发者可以为互联应用程序所必需的“物”、业务逻辑、可视化、数据存储、协同和安全等建模 5)提供嵌入式数据库,可进行数据存储   垂直领域  西门子的MindSphere 公司:西门子 名称:MindSphere 网址:www.siemens.com/cn/zh/home/products/software/mindsphere.html      西门子开放式云平台,MindSphere,是功能强大的IoT操作系统的核心,具有数据分析功能和连通功能、各种开发工具以及各种应用软件和服务。有助于评估和利用客户数据,帮助客户获得突破性洞察力。帮助客户提高资产性能,优化资产,最大限度保证正常运行时间。      MindSphere是基于Cloud Foundry™ (Cloud Foundry由全球的企业和供应商采用开放源码政策联合开发的开源PaaS平台)而构建的一种工业标准的云应用平台。MindSphere应用可以运行在客户偏爱的云基础设施上,包括Amazon Web Services、 Microsoft Azure、SAP Cloud 平台和 Atos Canopy等;并可以部署在由其他第三方服务提供商维护的公有云上;甚至也可以部署在专为某个企业构建的私有云上。客户可以根据自己在成本、控制、可组态性、可伸缩性、位置与安全等方面的需求选择最佳的云部署方案。  GE的Predix 公司:GE 名称:Predix 网址:www.predix.io       Predix平台是面向工业互联网PaaS平台,连接机器、数据、人员以及其他资产。平台使用分布式计算、大数据分析、资产数据管理和M2M通信的领先技术,提供广泛的工业微服务,使企业能够提供生产力。Predix对外开放,可以和业界其他合作伙伴进行“互操作”,将各种工业资产设备和供应商相互连接并接入云端,同时提供资产性能管理(APM)和运营优化服务。     Predix的主要组件包括:Predix Machine、Predix Cloud、Predix Services。 PredixMachine:一个软件层,负责从工业资产收集数据并将其推送到Predix Cloud,以及运行本地应用程序(如边缘分析)。Predix Machine安装在网关,工业控制器和传感器上。 PredixCloud:一个全球性,安全的云基础架构,针对工业工作负载进行了优化,并符合卫生保健和航空等行业的严格监管标准。 PredixServices:提供开发人员可以用来构建,测试和运行工业互联网应用程序的工业服务。并提供一个微服务市场,开发人员可以发布他们自己的服务,并从第三方获取服务。Predix平台使客户和合作伙伴共同优化其工业业务流程。   博世的IoT Suite 2.0 公司:博世 名称:Bosh IoT Suite 2.0 网址:www.bosch-iot-suite.com      博世物联网套件基于开放标准和源代码,是一个的灵活物联网平台。其云服务满足物联网项目的典型要求,软件开发人员可以在实施之前快速设置原型应用程序,在几分钟内完成部署,并在高可用性的情况下运行程序。此外,该平台的设备管理功能也可以单独使用或现场使用。博世市场领先的基于OSGi的ProSyst网关软件可广泛用于不同的领域,实现基于网关的众多物联网场景。      目前,已有超过500万台设备和机器通过博世物联网套件实现了广泛互联。博世物联网套件服务已与博世物联网云市场集成一体。未来,用户将能够通过基于Cloud Foundry的其他市场使用某些特定的服务。   施耐德的Ecostruxure 公司:施耐德 名称:Ecostruxure 平台 网址:www.schneider-electric.cn/zh/work/campaign/innovation/platform.jsp       基于物联网的EcoStruxure,以互联互通的产品、边缘和云端控制双重选择,融合数字化应用、分析与服务,提升能效管理和自动化生产的安全性、可靠性、高效性和可持续性,放大客户业务价值。 互联互通的产品:平台基于物联网卓越的互联互通的产品,涵盖断路器、不间断电源、继电器和传感器等嵌入式智能化设备,帮助决策者在整个运行期间做出更明智的决策。 边缘控制:针对难于预料的物联网应用场景,该平台提供物联网边缘设备进行控制,提供解决方案,帮助客户在边缘测进行控制、保障安全以及正常运行。 应用、分析与服务:EcoStruxure™针对楼宇、数据中心、工业和基础设施终端市场的各类硬件与系统提供交互性操作,最大限度为实现企业无缝集成提供应用分析与服务。   霍尼韦尔的Movilizer 公司:Honeywell 名称:Movilizer 网址:www.honeywellaidc.com        Movilizer是针对现场作业的云计算服务,企业借此可以构建部署灵活、动态的现场策略,提高制造型企业和服务型企业的盈利能力。与其他提供单独解决方案的竞争对手不同,Movilizer云平台可以跨越多个部门、甚至打破公司的界限,连接并协调现场作业。 无限衔接后端系统:克服信息管理的局限性,改善信息孤岛的现状,实时连接远程、现场作业,实现端到端的信息互联。利用泛在化的信息终端将任何后端系统以及外部的工作人员(包括供应商、分包商或制造商)连接到Movilizer云计算平台。 统一的云计算平台:通过Movilizer云平台,任何公司都能够在现场便捷、快速地实现移动战略的部署。多租户的云计算平台使得供应链高级管理人员得以相互协调,同时协同现场作业和工作流程。 统一的APP容器:在操作层面上,Movilizer APP将现场工作人员与办公室彼此连接起来,工作人员在现场处理工单并将更新后的信息实时发送到后台。   ABB的Ability 公司:ABB 名称:ABB Ability 平台 网址:new.abb.com      ABB Ability平台是一个一体化的工业互联网平台和云基础设施,它以ABB在技术、工业和数字领域的领先专业知识为基础,使企业能够驾驭工业数据的力量。该平台使客户能够安全地集成并整合他们的数据、与更广泛的行业数据结合、应用大数据和预测分析并生成可以帮助他们提高绩效和生产率的洞见。      ABB AbilityTM数字化解决方案包括:面对资产密集型行业的绩效管理解决方案;针对流程工业的控制系统;面向机器人、电机和机械设备的远程监测服务;用于建筑、海上平台和电动汽车充电基础设施的控制解决方案;以及满足数据中心能源管理和远洋船队航线优化等需求的专业领域的解决方案。   研华的Wise-PaaS 公司:研华 名称:Wise-PaaS 网址:wise-paas.advantech.com         研华科技为帮助物联网系统集成商快速开发出所需要的应用系统,研发了WISE-PaaS中间件。该平台可提供传感器信息传输和远程管理控制,集成了大数据分析、物联网应用开发等工具,是云平台与IoT设备之间的桥梁。      Wise-PaaS针对垂直市场的各领域的解决方案提供多种成熟的软件平台服务,包括:WISE-PaaS RMM、OTA,WebAccess VCM、CNC 、NMS 、SCADA、HMI、IMM等。WISE-PaaS生态系统采用灵活可扩展架构,能够将WISE-PaaSMarketplace中提供的多样化云端解决方案和行业解决方案套件(SRP)无缝整合。   海尔的COSMOPlat和U+ 公司:海尔 名称:COSMOPlat 网址:www.cosmoplat.com       海尔对于智能工业平台的打造理念,不仅仅局限于智能制造这一个环节中,更多的是,海尔想打造一条真正可以与互联网接轨的智能产业链及新工业生态环境。除智能制造外,这个平台还包含了从采购、营销到服务的一系列与互联网衔接的数字信息化环节:模块采购、智能生产、智慧物流、智慧服务、智能网器、用户交互、迭代设计和数字营销八个主要环节。       海尔COSMOPlat是一个开放、共创共赢的生态平台。它是无边界的,可以跨行业(从家电到上下游、再到全行业,目前已复制到家电外的纺织、建筑、运输等12个行业)、越国界(从国内到国外,再到全球,目前已复制到印度、巴基斯坦等20个国家)的推广和复制。现已聚集的3亿用户资源,380万资源可以同时和全球共享!   公司:海尔 名称:U+智慧生活平台 网址:www.haieruplus.com      U+智慧生活平台(简称U+平台),是海尔旗下全球首个智慧家庭领域全开放、全兼容、全交互的智慧生活平台。该平台以U+物联平台、U+大数据平台、U+交互平台、U+生态平台为基础,以引领物联网时代智慧家庭为目标,以用户社群为中心,通过自然的人机交互和分布式场景网器,搭建U+智慧生活平台的物联云和云脑,为行业提供物联网时代智慧家庭全场景生态解决方案,实现智能全场景,共赢新生态;为用户提供厨房美食、卫浴洗护、起居、安防、娱乐等最佳家庭生态体验。   航天科工的INDICS 公司:中国航天科工 名称:INDICS 网址:is.casicloud.com         INDICS(Industrialintelligent cloud system),是中国航天科工集团公司于2017年6月15日正式全球发布的工业互联网平台。该平台以工业大数据为驱动,以云计算、大数据、物联网技术为核心,可实现产品、机器、数据、人的全面互联互通和综合集成。      INDICS平台能够提供涵盖IaaS、DaaS、PaaS和SaaS的完整工业互联网服务功能,适合不同层次、类型、规模的企业;可支持各种工业设备接入、集成各类工业应用服务,构建良性工业生态体系,使制造管理更加便捷高效;构建了涵盖设备安全、网络安全、控制安全、应用安全、数据安全和商业安全的工业互联网完整安全保障体系。   联想的全球智联平台 公司:联想懂的通信 名称:联想全球智联平台 网址:www.lenovoconnect.com       联想懂的通信自主研发的联想全球智联平台是基于PaaS+SaaS模式的云平台,由连接管理平台、设备管理平台、增值业务管理平台、应用使能平台和eSIM平台组成,可为客户提供涵盖通信服务、设备管理、应用部署等端到端的服务,降低物联网设备管理的复杂性,助力客户快速实现物联网转型,以提高企业运营效率和降低企业成本。      联想全球智联平台在中国的蜂窝连接数已突破1千万,仅次于国内三大运营商。目前,平台已为共享经济、智能车联、消费电子、新零售等领域的企业和项目提供物联网服务和支持。未来,联想懂的通信还将在全球80%以上的国家和地区开展物联网服务,预计三年内平台连接数将超过1亿。   徐工的Xrea 公司:徐工信息 名称:Xrea工业物联网大数据平台 网址:http://www.xcmg.com/xgit      徐工信息团队经历几年的沉淀,自主研发工业互联网平台Xrea、可用于连接工业设备的Xplore物联网硬件系列产品(“黑匣子”)。利用“黑匣子”让设备“开口说话”,将设备运行状态、工作效率、作业能耗、故障信息、零件寿命等关键信息,以数据方式精准传送至Xrea工业互联网平台,用于精准营销、精准服务,用于大数据的挖掘和分析,最终利用采集到的大数据,将产品的研发、制造、营销过程全部管理起来。      目前该平台已经接入44万多台设备,包括起重机械、铲运机械、挖掘机械、物流运输设备、新能源汽车等6000多种设备类型。数据的种类7000多种,峰值的吞吐量每秒为1.1亿条,年数据增长量1.1PB。   树根互联的根云 公司:树根互联 名称:根云 网址:http://www.irootech.com       树根互联是三一集团孵化的中国成立最早、连接工业装备最多、服务行业最广泛的工业互联网赋能平台公司。创始团队融合了深厚的工业基因和互联网技术。目前拥有长沙树根互联子公司,并在持续扩张。树根互联打造了中国工业互联网赋能平台——根云,致力于给各工业细分行业进行赋能、创新和转型。     根云平台是中国最早、连接工业装备最多、服务行业最多的工业互联网赋能平台,能够为各行业企业提供基于物联网、大数据的云服务,面向机器的制造商、金融机构、业主、使用者、售后服务商、政府监管部门提供应用服务,同时对接各类行业软件、硬件、通讯商开展深度合作、形成生态效应。目前,平台已接入能源设备、纺织设备、专用车辆、港口机械、农业机械及工程机械等各类高价值设备超40万台以上,采集近万个参数,覆盖多达42个细分行业连接数千亿资产,为客户开拓超百亿元收入的新业务。并能够有效支持45个国家和地区的设备接入。   垂直&创业领域   机智云 公司:广州机智云物联网科技有限公司 名称:机智云Giz(mo)Wits 网址:www.gizwits.com      机智云平台是机智云物联网公司经过多年行业内的耕耘及对物联网行业的深刻理解,而推出的面向个人、企业开发者的一站式智能硬件开发及云服务平台。平台提供了从定义产品、设备端开发调试、应用开发、产测、云端开发、运营管理、数据服务等覆盖智能硬件接入到运营管理全生命周期服务的能力。     机智云平台为开发者提供了自助式智能硬件开发工具与开放的云端服务。通过傻瓜化的自助工具、完善的SDK与API服务能力最大限度降低了物联网硬件开发的技术门槛,降低开发者的研发成本,提升开发者的产品投产速度,帮助开发者进行硬件智能化升级,更好的连接、服务最终消费者。   Ayla的 IoT Platform 公司:AylaNetworks 名称:Ayla物联网平台 网址:www.ayla.com.cn       Ayla敏捷物联网平台Agile IoTPlatform、敏捷移动应用开发平台AMAP、以及大数据平台Ayla Insights为制造商提供安全可靠的联网能力,提供完善的数据反馈环路来打造更好产品,创造更具吸引力的用户体验。     Ayla敏捷物联网平台主要包含三大组件:Ayla嵌入式模块、Ayla云服务、以及Ayla应用程序库。这是一套完整的解决方案,让几乎任何设备都能够连接到云端和App;还包含了优质的工具和服务,让制造商可以对设备进行管理、配置以及分析。Ayla让制造商在打造物联网产品时,无需投资到网络堆栈开发、端到端安全、云服务以及其他基础技术工作,而是将资源投入到他们所擅长的专业领域中。     Ayla的企业级物联网云平台正在服务于众多全球顶级企业,将楼宇控制、暖通空调、家用电器、照明等设备连入智能系统,实现云端管理,以及随时随地的移动应用访问。    立子科技的立子云 公司:基本立子(北京)科技发展有限公司 名称:“立子云”物联网平台 网址:www.quarkioe.com       立子科技打造了可广泛应用于中国市场各行各业的应用使能平台——"立子云" 物联网平台。该平台目前已形成包括智能工业、智慧农业、智慧城市、智慧医疗、智能家居、车联网等多个垂直领域行业应用解决方案。      “立子云”平台是基于云计算架构设计的物联网应用使用平台软件,“立子云”平台采用 PaaS 层构建,帮助用户实现业务快速部署,减少前期资源投入,降低运营费用,提升用户企业应用的构建能力。      “立子云”平台会提供: 1.经过认证的硬件套件和软件库,用户可以使用它们将远程资产接入云中; 2.通过网络进行设备管理、数据可视化和远程控制功能; 3.通过 QuarkIoE 事件语言规则和QuarkIoEapplications快速定制上述内容; 4.用于和其他 IT 服务,比如 ERP 或 CRM 系统,进行现有功能扩展; 5.QuarkIoE 还可以帮用户托管HTML5的应用程序。   普奥的ProudThink 公司:普奥云信息科技(北京)有限公司 名称:ProudThink工业互联网平台 网址:www.proudsmart.com       普奥自主研发的ProudThink工业互联网平台,从工业企业的服务价值出发,聚焦智慧工厂运营、设备后服务、设备租赁、资产保全,打造支持广泛设备接入、多维数据存储、共享、开放的工业互联网云平台,借助物联网、云计算和大数据技术,帮助客户解决设备与产线的安全接入、运营、综合价值分析,形成企业核心竞争力,加速企业转型升级。      ProudThink工业互联网平台特点: (1)创新性的提出设备库、接入库、模型库和应用库四个库的概念,构建模型生态,使用户构建业务应用如同搭建乐高一样简单。实现产品快速实施的理念,两周时间帮助客户完成业务功能,使每一家企业都能快捷实现工业互联网转型。 (2)平台适应工业领域复杂的接入需求、业务管理需求,实现了广泛接入、多维存储、设备元模型、算法执行框架、数据可视化、场景组态云等多项软件技术创新,并申请了多项软件专利技术发明,平台技术完全自主可控。 (3)基于平台强大的定制化能力以及设备管理模型的灵活性,构建了面向不同行业应用的业务解决方案,包括设备后服务、石油化工、新能源等的行业应用,通过平台能力实现应用方案的快速构建。     智物联的Mixlinker 公司:深圳市智物联网络有限公司 名称:Mixlinker工业物联网解决方案 网址:www.mixlinker.com      深圳市智物联网络有限公司(简称智物联)是提供Mixlinker工业物联网解决方案的国家高新技术企业。致力于服务制造型企业,通过提供“设备物联”和“智慧工业”两种类型的解决方案,帮助其完成从“提供产品”向“价值服务”和“高效运营”的转型升级,从而达到工业4.0时代的要求。提供三大类服务: GARDS 云服务:该服务是整个体系的核心和基础。它本身是中性的,并没有任何行业的特殊性。但是,这个体系可以针对某个行业特点进行具体化,具体化后,实际就是一个行业的远程数据服务解决方案。 INDASS 数据分析服务:INDASS 是智物联体系中的工业物联网数据分析服务系统(Industrial DataAnalysis Service System),是智物联提供的工业物联网数据分析服务。通过对这些数据的深入计算和分析,找出数据的变化规律,从而分析出设备运行的规律。 MAIRS人工智能服务:MAIRS是数据分析服务中的在线人工智能服务,是智物联工业物联网数据分析服务系统INDASS的一个延伸服务,提供工业设备连续运行风险识别。MAIRS人工智能,会根据指数、指数的变化、趋势、稳定性,去识别当前的状态,以及判断未来的可能性。   智云奇点的Matrix  公司:北京智云奇点科技有限公司 名称:Matrix 网址:www.ablecloud.com      AbleCloud由小米云平台前研发负责人李海磊先生创立,其领导建设的小米云平台正在为小米生态链下数十家智能硬件公司服务。公司于2014年创立,面向居家类、健康类、车联网类、工业类智能硬件,精心打造物联网平台及能力,悉心服务行业客户与合作伙伴。      AbleCloud推出 PaaS开发平台Matrix,帮助物联网企业快速、灵活、低成本地实现设备物联网化;并推出了物联网大数据分析平台Inspire,为物联网企业量身打造针对物联网设备、用户、维保等数据的分析、挖掘和价值转化平台;以及建设了行业领先的物联网业务营运平台Genius,助力物联网企业实现可视化远程管理、精细化业务运营、无缝化多方协作。   中科云创的云中控 公司:中科云创(北京)科技有限公司 名称:云中控 网址:icloudinnov.my-odoo.com      中科云创的“云中控”是一个用于工业数据实时监控和设备健康管理的工业互联网应用平台。云中控结合物联网、云计算和大数据技术,以数据为基础、设备为节点、流程为准绳、人员为中心,综合运用物联网、语音识别、图像识别、机器学习、AR等多项最新科技,致力于为工业企业的设备全生命周期管理提供全面技术支持,提高企业生产效率,降低企业运维、融资和备件采购成本。     云中控平台通用性高,部署便捷,在高速设备、智能消防、数控机床、港口机械、融资租赁、智能配电、光伏发电等行业都用成功应用。   远景能源的EnOS™   公司:远景能源(江苏)有限公司 名称:EnOS™ 网址:www.envisioncn.com/enos         EnOS™为设备和第三方系统连接到云端提供了一个集成、安全且开放的loT平台,基于EnOS的优势可以将生活中非结构化数据映射成领域数字模型,对数据进行实时计算和批量操作,生成运行报表,提供商业价值评估,自动实现多系统的能源调节。       EnOS™覆盖全链路,主要投入在边缘计算和分析,以及云端的设备连接,数据、计算和应用,以及端到端的安全。 EnOS™在芯片、智能设备、通讯、云平台等方面和Partners紧密合作。平台具备跨领域的协同、从设备到应用的端到端安全、独立于硬件的平台中立性、提供能源整体解决方案、能源领域的丰富经验等优势! 目前,管理全球100 GW的能源资产、连接5000 万个传感器与智能设备,每年处理20 PB的数据量;未来平台将覆盖六大领域:风能、太阳能、传统发电、储能、电动汽车及充电桩、工业园区及用电。   涂鸦智能云 公司:涂鸦智能 名称:涂鸦智能云 网址:www.tuya.com      涂鸦是一个全球化智能平台,也是目前全球最大的语音AI交互平台,连接消费者、制造品牌、OEM厂商和零售连锁的智能化需求,为客户提供一站式人工智能物联网解决方案,并且涵盖了硬件接入、云服务以及APP软件开发三方面,形成人工智能+制造业的服务闭环。     涂鸦智能提供完整的产品智能化解决方案,让厂商只需专注于硬件本身,以最小的成本实现硬件智能化,获得产品最大增值。     涂鸦智能平台提供99.99%的不间断服务保障,全球DNS&CDN加速,平行架构轻松扩容,实时大数据处理,可用区自动切换,服务热部署,动态秘钥,Https加密通道等诸多保障。截至2017年11月底,Tuya智能产品已覆盖全球近200个国家和地区,客户超过10000家,产品触达数千万消费者。   云智易的物联云平台 公司:广州云湾信息技术有限公司 名称:云智易物联云平台 网址:www.xlink.cn     云智易物联云平台面向IoT硬件厂商,以让传统企业拥有物联网的力量为使命,以交付开箱即用的物联运营平台为目标,将平台能力作为服务,打包成软件或以SDK的形式提供给传统企业,协助传统厂商的产品快速向智能化和服务化转型。让传统企业实现以客户为核心,以设备为纽带,实现强连接和强运营。围绕目标,云智易产品分为4个子平台、80多个服务组件,涵盖物联网设备连接、设备管理、开发平台、数据和用户运营。   上海庆科FogCloud 公司:上海庆科信息技术有限公司 名称:FogCloud 网址:www.mxchip.com     上海庆科信息技术有限公司,国内领先的物联网系统解决方案提供商,国家级高新技术企业,上海市科技“小巨人”优秀企业。公司成立至今,成功研发了物联网芯片MOC系列、物联网系列模组及FogCloud云平台,同时推出多个端云一体化物联网系统解决方案。     FogCloud是面向消费电子生产商、工业设备生产商和集成商的企业级物联网云服务平台。为客户提供安全高效的接入、数据存储、数据分析等平台级服务。使客户轻松实现产品智能化,降低产品开发、部署和运维成本,提供运营效率,为客户创造新的商业价值。     FogCLoud应用领域涉及智能家电、工业领域、智慧农业、智慧城市、智慧医疗等。具备三高和三低优势(高效开发、高速接入、高度安全;低成本、低风险、低门槛),并分别为消费电子类,工业场景,以及集成商提供完善的解决方案。   小葱智能的AIOT平台  公司:北京小葱智能科技有限公司 名称:小葱智能物联网AIOT平台 网址:www.ixiaocong.com      小葱智能是一家专注于物联网+人工智能技术软硬件一体解决方案的高科技公司,应用物联网和人工智能技术,连接人、设备、内容和服务,赋能智能家居、智慧酒店,智能公寓,智能办公,智慧养老等产业升级。      小葱智能打造的全球顶尖的智能物联网平台,提供连接、人工智能、大数据、开放、安全平台服务。 连接:支持Wi-Fi、ZigBee、NB-IoT、LoRa、KNX、蓝牙等协议连接及互联互通;强稳定,高并发,毫秒级的物联网控制系统;支持千万设备并发和百亿级海量数据的处理能力。 人工智能:小葱智能大脑,实现设备自主学习及自动化运行;实现超强大的超级网关边缘计算能力,实现离线人工智能智能算法;打造基于AI的家庭安防,能源管理,智能环境,家庭娱乐等场景;支持人脸识别,语音控制,手势控制等多种交互方式。 大数据:完整的物联网海量数据分析能力,支持多维度用户和设备数据分析;专业的大数据挖掘能力,用户画像分析;具备智能设备的控制、联动、场景实时运算规则引擎。开放:基于Paas云架构设计的智能云服务,支持多租户、多硬件、多App和多应用接入;设备权限,数据权限,应用权限完全开放;仅技术支持与赋能,品牌形象可以完全基于第三方。 安全:具备银行级别的系统安全架构设计;HTTPS,ssl加密,DDos防御,权限控制等多种安全技术手段。   寄云科技的NeuSeer平台 公司:北京寄云鼎城科技有限公司 名称:NeuSeer工业互联网平台 网址:http://www.neuseer.com/      寄云科技开发的NeuSeer工业互联网平台,将工业设备、边缘计算、物联网、大数据以及云计算等先进技术紧密结合在一起,为工业企业提供从传感器数据采集、实时数据存储和转换、设备远程监控和告警,到工业大数据的深度处理和分析等多维度的服务,为客户提供包括故障诊断、故障分析和预测、可靠性分析、产线优化乃至产能提升等全方位的解决方案。      寄云NeuSeer平台提供了多种应用框架,可以大幅降低开发者的开发工作量,快速使用寄云NeuSeer平台的各种高性能和高可靠的服务。 寄云NeuSeer平台为工业互联网应用的开发者提供了强大的应用开发框架,包括了设备的接入、多种高可用的服务(MQTT、KAKFA、HDFS、时序数据库、用户帐户和认证、访问控制、数据库和可视化等),并支持开发者通过API调用训练好的模型。   物联智慧的Kalay云 公司:物联智慧科技(深圳)有限公司 名称:Kalay云端服务平台 网址:www.throughtek.cn     物联智慧科技(深圳)有限公司成立于2008年,为专业物联网云端服务平台解决方案商,积极致力于装置连线技术与云端服务平台开发。创立初期专注于开发设定容易、操作简单之设备点对点连线技术应用于消费型影像监控产品之上。随着物联网浪潮兴起,软件连接解决方案需求持续增加,物联智慧因具备丰富软硬件整合经验,于2012年正式转型为物联网纯软件公司,提供专业软件连线解决方案,2014年再进一步推出Kalay云端服务平台,为欲投入物联网发展之企业型客户扩大服务范畴。     Kalay 是台湾兰屿雅美 (达悟) 族的语言,意为「牵手」;也象征着物联智慧的云端平台极具弹性,可跨操作系统快速串联各种智慧应用。Kalay平台让零售商、系统集成商、消费型产品制造商及服务提供商简易快速开发联网装置,并快速建立专属智能产品生态系统。由Kalay Connect、Kalay Cloud及Kalay Apps组合而成的Kalay平台,透过完成整合之逾百种SOC芯片,协助企业加快产品上市速度及开发物联网相关应用。   myDevices的Cayenne平台 公司:myDevices 名称:myDevices Cayenne拖拽式物联网项目构建平台、IoT in a Box App物联网套装计划 网址:www.myDevices.com        myDevices成立于2013年7月,主投资方为Semtech,中国投资合作伙伴为鹏博士电信传媒集团。“让万物互联变得更简单——加速垂直物联网解决方案的开发和销售“是这家美国物联网公司的出发点,他拥有全球首个拖拽式物联网项目构建工具myDevicesCayenne,平台用户在两年间已增至47万。     为了满足用户进行物联网项目构建的需求,myDevices还创建了Cayenne IoT Ready Program——一个包含了多样化设备,接入厂商数百家的硬件库,用户可以通过用鼠标拖拽的方式从硬件库中随意排列组合,创建设备兼容的互动项目。     利用这些技术,myDevices将于4月份携手美国电信集团Sprint 推出IoT Factory物联网电子商务平台。开发者、系统集成商以及物联网爱好者可通过平台提供的IoT in a Box物联网套装计划直接创建或购买垂直物联网解决方案;企业客户可轻松选择套装组合方案并快速推出产品。   中兴CLAA的MSP 公司:中兴克拉科技有限公司 名称:MSP多业务统一平台 网址:www.zteclaa.com      中兴克拉科技有限公司是中兴通讯的控股子公司,于2016年12月29日正式落户苏州高新区。公司聚焦LPWAN物联网端到端解决方案的研发与交付,提供专业的网络规划咨询及运维等服务,具有核心产品、主导产业联盟标准制定及生态系统的平台型企业。      MSP(Multi-Service Platform)多业务统一平台:包括infiLink云化核心网平台、infiBoss网络运营平台、 infiCombo应用开发平台三大核心平台。 infiLink云化核心网平台:支撑CLAA网络大规模运营,完成CLAA网络设备管理及传感装置连接管理,提供非授权频段,高性能、高可靠运营级网络能力。 infiBoss网络运营平台:实现计费批价、客户关系管理、渠道关系管理、CLAA业务工作流、经营分析等;帮助客户进行低成本运营管理,通过共享共建方式,解决自身痛点问题的同时,实现产业转型。 infiCombo应用开发平台:提供符合CLAA规范的各类设备接入,同时支持各种工控接口,统一数据库的管理,支持图形化组态和呈现,跨系统的联动。快速组态定制CLAA物联网应用系统,满足客户灵活运用。   粒聚科技的LETSIOT平台  公司:南京粒聚智能科技有限公司 名称:粒聚LetsIot平台 网址:www.letsiot.com        粒聚LetsIot平台主要包括设备管理、连接管理、会话管理、网络管理、接口管理等多种功能模块。并与第三方基础能力平台无缝集成,为应用业务提供支撑服务。      该平台是中国物联网行业最早从事平台研发的先行者之一,经过近6年的积累,能够为农业、环保、工业、能源等企业提供基于物联网的平台服务、应用服务,当前服务客户超过200家,管理设备超过40000台,覆盖多种创新性的行业应用,我们充分利用网络技术、传感技术,为客户提供智能化实时在线的设备监测、数据采集、运维、管理模型和方法,结合大数据、机器学习、人工智能等领域的新技术,为客户提供前所未有的物联网增值服务。      LetsIot平台从开始设计之初即充分考虑了物联网的网络连接复杂化、行业特征离散化、应用场景碎片化的各种特点,旨在建立一个高可靠运营、低成本维护、适应多网络、多行业特征的物联网平台。  1.[连载]《C#通讯(串口和网络)框架的设计与实现》 2.[开源]C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 2.应用SuperIO(SIO)和开源跨平台物联网框架ServerSuperIO(SSIO)构建系统的整体方案 3.C#工业物联网和集成系统解决方案的技术路线(数据源、数据采集、数据上传与接收、ActiveMQ、Mongodb、WebApi、手机App) 5.github地址:https://github.com/wxzz/ServerSuperIO 6.助力中小企业级连云端,促进工业互联网平台蓬勃发展,全套解决方案。 物联网&集成技术(.NET) QQ群:54256083   
文章
安全 · 大数据 · 物联网 · Android开发 · 开发者 · 关系型数据库 · Oracle
2018-03-11
区块链技术指南.
区块链技术指南 邹均 张海宁 唐屹 李磊 等著 图书在版编目(CIP)数据 区块链技术指南 / 邹均等著. —北京:机械工业出版社,2016.11 ISBN 978-7-111-55356-4 I. 区… II. 邹… III. 电子商务-支付方式-指南 IV. F713.361.3-62 中国版本图书馆CIP数据核字(2016)第268750号 区块链技术指南 出版发行:机械工业出版社(北京市西城区百万庄大街22号 邮政编码:100037) 责任编辑:高婧雅 责任校对:殷 虹 印  刷: 版  次:2016年11月第1版第1次印刷 开  本:186mm×240mm 1/16 印  张:17.75 书  号:ISBN 978-7-111-55356-4 定  价:69.00元 凡购本书,如有缺页、倒页、脱页,由本社发行部调换 客服热线:(010)88379426 88361066 投稿热线:(010)88379604 购书热线:(010)68326294 88379649 68995259 读者信箱:hzit@hzbook.com 版权所有 ? 侵权必究 封底无防伪标均为盗版 本书法律顾问:北京大成律师事务所 韩光/邹晓东 本书作者 邹均:中关村区块链产业联盟专家、服务合约(Service Contract)方向博士,关注与实践区块链技术与应用。擅长云计算、大数据、软件定义存储。现为海纳云CTO,曾任IBM澳洲金融行业首席软件架构师、多个云计算公司高管,是融智北京高端外国专家。在国际会议期刊发表论文20余篇,获2015年澳中校友会ICT和媒体类别杰出校友奖,区块链相关论文获2016年IEEE ICWS最佳博士论文奖。 张海宁:VMware中国研发中心云原生应用首席架构师,西蒙弗雷泽大学计算机科学硕士,多年软件全栈开发经验,Harbor企业级容器Registry开源项目负责人,Cloud Foundry中国社区最早的技术布道师之一,国内最早的iOS开发者。在VMware公司先后负责开源PaaS平台Cloud Foundry、大数据虚拟化、软件定义存储VSAN等领域的技术布道和解决方案推广。目前着重关注区块链、容器和云计算等领域的研究和开发工作。之前曾担任IBM资深软件工程师、Sun公司资深解决方案架构师等职务。 唐屹:广州大学教授、理学博士,专注于区块链安全与应用、网络信息安全、分布式计算等,为国外知名安全公司开发过椭圆曲线密码软件,获密码科技进步二等奖(省部级)。主持或参与完成多项国家级或省部级自然科学基金与人才计划等重点项目。 李磊:合肥工业大学副教授,Macquarie大学博士。擅长数据挖掘、社会计算、智能计算。获2011年澳洲最优博士论文提名,并多次担任IEEE国际会议的程序委员会委员及组织者。在社会计算和区块链等领域发表论文40余篇,被引用350余次。 刘天喜:深圳拓邦股份有限公司总经理助理,高级工程师、北京大学博士。在移动通信、集成电路、移动互联网、物联网等领域深耕多年,擅长技术产业研究、行业分析和战略规划,主导或参与中国工程院、中央网信办、工信部、国资委等十余项产业研究课题。发表学术论文10余篇。 陈晖:区块链PPk开源项目发起人和主要开发者、巴比特网站专栏作者与区块链技术版版主。对网络与通信技术有深入实践与研究,十余年的软件研发和项目管理经验。通过深度实践以比特币为代表的数字加密货币领域,率先提出“区块链+网络通信”将最大化发挥区块链革命性价值的观点,并着力以开放开源项目的形式推动区块链与网络通信领域融合的技术创新和应用发展。 曲烈:Macquarie大学博士,曾任Macquarie大学研究员、助教。从事信息安全、密码学、区块链、服务计算以及信息系统等领域的研究。多次在国际知名会议和期刊发表论文,并受邀宣讲。 郑晓明:中国电信云计算分公司工程师、Macquarie大学博士,专注于云计算、云存储、监控系统、推荐系统、模式识别等,近期研究区块链相关技术。 序一:什么是区块链 2015年是国外区块链的元年,世界许多重大组织,包括高盛、花旗银行、英国央行、美国央行等机构纷纷在区块链上面投资。大量的投资从2015年10月开始便进入了区块链,原因是在《华尔街日报》刊登一篇的文章,里面报道区块链经过了多次的实验和验证,许多金融机构证实了区块链是一个颠覆性的技术。之前华尔街日报甚至宣称,区块链是最近500年以来在金融领域最重要的突破。而这500年来有多少科技上的突破,但华尔街日报却说区块链是人类历史上在金融领域最大的突破。这可能是因为出现了一个新的货币媒介,而每一次新货币媒介出现,都会引发社会和经济上的重大改革。 2016年1月,英国首席科学家建议英国政府把区块链技术列为英国国家战略,这是区块链历史上一个重大突破,原因是基于华尔街以及金融机构对区块链的评价。但自从2016年1月以后,区块链的评价是基于科学历史悠久的英国官方的评价。从各样指标来看,英国在科学上的建树经常是排名第二,仅次于美国。而世界科学排名第二的英国甚至把区块链列为国家战略,表示区块链的重要性毋庸置疑,而且有深远的影响。能够成为国家战略必须在科学上被验证过,另外还必须带来巨大的商业价值,两者都不可缺少才能成为国家战略。笔者曾在2016年3月拜访英国首席科学家,他们认为,区块链可以在各行各业使用,带来行业公平,例如:诚实报税、政府监管、反洗钱、国家安全等。 2016年可以说是中国区块链元年,因为在2016年区块链在中国受到极大的重视。首先是1月的时候,人民银行宣布要使用数字货币。然后在30日以后,许多中国的组织单位就开始投资区块链。中国许多大学也开始研究区块链技术,大型金融机构都纷纷表态成立区块链团队来研究区块链,区块链的讨论班以及研讨会如雨后春笋一般大量涌现。 但到底什么是区块链?笔者在2015年开始研究区块链,就发现了一件事情:学生们在实验,提出来的区块链模型、算法,或者架构都是有偏差的,而且有时候偏差甚大,例如,在设计私有区块链的时候把公有区块链的全部思想搬过来。结果不像私有区块链,但也不像原来的公有区块链。另外发觉很多人对相关的算法不熟悉,所以有的时候会有一些错误的看法,例如拜占庭将军的问题是一门专门的学问,而区块链只是用了一个近似的算法,若是把两者混为一谈,就会让人感到迷惑。 再加上在讨论区块链时,有时候会有情绪化、宗教化或者政治化的言语出现,原来在数字货币领域,数字货币的先锋常带有一些政治思想,如无政府主义。再加上原来的数字货币过去有洗钱、犯罪的记录,所以在讨论时,有时候会失去焦点。这一点在英国首席科学家的报告里也有提出来,他们认为应该重视区块链,把区块链当做一门科学技术来看,而且是一门有助于经济的科学技术,而不是吹捧任何政治思想,或传递宗教概念。 笔者从今年初开始多次提出应该以系统工程角度来发展区块链技术,例如基于云计算、软件工程、数据库等系统工程技术来开发区块链,区块链不只是一个加密技术或是数字货币,而是一门系统工程。区块链不是某些特殊政治思想的乌托邦,或洗钱的工具,而是一门科学家和工程师可以研究的系统工程,而且这项技术可以成为国家战略,改变各行各业的流程以及基础设施。英国首席科学家已经做出这样的判断,英国央行也做出了类似的决定,英国政府已经派了两位部长来领导这项计划,这就是我们所期 待的。 所以我非常高兴像邹均、张海宁、唐屹、李磊、刘天喜、陈晖、曲烈、郑晓明这些年轻的学者们开始书写区块链技术,因为现在市面上有关区块链的书都是在讲解区块链的概念及应用场景,但是今天描述区块链技术的书却很少。我们希望读者能多了解区块链技术,多发展区块链技术,并且加以应用。只有我们了解区块链技术之后,才能真正理解区块链的意义,而不会随波逐流,人云亦云,并且有自己的判断,希望读者们能够认真读这本书,了解区块链技术,相信必定会大有收获。 蔡维德 美国亚利桑那州立大学荣誉教授,北航区块链实验室主任 序二:区块链——未来已来, 只是尚未流行 比特币诞生于2008年美国次贷危机的末期。在比特币白皮书,即中本聪的论文《比特币:一种点对点的电子现金系统》中,还没有“区块链”这个词,只有“区块”(Block)和“链”(Chain)。一些人为这种超越主权、不会滥发的虚拟数字货币而欢欣鼓舞,开始积极投入到挖矿、炒币中,甚至发行自己的数字货币进行筹资(ICO),俗称“币圈”。而另一些人,包括很多专家和学者,则专注于比特币底层技术,对区块链(Blockchain)技术和应用进行深入地研究,考虑能否将这个技术加以改进,运用到更多的领域中去,俗称“链圈”。 七年之后,以2015年10月美国《经济学人》杂志发表的《信任的机器》(The Trust Machine)的封面文章为标志,大家意识到,作为比特币底层技术的“链”,其价值远大于比特币本身。区块链可以让人们在没有中央权威机构监督的情况下,对彼此的互相协作建立起信心。简单来说,它是一台创造信任的机器。华尔街开始热捧区块链。Gartner发布的2016年技术炒作曲线图表明,当前区块链正处于期望的最高点,即“过度期望期”,这也意味着在未来不久的一段时间,区块链将坠入“期望幻灭期”。人们对区块链的过度期望,实际暗示着对其存在很多误解,其中最典型的有三个,因为其关键词的首字母都是D,所以笔者将其归纳为“3D误区”。 误区一——区块链是一种颠覆性(Disruptive)的新技术 首先,区块链不是一项新技术,而是一个新的技术组合。其关键技术,包括P2P动态组网、基于密码学的共享账本、共识机制(拜占庭将军问题,即一种分布式场景下的一致性问题)、智能合约等技术,都是已经有十年以上的老技术了。但是,中本聪将这些技术很巧妙地组合在一起,并在此基础上引入了完善的激励机制,用经济学原理来解决传统技术无法解决的问题。 其次,这个技术组合虽然有其独到的创新之处,但并非是颠覆性技术,是现有技术的有力补充。目前大部分人已经认同,区块链是“价值互联网”的基础协议,从这个角度看,其地位与当前“信息互联网”的HTTP协议相当,两者都是建立在TCP/IP协议之上的应用层协议,同是互联网的两大基础协议。因而,两者是互补而非颠覆的关系。 最后,这个技术组合,并未颠覆现有业务,而是引入了新的思想,去改善和改造现有业务模式,从而为大众提供更好的、普惠的服务。《华尔街日报》在2015年1月曾发表题为《比特币与数字货币的颠覆性革命》的文章,认为比特币的数字货币发行机制可能“颠覆”目前各国央行的法定货币发行模式,这算是最接近“颠覆”性的区块链案例。而实际上,比特币在经过8年多的发展后,虽然总市值发展到了100亿美元,但在全球经济活动中的比重还是微不足道。与此同时,也确实有一些国家的央行,如英国和中国,在考虑摈弃比特币的挖矿机制后,通过借鉴数字货币的一些机制,在一定范围内实现可跟踪、可追溯、数字化的法定货币。 误区二——区块链就是去中心化(Decentralized)的 首先,很多人认为Decentralized是区块链的核心特征,并将其翻译为“去中心化”。然而这个最早由国内“币圈”所做出的翻译,多少有一点主观和政治化的色彩。作为软件系统的网络架构一般有三种模式:单中心、多中心、分布式。单词Decentralized只是表明不是单中心模式,可能为多中心或弱中心,也可能是分布式的。所以在中国台湾地区,大多将Decentralized翻译为“分散式的”而不是“去中心化的”。 其次,在中本聪的整篇论文中并没有提到过Decentralized,而只有Peer-to-Peer(P2P)。在2016年6月召开的W3C区块链标准会议上,以太坊的核心开发团队EthCore就明确表示,不再使用Decentralized这个词,而是用P2P、Secure、Serverless这类纯技术性词语。 最后,The DAO事件表明,完全去中心化是不可行的。The DAO是一个基于以太坊公有链的众筹项目,它在短时间内就募集了价值1.6亿美元的数字货币,成为史上最大的众筹项目。然而由于其智能合约的漏洞,导致The DAO被黑客攻击并转移走价值6000万美元的数字货币,最后不得不黯然落幕。在挽回这个损失的过程中,原有的去中心化机制未能解决问题,最后还是通过“集中式”的方式,强制以太坊进行“硬分叉”完成交易回滚。但这也导致了以太坊社区的分裂,产生了ETH和ETC这两种同源却又不同价格的数字货币,给以太坊生态系统带来了很多负面影响。此次事件之后,很多人对区块链的“去中心化”进行了反思。前上交所总工、ChinaLedger联盟技术委员会主任白硕则认为“去中心化不是区块链的本质特征”。万向控股副董事长兼执行董事肖风则进一步阐述“区块链的核心是分布式而不是去中心”。 误区三——区块链交易存在很大的延迟(Delay) 在使用比特币进行支付时,一般需要10分钟才能完成一次支付确认。如果要保证支付交易的不可逆转,通常需要等待连续的6个数据块完全确认,这至少需要1个小时的确认时间。而我们通常使用的银行网银支付和第三方支付,通常都是秒级完成的。与之相比,使用区块链的比特币支付实在太慢。 然而,我们再考虑一下跨境支付的场景,当我们使用Swift完成一次跨境汇款时,通常需要3~5个工作日,对方才能收到相应的款项。而使用比特币进行跨境汇款,仅仅需要一个小时就能收到汇款。如此比较起来,比特币支付已经是非常快了。 为什么有两个完全不同的结论?因为,对于比特币支付来说,支付确认过程即是清算和结算的过程。如果把支付过程和清结算过程作为一个整体,来比较两类支付的延迟时间,使用区块链进行交易还是很快的。区块链交易的本质,是大幅减少了交易后的处理工作,消除了大量的人工干预过程,从而提高了交易效率。 通常我们把区块链分为公有链、私有链、联盟链三种,比特币和以太坊都属于公有链范畴。在数字货币之外的场景中,尤其是在金融领域中引入区块链技术,将面临很多问题。如何引入以及引入哪种区块链,还存在许多权衡决策方面的障碍。 第一,主流金融机构难以接纳公有链。R3发布最新研究报告,证明公有区块链不可作为金融机构解决方案。2016年Swift发布白皮书指出,当前世界主流金融机构无法接纳公有区块链。对于这些金融机构而言,需要的是一个自主可控的系统,而公有链显然做不到这点。 第二,私有链与公有链架构差异大。笔者曾仔细分析了以太坊和超级账本这两个典型区块链的模块结构,发现两者差异巨大。很多公有链的核心模块,如挖矿、PoW共识、原生货币等,在私有链环境中是完全不必要的,甚至是有害的。与此同时,公有链系统中还缺失一些诸如身份认证、权限管理等在私有链中必要的模块。以太坊创始人Vitalik也曾坦言,只有5%的以太坊程序可被金融领域使用。 第三,私有链和联盟链还很不成熟。目前,以比特币和以太坊为代表的公有链相对比较成熟,而私有链和联盟链则远远不够成熟。开源而且好用的联盟链,更是不存在。目前全球影响力最大的开源联盟链,是Linux基金会下面的超级账本(Hyperledger)项目,目前已有95个成员单位。旗下的Fabric子项目是以IBM捐献出的OpenBlockchain为主体搭建而成的,目前还处在0.6版的快速迭代过程中,到0.8将是Alpha版,而0.9则是Beta版,再经过3个RC版本之后,才会进入相对成熟的1.0版。 想要找到或研发出一个成熟稳定的、适合金融领域的联盟链底层系统,还任重道远,需要很多仁人志士的共同努力,踏踏实实地投入到区块链的基础研究中去。 在目前已出版的区块链书籍中,有很多都冠以“革命”、“重塑”、“重新定义世界”等煽动性词语作为书名,这更像是一种口号,而非切合实际的研究。我很高兴地看到,还有像邹均、张海宁、唐屹、李磊、刘天喜、陈晖、曲烈、郑晓明等这些研究者们,在踏踏实实地研究区块链底层技术,用普实的话语来介绍和普及区块链技术,让更多的人了解和接受区块链技术,实实在在地让人们了解区块链技术特征和特点,以及在现阶段环境下的不足,如何去改善这些不足等。知己知彼,方能百战不殆。世上没有“银弹”,没有哪一种技术能解决所有的问题。 希望读者们能够通过本书,深入地了解区块链技术。也只有深入了解其底层运作机制和原理,才能更好地灵活运用该技术,取得理想的效果。 未来已来,只是尚未流行,我辈仍需多努力。 张斌,联动优势科技有限公司CEO 序三:区块链——连接虚拟与现实 我们对于一种新兴的技术,往往会在短期内对它有过高的不切实际的期望;泡沫破灭后,在长期的时间轴线上,又往往会忽视它的深刻影响,这一句话,用在区块链上,再合适不过。 区块链的发明,是建立在互联网之上。其所使用的技术,像P2P、分布式存储、分布式密钥的思想,十几年前就已经存在,但是如果没有中本聪那一篇开创性的关于比特币的白皮书,所有这些强大的工具,都还只是埋藏在学术论文堆里。因为这些工具单独使用,并不能解决问题,只有中本聪,出人意料地提出了一个系统性的、可供实践的解决方案。如果他能提前十年提出这篇论文,那么比特币就可以提前十年发明出来。所以,单个技术点,并非是区块链的魅力所在,运用这些技术的全新思想,才是区块链的本质和核心。 单纯把区块链等同于一种分布式数据存储技术,就像将浏览器说成是一个网页解释器,将手机说成是一台手持电话,将云计算说成是一个服务器的集群一样,说了等于没有说,甚至比没说更糟糕,更容易造成误解。当全球的用户都打开浏览器访问网页,当街上每一个人都携带着一台能拍照、能上网、带GPS,运算性能可以发射登月火箭的智能手机,当我们所有的工作和生活数据都发生与存储在云上的时候,我们看到在浏览器、移动互联网和云计算上所承载的产业生态,跟最初的技术描述相比不知道差了多少万里。所以有人让我用一句话解释什么是区块链的时候,我往往会争取机会多说几句,争取让人更多了解一点。 从功能上说,互联网实现了信息的传播,而区块链实现了价值的转移。互联网在最开始的时候,就是以信息传输管道的模式进行的设计,TCP?/?IP协议底层并不关心上面传输的数据有什么差别——对于底层的交换机和路由器来说,一切都是0和1而已。无差别的信息传输,创造了信息复制的便捷通道,也造就了今天信息爆炸的信息社会。但是互联网虽然解决了信息传播的问题,却带来了信息权属的新问题,我们可以将一首歌曲或者电影,在几个小时内传遍全球,我们却不能知道,究竟是谁拥有这部电影的权利,是通过什么样的路径进行的传播。而区块链则可以做到,我将一个数据,发送给另外一个人之后,我自己就不再拥有这个数据的所有权,从而实现了可以利用一个虚拟的系统,来传输实际的价值。 从机制上说,如果说TCP?/?IP是机器与机器之间的通信协议,而区块链就是机器与机器之间的信任机制和合作协议。对于不需要验证真假的信息传输来说,TCP?/?IP已经足够可用,但是一旦属于不同实体的计算机,需要彼此之间进行自动化的沟通和合作的时候,问题就会变得相当复杂。现实世界公司与公司之间的合作,有律师和合同来进行条款约定,有执法机关来保障合同的实行,而在虚拟世界,计算机没有办法开设银行账户,属于不同实体的计算机,也没有办法去法院起诉对方,因此在沟通和合作的时候,一定要有一种有效的机制,来快速实现共同协作。区块链就可以起到这样一个作用,所以在区块链行业中有一句话:代码即法律(Code is the Law)。未来不管我们的生活还是工作,都会有越来越多地需要计算机参与,人类将整体进入后人工智能时代,区块链就是在为这个时代的到来进行前期的铺垫和准备。未来我们将会看到无人驾驶汽车,通过区块链协议自动缴纳过路费用;智能投资顾问自动为我们计算各种投资组合;未来最先进的金融公司,也会像现在的无人工厂一样,看不到太多工作人员,只有无数的计算机,在快速地缔结无数的智能合约,进行精确到小数点后的资产配置。 因为区块链的以上属性,区块链将会是连接虚拟世界与现实世界的最佳桥梁。在未来,区块链所连接的,不会像比特币一样是无法辨别的匿名账户和价值不定的虚拟资产,而将会是千千万万真实存在的个体和公司实体。上面所承载的资产,都将具有现实的价值和对应物,而这个虚拟的网络上发生的一切,也都会直接作用于现实世界。这一过程,需要的不仅仅是单纯的技术,还需要金融、商贸、法律、政府等各方面专家和人才凝聚在一起,来保证这一映射的有效性,也是我们一直在努力推进区块链生态系统和可信区块链概念的原因。区块链有巨大的潜力和未来,而这些潜力和未来,需要社会的共识与力量来共同推进和实现。 邓迪 太一云科技有限公司董事长兼CEO 序四:区块链——转型之擎 邹均先生在国内外企业的IT架构、云计算、大数据、IT产品创新方面有很多年的经验,邹均本人也是我多年的好朋友和同亊。这次邹均先生主写的这本区块链的书,相信一定会在IT业内,特别是在企业IT架构圈内产生巨大的反响,一定会深受广大区块链爱好者、参与者、实践者的热烈欢迎。 我和邹均先生工作背景相似,曾经从事过多年企业IT工作,从2009年开始,做云计算的创新,近年来也做金融科技的创新。从我这一年多时间的区块链的实践中,我个人看到区块链目前虽然还在发展初期,而每天区块链技术都有新的变化和突破,每天都是“山雨欲来风满楼”。但是区块链这样一个意义重大的技术,对整个IT的架构、基础协议、标准、运营、环境具有颠覆性的意义。因此我们应当充满紧迫感,应当预先了解区块链技术、商业模式和发展趋势,加强与国内外各界的合作,特别是在区块链的底层领域、区块链的平台领域和区块链的应用领域的合作,我们应当在区块链的全球协议和标准方面要占据主动。 区块链技术具有全新的理念和逻辑结构,并且它每天还处在发展变化过程中,因此区块链技术与应用在企业内不可能单打独斗,区块链的应用必须在企业架构中上着天、下着地,和企业现有的应用系统相互关联。我们不应该简单地把区块链理解为一项技术,而应当考虑它在更高的企业IT架构转型层面的作用。区块链的应用不是简单地提供一个只能追加、不能更改的分布式数据库解决方案,而是要把区块链与云计算、大数据和传统企业的系统相互关联,使得企业系统由原来的传统系统和云计算这种“双核驱动”转变为传统系统、云计算与区块链的“三核驱动”,让企业的异构系统更好地发挥协同效应,一起解决原来传统IT系统难以解决的问题,这样才能更好地发挥区块链的独特性,才能够使传统企业IT架构更好地转型。 本质上,因为区块链链与链之间具有隐私、安全、共识、自治、价值共享的特性,所以在技术层面解决了互联网上的价值传递问题。同时,区块链又具有底层开源和改变业务规则、创新业务多方共识等逻辑,因此区块链是未来整个IT架构和互联网转型的重要支撑。而企业与互联网IT架构的转型也为未来经济的转型、服务模式、信用交换和商业规则的转型提供了关键支持,因此研究和应用区块链不仅要研究技术,更要注意在互联网时代赢者通吃的规则,重要的是要研究和应用区块链带来的商业规则的改变。 以前我们的信息化,不管是企业信息化、政府信息化,还是个人信息化,实际上都侧重在机构内部的信息化。这几年随着互联网、云计算、大数据、平台经济的蓬勃兴起,现在IT正在促使企业由内部信息化转型为外部信息化,最终通过平台转型为信息化的企业,由政府信息化转型为信息化政府,由个人信息化转型为信息化个人,这些词虽然相似,但性质具有很大的不同。它们在逻辑关系、业务处理方式、信息的确权、信息的使用、组织流程的改变、企业治理结构方面有很大不同,信息化已经不再是工具、手段和渠道。这样一个信息化平台的升级,未来会使得实体经济更好虚拟化,使得虚拟经济更好地结合实体化。 实施区块链既需要具有传统IT系统的经验,也需要有互联网、云计算、大数据的实施经验,需要对整个IT系统变迁具有很强的洞察力,需要把整个IT系统协同起来,让整个IT系统互联互助,相互合作。因此,区块链系统在企业的应用,必然需要结合本地的实践,发挥原创的精神,必然还要有互联网时代产品开发的能力。而做一个好的区块链应用更需要研究共享经济理论、价值互联网和金融科技的创新与发展。这一切都需要在区块链理论与研究方面走到前列。 因此,我希望邹均先生等人写的这本区块链的书籍,会连接IT架构的过去、现在与未来,开启大家创新的热情,会对行业产生影响,同时为大家开启一扇协同企业传统系统、云计算、大数据和区块链新的大门。 黎江 北京世纪互联创新研究院院长 前言 为什么要写这本书 1900年9月8日,一场4级强度的飓风横扫德克萨斯州的加尔维斯顿。这个位于墨西哥湾的岛城,靠近德克萨斯海岸,在灾难来临前拥有37?000人口和光明的经济前景。飓风猛烈攻击了这个毫无防备的低海拔城市,给该市带来了巨大的毁坏。飓风风速为每小时225千米,毁掉了3600座建筑,使占整个城市3/4的12个街区彻底消失,死亡人数为8000~10?000人。是迄今为止,美国历史上死亡人数最多的自然灾害。 而2016年8月2日在中国华南沿海登录的“妮妲”台风,风力14级,最高风速每小时151.2千米,台风过境的广东、广西、湖南、贵州、云南5省(自治区),虽然也造成了重大经济损失,但在人员伤亡统计报告中,只有1人失踪。 这两次自然灾害的结果如此不同,归功于人类掌握了计算这个神奇工具。在妮妲形成过程中,美国、日本、中国气象监控部门就不断跟踪,通过监控数据,气象数学模型和强大的计算能力,对台风进行了准确的预报和预警。在台风到来前,有关部门做了积极准备,7.6万人得以紧急转移安置,使得损失得以降到最低。 今天,IT已经渗透到各行各业,人们已经能近距离接触无人驾驶、机器人、虚拟现实(Virtual Reality)、增强现实(Augmented Reality)等先进技术,当人们在享受IT给人们生活带来的各种便利和好处的时候,也日益感受到来自不当使用科技所带来的挑战。例如,国内日益猖獗的电信诈骗,全球范围内黑客的攻击和安全勒索,以及未来基因技术和AI(人工智能)技术给人类所带来的伦理、生活和工作方面的全方位冲击,都使得有识之士开始思考如何应对科技发展所带来的风险。 一直以来,笔者对计算技术有一种既感恩又敬畏的情结。首先感恩我们的时代,计算技术的发展使我们避过很多前人无法避过的灾难;但高速发展的计算技术必然导致机器的智能超过人类自身,因此而产生的未来不确定性也使笔者的敬畏之心油然而生。 笔者也一直有一个预感,未来可能需要针对IT,特别是与业务结合紧密的云计算和智能设备建立监管、问责的机制。笔者的意思不完全是对从事IT或智能设备的人进行监管问责,甚至要考虑对智能设备进行自动问责。这个看似荒谬的想法促使笔者选择了云计算的问责机制(Accountability in Cloud Services)作为博士研究方向。 所谓云计算的问责机制(Accountability),指的是在云计算架构中,能建立一个自动化的问责机制。该机制包括形式化的标准服务合同定义,服务合同的发布,服务合同执行的监控,合同违约方的自动发现,违约方的罚则和执行,以及合同双方争议的仲裁。举个例子来说,今天公有云的提供商,都没有提供能让电脑理解的云服务合同。合同双方的责任、义务和权利没有精确的界定;云服务提供商的服务好坏,是否遵从合同,都没有自动化的方法去检测;服务故障责任也没有办法界定;出现争议也只能靠人工去解决。而云计算的问责机制,旨在建立一个自动化的体系来让电脑自动规范电脑的行为。 可想而知,这个研究课题非常有挑战。在博士研究的过程中,笔者也走了很多弯路,一直没有找到好的解决方法,直到三年前接触到比特币,突然意识到区块链技术是提供问责机制的最理想平台。这是因为区块链技术中的防伪、防篡改、交易可追溯、数字签名和智能合约技术提供了一个公正、可问责(Accountable)、自动执行的技术平台基础。 但是区块链目前还停留在概念炒作阶段,很多关注点还停留在金融应用,特别是虚拟货币方面的应用。笔者认为,区块链未来可能最适合作智能设备的“警察”,为物联网和智能设备的自治管理提供一个基础平台。区块链技术应该推广应用到除金融外的行业,因此萌生了写这本书的念头,作为博士研究工作的一个延续。 而写这本书的另一个原因,也是深感在学习区块链技术过程中碰到的参考资料不足的痛苦,希望能整理过去的学习所得,对区块链初学者有所帮助。 从2008年中本聪发表比特币白皮书算起,区块链技术才走过短短8年的时间。虽然区块链1.0、2.0和3.0的架构理念已经提出并得到一定程度上的认可,但区块链的技术发展仍然处于初级阶段,区块链的应用还刚起步,成熟的区块链应用除了比特币系统,还寥寥无几。在这种情况下写关于区块链的书籍,其实面临一个两难境况。一是区块链的技术变化快,像个移动的靶子;可供参考的资料又少,要准确把握一个快速变化的技术非常困难,而且受限于写笔者的水平,实践经验,写出来的书难免有很多错误,弄不好会贻笑大方。而另一方面,正因为变化快,资料少,广大区块链技术爱好者又渴望能找到一本对他们学习、理解、掌握区块链架构和技术有所帮助的书。 目前在市场上的区块链书籍大致分为两类:一类是以梅兰妮·斯万(Melanie Swan)的《区块链:新经济蓝图及导读》为代表的,谈区块链对整个宏观层面所带来的革命性影响的战略性书籍;一类是以安德鲁·安东普洛斯(Andreas M. Antonpulos)的《精通比特币》,以及普林斯顿大学以阿文·拿瑞延南(Arvind?Narayanan)为首编著的《比特币和密码学技术》为代表的专注于比特币的技术性书籍。这些书籍满足了目前市场上一部分对区块链在行业中的应用有兴趣的偏业务的人士,以及对比特币技术有兴趣的偏技术的人士的需求。 在这两类书籍所覆盖的市场中,其实还有一个很大的空白。我们发现,在对整个区块链架构(包括区块链1.0、2.0和3.0)进行系统性剖析,包括对其中关键技术(密码学、共识算法)等进行系统性论述,对不同的区块链架构形式(联盟链、公共链、私有链、侧链、多链、互联链等)进行系统性介绍的书好像还没有。而这样的书对理解、普及区块链技术,推动区块链应用落地可能会有所帮助。因此,与其等待这样的书籍出现,不如自己行动,为区块链技术的推广尽绵薄之力。笔者也就自不量力,把可能被同行笑话的风险置之脑后,鼓起勇气集合几个对区块链着迷、志同道合的朋友,在条件不成熟,时间比较仓促的情况下,经过不少不眠之夜的努力,克服重重困难,特别是在机械工业出版社华章分社编辑高婧雅的大力协助下,完成了该书。 本书的缺点是显而易见的。 一是因资料匮乏、技术变化快而难免出现技术错误。因此,本书的目的,主要是抛砖引玉,欢迎读者多提宝贵意见,争取在下一版本能纠正大部分的错误,不断完善、提升本书的质量。 二是缺少应用案例。其实目前网上的应用案例也有不少,但是我们认为,如果只是拿别人在网上的案例加工修改,从深度、广度方面都经不起推敲,起不了真正案例的作用。除非由真正落地该应用案例的主要负责人来写,才能使读者有真正的收获。受限于我们的人脉圈子和条件,目前只能请到PPKpub.org开源社区组织者陈晖先生来写一个区块链在标识注册方面的应用案例。在此鸣谢陈晖先生的大力支持,将来也欢迎有更多的区块链应用的领军团队提供应用案例,在未来更新的版本中补上在应用案例方面的短板。 本书特色 1)和目前市场上主流的区块链书籍强调区块链去中心化的概念,以及对业界带来的革命性影响不同,本书主要是从技术的角度,介绍区块链的基础概念,特别是对区块链的架构进行了详细的剖析。 2)对区块链的关键技术,包括区块链架构(1.0、2.0、3.0)、密码学和共识算法等做了一个详尽的介绍。 3)提供了比特币开发指南,通过以太坊智能合约开发来帮助初学者入门。本书也用专门一章来讨论区块链的常见问题,包括对近期发生的DAO攻击事件,都有详细的分析。 4)在区块链技术落地方面,本书也提供比较典型的区块链解决方案,包括支付和标识登记方面的解决方案。 5)以独特的架构演进对IT发展的影响为切入点,给读者展示一个全新观察整个IT历史的视角,并在这个视角下探讨区块链技术在未来IT发展中的影响和地位。 本书中一些实操的例子和章节,比较适合区块链初学者和程序员,可以成为区块链入门的书;架构剖析和深入分析方面的章节,比较适合IT架构师,以及区块链技术爱好者来深入了解区块链架构特点和技术细节,对设计区块链的解决方案有所帮助;解决方案和常见问题章节有助于区块链从业人员全面了解区块链应用落地方面的情况。最后一章是从架构视角对IT发展的一些观察,仅供喜爱思考的IT从业者参考。 读者对象 区块链从业者 IT架构师 区块链应用开发人员 对区块链技术感兴趣的人员 如何阅读本书 本书分为三大部分,共11章。 第一部分介绍基础和入门,包括以下2章内容。 第1章 本书的开篇,首先介绍区块链的定义和特点,并简单介绍了区块链的主要类型,然后通过介绍购买、存储和交易比特币等实际使用场景来让读者对区块链有所体验,然后再探讨一些关于区块链的常见问题。 第2章 介绍区块链的基础概念,为后面深入介绍区块链技术做铺垫。 第二部分介绍架构和核心技术,包括以下8章内容: 第3章 详细介绍区块链1.0、2.0、3.0典型架构,同时介绍了互联链的概念和架构。 第4章 详细介绍了区块链涉及的密码学原理和典型的算法。 第5章 介绍了在区块链架构中常用的共识算法。 第6章 提供比特币开发指南,通过实际案例来帮助初学者入门。 第7章 提供以太坊上的智能合约开发指南,帮助初学者掌握智能合约的开发要领。 第8章 详细介绍HyperLedger开源项目及其架构。 第9章 讨论区块链上常见的问题,包括最近出现的The DAO攻击的源码级分析。 第10章 讨论区块链上的典型解决方案,一个是以闪电网络为主的支付方案,另一个是以标识登记为主的开源ODIN解决方案。 第三部分为回顾和展望,即第11章,主要回顾IT架构演进历史并展望未来区块链对IT发展的影响。 勘误和支持 由于笔者的水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果你有更多的宝贵意见,欢迎通过微信或邮件进行讨论。你可以通过微信joezou3986、微博@云中君3986,或者发送邮件到邮箱joezou@openstack.org.cn联系到我,期待能够得到你们的真挚反馈,在技术之路上互勉共进。 致谢 首先感谢我的作者伙伴——张海宁先生、唐屹教授、李磊教授、刘天喜博士、陈晖先生、曲烈博士和郑晓明博士。他们在工作之余,挤出宝贵时间为本书贡献了他们对区块链技术的理解和洞察。特别感谢我的大学同门师弟Henry张海宁先生在关键时刻的出手相助,为本书贡献了很多精力,他不单在内容上积极供稿,也在本书的审定、修改和校正方面下了很多工夫。唐屹教授和李磊教授也在繁忙的教学和学术研究中抽出时间来对一些区块链的基本概念和关键技术(包括密码学和共识算法)做了详尽的阐述。刘天喜博士在本书的框架规划和开篇设计上做了很大贡献。而陈晖先生的比特币开发指南对很多初学者入门有很大的帮助,他的ODIN开源项目也是区块链登记方面的一个典型解决方案。曲烈博士的智能合约开发章节给众多以太坊开发初学者提供一个易懂、易上手的应用指引。郑晓明博士也对主流代币做了比较全面的介绍。 本书作者也得到中关村区块链联盟的大力支持,在此也特别鸣谢中关村区块链产业联盟秘书长王安平先生、副秘书长范金刚先生和林大鹏先生以及联盟发展部张培部长。同时也感谢江源老师、江苑绛博士,他们的鼓励成为我坚持下来的动力。另外在写书过程中也得到澳洲富士通区块链技术架构师董仲利先生、信达证劵区块链首席专家曹寅先生、亚投行企业IT项目管理专家Allen邵以及合肥工业大学刘古刘和方辉先生的帮助,在此对他们表示感谢。 另外感谢比特币开源社区、以太坊开源社区,以及巴比特社区的各位技术专家们的博客文章,每次阅读必有所获,本书也多处引用了他们的观点和思想。 非常感谢机械工业出版社华章公司的编辑高婧雅,她的敬业精神和编辑效率令我由衷敬佩,她的反馈、建议、鼓励和帮助引导我们克服诸多困难完成全部书稿。 特别致谢 最后,因为工作和写书,牺牲了很多本该陪伴家人的时间。我要特别感谢我的母亲从小对我的培养,也要感谢我的哥哥姐姐们在儿时营造的和睦互助、求知好学的家庭环境,这对我长大以后形成对新兴技术浓厚的求知欲性格有很大影响,一直以来在我的职业生涯中都受益匪浅。更要感谢我太太Annie长期以来对我的默默支持,以及女儿Beverley,儿子Skyler对我工作的理解。 谨以此书献给我最亲爱的家人,多年以来帮助、支持我的师友们,以及众多热爱区块链技术的朋友们! 我想和作者聊聊 如果你想和本书作者沟通,可以通过以下方式。 1)微信群“区块链技术交流群”,添加群助理微信号xiaodanmyd入群。 2)QQ群“区块链技术交流群”,群号375936045。 3)关注微信公众号“链信Chain2Trust”。 4)邹均微信号:JoeZou3986,添加请注明沟通事项。 邹均 目录 本书作者 序一:什么是区块链 序二:区块链——未来已来,只是尚未流行 序三:区块链——连接虚拟与现实 序四:区块链——转型之擎 前言 第1章 区块链和比特币初体验  / 1 1.1 区块链简介  / 1 1.1.1 区块链起源——比特币  / 1 1.1.2 区块链和区块链技术的涵义  / 2 1.1.3 区块链分类  / 2 1.1.4 区块链价值与应用  / 7 1.2 区块链体验  / 10 1.2.1 获取比特币的3种途径  / 11 1.2.2 通过交易所购买比特币  / 13 1.2.3 比特币钱包和地址  / 17 1.2.4 从交易平台提取比特币到钱包  / 20 1.2.5 比特币交易查询  / 22 1.3 本章小结  / 22 第2章 区块链基础  / 24 2.1 区块链技术  / 24 2.1.1 基本概念  / 25 2.1.2 框架与特点  / 32 2.1.3 区块链运作的核心技术   / 35 2.1.4 区块链交易流程  / 41 2.2 以太坊  / 42 2.2.1 什么是以太坊  / 42 2.2.2 以太坊技术  / 43 2.2.3 以太坊智能合约  / 48 2.2.4 以太坊的去中心化应用  / 50 2.3 基于区块链的电子货币  / 51 2.3.1 元币平台  / 51 2.3.2 代币  / 52 2.3.3 货币的未来  / 58 2.4 本章小结  / 58 第3章 区块链架构剖析  / 59 3.1 基本定义  / 59 3.2 区块链1.0架构:比特币区块链  / 61 3.2.1 比特币前端  / 63 3.2.2 比特币节点后端  / 66 3.3 区块链2.0架构:以太坊区块链  / 79 3.4 区块链3.0架构:超越货币、金融范围的区块链应用  / 87 3.5 互联链架构剖析  / 90 3.5.1 互联链背景  / 90 3.5.2 互联账本  / 91 3.5.3 互联账本协议组  / 92 3.5.4 互联账本各层协议关系  / 95 3.6 本章小结  / 96 第4章 区块链中的密码学技术  / 97 4.1 哈希算法  / 97 4.1.1 哈希函数的性质与应用  / 99 4.1.2 哈希指针链  / 101 4.2 Merkle树  / 102 4.3 公钥密码算法  / 103 4.3.1 椭圆曲线密码算法  / 104 4.3.2 secp256k1椭圆曲线  / 105 4.3.3 椭圆曲线签名与验证签名   / 106 4.4 本章小结  / 107 第5章 共识算法详解  / 109 5.1 拜占庭容错技术  / 109 5.1.1 拜占庭将军问题  / 110 5.1.2 拜占庭容错系统  / 112 5.1.3 实用的拜占庭容错系统  / 112 5.1.4 Raft协议  / 114 5.2 PoW机制  / 116 5.3 PoS机制  / 122 5.4 DPoS机制  / 123 5.5 Ripple共识算法  / 124 5.6 小蚁共识机制  / 126 5.7 本章小结  / 127 第6章 比特币应用开发指南  / 129 6.1 以虚拟机方式搭建应用开发环境  / 129 6.1.1 下载和安装Oracle VM VirtualBox  / 129 6.1.2 以虚拟机方式安装Ubuntu14.04  / 133 6.1.3 安装Node.js开发环境  / 138 6.1.4 安装Docker运行环境  / 138 6.1.5 安装和运行比特币测试网络  / 139 6.1.6 运行第一个示例程序  / 141 6.2 把握比特币“交易”数据结构  / 145 6.2.1 了解比特币的“交易”数据结构  / 145 6.2.2 交易记录的实例解析  / 146 6.2.3 运行示例程序  / 148 6.3 实战:多重签名交易  / 153 6.3.1 将ODIN标识注册到区块链上的实例解析  / 153 6.3.2 运行示例程序  / 156 6.4 本章小结  / 157 第7章 智能合约  / 158 7.1 智能合约简介  / 158 7.1.1 什么是智能合约  / 158 7.1.2 智能合约的历史  / 159 7.1.3 智能合约的优点和面临的风险  / 160 7.2 以太坊智能合约详解  / 161 7.2.1 以太坊上的账户  / 161 7.2.2 以太币和Gas  / 166 7.2.3 合约和交易  / 167 7.3 以太坊虚拟机  / 170 7.4 实例:在以太坊上开发实施智能合约  / 173 7.4.1 通过以太坊钱包部署智能合约  / 173 7.4.2 通过控制台部署智能合约  / 179 7.5 本章小结  / 183 第8章 超级账本项目  / 184 8.1 超级账本项目简介  / 184 8.1.1 项目背景  / 184 8.1.2 项目管理形式  / 185 8.1.3 项目的生命周期管理  / 186 8.1.4 项目发展状况  / 187 8.2 Fabric项目  / 187 8.2.1 项目概述  / 187 8.2.2 应用场景  / 188 8.2.3 项目架构  / 189 8.2.4 部署方式  / 191 8.2.5 交易的执行  / 192 8.3 Sawtooth Lake项目  / 193 8.3.1 项目概述  / 194 8.3.2 项目架构  / 194 8.4 本章小结  / 196 第9章 区块链常见问题  / 197 9.1 钱包的安全性问题  / 197 9.2 加密货币的交易方式  / 199 9.3 匿名性和隐私性  / 201 9.4 矿池算力集中的问题  / 203 9.5 51%攻击问题  / 205 9.6 去中心化的自治组织  / 207 9.6.1 去中心化的自治组织简介  / 207 9.6.2 The DAO项目  / 208 9.6.3 代码漏洞分析  / 210 9.6.4 解决方案  / 213 9.6.5 软分叉和硬分叉的影响  / 215 9.6.6 重放攻击   / 216 9.7 本章小结  / 219 第10章 区块链应用案例分析  / 220 10.1 闪电网络  / 220 10.1.1 闪电网络简介  / 220 10.1.2 支付通道的创建  / 221 10.1.3 支付通道的更新  / 223 10.1.4 支付网络的构建  / 223 10.1.5 支付通道的关闭  / 225 10.1.6 小结  / 226 10.2 ODIN:用区块链来替代DNS  / 226 10.2.1 ODIN简介  / 227 10.2.2 实现功能  / 228 10.2.3 主要特点  / 229 10.2.4 ODIN标识编码格式  / 229 10.2.5 ODIN标识技术规范  / 232 10.2.6 使用示例  / 233 10.2.7 开放资源  / 234 10.2.8 问题与思考  / 234 10.3 本章小结  / 236 第11章 从架构变革看IT时代的演进  / 237 11.1 架构心得  / 237 11.1.1 架构和技术的关系  / 237 11.1.2 关于计算的观察  / 238 11.1.3 架构创新的神奇力量  / 238 11.1.4 冯·诺依曼架构  / 239 11.1.5 哈佛体系架构  / 240 11.1.6 有影响力架构的特点  / 240 11.1.7 从非生物计算到非生物智能  / 241 11.2 架构创新——IT发展源源不断的动力  / 242 11.2.1 大中型机时代  / 243 11.2.2 开放时代的到来  / 243 11.2.3 客户端/服务端(CS)分布式时代  / 243 11.2.4 互联网时代  / 244 11.2.5 云计算、大数据时代  / 246 11.2.6 互联网+时代  / 250 11.2.7 区块链+时代  / 252 11.3 未来展望  / 254 第1章 区块链和比特币初体验 区块链(Blockchain)是近年来最具革命性的新兴技术之一。区块链技术发源于比特币(Bitcoin),其以去中心化方式建立信任等突出特点,对金融等诸多行业来说极具颠覆性,具有非常广阔的应用前景,受到各国政府、金融机构、科技企业、爱好者和媒体的高度关注。 在本章中,我们首先介绍区块链的定义和特点,然后通过介绍购买、存储和交易比特币等实际使用场景来体验区块链,最后再探讨一些关于区块链的常见问题。 1.1 区块链简介 2016年1月20日,中国人民银行官方网站上发表了一条题为《中国人民银行数字货币研讨会在京召开》的新闻[1],这一消息迅速在各大主流新闻媒体和比特币、区块链爱好者社区中传播,成为推动区块链技术在国内迅速升温的“导火线”。这是自从2013年12月5日中国人民银行、工信部、银监会、证监会和保监会五部委联合发布《关于防范比特币风险的通知》[2]以来,相关首次公开对比特币底层技术——区块链技术给予了高度评价。 在我们开始区块链体验之旅之前,让我们简要介绍区块链的定义和其发展历程。 1.1.1 区块链起源——比特币 区块链的英文是Blockchain,字面意思就是(交易数据)块(Block)的链(Chain)。区块链技术首先被应用于比特币,如图1-1所示。比特币本身就是第一个,也是规模最大、应用范围最广的区块链。 图1-1 简化的比特币区块链示意图 1.1.2 区块链和区块链技术的涵义 目前,关于区块链没有统一的定义,综合来看,区块链就是基于区块链技术形成的公共数据库(或称公共账本)。其中区块链技术是指多个参与方之间基于现代密码学、分布式一致性协议、点对点网络通信技术和智能合约编程语言等形成的数据交换、处理和存储的技术组合。同时,区块链技术本身仍在不断发展和演化中。 1.1.3 区块链分类 以参与方分类,区块链可以分为:公开链(Public Blockchain)、联盟链(Consortium Blockchain)和私有链(Private Blockchain)。从链与链的关系来分,可以分为主链和侧链。而且,不同区块链还可以形成网络,网络中链与链的互联互通,产生互联链(Interchain)的概念。 1.?公共链 公共链对外公开,用户不用注册就能匿名参与,无需授权即可访问网络和区块链。节点可选择自由出入网络。公共链上的区块可以被任何人查看,任何人也可以在公共链上发送交易,还可以随时参与网络上形成共识的过程,即决定哪个区块可以加入区块链并记录当前的网络状态。公共链是真正意义上的完全去中心化的区块链,它通过密码学保证交易不可篡改,同时也利用密码学验证以及经济上的激励,在互为陌生的网络环境中建立共识,从而形成去中心化的信用机制。在公共链中的共识机制一般是工作量证明(PoW)或权益证明(PoS),用户对共识形成的影响力直接取决于他们在网络中拥有资源的占比。 公共链通常也称为非许可链(Permissionless Blockchain)。如比特币和以太坊等都是公共链。公共链一般适合于虚拟货币、面向大众的电子商务、互联网金融等B2C、C2C或C2B等应用场景。 2.?联盟链 联盟链(Consortium Blockchain)仅限于联盟成员参与,区块链上的读写权限、参与记账权限按联盟规则来制定。由40多家银行参与的区块链联盟R3[3]和Linux基金会支持的超级账本(Hyperleder)[4]项目都属于联盟链架构。联盟链是一种需要注册许可的区块链,这种区块链也称为许可链(Permissioned Blockchain)。 联盟链的共识过程由预先选好的节点控制。一般来说,它适合于机构间的交易、结算或清算等B2B场景。例如在银行间进行支付、结算、清算的系统就可以采用联盟链的形式,将各家银行的网关节点作为记账节点,当网络上有超过2/3的节点确认一个区块,该区块记录的交易将得到全网确认。联盟链可以根据应用场景来决定对公众的开放程度。由于参与共识的节点比较少,联盟链一般不采用工作量证明的挖矿机制,而是多采用权益证明或PBFT(Practical Byzantine Fault Tolerant)、RAFT等共识算法。联盟链对交易的确认时间、每秒交易数都与公共链有较大的区别,对安全和性能的要求也比公共链高。 联盟链网络由成员机构共同维护,网络接入一般通过成员机构的网关节点接入。联盟链平台应提供成员管理、认证、授权、监控、审计等安全管理功能。 2015年成立的R3联盟,旨在建立银行同业的一个联盟链,目前已经吸引了40多个成员,包括世界著名的银行(如摩根大通、高盛、瑞信、伯克莱、汇丰银行等),IT巨头(如IBM、微软)。 银行间结算是非常碎片化的流程,每个银行各自有一套账本,对账困难,有些交易有时要花几天才能校验和确认。同时,其流动性风险很高,在监管报送方面非常繁琐,也容易出现人为错误,结算成本很高。 针对这种情况,R3联盟构建了一个银行同业的联盟链以解决这些问题。利用区块链技术,银行同业间可以共享一个统一的账本,省掉对账的繁琐工作,交易可以做到接近实时的校验和确认、自动结算,同时监管者可以利用密码学的安全保证来审计不可篡改的日志记录。 R3联盟将开发Corda分布式账本来实现未来愿景。Corda的名字来源有两个,该名字前半部分听起来像accord(协议),后半部分来自于chord(弦,即圆上两点间最短的直线)的定义。这个圆就代表R3联盟中的银行机构。从目前公开的资料来看,Corda具有以下特点: 数据不一定要全局共享,只有满足合法需求的一方才能在一个协议里访问数据; Corda不用一个中心化的控制就可以编排联盟成员的工作流; Corda对联盟成员之间的每笔交易形成共识,而不是在联盟机构的系统层面形成共识; Corda的设计直接支持监管者监督和合规性监控; 交易由参与交易的机构进行验证,而不会报告与交易无关的机构; 支持不同的共识机制; 明确记录智能合约与用书面语言撰写的法律文件之间的关联; 采用工业标准的工具来构建Corda平台; 不设虚拟货币。 Corda平台注重互操作性和渐进部署,不会将保密信息发布给第三方。一个机构可以和对手机构看到一组协议,并可以保证对手机构看到的是同样内容,同时报送给监管机构。Corda包括共识、校验、独一性、永恒性和认证等功能。 3.?私有链 私有链则仅在私有组织使用,区块链上的读写权限、参与记账权限按私有组织规则来制定。私有链的应用场景一般是企业内部的应用,如数据库管理、审计等。也有一些比较特殊的组织情况,比如在政府行业的一些应用:政府的预算和执行,或者政府的行业统计数据,这个一般来说由政府登记,但公众有权力监督。私有链的价值主要是提供安全、可追溯、不可篡改、自动执行的运算平台,可以同时防范来自内部和外部对数据的安全攻击,这个在传统的系统是很难做到的。根据资料[1]的解读,央行发行数字货币可能就是一种私有链。和联盟链类似,私有链也是一种许可链。 币科学(Coin Science)公司推出供企业建立私链的多链(Multichain)平台。它提供保护隐私和权限控制的区块链平台,来克服在金融行业里碰到的推广区块链技术的障碍。多链的目标有以下3个: 1)保证区块链上的活动只能由选择的参与者看到; 2)引入机制来控制哪些交易是被允许的交易; 3)提供安全的挖矿机制,同时不需要工作量证明以及与其相关的成本。 多链把挖矿权限制在一组实名的矿工范围,解决了一直困扰私有链解决方案中的一方垄断挖矿过程的问题。它的解决办法是限制在同一个时间窗口同一矿工能产生的区块链数。不像比特币那样只支持一条区块链,多链可以方便地配置多条区块链,并让用户同时用多条链。这样的话,机构用户可以让管理员配置区块链而不需要由区块链专业开发者来做。 多链让用户在一个配置文件中配置区块链的所有参数,这些参数包括: 区块链的协议,例如是私有链还是像比特币那样的公共链; 目标区块产生时间,例如1分钟; 权限,例如所有人能连接,只有一些人能发送或接收交易; 挖矿的不同形式(只适合于私有链); 建立、移除管理员和矿工所需要的共识的程度,以及在建立期不需要强制执行的期限(只适合于私有链); 矿工的报酬,例如每区块50个币,然后每210?000个区块减半付酬; 邻节点连接和JSON RPC API的IP端口,例如8571、8570; 允许的交易类型,例如paytoaddress、paytomultisig、paytoscripthash等; 最大的区块大小,例如1MB; 每个交易的最大元数据(OP_RETURN),例如4KB。 多链在节点的“握手”连接过程如下: 1)每个节点提供它的公共地址,使其他节点能将它的地址包括在允许连接的清 单中; 2)每个节点验证邻节点的地址是在它的授权连接的节点清单里; 3)每个节点发一个盘问(Challenge)消息给其他节点; 4)每个节点发回一个回复盘问信息的签名,证明拥有他们的对应公共地址的私钥; 5)如果双方对对方回复不满意,可随时中断连接。 在多链里,所有的权限的授予和回收都是通过包含特殊元数据的网络交易来实现的。找到创世区块的矿工被自动授予所有的权限,包括管理其他用户的管理员权限。管理员通过发交易给其他用户,并在交易的输出中包含授权用户的地址以及授权信息的元数据来给其他用户授予相应的权限。当要改变其他用户的管理和挖矿权限的时候,一个额外的限制条件是要由现有的管理员投票来决定。这些管理员的投票需要登记在不同的交易中,只有当足够的共识形成之后才能通过改变。 多链在很多方面的设计是为了使得用户在私链和比特币区块链能够进行双向迁移。多链是基于比特币核心的一个分叉。所有的对比特币的代码改变都是本地化的改变。未来比特币的升级功能可以并入多链的本地代码。它基于比特币的协议、交易和区块链架构,只是在握手协议上有所改变。其他的功能是通过元数据,同时改变交易和区块的验证规则来实现的。在接口方面与比特币完全兼容,所有的新功能通过新的命令来提供。它可以做成普通比特币网络的一个节点。 多链提供一个在企业内快速部署私链的解决方案。可以用于如去中心化交易所、数据库同步、货币结算、债券发行和P2P交易、消费行业积分奖励机制等场景。 4.?侧链 比特币主要是按其设计者中本聪的思想设计的一个虚拟货币系统,虽然很成功,但是其规则已经相对固定,很难在比特币上做大的修改,因为这些修改会引起分叉,影响现有的比特币用户。因此,要在比特币平台上做创新或扩展是比较困难的。一般来说,大部分代币系统是通过用比特币平台做基础,重构一条区块链,然后在上面使用新的规则发新的虚拟货币。这就是目前大部分代币的做法。然而这些代币系统要从无到有得到人们的价值认可是非常困难的,通常的办法是与比特币挂钩,相当于用比特币作为储备来发行代币,这样就可以完成代币的货币价值认可的过程。但随之而来的问题是,如何自动保障代币和比特币的挂钩呢?因为虚拟货币的一个特点就是价格波动非常大,一般人都不愿意持有波动大、流动性差的代币。一个直接的想法就是通过比特币平台和代币平台的整合来做到实时的挂钩。 2014年,亚当·贝克(Adam Back)等作者发表了一篇论文,题目是《Enabling Blockchain Innovations with Pegged Sidechains》,中文意思是“用与比特币挂钩的侧链来提供区块链创新”。其核心观点是“比特币”的区块链在概念上独立于作为资产的比特币。他希望通过技术能支持在不同的区块链上转移资产,这样新的系统可以重用原先的比特币。他提出一个侧链(Side Chains)的概念。所谓侧链,就是能和比特币区块链交互,并与比特币挂钩的区块链。贝克列出了侧链的一些属性: 一个用户在一条链上的资产被转移到另一条链上后,还应该可以转移回到原先链上的同一用户名下。 资产转移应该没有对手卷款逃跑的风险,也就是不诚实的用户没能力阻碍资产转移的发生。 资产的转移必须是原子操作,也就是要么全发生,要么不发生。不应该出现丢失资产或欺诈性增加资产的情况。 侧链间应该有防火墙。一条侧链上的软件错误造成链上资产的丢失或增加不会影响另一条链上的资产的丢失或增加。 即使在资产的转移过程中发生区块链的重组,也不应出现问题。任何因区块链重组造成的中断,应该局限在本条侧链上而不应影响其他区块链。通常侧链之间最好能相互独立,用户可以从其他链条提供数据。只有当存在明确的侧链的共识规则时才需要去检查另一条侧链来对其验证。 用户不应需要跟踪不经常使用的侧链。 比特币是大家公认的公共链,是很多代币的基础。但比特币的设计规则决定了比特币有一定的局限,例如平均每10分钟出一个区块,每个区块1MB大小限制,这使得大概每秒才能确认7笔交易,这种交易速度而在很多场景下不能满足业务需求。因此,通过侧链来提升效率,扩展比特币功能是一个非常有效的做法。比如,闪电网络把很多交易放在侧链,只有在做清算时才用上主链,这样一来可以极大地提升交易速率,又不会增加主链的存储负担。 5.?互联链 如图1-2所示,针对特定领域的应用可能会形成各自垂直领域的区块链,这些区块链会有互联互通的需求,这样这些区块链也会通过某种互联互通协议连接起来。与互联网一样,这种区块链上的互联互通就构成互联链,形成区块链全球网络。 图1-2 区块链网络示意图 1.1.4 区块链价值与应用 根据各个区块链采取的技术组合不同,形成的区块链特点也大不相同。但是需要指出的是,区块链技术是一揽子技术,可以根据业务的需要进行有针对性的组合和创新。 总体来说,去中心化信用机制是区块链技术的核心价值之一,因此区块链本身又被称为“分布式账本技术”“去中心化价值网络”等。自古以来,信用和信任机制就是金融和大部分经济活动的基础,随着移动互联网、大数据、物联网等信息技术的广泛应用,以及工业4.0等新一代工业革命的开启,网络空间的信用作为数字化社会的基石的作用显得更加重要。传统上,信用机制是中心化的,而中心化的信任和信用机制必然导致中心化机构成为价值链的核心,也容易引发问题。而区块链技术则首先在人类历史上实现了去中心化的大规模信用机制,在消除中心机构“超级信用”的同时,保证信用机制安全、高效地运行。 具体来看,区块链的颠覆性价值至少包括以下5个方面。 1)简化流程,提升效率。由于区块链技术是参与方之间通过共享共识的方式建立的公共账本,形成对网络状态的共识,因此区块链中的信息天然就是参与方认可的、唯一的、可溯源、不可篡改的信息源,因此原来许多重复验证的流程和操作就可以简化,甚至消除,例如银行间的对账、结算、清算等,从而大幅提升操作效率。 2)降低交易对手的信用风险。与传统交易需要信任交易对手不同,区块链技术可以使用智能合约等方式,保证交易多方自动完成相应义务,确保交易安全,从而降低对手的信用风险。 3)减少结算或清算时间。由于参与方的去中心化信任机制,区块链技术可以实现实时的交易结算和清算,实现金融“脱媒”,从而大幅降低结算和清算成本,减少结算和清算时间,提高效率。 4)增加资金流动性,提升资产利用效率。区块链的高效性,以及更短的交易结算和清算时间,使交易中的资金和资产需要锁定的时间减少,从而可以加速资金和资产的流动,提升价值的流动性。 5)提升透明度和监管效率,避免欺诈行为。由于区块链技术可以更好地将所有交易和智能合约进行实时监控,并且以不可撤销、不可抵赖、不可篡改方式留存,方便监管机构实现实时监控和监管,也方便参与方实现自动化合规处理,从而提升透明度,避免欺诈行为,更高效地实现监管。 区块链的创新性最大的特点不在于单点技术,而在于一揽子技术的组合,在于系统化的创新,在于思维的创新。而正是由于区块链是非常底层的、系统性的创新,区块链技术和云计算、大数据、人工智能、量子计算等新兴技术一起,被认为是最具变革性的新兴技术之一。其中,金融服务领域是即将被颠覆的关键领域之一,除此之外,区块链还可以被广泛应用于物联网、移动边缘计算等去中心化控制领域,以及智能化资产和共享经济(如自动驾驶汽车、智能门锁+租赁)等一系列潜在可应用的领域。下面我们重点介绍几类区块链变革金融服务的场景。 (1)金融领域的结算和清算 以金融领域的结算和清算为例,全球每年涉及各种类型的金融交易高达18万亿美元。如图1-3所示,由于交易双方互不信任,因此金融机构需要通过处于中心位置的清算结构来完成资产清算和账本的确认。这类涉及多个交易主体且互不信任的应用场景就非常适合使用区块链技术。原则上,可以直接在金融之间构建联盟链,那么机构之间只需要共同维护同一个联盟区块链,即可实现资产的转移和交易。 图1-3 区块链去中心化金融服务示意图 (2)数字货币 货币是一种价值存储和交换的载体,过去都是由中央法定机构集中发行的。以比特币为例,正是由于其非中心化的信任机制,虽然先后经历多次交易所倒闭、“虚拟货币”非法使用被查抄、多个政府禁止使用等危机,但比特币经受住了所有这些考验,目前仍能稳定运行。比特币的出现和稳定运行,可以说完全颠覆了人们对于货币的认识。相信区块链技术或者说分布式账本技术会在数字货币技术体系中占据重要地位。 (3)跨境支付 另一个区块链可颠覆的金融服务就是跨境支付。通常跨境支付到账时间长达几天甚至一个星期。除此之外,跨境支付需要双边的用户都向当地银行提供大量开户资料和证明,以配合银行的合规性要求,参与交易的银行和中间金融机构还需要定期报告,以实现反洗钱等其他合规性要求。这是一个典型的涉及多方主题的交易场景,区块链技术可以应用在多个环节。区块链技术,一方面可以减少用户重复提交证明材料,提升效率,另一方面可以更好地实现合规、实时性等,大幅提升金融机构的运行效率,提升监管效率。此外,由于区块链技术可以在银行等金融机构之间直接通过区块链实现资金和资产的转移,因此可以去掉高昂的中间费用。此外,还可以结合智能合约等技术,在合约中规定好实施支付的条件,在支付的同时保证义务的实施,提升交易的安 全性。 (4)财产保险 财险是除寿险之外最大的保险。传统上,财险理赔是用户的痛点和成本瓶颈,估计理赔成本的占比至少高达保险公司收入的11%。而且由于理赔过程中用户需要提供大量的资料,客户体验往往非常不友好。由于每个理赔可能会涉及大量的手工操作,因此需要占用大量的人力、物力来进行理赔处理。此外,由于保险公司各自为政,财险理赔还需要对抗保险欺诈。而区块链技术则可以很好地缓解财险理赔的用户痛点,降低理赔成本。首先区块链可以减少客户提供理赔资料和证明的负担,如果资产可以智能化地嵌入智能合约,则资产可具备自动启动理赔流程的能力,甚至可以实现自动化理赔,大幅加速理赔过程,改善客户体验,甚至可以在联盟成员之间进行合理的数据共享,有效地发现和排除保险欺诈。此外,区块链技术的应用可以大幅度减少保险公司对中介代理服务人员的需求,从而大幅度降低运营成本。 此外,区块链还可以广泛应用在物联网、边缘计算、存在性证明等许多领域,读者可以参考《Blockchain:Blueprint for a new economy》一书。此处,特别强调的是关于区块链的应用可能层出不穷,关键还是要理解区块链技术的内涵和变革原理,深刻体会区块链去中心化的系统化思维,从而可以结合自身对相关行业的理解和需求,创造出新的解决方案、新的价值。 1.2 区块链体验 区块链仍然是一个抽象概念,为了更好地理解区块链,为本书后续章节提供一个直观的理解基础,本节中我们将首先通过交易所购买少量比特币,然后转移到比特币钱包中,最后通过钱包实现比特币转账。 1.2.1 获取比特币的3种途径 获取比特币有3种途径:一是作为“矿工”挖矿获得,二是线上“交易所”购买或者线下通过中间人购买,三是作为商家收取比特币。 1.?挖矿 由于比特币的独特设计,参与者可以通过计算能力竞争的方式获取系统奖励和支付小费,同时也维护着比特币这个区块链的稳定运转,我们把这种算力竞争行为称为“挖矿”。比特币价格的一路攀升。挖矿的设备和算力也一路升级,如图1-4所示,从最初的CPU挖矿,到第二代的显卡挖矿,经历过短暂的FPGA挖矿时代后,迅速进入专用芯片(ASIC)挖矿时代。 图1-4 比特币算力增长图 而进入ASIC矿机时代之后,矿机芯片的工艺升级速度远超摩尔定律的演进速度,差不多3个月时间就会进化一代,蚂蚁矿机S9是目前新出产的主流挖矿设备已经采用了16nm工艺制造的专用芯片。 “挖矿”今天已经成为高度专业化的细分产业。为保证收益,挖矿不仅要求有较高的初始投入,以及更低廉获取“矿机”和电力的渠道,还要求有专业的管理能力。如图1-5所示,这是一座位于我国西南某处的比特币矿场。 随着挖矿专业化程度的提高,矿工往往都是通过联合挖矿组成矿池的形式来挖矿的,矿池用来协调和分布挖矿的收益,比特币的算力分布目前前几大矿池都位于中国。 图1-5 比特币矿场 2.?线上交易所或者线下撮合获取比特币 其中线上交易所方面,我国的okcoin、火币占据了交易量的绝大多数,两家交易量占线上交易量的93%以上。线下交易具有更好的匿名性。图1-6展示的是比特币历史交易价格,可以看到从最初的不到0.1美元到历史最高点接近1200美元,再到当前日期(2016年7月25日)的约660美元。中间经历多次大的价格波动。 图1-6 比特币历史价格(对数坐标,美元计价) 3.?比特币作为一种支付的手段 其优势在于跨境支付等场景下具备非常低的收费,并且非常快捷。在日常小额支付方面,目前在全球也有一定的市场。目前比特币作为一种支付手段,主要在欧美等发达国家和地区有比较广泛的分布。当然,由于比特币价格的波动性,一般商家都会实时将比特币转换为当地货币。比特币在我国不能作为货币支付手段,不能很方便地在银行 汇兑。 1.2.2 通过交易所购买比特币 在本节中,我们将通过OKCoin这个比特币交易平台购买少量比特币。读者可以选择火币、BTCC等其他平台购买获取比特币,基本过程是相似的。大部分主流交易平台也提供移动端App,读者可以根据情况选用。 首先,我们需要注册OKCoin的账号,在OKCoin中国站(https://www.okcoin.cn/user/register.do)通过邮箱(或手机号)注册即可。如图1-7所示,填写邮箱、密码,并勾选同意服务条款后,单击“注册”按钮即可完成注册。 注册成功后可看到注册成功的页面,如图1-8所示。然后开始身份认证。根据相关条例要求,目前几乎所有比特币交易平台都会要求真实身份认证。       ?? 图1-7 网站注册页面   ?         图1-8 注册成功页面 单击图1-8中的“开始身份认证”按钮,将会进入如图1-9所示的提示页面,可以选择“个人用户”或者“企业用户”进行认证。这里选择“个人用户”这个类型进行 认证。 图1-9 身份认证提示页面 如图1-10所示,正确填写身份信息并提交就能看到如图1-11所示的认证成功提示。注意,请使用真实身份信息,如遇到忘记密码等情形,可能会需要配合平台方提供相关证明才能进行处理。 图1-10 个人身份认证页面 单击“设置资金密码”按钮,就会进入如图1-12所示的页面。根据提示,我们可以选择手机认证或者Google验证的方式来设置二次验证的方式。 我们选择Google验证的方式,安装iOS或者Android版Google Authenticator之后,单击图1-13中的“设置”按钮,打开App,扫描左边的条形码后就能看到OKCoin.cn的动态密码了。将App中的动态密码输入弹出页面中,就能看到成功提示页面,同时也可看到资金密码的“设置”按钮变为可用。单击该按钮将进入如图1-13所示的资金密码设置页面。 图1-11 个人身份认证成功页面 图1-12 二次验证设置页面 设置密码并填写Google验证的二次验证密码(如果前面是手机验证,则是手机验证码),就会看到如图1-14所示的提示页面。 单击“前往充值”按钮进入充值页面,如图1-15所示。我们选择“快捷充值”方式,也可以选择“支付宝充值”或者“网银汇款充值”的方式。 图1-13 资金密码设置页面 图1-14 资金密码设置成功提示页面 图1-15 充值选择页面 选择“快捷充值”后进入如图1-16所示的银行选择页面,根据个人情况选择网银进行充值。我们在这里选择充值100元用于购买小额的比特币,未来仍然可以通过交易所换回现金(当然可能会有少量的转账费用和价格波动)。 图1-16 快捷充值页面 充值成功之后就可以购买比特币了。我们可以通过“市价单”快速购买比特币,如图1-17所示。 图1-17 购买比特币页面 委托完成后,可以在页面下方的委托成交记录中看到交易记录,如图1-18所示。可以看到,我们以4389.76元/BTC的价格成功地通过交易所购买到了0.02个比特币。 图1-18 委托成交记录 1.2.3 比特币钱包和地址 在上节中,我们通过比特币交易平台购买了少量比特币。需要指出的是,交易平台仍然不属于中心化的服务机构,在交易平台的交易不属于区块链(比特币)之上的交易,其交易和资金的可靠性需要交易平台的背书。虽然,目前国内运营的几大交易平台没有发生大的诚信危机,但从比特币诞生至今也发生过多次交易所欺诈、倒闭和“跑路”事件,让不少比特币拥有者蒙受了巨额经济损失。为了进一步体验比特币和区块链的真实性,我们的体验之旅继续。在本节中,我们将在交易平台购买的比特币转入我们的比特币“钱包”,并可以在区块链上查询到这笔交易。 比特币钱包是一个形象的概念,比特币本身由一对数字密钥来决定归属,因为拥有私钥就能拥有对应地址比特币的处置权,可以说这些私钥就等于比特币,我们通常将管理这些数字密钥的软件称为“钱包”。比特币钱包,根据终端类型可以分为桌面钱包、手机钱包、网页钱包和硬件钱包。其中硬件钱包(见图1-19)成本最高,也相对更安全。对于小量比特币来说,我们可以选用网页钱包这种轻量级的钱包来存储,而对于较大额度的比特币,则建议使用更高级的钱包存储方式。 图1-19 比特币硬件钱包case(来源:choosecase.com) 我们接下来将选择开源钱包MultiBit HD桌面版,当然读者也可以选择其他优秀的钱包。在https://multibit.org/下载对应版本的文件后,单击安装,并选择中文作为界面语言。单击“下一步”按钮之后,可以进入如到图1-20所示的页面。 图1-20 创建钱包准备页面 特别需要强调的是,比特币不同于银行账户的概念,钱包是帮助我们管理这些私钥的,同时也要妥善保管好钱包的恢复密语和备份数据。MulitBit HD钱包使用一种新的密钥技术,即12个单词的密语可以恢复这个钱包,如图1-21所示。所以建议妥善保存这些单词,而且要离线保存。 图1-21 MultiBit钱包密语 继续按照提示完成后续操作,包括设置钱包密码等。完成之后可以看到如图1-22所示的创建钱包报告页面。 图1-22 创建钱包报告页面 创建完成后打开MultiBit,在发送/接受页面选择接收,可以看到钱包的比特币地址:1FA97cbn8EbFFRKnVkfFPQ4Z5C8WnFhtpP,如图1-23所示。或者单击地址栏后面第二个图标,可以显示二维码形式的比特币地址,这将是我们从交易平台购买的比特币提现地址。 图1-23 钱包比特币地址 1.2.4 从交易平台提取比特币到钱包 首先,我们需要在交易平台添加提现地址。登录OKCoin后,选择“资金管理”栏目,然后选择添加地址,正确填写钱包中的比特币地址,二次验证码,如果需要认证,则勾选“认证地址”复选框,并填写资金密码,如图1-24所示。单击“确定”后,平台会向用户发送确认邮件,确认后即可完成提现地址添加。 图1-24 添加比特币提现地址 最后一步,在“资金管理”栏目中选择“BTC提现”选项卡,如图1-25所示。提现地址可以选择上面认证过的提现地址,数量为我们能提现的数量,如0.02BTC(20mBTC)。注意,“网络手续费”为网络“矿工”维持比特币区块链网络运转的交易费奖励。当然,为了防止垃圾交易攻击和提高矿工处理交易的积极性,一般都会选择0.1~0.5mBT不等的小费(小费多少一般根据交易占用的容量大小而定)。 图1-25 比特币提现页面 目前国内的平台为了防止被盗,在提现要求提交后,一般都会由人工处理提现申请,包括电话确认提现是本人所操作、确认提现的数量等,确认完成后才会正式处理。等平台将交易发送到比特币网络,我们就可以在区块链上公开看到这笔交易了。我们可以在MultiBit上看到,刚开始的时候,MultiBit上会显示已收到付款,但是是“未确认”的,如图1-26所示。原则上,未确认的交易可能存在风险,比如发送者重复花费这部分比特币,在小额支付的场景下,零确认可能也是可以接受的,但是在较大金额的交易中,通常会选择等待至少6个以上的确认。 图1-26 未确认收款 1.2.5 比特币交易查询 经过比较长的时间后,我们可以使用blockchain.info和qukuai.com查询交易的结果。如图1-27所示,这笔交易是从一个有92.22788075的BTC,地址为1EDpd8oYNmKzHJvTrjQnWmkexENB7MXjxK中转出的,剩余的92.20788075BTC转到一个新地址1KqrkJvjqUmrzzq274wSkMRwbWbXprkNPF。交易在第421416个区块被锁定,截至写作时已经经历了1063个确认。图1-28中的“转入脚本”(也称为解锁脚本)和“转出脚本”(也称为锁定脚本)就是比特币的合约脚本,后续我们将会在2.1.3节详细介绍。 图1-27 BTC提现交易结果 到这里,我们的区块链(比特币)初次体验之旅就告一段落了。我们存储到MultiBit钱包的比特币可以直接用于支付、捐赠、打赏,也可以通过交易平台的比特币充值回流到平台,再换成人民币等。 1.3 本章小结 本章中,我们首先简单介绍了区块链的起源和定义,以及区块链的分类、价值和应用。然后我们通过图示的方式,以比特币这个目前最大的公链为例,带领大家体验比特币,包括如何获取比特币,如何通过交易平台购买比特币,以及如何通过钱包存储比特币,最后将交易平台的比特币提取到钱包中,并在区块链上公开查询到这笔交易。 毋庸置疑,区块链的发展已经远远超出了比特币和数字货币的范畴,可以说,区块链去中心化的信任机制和价值传递机制的变革将极具颠覆性,当前区块链领域的创新才刚刚开始。后续章节让我们一起继续关于区块链更深入的探索。 参考资料 [1] 中国人民银行.中国人民银行数字货币研讨会在京召开[J/OL]. 2016, http://www.pbc.gov.cn/goutongjiaoliu/113456/113469/3008070/index.html. [2] 中国人民银行.中国人民银行等五部委发布《关于防范比特币风险的通知》[J/OL].2013, http://www.pbc.gov.cn/goutongjiaoliu/113456/113469/999049/index.html. [3] R3. 2016, http://r3cev.com/. [4] HYPERLEDGER. 2016, https://www.hyperledger.org/.BLOCKSTREAM. 2016, http://www.blockstream.com/. [5] SWAN M. Blockchain: Blueprint for a new economy [M]. O'Reilly Media, Inc., 2015. 第2章 区块链基础 区块链是随着比特币等数字加密货币的日益普及而逐渐兴起的一种全新技术,它提供了一种去中心化的、无需信任积累的信用建立范式,目前已经引起金融行业、科研机构、政府部门和投资公司的高度重视与广泛关注。区块链技术通过建立一个共同维护且不可被篡改的数据库来记录过去的所有交易记录和历史数据,所有的数据都是分布式存储且公开透明的。在这种技术下,任何互不相识的网络用户都可以通过合约、点对点记账、数字加密等方式达成信用共识,而不需要任何的中央信任机构。在这种技术下,我们可以建立数字货币、数字资产、智能财产以及智能合约等。 通过上一章的介绍,相信大家已经对区块链和比特币有了初步的认识,在本章中,我们将继续探讨区块链的技术细节。 本章将首先介绍区块链的相关基本概念及其运作原理,然后介绍区块链上可以进行的操作和相关细节,最后再讨论区块链上的交易流程和它的验证过程。 2.1 区块链技术 区块链本质上是一个对等网络(peer-to-peer)的分布式账本数据库。比特币的底层就采用了区块链的技术架构。区块链本身其实是一串链接的数据区块,其链接指针是采用密码学哈希算法对区块头进行处理所产生的区块头哈希值。每一个数据块中记录了一组采用哈希算法组成的树状交易状态信息,这样保证了每个区块内的交易数据不可篡改,区块链里链接的区块也不可篡改。 2.1.1 基本概念 一个完整的区块链系统包含了很多技术,其中有存储数据的数据区块及其之上的数字签名、时间戳等技术,有作为支撑的P2P网络和维护系统的共识算法,有挖矿和工作量证明机制,有匿名交易机制和比特币钱包,还有链龄、UTXO、Merkle树、双花等相关技术概念。正是这些技术,使得区块链在无中心的网络上形成了运转不息的引擎,为区块链的交易、验证、链接等功能提供了源源不断的动力。 1.?数据区块 比特币的交易记录会保存在数据区块之中,比特币系统中大约每10分钟会产生一个区块,每个数据区块一般包含区块头(Header)和区块体(Body)两部分,如图2-1所示。 图2-1 区块结构 区块头封装了当前的版本号(Version)、前一区块地址(Prev-block)、时间戳(Timestamp)、随机数(Nonce)、当前区块的目标哈希值(Bits)、Merkle树的根值(Merkle-root)等信息。 区块体中则主要包含交易计数和交易详情。交易详情就是比特币系统中的记账本,每一笔交易都会被永久地记入数据区块中,而且任何人都可以查询。区块体中的Merkle树将会对每一笔交易进行数字签名,如此可以确保每一笔交易都不可伪造且没有重复交易。所有的交易将通过Merkle树的Hash过程产生一个唯一Merkle根值记入区块头。关于Merkle树本章后面将详细介绍。 如果你使用的是比特币核心钱包(Bitcoin core),那么每当你打开客户端时,区块数据文件都会被同步到电脑硬盘中,可以在blocks文件夹下找到它们。如图2-2所示的.dat文件就是我们要找的数据区块文件。 我们还可以使用hexdump指令在终端上将数据区块以十六进制的方式显示出来。我们可以通过解析这些数据得出交易记录、区块大小等基本信息,因此我们说区块链中的数据是完全公开透明的。如图2-3所示,我们使用指令hexdump -n 10000 -C blk00000.dat打开了编号为00000的创世区块(比特币中的第一块区块链)。 图2-3 用hexdump指令打开的创世区块 2.?挖矿与分叉问题 区块在挖矿过程中产生。所谓挖矿,实际上是穷举随机数算法,把上个区块的哈希值加上10分钟内的全部交易单打包,再加上一个随机数,算出一个256位的字符串哈希值,输入的随机数Nonce使哈希值满足一定条件就获得这个区块的交易记账权。新产生的区块需要快速广播出去,以便其他节点进行对其验证,以防造假。每个区块存着上一个区块的哈希值,可以溯源到源头,只有经过验证后才最终获得区块的交易记账权。比特币系统会让挖矿的矿工竞争记账权(在主链上链接区块的权利),这个竞争机制就是工作量证明机制。挖矿需要付出大量的能源和时间,谁付出的工作量多就能以更大的概率获得一个区块的记账权。获取记账权的矿工会将当前区块链接到前一区块,形成最新的区块主链,该矿工也会得到系统奖励的一定数量(2009~2013年每10钟产生50个比特币,2014年至今每10分钟产生的比特币将减半成25个)的比特币。所有的区块链接在一起形成了区块链的主链,从创世区块到当前区块,在区块链之上的所有数据历史都可以被追溯和查询。 需要说明的是,可能会出现不同地区的两个矿工同时“挖出”两个新区块加以链接的情况,这时主链上就会出现“分叉”。系统并不会马上确认哪个区块不合理,而是约定后续矿工总是选择累计工作量证明最大的区块链。因此,当主链分叉以后,后续区块的矿工将通过计算和比较,将其区块链接到当前累计工作量证明最大化的备选链上,形成更长的新主链,并自动抛弃分叉处的短链,从而解决分叉问题。 3.?时间戳和不可篡改性 时间戳是指从格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数,通常是一个字符序列,唯一地标识某一刻的时间。在比特币系统中,获得记账权的节点在链接区块时需要在区块头中加盖时间戳,用于记录当前区块数据的写入时间。每一个随后区块中的时间戳都会对前一个时间戳进行增强,形成一个时间递增的链条。时间戳技术本身并没有多复杂,但在区块链技术中应用时间戳却是一个重大创新,时间戳为未来基于区块链的互联网和大数据增加了一个时间维度,使得数据更容易追溯,重现历史也成为可能。同时,时间戳可以作为存在性证明(Proof of Existence)的重要参数,它能够证实特定数据必然在某特定时刻是的确存在的,这保证了区块链数据库是不可篡改和不可伪造的,这也为区块链技术应用于公证、知识产权注册等时间敏感领域提供了可能。 4.?分布式数据库 比特币系统中的区块就像一个记账本一样,记录了所有比特币的交易信息,每一个比特币用户的比特币收支情况都被永久地嵌入了数据区块中以供别人查询。这些数据区块中的交易数据存放在每一个比特币用户的客户端节点中,所有的这些节点则组成了比特币及其坚韧的分布式数据库系统。任何一个节点的数据被破坏都不会影响整个数据库的正常运转,因为其他的健康节点中都保存了完整的数据库。 5.?UTXO交易模式 UTXO(Unspent Transaction Outputs)是未花费的交易输出,它是比特币交易过程中的基本单位。除创世区块以外,所有区块中的交易(Tx)会存在若干个输入(Tx_in,也称资金来源)和若干个输出(Tx_out,也称资金去向),创世区块和后来挖矿产生的区块中给矿工奖励的交易没有输入,除此之外,在比特币系统中,某笔交易的输入必须是另一笔交易未被使用的输出,同时这笔输入也需要上一笔输出地址所对应的私钥进行签名。当前整个区块链网络中的UTXO会被储存在每个节点中,只有满足了来源于UTXO和数字签名条件的交易才是合法的。所以区块链系统中的新交易并不需要追溯整个交易历史,就可以确认当前交易是否合法。 6.?哈希函数 哈希函数在比特币系统中也有着重要的应用,区块链中的数据并不只是原始数据或者交易记录,还包括它们的哈希函数值,即将原始数据编码为特定长度的、由数字和字母组成的字符串后,记入区块链。哈希函数有着很多适合存储区块链数据的 优点: 1)哈希函数处理过的数据是单向性的,通过处理过的输出值几乎不可能计算出原始的输入值; 2)哈希函数处理不同长度的数据所耗费的时间是一致的,输出值也是定长的; 3)哈希函数的输入值即使只相差一个字节,输出值的结果也会迥然不同。比特币系统中最常采用的哈希函数是双SHA256哈希函数,通俗来说就是将不同长度的原始数据用两次SHA256哈希函数进行处理,再输出长度为256的二进制数字来进行统一的识别和存储。 总之,哈希函数是比特币系统中的关键技术,为比特币系统提供了很多便利。本书后面的章节将会对哈希函数做详细介绍,此处不赘述。 7.?Merkle树 Merkle树是数据结构中的一种树,可以是二叉树,也可以是多叉树,它具有树结构的所有特点。如图2-4所示,比特币区块链系统中的采用的是Merkle二叉树,它的作用主要是快速归纳和校验区块数据的完整性,它会将区块链中的数据分组进行哈希运算,向上不断递归运算产生新的哈希节点,最终只剩下一个Merkle根存入区块头中,每个哈希节点总是包含两个相邻的数据块或其哈希值。在比特币系统中使用Merkle树有诸多优点:首先是极大地提高了区块链的运行效率和可扩展性,使得区块头只需包含根哈希值而不必封装所有底层数据,这使得哈希运算可以高效地运行在智能手机甚至物联网设备上;其次是Merkle树可支持“简化支付验证协议”(SPV),即在不运行完整区块链网络节点的情况下,也能够对交易数据进行检验。所以,在区块链中使用Merkle树这种数据结构是非常具有意义的。本书后面的章节将会对Merkle树做详细介绍。 8.?双重支付 双重支付问题又称为“双花”问题,即利用货币的数字特性用“同一笔钱”完成两次或者多次支付。在传统的金融和货币体系中,由于金钱货币是物理实体,具有客观唯一存在的属性,所以可以避免双重支付的情况。但在其他的电子货币系统中,则需要可信的第三方管理机构提供保证。区块链技术则在去中心化的系统中不借助任何第三方机构而只通过分布式节点之间的相互验证和共识机制,有效地解决了双重支付问题,在信息传输的同时完成了价值转移。区块链技术通过区块链接形成的时间戳技术加上验证比特币是否满足UTXO(未花费交易)和数字签名,有效避免了双重支付的问题。如果有人用同一笔UTXO构造了两笔付给不同交易方的交易,则比特币客户端只会转发最先被侦听到的那个。矿工会选择将那笔交易包入未来区块,当其中一笔交易所在的区块后有5个链接的区块,这笔交易已经得到了6次确认。在比特币区块链上,6次确认后可以基本上保证比特币不被双花。 9.?P2P网络 P2P网络(peer-to-peer network,对等网络)是一种在对等者(peer)之间分配任务和工作负载的分布式应用架构,是对等计算模型在应用层形成的一种组网或网络形式。因此,从字面上,P2P可以理解为对等计算或对等网络,P2P网络示意图如图2-5所示。国内的迅雷软件采用的就是P2P技术。区块链系统是建立在IP通信协议和分布式网络的基础上的,它不依靠传统的电路交换,而是建立于网络通信之上,完全通过互联网去交换信息。网络中所有的节点具有同等的地位,不存在任何特殊化的中心节点和层级结构,每个节点均会承担网络路由、验证数据区块等功能。网络的节点根据存储数据量的不同可以分为全节点和轻量级节点,全节点存储了从创世区块以来的所有区块链数据(比特币网络现在大约有几十GB,且还在不断增长中)。全节点的优点是进行数据校验时不需要依靠别的节点,仅依靠自身就可以完成校验更新等操作,缺点是硬件成本较高。轻量级节点只需要存储部分数据信息,当需要别的数据时可以通过简易支付验证方式(Simplif?ied Payment Verif?ication,SPV)向邻近节点请求所需数据来完成验证更新。 图2-5 P2P网络 10.?加密算法 除了哈希算法以外,比特币中还存在一种为交易加密的非对称加密算法(椭圆曲线加密算法)。非对称加密算法指的就是存在一对数学相关的密钥,使用其中一个密钥进行加密的数据信息,只有使用另一个密钥才能对该信息进行解密。这对密钥中,对外公开的密钥叫作公钥,不公开的密钥就叫作私钥。打个比方来说,公钥就像银行的账户,私钥就像是该账户的密码或者账户所有者的签名。区块链之上的有效交易有一个用于交易发起方私钥签名有效的数字签名,而该交易的签名可以通过使用交易发起方的公钥进行验证。公钥可以通过算法从私钥中计算得出,但私钥却不能从公钥中推出。比特币系统中使用的就是一种非常典型的非对称加密算法——椭圆曲线加密算法(ECC)。 如图2-6所示,比特币系统一般从操作系统底层的一个密码学安全的随机源中取出一个256位随机数作为私钥,私钥总数为2256个,所以很难通过遍历所有可能的私钥得出与公钥的对应的私钥。用户使用的私钥还会通过SHA256和Base58转换成易书写和识别的50位长度的私钥,公钥则首先由私钥和Secp256k1椭圆曲线算法生成65字节长度的随机数。一般情况下,比特币钱包的地址也由公钥所生成,其生成过程为首先将公钥进行SHA256和RIPEMD160双哈希运算,并生成20字节长度的摘要结果(即Hash160结果),这个将作为比特币地址的主体(body)信息,再在前面加上版本前缀0x00,在后面添加4个字节的地址校验码。地址校验码通过对摘要结果进行两次SHA256运算,取哈希值的前4位产生。最后通过Base58处理把连在一起的版本前缀、主体信息和校验码转换成可以容易让人识别的比特币字符地址。 图2-6 比特币非对称加密机制 11.?数字签名 数字签名就是在信息后面加上另一段内容,作为发送者的证明并且证明信息没有被篡改。一般是发送者将信息用哈希算法处理得出一个哈希值,然后用私钥对该哈希值进行加密,得出一个签名。然后发送者再将信息和签名一起发送给接收者。接收者使用发送者的公钥对签名进行解密,还原出哈希值,再通过哈希算法来验证信息的哈希值和解密签名还原出来的哈希值是否一致,从而可以鉴定信息是否来自发送者或验证信息是否被篡改。 12.?比特币的隐私模型 传统隐私模型(见图2-7)为交易的参与者提供了一定程度的隐私保护,第三方不会交出交易者的个人身份信息,公众所得知的只是某个人将一定数量的货币发给了另外一个人,但是难以将该交易与某个特定身份的人联系起来,公众无法知道这人到底是谁。这同股票交易所发布的信息是类似的,每一手股票买卖发生的时间、交易量是记录在案且可供查询的,但是交易双方的身份信息却不予透露。但实际上,交易双方的个人信息是存放在第三方机构,所以一定程度上交易参与者的隐私信息还是会有泄露的风险。 图2-7 传统隐私模型 在比特币的隐私模型(见图2-8)中,所有的交易不需要第三方的操控,也不需要提供任何身份信息,只需要提供比特币的地址就可以跟任何人完成一次准匿名的交易。在一定程度上,交易不可追溯到交易者本身,因此比特币上的交易可以在一定程度上摆脱监管。但通过对区块链上交易的地址以及交易额做关联分析,也可以获得有关交易者的蛛丝马迹。因此,比特币的交易还不是纯粹的匿名交易机制,而是准匿名(pseudo-anonymous)交易机制。 图2-8 比特币的隐私模型 2.1.2 框架与特点 1.?框架简介 目前大多数区块链技术的应用与比特币类似,大部分是在比特币架构基础上的扩展。目前,区块链技术在金融行业得到广泛关注,被认为可以用来从最底层重构传统金融业现有的IT基础架构。我们将区块链的基础架构分为三层来进行讲解,如图2-9所示。 图2-9 区块链基础架构 首先,在网络层之上,区块链是建立在IP通信协议和对等网络的基础上的一个分布式系统,和传统带中心的分布式系统不一样,它不依靠中心化的服务器节点来转发消息,而是每一个节点都参与消息的转发。因此P2P网络比传统网络具有更高的安全性,任何一个节点被攻击都不会影响整个网络,所有的节点都保存着整个系统的状态信息。 其次,在数据层面上,区块链就是一个只可追加、不可更改的分布式数据库系统,是一个分布式账本。如果是公开的区块链,也就是公有链,那么这个账本可以被任何人在任何地方进行查询,完全公开透明。在区块链网络中,节点通过使用共识算法来维持网络中账本数据库的一致性。同时采用密码学的签名和哈希算法来确保这个数据库不可篡改,不能作伪,并且可追溯。例如,在比特币系统中,只有在控制了51%的网络算力时才有可能对区块链进行重组以修改账本信息。由于比特币系统的设计者中本聪在系统设计中巧妙地加入了带有经济激励的挖矿工作量证明(PoW)机制,使得即使拥有网络51%以上算力的人也不会损害其自身利益而发起对网络的攻击。因此,比特币系统自上线7年多来一直持续不断地正常运行,没有出现过因为比特币系统本身缺陷而造成的安全故障。 再次,在应用层面,我们可以用区块链代替传统的登记、清算系统。2016年6月22日,波士顿咨询公司指出,到2030年,全球支付业务收入预计将会达到8070亿美元。基于区块链技术的汇兑和支付属于区块链的1.0应用版,其安全性、交易时间、成本都会对传统支付业务进行颠覆式改进。花旗银行也明确指出,到2020年,如果各大金融机构都使用区块链技术,每年能够节省超过200亿美元的成本。国信证券分析报告指出,通过区块链的点对点分布式的时间戳服务器来生成依照时间前后排列并加以记录的电子交易证明,可以解决双重支付问题,从而带来结算成本趋零的可能性。根据德国银行的一份引用波士顿咨询的研究报告,欧洲银行的IT成本支出平均占据银行整体运行成本的16%[5]。一个重要原因就是传统银行在账本的维护、支付交易的结算和清算方面的架构过于复杂,维护成本过高。 在应用方面,区块链平台能够提供编程环境让用户编写智能合约。通过智能合约,可以把业务规则转化成在区块链平台自动执行的合约,该合约的执行不依赖可信任的第三方,也不受人为的干预。理论上只要一旦部署,一旦符合合约执行的条件就会自动执行。执行结果也可以在区块链上供公开检查,提供了合约的公正性和透明性。因此,智能合约可以降低合约建立、执行和仲裁中所涉及的中间机构成本。区块链的智能合约奠定了未来建立可编程货币、可编程金融,甚至是可编程社会的基础。 2.?架构特点 区块链具有去中心化、可靠数据库、开源可编程、集体维护、安全可信、交易准匿名性等特点。如果一个系统不具有以上特征,将不能被视为基于区块链技术的应用。 (1)去中心化 区块链数据的存储、传输、验证等过程均基于分布式的系统结构,整个网络中不依赖一个没有中心化的硬件或管理机构。作为区块链一种部署模式,公共链网络中所有参与的节点都可以具有同等的权利和义务。 (2)可靠数据库 区块链系统的数据库采用分布式存储,任一参与节点都可以拥有一份完整的数据库拷贝。除非能控制系统中超过一半以上的算力,否则在节点上对数据库的修改都将是无效的。参与系统的节点越多,数据库的安全性就越高。并且区块链数据的存储还带有时间戳,从而为数据添加了时间维度,具有极高的可追溯性。 (3)开源可编程 区块链系统通常是开源的,代码高度透明公共链的数据和程序对所有人公开,任何人都可以通过接口查询系统中的数据。并且区块链平台还提供灵活的脚本代码系统,支持用户创建高级的智能合约、货币和去中心化应用。例如,以太坊(Ethereum)平台即提供了图灵完备的脚本语言,供用户来构建任何可以精确定义的智能合约或交易类型。关于以太坊的更多内容请参考2.2节。 (4)集体维护 系统中的数据块由整个系统中所有具有记账功能的节点来共同维护,任一节点的损坏或失去都不会影响整个系统的运作。 (5)安全可信 区块链技术采用非对称密码学原理对交易进行签名,使得交易不能被伪造;同时利用哈希算法保证交易数据不能被轻易篡改,最后借助分布式系统各节点的工作量证明等共识算法形成强大的算力来抵御破坏者的攻击,保证区块链中的区块以及区块内的交易数据不可篡改和不可伪造,因此具有极高的安全性。 (6)准匿名性 区块链系统采用与用户公钥挂钩的地址来做用户标识,不需要传统的基于PKI(Public Key Infrastructure)的第三方认证中心(Certif?icate Authority,CA)颁发数字证书来确认身份。通过在全网节点运行共识算法,建立网络中诚实节点对全网状态的共识,间接地建立了节点间的信任。用户只需要公开地址,不需要公开真实身份,而且同一个用户可以不断变换地址。因此,在区块链上的交易不和用户真实身份挂钩,只是和用户的地址挂钩,具有交易的准匿名性。。 区块链技术的核心优势是去中心化,能够通过运用哈希算法、数字签名、时间戳、分布式共识和经济激励等手段,在节点无需互相信任的分布式系统中建立信用,实现点对点交易和协作,从而为中心化机构普遍存在的高成本、低效率和数据存储不安全等问题提供了解决方案。近年来,伴随着国内外研究机构对区块链技术的研究与应用,区块链的应用前景受到各行各业的高度重视,被认为是继大型机、个人电脑、互联网、移动/社交网络之后计算范式的第5次颠覆式创新,是人类信用进化史上继血亲信用、贵金属信用、央行纸币信用之后的第4个里程碑。它被视为下一代云计算的雏形,有望彻底重塑人类社会活动形态,并实现从现在的信息互联网到价值互联网的转变。 2.1.3 区块链运作的核心技术  1.?区块链的链接 顾名思义,区块链即由一个个区块组成的链。每个区块分为区块头和区块体(含交易数据)两个部分。区块头包括用来实现区块链接的前一区块的哈希(PrevHash)值(又称散列值)和用于计算挖矿难度的随机数(nonce)。前一区块的哈希值实际是上一个区块头部的哈希值,而计算随机数规则决定了哪个矿工可以获得记录区块的权力。区块链的链接模型如图2-10所示。 图2-10 区块链的链接模型 2.?共识机制 区块链是伴随比特币诞生的,是比特币的基础技术架构。可以将区块链理解为一个基于互联网的去中心化记账系统。类似比特币这样的去中心化数字货币系统,要求在没有中心节点的情况下保证各个诚实节点记账的一致性,就需要区块链来完成。所以区块链技术的核心是在没有中心控制的情况下,在互相没有信任基础的个体之间就交易的合法性等达成共识的共识机制。 区块链的共识机制目前主要有4类:PoW、PoS、DPoS、分布式一致性算法。 (1)PoW PoW(工作量证明),也就是像比特币的挖矿机制,矿工通过把网络尚未记录的现有交易打包到一个区块,然后不断遍历尝试来寻找一个随机数,使得新区块加上随机数的哈希值满足一定的难度条件,例如前面10位是零。找到满足条件的随机数,就相当于确定了区块链最新的一个区块,也相当于获得了区块链的本轮记账权。矿工把满足挖矿难度条件的区块在网络中广播出去,全网其他节点在验证该区块满足挖矿难度条件,同时区块里的交易数据符合协议规范后,将各自把该区块链接到自己版本的区块链上,从而在全网形成对当前网络状态的共识。 优点:完全去中心化,节点自由进出,避免了建立和维护中心化信用机构的成本。只要网络破坏者的算力不超过网络总算力的50%,网络的交易状态就能达成一致。 缺点:目前比特币挖矿造成大量的资源浪费;另外挖矿的激励机制也造成矿池算力的高度集中,背离了当初去中心化设计的初衷。更大的问题是PoW机制的共识达成的周期较长,每秒只能最多做7笔交易,不适合商业应用。 (2)PoS PoS权益证明,要求节点提供拥有一定数量的代币证明来获取竞争区块链记账权的一种分布式共识机制。如果单纯依靠代币余额来决定记账者必然使得富有者胜出,导致记账权的中心化,降低共识的公正性,因此不同的PoS机制在权益证明的基础上,采用不同方式来增加记账权的随机性来避免中心化。例如点点币(PeerCoin)PoS机制中,拥有最多链龄长的比特币获得记账权的几率就越大。NXT和Blackcoin则采用一个公式来预测下一个记账的节点。拥有多的代币被选为记账节点的概率就会大。未来以太坊也会从目前的PoW机制转换到PoS机制,从目前看到的资料看,以太坊的PoS机制将采用节点下赌注来赌下一个区块,赌中者有额外以太币奖,赌不中者会被扣以太币的方式来达成下一区块的共识。 优点:在一定程度上缩短了共识达成的时间,降低了PoW机制的资源浪费。 缺点:破坏者对网络攻击的成本低,网络的安全性有待验证。另外拥有代币数量大的节点获得记账权的几率更大,会使得网络的共识受少数富裕账户支配,从而失去公正性。 (3)DPoS DPoS(股份授权证明)机制,类似于董事会投票。比特股(bitshares)采用的PoS机制是持股者投票选出一定数量的见证人,每个见证人按序有两秒的权限时间生成区块,若见证人在给定的时间片不能生成区块,区块生成权限交给下一个时间片对应的见证人。持股人可以随时通过投票更换这些见证人。DPoS的这种设计使得区块的生成更为快速,也更加节能。 优点:大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证。 缺点:选举固定数量的见证人作为记账候选人有可能不适合于完全去中心化的场景。另外在网络节点数少的场景,选举的见证人的代表性也不强。 (4)分布式一致性算法 分布式一致性算法是基于传统的分布式一致性技术。其中有分为解决拜占庭将军问题的拜占庭容错算法,如PBFT。另外解决非拜占庭问题的分布式一致性算法(Pasox、Raft),详细见本书第5章的共识算法。该类算法目前是联盟链和私有链链场景中常用的共识机制。 优点:实现秒级的快速共识机制,保证一致性。 缺点:去中心化程度不如公有链上的共识机制;更适合多方参与的多中心商业模式。 3.?解锁脚本 脚本是区块链上实现自动验证、自动执行合约的重要技术。每一笔交易的每一项输出严格意义上并不是指向一个地址,而是指向一个脚本。脚本类似一套规则,它约束着接收方怎样才能花掉这个输出上锁定的资产。 交易的合法性验证也依赖于脚本。目前它依赖于两类脚本:锁定脚本与解锁脚本。锁定脚本是在输出交易上加上的条件,通过一段脚本语言来实现,位于交易的输出。解锁脚本与锁定脚本相对应,只有满足锁定脚本要求的条件,才能花掉这个脚本上对应的资产,位于交易的输入。通过脚本语言可以表达很多灵活的条件。解释脚本是通过类似我们编程领域里的“虚拟机”,它分布式运行在区块链网络里的每一个节点。 比特币的脚本目前常用的主要分为两种,一种是普通的P2PKH(Pay-to-Public-Key-Hash),即支付给公钥的哈希地址,接收方只需要使用地址对应的私钥对该输出进行签名,即可花掉该输出。另一种是P2SH(Pay-to-Script-Hash),即支付脚本的哈希。以多重签名来举例,它要求该输出要有N把私钥中的M把私钥(M≤N)同时签名才能花掉该资产,它类似于现实生活中需要多把钥匙才能同时打开的保险柜,或是多人签名才能使条约生效一样,只是它是自动执行。 比如在比特币中,P2PKH的脚本规则如下: Pubkey script: OP_DUP OP_HASH160 <PubKeyHash> OP_EQUALVERIFY OP_CHECKSIG Signature script: <sig> <pubkey> P2SH的脚本规则如下: Pubkey script: OP_HASH160 <Hash160(redeemScript)> OP_EQUAL Signature script: <sig> [sig] [sig...] <redeemScript> 在上述的两种脚本规则里,Pubkey script代表锁定脚本,Signature script代表解锁脚本。OP_开头的单词是相关的脚本命令,也是“虚拟机”所能解析的指令。这些命令规则根据Pubkey script的不同来进行划分,它也决定解锁脚本的规则。 比特币中的脚本机制相对简单,只是一个基于堆栈式的、解释相关OP指令的引擎,能够解析的脚本规则并不是太多,不能实现很复杂的逻辑。但它为区块链可编程提供了一个原型,后续一些可编程区块链项目其实是基于脚本的原理发展起来的,比如以太坊就是深入增强了脚本机制,脚本机制里不再单单是简单的OP指令,而是支持脚本的一套图灵完备语言,该脚本语言可以通过“虚拟机”去执行。以太坊实现了一个支持图灵完备脚本语言的区块链平台。 脚本的机制对于区块链来说非常重要,它类似于区块链技术提供的一个扩展接口,任何人都可以基于这个接口开发基于区块链技术的应用,比如智能合约的功能。脚本机制也让区块链技术作为一项底层协议成为可能。未来很多基于区块链的颠覆性应用,都有可能通过区块链的脚本语言来完成。 4.?交易规则 区块链的交易就是构成区块的基本单位,也是区块链负责记录的实际有效内容。一个区块链交易可以是一次转账,也可以是智能合约的部署等其他事务。 就比特币而言,交易即指一次支付转账。其交易规则如下: 1)交易的输入和输出不能为空。 2)对交易的每个输入,如果其对应的UTXO输出能在当前交易池中找到,则拒绝该交易。因为当前交易池是未被记录在区块链中的交易,而交易的每个输入,应该来自确认的UTXO。如果在当前交易池中找到,那就是双花交易。 3)交易中的每个输入,其对应的输出必须是UTXO。 4)每个输入的解锁脚本(unlocking script)必须和相应输出的锁定脚本(locking script)共同验证交易的合规性。 对于以太坊来说,交易还可能是智能合约的部署。交易规则就确定了符合一定语法规则的合约才能被部署在区块链上。 5.?交易优先级 区块链交易的优先级由区块链协议规则决定。对于比特币而言,交易被区块包含的优先次序由交易广播到网络上的时间和交易额的大小决定。随着交易广播到网络上的时间的增长,交易的链龄增加,交易的优先级就被提高,最终会被区块包含。对于以太坊而言,交易的优先级还与交易的发布者愿意支付的交易费用有关,发布者愿意支付的交易费用越高,交易被包含进区块的优先级就越高。 6.?Merkle证明 Merkle证明的原始应用是比特币系统(Bitcoin),它是由中本聪(Satoshi Nakamoto)在2009年描述并且创造的。比特币区块链使用了Merkle证明,为的是将交易存储在每一个区块中。使得交易不能被篡改,同时也容易验证交易是否包含在一个特定区块中,Merkle树说明详见4.2节。比特币的Merkle证明树如图2-11所示。 图2-11 比特币的Merkle证明树 Merkle树的一个重要使用场景就是快速支付验证,也就是中本聪描述的“简化支付验证”(SPV)的概念:轻量级节点(light client)不用下载每一笔交易以及每一个区块,可以仅下载链的区块头,每个区块中仅包含下述5项内容,数据块大小为80字节。 上一区块头的哈希值 时间戳 挖矿难度值 工作量证明随机数(nonce) 包含该区块交易的Merkle树的根哈希 如果一个轻客户端希望确定一笔交易的状态,它可以简单地要求一个Merkle证明,显示出一个在Merkle树特定的交易,其根是在主链(main chain,非分叉链)上的区块头。 Merkle证明可以让区块链得到更广阔的应用,但比特币的轻客户有其局限性。虽然可以证明包含的交易,但无法证明任何当前的状态(例如:数字资产的持有,名称注册,金融合约的状态等)。一笔交易影响的确切性质(precise nature)可以取决于此前的几笔交易,而这些交易本身则依赖于更为前面的交易,所以最终你需要验证整个链上的每一笔交易。为了解决这个问题,以太坊进行了更进一步的创新。 以太坊的每一个区块头中并非只包含一棵Merkle树,而是包含了3棵Merkle树(见图2-12),分别对应了以下3种对象: 交易(Transactions) 收据(Receipts,基本上,它是展示每一笔交易影响的数据条) 状态(State) 图2-12 以太坊的Merkle证明树 这三棵树允许轻客户端轻松地进行并核实以下类型的查询答案: 1)这笔交易被包含在特定的区块中了吗? 2)告诉我这个地址在过去30天中,发出X类型事件的所有实例(例如,一个众筹合约完成了它的目标)。 3)目前我的账户余额是多少? 4)这个账户是否存在? 5)假装在这个合约中运行这笔交易,它的输出会是什么? 第一种是由交易树(transaction tree)来处理的;第3和第4种则是由状态树(state tree)负责处理,第2种则由收据树(receipt tree)处理。计算前4个查询任务是相当简单的。在服务器简单地找到对象,获取梅克尔分支,并通过分支来回复轻客户端。第5种查询任务同样也是由状态树处理。 7.?RLP RLP(Recursive Length Pref?ix,递归长度前缀编码)是Ethereum中对象序列化的一个主要编码方式,其目的是对任意嵌套的二进制数据的序列进行编码。 以太坊中的所有数据都以“递归长度前缀编码”(Recursive Length Pref?ix encoding,RLP)形式存储,这种编码格式将任意长度和维度的字符串构成的数组串连接成字符串。例如,['dog', 'cat']被串接(以字节数组格式)为[130,67,100,111,103,67,99,97,116];其基本的思想是把数据类型和长度编码成一个单独的字节放在实际数据的前面(例如‘dog’的字节数组编码为[100,111,103],于是串接后就成了[67,100,111,103])。注意RLP编码正如其名字表示的一样,是递归的;当RLP编码一个数组时,实际上是在对每一个元素的RLP编码级联成的字符串编码。需要进一步提请注意的是,以太坊中所有数据都是整数;所以,如果有任何的以一个或多个0字节开头的哈希或者地址,这些0字节应该在计算出现问题的时候去除。以太坊中没有串接数据结构包含任何以0开头的数值。整数以大端基础(Big Endian)256格式存储(例如32767字节数组格式为[127,255])。 2.1.4 区块链交易流程 以比特币的交易为例,区块链的交易并不是通常意义上的一手交钱一手交货的交易,而是转账。如果每一笔转账都需要构造一笔交易数据会比较笨拙,为了使得价值易于组合与分割,比特币的交易被设计为可以纳入多个输入和输出,即一笔交易可以转账给多个人。从生成到在网络中传播,再到通过工作量证明、整个网络节点验证,最终记录到区块链,就是区块链交易的整个生命周期。整个区块链交易流程如图2-13所示。 图2-13 区块链交易流程 交易的生成。所有者A利用他的私钥对前一次交易和下一位所有者B签署一个数字签名,并将这个签名附加在这枚货币的末尾,制作成交易单。 交易的传播。A将交易单广播至全网,每个节点都将收到的交易信息纳入一个区块中。 工作量证明。每个节点通过相当于解一道数学题的工作量证明机制,从而获得创建新区块的权力,并争取得到数字货币的奖励。 整个网络节点验证。当一个节点找到解时,它就向全网广播该区块记录的所有盖时间戳交易,并由全网其他节点核对。 记录到区块链。全网其他节点核对该区块记账的正确性,没有错误后他们将在该合法区块之后竞争下一个区块,这样就形成了一个合法记账的区块链。 2.2 以太坊 2.2.1 什么是以太坊 自2008年比特币出现以来,数字货币的存在已经渐渐为一部分人所接受。人们也积极展开了基于比特币的商业应用的思考与开发。但是随着应用的扩展,人们发现比特币的设计只适合虚拟货币场景,由于存在着非图灵完备性、缺少保存状态的账户概念,以及PoW挖矿机制所带来的资源浪费和效率问题,在很多区块链应用场景下并不适用。人们需要一个新的基于区块链的具有图灵完备性、高效共识机制、支持更多应用场景的智能合约开发平台。以太坊在这种情况下应运而生。 以太坊的目的是对脚本、竞争币和链上元协议(on-chain meta-protocol)等概念进行整合和提高,使得开发者能够创建任意的基于共识的、可扩展的、标准化的、图灵完备的、易于开发和协同的应用。 以太坊是一个通用的全球性区块链,可以管理金融和非金融类型应用的状态。以太坊的新颖在于其神奇的计算机网络,它促成了一种新型的软件应用,真正的去中心化应用。将信任逻辑嵌入小程序里,运行在区块链上。而与比特币相比,以太坊建立了一种新的密码学技术基础框架,在其上开发应用更加容易,并对轻客户端友好,同时允许应用共享一个可行的经济环境和可靠的区块链安全。以太坊在全球范围内激发了商业和社会创新,为前所未有的去中心化应用打开了大门。从长远来看,它所带来的改变将影响全球经济和控制结构。 以太坊是个平台和编程语言,包括数字货币以太币(Ether),以及用来构建和发布分布式应用的以太脚本(EtherScript)。 以太币和著名的数字货币比特币有非常多的相似之处。两者均为数字货币且无法伪造,都以去中心化的方式运行来保证货币供应不被某一方所控制。以太坊的另一半重要特性是提供一个完整的编程语言环境,有时也被叫作以太脚本。我们都知道,编程语言是人类用来控制计算机工作的。因此,用任何编程语言写好的指令对计算机来说都是准确无误没有歧义的。也就是说,计算机如何执行一段代码是没有二义性的。在同样的条件下,一段代码总是会按照既定的步骤执行。这种特性正是人类现行法律与合约所缺失的。因此,有了以太脚本之后,我们就可以制定没有二义性的合约了。 从最底层角度来看,以太坊是一个多层的、基于密码学的开源技术协议。它的不同功能模块通过设计进行了全面的整合,作为一个整体,它是一个创建和部署去中心化应用的综合平台。虽然,以太坊看起来像由多个互相联系的开源项目构成的混合体,但是它的进化一直被明确目标所引导,所以各个组件可以协同地组装在一起。 同时,以太坊也是区块链与智能合约的完美结合,是智能合约的完整解决方案,被设计成了一个通用的去中心化平台,拥有一套完整的、可以扩展其功能的工具,在P2P网络、加密、HttpClient等技术的支持下实现了一个类似于比特币的区块链。它通过工作量证明机制实现共识,由矿工挖矿,通过对新的网络协议的制定实现对区块链的同步等操作。不同于比特币的是,在以太坊上可以任意编写智能合约,通过智能合约实现强大的功能,实现去中心化应用的开发。在以太坊上部署的智能合约运行在以太坊特有的虚拟机上,通过以太坊虚拟机和RPC接口与底层区块链进行交互。 以太坊的总体系统架构如图2-14所示。 图2-14 以太坊总体架构 2.2.2 以太坊技术 1.?以太坊核心概念 (1)以太坊虚拟机 以太坊虚拟机(EVM)是以太坊中智能合约的运行环境。它是以太坊项目中的另一个主要创新。有人说EVM“位于区块链之上”,实际上它是由许多互相连接的计算机组成的。任何人都可以上传程序,并让这些程序自动执行,同时保证现在和所有以前的每个程序的状态总是公共可见的。这些程序运行在区块链上,严格地按照EVM定义的方式继续执行。所以任何人都可以为所有权、交易格式和状态转换函数创建商业逻辑。 (2)账户 以太坊中有两类账户,它们共用同一个地址空间。外部账户,该类账户被公钥-私钥对控制。合约账户,该类账户被存储在账户中的代码控制。外部账户的地址是由公钥决定的,合约账户的地址是在创建合约时由合约创建者的地址和该地址发出过的交易数量计算得到。两类账户的唯一区别是:外部账户没有代码,人们可以通过创建和签名一笔交易从一个外部账户发送消息。每当合约账户收到一条消息,合约内部的代码就会被激活,允许它对内部存储进行读取、写入、发送其他消息和创建合约。 以太坊的账户包含4个部分:①随机数,用于确定每笔交易只能被处理一次的计数器;②账户目前的以太币余额;③账户的合约代码(如果有的话);④账户的存储(默认为空)。 (3)消息 以太坊的消息在某种程度上类似于比特币的交易,但是两者之间存在3点重要的不同。 1)以太坊的消息可以由外部实体或者合约创建,然而比特币的交易只能从外部创建。 2)以太坊消息可以选择包含数据。 3)如果以太坊消息的接收者是合约账户,可以选择进行回应,这意味着以太坊消息也包含函数概念。 (4)交易 以太坊中“交易”是指存储从外部账户发出的消息的签名数据包。交易包含消息的接收者、用于确认发送者的签名、以太币账户余额、要发送的数据和被称为STARTGAS和GASPRICE的两个数值。为了防止代码出现指数型爆炸和无限循环,每笔交易需要对执行代码所引发的计算步骤做出限制。STARTGAS就是通过需要支付的燃料来对计算步骤进行限制,GASPRICE是每一计算步骤需要支付矿工的燃料的价格。 (5)Gas 以太坊上的每笔交易都会被收取一定数量的燃料Gas,设置Gas的目的是限制交易执行所需的工作量,同时为交易的执行支付费用。当EVM执行交易时,Gas将按照特定规则被逐渐消耗。Gas价格由交易创建者设置,发送账户需要预付的交易费用= GASPRICE * Gas amount。如果执行结束还有Gas剩余,这些Gas将被返还给发送账户。无论执行到什么位置,一旦Gas被耗尽就会触发一个out-of-gas异常。同时,当前调用帧所做的所有状态修改都将被回滚。 (6)存储、主存和栈 每个账户都有一块永久的内存区域,被称为存储,其形式为key-value,key和value的长度均为256位。在合约里,不能遍历账户的存储。相对于主存和栈,存储的读操作开销较大,修改存储甚至更多。一个合约只能对它自己的存储进行读写。 第二个内存区被称为主存。合约执行每次消息调用时都有一块新的被清除过的主存。主存可以按字节寻址,但是读写的最小单位为32字节。操作主存的开销随着主存的增长而变大。 EVM不是基于寄存器的,而是基于栈的虚拟机。因此所有的计算都在一个称为栈的区域内执行。栈最大有1024个元素,每个元素有256位。对栈的访问只限于其顶端,允许复制最顶端的16个元素中的一个到栈顶,或者是交换栈顶元素和下面16个元素中的一个。所有其他操作都只能取最顶的一个或几个元素,并把结果压在栈顶。当然可以把栈里的元素放到存储或者主存中。但是无法只访问栈里指定深度的那个元素,在那之前必须把指定深度之上的所有元素都从栈中移除才行。 (7)指令集 EVM的指令集被刻意保持在最小规模,以尽可能避免可能导致共识问题的错误。所有的指令都是针对256位这个基本的数据单位进行的操作,具备常用的算术、位、逻辑和比较操作,也可以进行条件和无条件跳转。此外,合约可以访问当前区块的相关属性,比如它的编号和时间戳。 (8)消息调用 合约可以通过消息调用的方式来调用其他合约,或者发送以太币到非合约账户。消息调用和交易非常类似,它们都有一个源,一个目标,数据负载,以太币,Gas和返回数据。事实上每个交易都可以被认为是一个顶层消息调用,这个消息调用会依次产生更多的消息调用。 一个合约可以决定剩余Gas的分配。比如内部消息调用时使用多少Gas,或者期望保留多少Gas。如果在内部消息调用时发生了out-of-gas异常或者其他异常,合约将会得到通知,一个错误码被压入栈中。这种情况只是内部消息调用的Gas耗尽。在solidity中,这种情况下发起调用的合约默认会触发一个人工异常,这个异常会打印出调用栈。 就像之前说过的,被调用的合约(发起调用的合约也一样)会拥有崭新的主存,并能够访问调用的负载。调用负载被存储在一个单独的被称为calldata的区域。调用执行结束后,返回数据将被存放在调用方预先分配好的一块内存中。调用层数被限制为1024。因此对于更加复杂的操作,我们应该使用循环而不是递归。 (9)代码调用和库 以太坊中存在一种特殊类型的消息调用,被称为callcode。它跟消息调用几乎完全一样,只是加载来自目标地址的代码将在发起调用的合约上下文中运行。这意味着一个合约可以在运行时从另外一个地址动态加载代码。存储,当前地址和余额都指向发起调用的合约,只有代码是从被调用地址获取的。这使得Solidity可以实现“库”。可复用的库代码可以应用在一个合约的存储上,可以用来实现复杂的数据结构,从而使智能合约更加的强大。 2.?以太坊的状态转换 以太坊的状态转换是指在一个交易(TX)发生时,以太坊从一个正确状态(S)转变到下一个正确状态(S’)的转换过程,如图2-15所示。对于交易而言,为了防止代码的指数型爆炸和无限循环,每笔交易需要对执行代码所引发的计算步骤做出限制。STARTGAS就是限制,GASPRICE是每一计算步骤需要支付矿工的费用价格。 图2-15 以太坊状态转换 以太坊的状态转换函数为APPLY(S, TX) -> S’,可以定义如下: 1)检查交易的格式是否正确,签名是否有效,以及随机数是否与发送者账户的随机数匹配。如否,返回错误。 2)计算交易费用fee = STARTGAS * GASPRICE,并从签名中确定发送者的地址。从发送者的账户中减去交易费用和增加发送者的随机数。如果账户余额不足,返回错误。 3)设定初值Gas = STARTGAS,并根据交易中的字节数减去一定量的燃料值。 4)从发送者的账户转移价值到接收者账户。如果接收账户还不存在,创建此账户。如果接收账户是一个合约,运行合约的代码,直到代码运行结束或者燃料用完。 5)如果因为发送者账户没有足够的费用或者代码执行耗尽燃料导致价值转移失败,恢复原来的状态,但是还需要支付交易费用,交易费用加至矿工账户。 6)若代码执行成功,将所有剩余的燃料归还给发送者,消耗掉的燃料作为交易费用发送给矿工。 例如,假设一个合约的代码如下: if !contract.storage[msg.data[0]]: contract.storage[msg.data[0]] = msg.data[1] 需要注意的是,在现实中合约代码是用底层以太坊虚拟机(EVM)代码写成的。上面的合约是用我们的高级语言Serpent语言写成的,它可以被编译成EVM代码。假设合约存储器开始时是空的,一个值为10以太、燃料为2000、燃料价格为0.001以太并且两个数据字段值为[2,'CHARLIE']的交易发送后,状态转换函数的处理过程如下: 1)检查交易是否有效,格式是否正确。 2)检查交易发送者是否至少有2000×0.001=2个以太币。如果有,从发送者账户中减去2个以太币。 3)初始设定Gas=2000,假设交易长为170字节,每字节的费用是5,减去850,所以还剩1150。 4)从发送者账户减去10个以太币,为合约账户增加10个以太币。 5)运行代码。在这个合约中,运行代码很简单:它检查合约存储器索引为2处是否已使用,注意到它未被使用,然后将其值置为CHARLIE。假设这消耗了187单位的燃料,于是剩余的燃料为1150-187 = 963。 6)向发送者的账户增加963×0.001=0.963个以太币,返回最终状态。 如果没有合约接收交易,那么所有的交易费用就等于GASPRICE×交易的字节长度,交易的数据就与交易费用无关了。另外,需要注意的是,合约发起的消息可以对它们产生的计算分配燃料限额,如果子计算的燃料用完了,它只恢复到消息发出时的状态。因此,就像交易一样,合约也可以通过对它产生的子计算设置严格的限制,保护它们的计算资源。 3.?以太坊客户端 为了测试各种语言对以太坊的支持,同时使更多的人能够参与以太坊的开发及使用,目前有4种语言编写的以太坊的客户端。它们分别是用Go语言实现的客户端Geth,用C++实现的客户端Eth,用Python语言实现的客户端Pyethapp和用Java实现的客户端EthereumJ。其中,Go语言版是以太坊官方一直维护并推荐使用的客户端。 以太坊包括一个专用的客户端浏览器,使得用户可以运行各种各样的去中心化应用(DApp),发布智能合约。这一浏览器被称为Mist,它易于使用,降低了用户使用门槛,从而使得DApp和智能合约能够被大量用户使用。它的作用等同于浏览器之于互联网或者iTunes之于数字化内容下载。Mist由特殊的安全层、密钥管理、去中心化账户管理和与区块链相关的组件几部分组成。这一切使得Mist成为普通用户运行或者管理区块链去中心化应用不可或缺的工具,普通用户不需要理解技术方面的东西。 从用户体验角度而言,可以在Mist中使用DApp,就像通过常规浏览器与网站进行交互一样。例如,一个纯DApp(例如预测市场Augur)就可以在以太坊Mist浏览器中运行。当然,这些服务也可以通过一个常规浏览器以更加传统的Web 2.0的方式实现。 2.2.3 以太坊智能合约 1.?智能合约 智能合约是由尼克萨博提出的理念,几乎与互联网同龄。但是由于缺少可信的执行环境,智能合约并没有被应用到实际产业中。自从比特币诞生后,人们认识到比特币的底层技术区块链天生可以为智能合约提供可信的执行环境,以太坊首先实现了区块链和智能合约的完整契合。 以太坊是内置有图灵完备编程语言的区块链,通过建立抽象的基础层,使得任何人都能够创建合约和去中心化应用,并在其中设立他们自由定义的所有权规则、交易方式和状态转换函数。建立一个代币的主体框架只需要两行代码就可以实现,诸如货币和信誉系统等其他协议只需要不到20行代码就可以实现。智能合约就像能在以太坊的平台上创建的包含价值而且只有满足某些条件才能打开的加密箱子,并且因为图灵完备性、价值意识(value-awareness)、区块链意识(blockchain-awareness)和记录多状态所增加的功能而比比特币脚本所能提供的智能合约强大得多。 2.?开发语言 以太坊的软件开发语言是其最大特性之一,因为对区块链进行编程是一项首要目标。以太坊具有4种专用语言:Serpent(受Python启发)、Solidity(受JavaScript启发)、Mutan(受Go启发)和LLL(受Lisp启发),都是为面向合约编程而从底层开始设计的语言。 作为以太坊的高级编程语言,Serpent的设计非常类似于Python。它被设计为最大可能地简洁和简单,将低级语言的高效优势与编程风格中的易用性相结合。 Solidity是以太坊的首选语言,它内置了Serpent的所有特性,但是语法类似于JavaScript。Solidity充分利用了现有数以百万程序员已掌握JavaScript这一现状,降低了学习门槛,易于被掌握和使用。 以太坊区块链的另一关键特征是它的“图灵完备性”,这保证了以太坊可以解决所有的计算问题。更加准确地说,它是“半”图灵完备的,因为它是通过对计算量设置上限,它避免了完全图灵完备语言存在的无法停机问题。此外,因为以太坊的语言是为区块链专门设计的,它有账户的概念,使得它在交易的可视化和查询账户状态方面提供了实时性。这是一个受人欢迎的功能,但对比特币而言实现起来具有一定的挑战。在比特币上,由于只有UTXO而没有账户的概念,我们需要导入区块链数据库,解析所有的交易,并为了抽取出在区块链上的某个用户的交易情况而查询交易。而用以太坊,我们则可以在实时的区块链上,根据一个地址情况实时查看当前账户情况和交易状态。 3.?代码执行 以太坊合约的代码是使用低级的基于堆栈的字节码的语言写成的,被称为“以太坊虚拟机代码”或者“EVM代码”。代码由一系列字节构成,每一个字节代表一种操作。一般而言,代码执行是无限循环,程序计数器每增加一(初始值为零)就执行一次操作,直到代码执行完毕或者遇到错误、STOP或者RETURN指令。操作可以访问3种存储数据的空间: 1)堆栈,一种后进先出的数据存储,入栈、出栈的基本单位为32字节。 2)内存,可无限扩展的字节队列。 3)合约的长期存储,一个密钥/数值的存储,其中密钥和数值都是32字节大小。与计算结束即重置的堆栈和内存不同,存储内容将长期保持。 代码可以像访问区块头数据一样访问数值、发送和接收到的消息中的数据,代码还可以返回数据的字节队列作为输出。EVM代码的正式执行模型非常简单。当以太坊虚拟机运行时,它的完整的计算状态可以由元组(block_state,transaction,message,code,memory,stack,pc,gas)来定义,这里block_state是包含所有账户余额和存储的全局状态。每轮执行时,通过调出代码的第pc(程序计数器)个字节,每个指令如何影响元组都有定义。例如,ADD将两个元素出栈并将它们的和入栈,将Gas减1并将pc加1;stack将顶部的两个元素出栈,并将第2个元素插入由第1个元素定义的合约存储位置,同样减少最多200的Gas值,并将pc加1。虽然有许多方法通过即时编译去优化以太坊,但以太坊的基础性的实施可以用几百行代码实现。 2.2.4 以太坊的去中心化应用 1.?什么是DApp 一个DApp是由智能合约和客户端代码构成的。智能合约就像加密的包含价值的箱子。只有当特定条件被满足时它才被打开,它封装了一些逻辑、规则、处理步骤或者双方间的协议。 从架构角度而言,DApp非常类似于传统的Web应用。主要区别是:在传统Web应用中,客户端有JavaScript代码,由用户在自己的浏览器中执行;服务器端的代码由主机运行。但是在一个DApp中,它的智能逻辑运行在区块链上,客户端代码运行在特殊浏览器Mist里面。 2.?应用举例 正如苹果电脑公司的App Store给众多公司和个人提供了极佳的商业机会一样,以太坊这样的平台上一定会出现类似“愤怒的小鸟”这样的成功范例,对于IT导向的创业公司和个人,这是一个广阔的空间。下面举几个例子,看看这个空间中正在孕育的项目。 Augur(www.augur.net),一个正在开发去中心化预测系统。Augur在英文中的意思是“预言家”,用户可以在这个应用上对各种事件打赌并下注,例如希拉里会不会赢得2016年美国的大选;2016年中国的GDP增长会不会超过7%;上证指数2020年之前会不会超10000点,等等。对于参与者而言,如果预测正确,则将获得经济上的回报;而对于社会整体而言,Augur便成了一个群体智慧的收集器,在它上面的下注信息反映了人们对于未来某事件发生可能性的最佳评估。当你打开搜索引擎,输入“×××会不会赢得2020年美国的大选”的时候,可能搜到这样的结果:“Augur:该事件发生的可能性为46.6%”。 Maker(www.makerdao.com),一个正在开发中的金融类去中心化自治组织。Maker是一个去中心化自治组织(Decentralized Autonomous Organization,DAO),它维护一系列用于金融服务的合约软件(即智能合约),其中的一个软件是贷券信贷系统(The Dai Credit System)。贷券信贷系统是一个通过抵押进行借贷的应用,当用户在区块链上拥有众多资产时,一个必然的需求就是,在不出售资产的情况下通过抵押借款获得资金,类似于房屋抵押贷款。 WeiFund,一个正在开发中的去中心化众筹平台。这个众筹平台的好处是资金不需要第三方托管,而是由程序托管,因此能够确保资金100%安全。如果在限定时间内众筹项目的资助超过预定目标,则程序将资金发送给创业者;如果目标未达到,则将资金退回给众筹参与者。 Boardroom,一个正在开发中的DAO管理平台。去中心化自治组织与传统公司一样,也可以有股份的概念,通常就是DAO的代币,这些代币又可以有投票权。与上一个例子中的WeiFund结合,可以发生有趣的事:如果众筹募资的目标达到,则WeiFund可以将资金发送给Boardroom,并将该众筹项目的参与者组成DAO。如此一来,这些参与者便可以通过投票来控制资金的具体使用,而不是简单地将资金一次性发放给创业者,这样便大大避免了来自创业者的道德风险。 Ujo Music,一个音乐版权管理平台,测试版。Ujo Music作为音乐版权管理平台,可以直接在歌曲的创作者与消费者之间建立直接的联系,从而省去了中间商的费用提成。更进一步,歌手甚至可以将自己的作品在WeiFund上进行IPO上市,如此一来,持有歌手代币的投资者就会分得歌手今后歌曲的销售收入,他们是歌手天然的铁杆粉丝团。帮助歌手推广音乐也不仅仅出于经济动机,同时也是出于情感上的支持,试想在周杰伦默默无闻的时候就持有他的代币,该是一件多么令粉丝感到骄傲的事。同时代币也是歌手与粉丝团之间互动的媒介,例如歌手可以让持有代币的粉丝优先购买演唱会的门票,如此,粉丝经济会更加红火。 贷券(Decentralized Autonomous Insured Bond)简称Dai或者Dai Bond,是一种可转让的、彼此等价可互换的“加密债券”,它流通于信贷系统中,使用者无需事先认证,同时又是低风险的。贷券的发行人(借款方)将在以太坊区块链上的以太等数字加密资产作为抵押品来发行贷券,再将这些贷券在市场上卖给贷券持有人以换回流动性好的资产。贷券的持有人之所以买入贷券是为了赚取收益,或者是为了将贷券当作价值稳定的加密货币来流通使用。 2.3 基于区块链的电子货币 2.3.1 元币平台 元币(metacoin)单词前缀“meta-”意为“在其中”。所以元币是衍生于现有加密货币体系之上,更专注于业务系统的代币种类。 (1)彩币 彩币(Colored Coins)是一种建立在比特币数据块上的高级衍生应用协议。彩币建立在P2P网络之上,具有去中心化的所有优势,可以用来进行任何虚拟财产和现实资产的交易,并且比传统金融交易更加快捷和方便,更重要的是,它没有手续费。彩币由一种特殊的钱包负责管理,进行记录和阐释附加在彩币中的元数据。通过这种钱包,用户可以通过添加标签,将一定量的比特币转化为彩币,使其具有特殊意义。而这种特殊意义,往往使其价值提升。相关元数据是由用户来定义的,并且使比特币转化为彩币。彩币一旦定义,便可以进行买卖、分销、积累或者分红。当然,也可以去颜色化,回归比特币。 (2)万事达币 万事达币(mastercoin)发布于2013年6月24日,是建立在比特币协议之上的二代币,旨在帮助用户创建并交易加密货币以及其他类型的智能合同。万事达币不仅仅是一种代币,更像是一个去中心化的财产交易、合同签署、用户货币、智能财产代币等的平台。打个形象的比方,就像HTTP运行在TCP层之上一样,万事达币是工作于比特币交易层之上的应用层协议。 (3)合约币 合约币(counterparty)是另一种建立在比特块链基础之上的协议层,它把比特币块链当成可信的时间戳服务和可信的信息发布证明。合约币在比特币中添加额外的信息记录,以此强化比特币的交易。合约币实现了用户货币、可交易代币、财经工具、去中心化交易等一些功能。 2.3.2 代币 尽管部分代币没有使用比特币,而是直接在区块链的基础上全新创建的,但事实上,大多数代币都是比特币衍生出来的。其中最值得一提的是莱特币(Litecoin),而莱特币本身又被作为代币的母币,衍生出更多新的代币。以同样方式诞生的还有代链这个概念。如同字面意思,两者的区别在于,代币用作货币目的,而代链用于非货币目的。本节介绍内容属于代币范畴。 代币的创建过程非常简单。2011年8月,通过修改比特币的一些参数,加速货币的产生速度,世界上第一种代币IXCoin诞生。自此以后,代币发展极其迅速。到2016年,已经有超过600种代币发布,并且,大部分是莱特币的变种。它们与比特币的差异主要存在于货币政策、工作量证明和共识机制以及所引入的新特性方面。其实,大多数代币之间差异甚微,甚至,有些代币的产生,只是发明者为了增加收入的一种手段,并不具备研究价值。但是,这些代币中还是有一些比较明显的例外,或者说有非常重要的创新值得我们学习。那么如何衡量一种代币呢?通常从如下几个方面思考:是否具有重大创新?是否能因为与比特币的区别从比特币吸引过来用户?是否针对市场或者应用?是否能吸引足够多的矿工来抵御联合作弊?财经和市场指标上,又可以从资本量、预计用户量、日交易量和流通性上来评价一种代币。 1.?通过货币参数修改而建立的代币 比特币有一些货币参数来预防货币通货膨胀。比特币限制为2100万主要货币单元的货币总量。许多代币修改了比特币的主要参数,从而实现了新的不同货币政策。最具代表性的有如下几种。 (1)莱特币 要介绍莱特币(Litecoin),就不得不提Tenebrix,它是第一个应用不同工作量证明算法的加密货币。此算法被称作scrypt,是专门为预防暴力破解密码而设计的。Tenebrix并没有成功,却为莱特币的诞生奠定了基础。作为主要的成功代币,莱特币的核心是继承了scrypt算法,修改了块产生时间,使之从比特币的10分钟缩短到2.5分钟,从而成为一种轻型代币。拥护者们认为,相对于比特币,莱特币更适合零售业的交易。更重要的是,以莱特币为基础,后来延伸出来上百种类似的代币。 提示: 块产生时间,2.5分钟;总货币量,8400万(2140年);共识算法,工作量证明Scrypt;市值, 96 961万元(2016年年中)。 (2)狗狗币 作为莱特币的变种,狗狗币(Dogecoin)发布于2013年12月。狗狗币的货币政策特点是发行迅速,货币配额巨大。 提示: 块产生时间,1分钟;总货币量,10?000亿(2016年年中);共识算法,工作量证明Scrypt;市值,8201万元(2016年年中)。 (3)运输币 运输币(Freicoin)发布于2012年7月,是一种滞期代币。其储存额具有负利率。运输币不鼓励持有,它收取4.5%的年费来促进消费。运输币之所以出名,是因为它所采用的货币政策与比特币的通货紧缩政策完全相反。作为代币,运输币并没有取得成功,却成为了供代币借鉴的多样性货币政策的重要一员。 提示: 块产生时间,10分钟;总货币量,1亿(2140年);共识算法,工作量证明SHA256;市值,13万美元(2014年年中)。 2.?基于共识机制的创新而建立的代币 比特币的共识机制是建立在用SHA256算法加密的作业证据基础之上的。从此,共识机制的创新进入了一个狂热的发展阶段。一些代币采用了各式各样的算法,如:Scrypt、Scrypt-N、Skein,Groestl、SHA3、X11、Blake等。还有的代币同时采用其中的几种算法。2013年,作为工作量证明的替代品,权益证明(Proof of Stake)被提出,为许多新代币的诞生提供了基础。权益证明系统中,拥有者可以将货币像股票一样抵押生息。它在某种程度上类似于存款证明,持有者可以保留所持货币的一部分,同时,以利息支付和交易费的形式赚取投资回报。 (1)点点币 点点币(Peercoin)诞生于2012年8月,是第一种综合使用工作量证明和权益证明机制来发行新币的代币。 提示: 块产生时间,10分钟;总货币量,不限;共识算法,工作量证明机制与权益证明结合;市值,5825万元(2016年年中)。 (2)Myriad Myriad发行于2014年2月,具有复合算法的特性,是第一个同时包含5种算法的加密货币。与比特币只能使用SHA256矿机挖矿不一样,Myriad兼容SHA256、Scrypt等算法,同时兼容GPU及CPU挖矿。Myriad对共识攻击具有更强的抵抗力,这是因为只有多种挖矿算法同时被攻击时才会受到攻击。 提示: 块产生时间,平均0.5分钟;总货币量,20亿(2024年);共识算法,工作量证明机制与多算法共用;市值, 12万美元(2014年年中)。 (3)黑币 发行于2014年2月的黑币(Blackcoin)使用权益证明作为共识算法。黑币走进人们的视野是因为它引入了多池这种可以根据利润差异在不同代币间自动切换的挖矿池。 提示: 块产生时间,1分钟;总货币量,不限;共识算法,权益证明;市值,1125万元(2016年年中)。 (4)维理币 维理币(VeriCoin)发行于2014年5月。它使用权益证明共识机制,并且采用根据市场供求动态调节的利率。同时,维理币也是第一种可以自动兑换成比特币的代币。 提示: 块产生时间,1分钟;总货币量,不限;共识算法,权益证明;市值,390万元(2016年年中)。 (5)未币 未币(NXT)彻底抛弃工作量证明,而仅仅使用权益证明共识机制,故NXT是一种全新的加密货币,因此不应称之为比特币的变种或者代币。NXT具有许多先进特性,如:名称注册、去中心化的财产交易、整合分散的安全消息、股票代表等。因此,NXT常被称作下一代数字加密货币。 提示: 块产生时间,1分钟;总货币量,不限;共识算法,权益证明;市值,3816万元(2016年年中)。 3.?通过双目标挖矿机制创新而建立的代币 比特币的工作量证明算法仅仅具有一个目的,那就是确保比特链的安全。尽管相对于传统支付系统的安全,这点挖矿开销并不高,但是被指是一种浪费。双目标工作量证明算法在产生工作量证明来满足安全的同时,解决一个具体的问题。但这样做也带来一定的风险。在向货币安全添加额外功能的同时,也影响了其供求曲线。 (1)质数币 质数币(Primecoin)发行于2013年7月,据称其“具有数学价值”。这种币尝试把虚拟货币中无目的的算法所浪费的资源利用起来。质数币的工作量证明机制有一定的科学价值。所以从某种意义上讲,质数币的矿工在挖矿的同时也促进了科学的进步。质数币是没有总量上限的。但是,质数币的产生速度很慢,这与大质数的计算困难特性有关。 提示: 块产生时间,1分钟;总货币量,不限;共识算法,工作量证明和质数链发现;市值,533万元(2016年年中)。 (2)治疗币 治疗币(Curecoin)发行于2013年5月。它将SHA256工作量证明算法与蛋白质折叠研究相结合,强调对生命科学和医学的贡献。其中蛋白质折叠是蛋白质生化反应的计算密集型模拟,目的在于发现新药。 提示: 块产生时间,10分钟;总货币量,不限;共识算法,工作量证明和蛋白质折叠研究;市值,194万元(2016年年中)。 (3)格雷德币 格雷德币(Gridcoin)发行于2013年10月。它支持基于scrypt的工作量证明算法。格雷德币通过伯克利的分布式计算项目(BOINC)进行包罗万象的科学探索,只有在挖矿的同时运行BOINC才能够获得较多的币。BOINC是一种科研网格计算的开放协议,允许参与者贡献自己的空余计算力来进行一系列科研计算。所以,不同于质数币和治疗币那样目的单一,格雷德币可以通过BOINC这个计算平台帮助进行各种科学研究,包括寻找外星人、计算RNA结果等。 提示: 块产生时间,2.5分钟;总货币量,不限;共识算法,工作量证明和BOINC网格计算;市值,2858万元(2016年年中)。 4.?注重隐私性的代币 比特币常常被误认为具有隐私性。事实上,通过大数据分析,关联身份和比特币地址相对容易,从而通过连接彼此的地址,解析一个人的比特币消费习惯。所以,一些代币专注于强隐私性,试图直接解决此问题。 (1)零币 零币(Zerocoin)作为比特币之上保持隐私性的元币协议,是针对隐私性的第一个尝试。它诞生于2013年,仅是一种针对数字货币隐私性的理论方法。应用零币理论的代币叫作Zerocash,至今仍在研究阶段,并未发行。 (2)CryptoNote CryptoNote公布于2012年12月,是一种为匿名数字货币提供基础的参考实践代币。它的设计初衷就是为了不同的实践并且内置定时重置机制,这使得它本身不太可能成为一种货币。CryptoNote的出名还来自于它不是比特币的翻版,而是全新从头设计实践的加密货币。基于CryptoNote衍生出来的数字货币还有Bytecoin(BCN)、Aeon(AEON)、Boolberry(BBR)、DuckNote(DUCK)、Fantomcoin(FCN)、Monero(XMR)、MonetaVerde(MCN)和Quazarcoin(QCN)等。更详细的CryptoNote衍生代币请见网页https://en.wikipedia.org/wiki/File:Forks-tree-f?ixed.png。 (3)百特币 百特币(Bytecoin)发行于2012年7月,是第一个衍生自CryptoNote的代币(比CryptoNote本身的发行早)。百特币基于CryptoNote技术,提供一种可行的匿名货币。它从CryptoNote继承了环签名、非连接交易和抵制区块链分析的隐私性。之后,百特币还进行了包括多签名交易、安全更新等方面的改进。 提示: 块产生时间,2分钟;总货币量,1.84亿元;共识算法,工作量证明Cryptonight;市值, 2909万元(2016年年中)。 (4)门罗币 门罗币(Monero,XMR)是CryptoNote的另外一种应用。相比于百特币,它具有略微平坦的发行曲线,在前4年就发行了80%。它继承了CryptoNote所有的隐私性。 提示: 块产生时间,1分钟;总货币量,1844万元;共识算法,工作量证明Cryptonight;市值,2622万元(2016年年中)。 (5)黑暗币 黑暗币(Darkcoin)发布于2014年1月。作为匿名货币,它对所有交易采用一种叫作DarkSend的再混合协议。另外,黑暗币的出名还在于它在工作量证明算法中使用了11种不同的哈希函数(blake、bmw、groestl、jh、keccak、skein、luffa、cubehash、shavite、simd、echo)。 提示: 块产生时间,2.5分钟;总货币量,2200万(2016年年中);共识算法,作业证明多算法共用;市值,1900万美元(2014年年中)。 2.3.3 货币的未来 加密货币的未来整体来说比比特币更加繁荣。它们在比特币的基础上引进了全新的去中心化的组织形式和共识机制,并由此衍生出了数以百计的不可思议的创新。这将影响与经济相关的众多部门,如:财政、经济、货币、中央银行、企业管理等。 许多之前需要中心机构来执行授权或信用控制的活动,现在可以去中心化了。区块链和共识机制的发明,在根除权力集中、腐败、监管俘获的同时,必将大幅度削减组织和大规模系统协调的费用。 2.4 本章小结 本章主要介绍了区块链技术的基础知识。首先,介绍了区块链技术,这是这本书的基础,包括区块链技术的基本概念、框架与特点,核心技术及交易流程。在这个基础之上,我们详细介绍了区块链技术最成功的应用——比特币,包括概念、原理、及隐私模型。之后,我们介绍了区块链的另外一个重要应用——以太坊。以太坊是区块链技术发展的一个重要的方向,是区块链技术未来的一部分。我们介绍了以太坊技术、以太坊智能合约、以太坊去中心化应用、以太坊发展的现状及未来。最后,我们分析了现有的流行的电子货币各自的优缺点。 参考资料 [1] 袁勇,王飞跃.区块链技术发展现状与展望[J].自动化学报,2016,42(4). [2] Antonopoulos A M. Mastering Bitcoin: Unlocking Digital Crypto-Currencies[J]. Oreilly Media Inc Usa, 2015. [3] Swan M. Blockchain: blueprint for a new economy[M]. O'Reilly, 2015. [4] 以太坊(Ethereum):下一代智能合约和去中心化应用平台.以太坊爱好者,2016-06-23. [5] Deutsch Bank, Banking & Technology Snapshot, DB Research, 20 December 2012. [6] Vatalik Buterin, Merkling-in-Ethereum, https://blog.ethereum.org/2015/11/15/merkling-in-ethereum/.
文章
存储 · 算法 · 安全 · 区块链 · 云计算
2017-05-02
阿里巴巴招聘
4009 人关注 | 2 讨论 | 101 内容
+ 订阅
  • 【阿里巴巴计算平台事业部招聘】深度学习算法研发工程师/专家
  • 云栖大会超级招聘节|投简历赢三重好礼,火箭卡快速拿offer!
  • 伯乐奖大角逐,机械键盘/天猫精灵/阿里云迷你充电宝等你拿
查看更多 >
华章出版社
341 人关注 | 1 讨论 | 10124 内容
+ 订阅
  • 带你读《Java并发编程的艺术》之一:并发编程的挑战
查看更多 >
安全
740 人关注 | 21426 讨论 | 26650 内容
+ 订阅
  • 网游云上网络优化方案
  • 开放下载!新品发布产品资料|持续更新中
  • 阿里云ECS安装部署RabbitMQ3.7.x
查看更多 >
数据库
105446 人关注 | 34053 讨论 | 27687 内容
+ 订阅
  • 云上数据统一采集,为用户提供更优质的社交体验
  • 35+篇服务器操作基础知识!实用基础、百问百答、干货电子书、最佳实践等…快来!
  • 看阿里云如何用云上技术创新,帮助哈啰单车实现智能数据收治
查看更多 >
开发与运维
3877 人关注 | 92064 讨论 | 88822 内容
+ 订阅
  • 前端领域模型,重构前端研发模式
  • 云上数据统一采集,为用户提供更优质的社交体验
  • 二次元手游的数智进化
查看更多 >