精华内容
下载资源
问答
  • 一个完整的Web应用程序,可使用React构建的本地开发环境与EOSIO区块链进行通信。 目录 用法 启动工具 停止工具 用样本数据初始化 模式 通过工具使用PM2 链接到文档 贡献 执照 重要的 概述 EOSIO Labs:trade_...
  • 区块链在物联网应用

    万次阅读 多人点赞 2018-03-11 16:22:57
    物联网长期发展演进过程,遇到了以下5个行业痛点:设备安全、个人隐私、架构僵化、通信兼容和多主体协同5大痛点。设备安全方面,Mirai创造的僵尸物联网(Botnets of Things)被麻省理工科技评论评为2017年的...

    今天的演讲主要包括三个部分:

    第一部分是物联网的行业痛点和区块链带来的优势,

    第二部分是区块链+物联网的产业现状和应用场景,

    第三部分是区块链+物联网的挑战和可新标准的需求。


    物联网在长期发展演进过程中,遇到了以下5个行业痛点:设备安全、个人隐私、架构僵化、通信兼容和多主体协同5大痛点。

    在设备安全方面,Mirai创造的僵尸物联网(Botnets of Things)被麻省理工科技评论评为2017年的十大突破性技术,据统计,Mirai僵尸网络已累计感染超过200万台摄像机等IoT设备,由其发起的DDoS攻击,让美国域名解析服务提供商Dyn瘫痪,Twitter、Paypal等多个人气网站当时无法访问。后续,又有奴役物联网设备、让其比特币挖矿的僵尸网络,还有规模更大、更为活跃的http81僵尸网络等。

    在个人隐私方面,主要是中心化的管理架构无法自证清白,个人隐私数据被泄露的相关时间时有发生。就最近而言,人民网报道的,成都266个摄像头被网络直播就是一个案例。

    在架构僵化方面,目前的物联网数据流都汇总到单一的中心控制系统,随着低功耗广域技术(LPWA)的持续演进,可以预见的是,未来物联网设备将呈几何级数增长,中心化服务成本难以负担。据IBM预测,2020年万物互联的设备将超过250亿个。

    在通信兼容方面,全球物联网平台缺少统一的语言,这很容易造成多个物联网设备彼此之间通信受到阻碍,并产生多个竞争性的标准和平台。


    在多主体协同方面,目前,很多物联网都是运营商、企业内部的自组织网络。涉及到跨多个运营商、多个对等主体之间的协作时,建立信用的成本很高。


    区块链凭借主体对等、公开透明、安全通信、难以篡改和多方共识等特性,对物联网将产生重要的影响:多中心、弱中心化的特质将降低中心化架构的高额运维成本,信息加密、安全通信的特质将有助于保护隐私,身份权限管理和多方共识有助于识别非法节点,及时阻止恶意节点的接入和作恶,依托链式的结构有助于构建可证可溯的电子证据存证,分布式架构和主体对等的特点有助于打破物联网现存的多个信息孤岛桎梏,促进信息的横向流动和多方协作。


    其次,我们介绍一下,区块链+物联网的产业现状和相关的应用场景。

    产业现状一:物联网龙头纷纷开始布局区块链。根据Forrester Wave:物联网软件平台(2016年第4季度)的报告显示, IBM、PTC、GE和微软已成为占据物联网平台市场的主导企业。SAP、AWS、Cisco、LogMeln、Exosite、Ayla Networks和Zebra Technologies名列前11名。对于排名靠前的物联网平台龙头企业,除了美国参数技术公司(PTC)没有实质披露区块链相关项目以外(该公司很多区块链相关的文章),IBM、微软、亚马逊和SAP都在各自的云平台上提供区块链服务(Blockchain-as-a-Service),为未来海量的物联网设备接入提供弹性资源池,做了超前布局。通用电气GE和思科更多地是关注设备的标识和存证问题。 


    探讨区块链+物联网的进展,要跟垂直的行业结合才有针对性,我们以能源物联网为例,传统公司和区块链初创公司正双向发力,不断促进区块链在行业里的广泛普及和加速融合。

    从传统电力公司的角度看,主要是通过与初创公司合作、成立子公司、甚至买下初创公司等方式,投资不同的试点项目,打造分布式能源系统和点对点的能源交易平台。这里包括瑞典国营电力公司VattenFall(瀑布电力)投资了荷兰阿姆斯特丹的初创公司(PowerPeers),构建让消费者自由选择电力渠道的能源共享平台,也有德国的莱茵公司(RWE)和初创公司Slock.it合作,推出的BlockCharge电动车充电项目。莱茵公司RWE成立子公司Innogy SE,推出了连接电动汽车车主、公共和私有充电站的一个区块链交易平台Share&Charge。

    从初创公司看,初创公司主要从分布式能源系统、新型交易模式、认证和交易市场等不同角度切入区块链领域,开始初步涉及相关的物联网硬件制造,例如Slock.it公司推出的Smart Plug充电器适配装置,不断丰富区块链+的产业生态。


    产业现状三是,垂直行业的生态格局已初步具有雏形。根据咨询公司Indigo的报告,还是以电力行业的区块链+物联网应用举例,从终端支付(加密数字货币)、能源交易市场、技术支撑+行业组织、智能家居点对点交易、打造智慧城市等方面已形成良好生态格局。对于我们国家而言,万向要在浙江打造基于区块链的、聚合能源、电动车、物联网、金融科技的聚能城,量子链也即将推出物联网的区块链项目等。


    产业现状四是,区块链+物联网的国际标准先行探索。2017年3月,中国联通联合众多公司和研究机构在ITU-T SG20成立了全球首个物联网区块链(BOT,Blockchain of Things)标准项目,定义了去中心化的可信物联网服务平台框架。我院在ITU-T的SG 16工作组也完成了区块链的相关立项。

    现在我们来介绍一下区块链+物联网的应用场景。由于区块链技术并未成熟定型,很多区块链和物联网结合的案例都是在PoC(概念验证)阶段,因此,今天的一些分享希望能给大家提供更多创新的灵感。


    在第一个应用场景中,传统的供应链运输需要经过多个主体,例如发货人、承运人、货代、船代、堆场、船公司、陆运(集卡)公司,还有做舱单抵押融资的银行等业务角色。这些主体之间的信息化系统很多是彼此独立,互不相通的。一方面,存在数据做伪造假的问题,另一方面,因为数据的不互通,出现状况的时候,应急处置没法及时响应。在这个应用场景中,在供应链上的各个主体部署区块链节点,通过实时(例如船舶靠岸时)和离线(例如船舶运行在远海)等方式,将传感器收集的数据写入区块链,成为无法篡改的电子证据,可以提升各方主体造假抵赖的成本,更进一步地厘清各方的责任边界,同时还能通过区块链链式的结构,追本溯源,及时了解物流的最新进展,根据实时搜集的数据,采取必要的反应措施(例如,冷链运输中,超过0℃的货舱会被立即检查故障的来源),增强多方协作的可能。


    第二个应用场景: 共享经济可以认为是平台经济的一种衍生。

    一方面是,平台具有依赖性和兴趣导向性,摩拜和OFO做单车共享,但并没有做摩托车的共享。另一方面,平台也会收取相应的手续费,例如滴滴打车司机要将打车费用的20%上交,作为平台提成。初创公司Slock.it和OpenBazaar等主要是希望构建一个普适的共享平台,依托去中介化的区块链技术,让供需双方点对点地进行交易,加速各类闲置商品的直接共享,并节省第三方的平台费用。

    在这个案例中,首先依托区块链网关,构建整个区块链网络。资产拥有者基于智能合约,通过设置租金、押金和相关规则,完成各类锁与资产的绑定。最终用户通过APP,支付给资产所有者相应的租金和押金,获得打开锁的控制权限(密钥),进而获取资产的使用权。在使用结束后,归还物品并拿回押金。这里有一个优势是,精准计费,可以按照智能合约上的计费标准,实时精准地付费,而不是像目前共享单车的粗犷式收费(按半小时、一小时收费)。虽然节省了平台手续费(20%),但是,也引发了很多思考,例如没上保险,出了事故如何解决;客户租车开了2­00公里,直接锁车结账走人了,谁将车开回来等,在实际应用中,应该会遇到很多问题。

    在应用场景三中,主要是传统输电的线路损耗率达到5%,住户建立的微电网中盈余能源无法存储,也不能共享给有能源需求的其他住户。纽约初创LO3 Energy和ConsenSys合作,由LO3 Energy负责能源相关的控制,ConsenSys提供区块链底层技术,在纽约布鲁克林区实现了一个点对点交易、自动化执行、无第三方中介的能源交易平台,实现了10个住户之间的能源交易和共享。主要实现方式是,在每家住户门口安装智能电表,智能电表安装区块链软件,构成一个区块链网络。用户通过手机APP在自家智能电表区块链节点上发布相应智能合约,基于合约规则,通过西门子提供的电网设备控制相应的链路连接,实现能源交易和能源供给。

    对于我国来说,也有一家点对点能源交易的初创企业,Energo。主要是通过将各家住户的可再生能源存储到分布式储能设备中,通过代币的形式评估能源的占有量和消耗量,基于智能合约设置能源交易规则和微电网切换主电网的策略,实现无中介的点对点能源交易平台。


    在第四个应用场景中,主要面临的是多家充电公司支付协议复杂、支付方式不统一、充电桩相对稀缺、充电费用计量不精准等行业痛点,由德国莱茵公司和Slock.it合作,推出的基于区块链的电动汽车点对点充电项目。通过在各个充电桩里安装树莓派等简易型Linux系统装置,基于区块链将多家充电桩的所属公司和拥有充电桩的个人进行串联,使用适配各家接口的Smart Plug对电动汽车进行充电。使用流程为:(以Innogy的软件举例)首先,在智能手机上安装Share&Charge APP。在APP上注册你的电动汽车,并对数字钱包进行充值。需要充电时,从APP中找到附近可用的充电站,按照智能合约中的价格付款给充电站主人。APP将与充电桩中的区块链节点进行通信,后者执行电动车充电的指令。


    第五个应用场景主要是针对未来无人机和机器人的快速发展,机器与机器之间的通信必须要从两个方面去考量:一方面,每个无人机都内置了硬件密钥。私钥衍生的身份ID增强了身份鉴权,基于数字签名的通信确保安全交互,阻止伪造信息的扩散和非法设备的接入。另一方面,基于区块链的共识机制,未来区块链与人工智能的结合点——群体智能,充满了想象空间,MIT实验室已经在这个交叉领域展开了深入研究。


    接着,我们介绍一下区块链+物联网的应用挑战和对可信标准的需求。

    区块链+物联网会遇到以下四个方面的挑战:

    在资源消耗方面,IoT设备普遍存在计算能力低、联网能力弱、电池续航短等问题。比特币的工作量证明机制(PoW)对资源消耗太大,显然不然适用于部署在物联网节点中,可能部署在物联网网关等服务器里。其次,以太坊等区块链2.0技术也是PoW+PoS,正逐步切换到PoS。分布式架构需要共识机制来确保数据的最终一致性,然而,相对中心化架构来说,对资源的消耗是不容忽视的。

    在数据膨胀方面,区块链是一个只能附加、不能删除的一种数据存储技术。随着区块链的不断增长,IoT设备是否有足够存储空间?例如,比特币运行至今,需要100G物理存储空间。

    在性能瓶颈方面,传统比特币的交易是7笔/秒,再加上共识确认,需要约1个小时才写入区块链,这种时延引起的反馈时延、报警时延,在时延敏感的工业互联网上不可行。

    在分区容忍方面,工业物联网强调节点“一直在线”,但是,普通的物联网节点失效、频繁加入退出网络是司空见惯的事情,容易产生消耗大量网络带宽的网络震荡,甚至出现“网络割裂”的现象。


    从改进方面,可以从两个方面去衡量。

    从区块链的角度来看,

    (1)对于资源消耗,可以不使用基于挖矿的、对资源消耗大的共识机制,使用投票的共识机制(例如PBFT等),减少资源消耗的通知,还能有效提升交易速度,降低交易时延。当然,在节点的扩展性方面,会有一定损耗,这个需要一个面向业务应用的权衡。

    (2)对于数据膨胀,可以使用简单支付交易方式(SPV),通过默克尔树对交易记录进行压缩。在系统架构上,支持重型节点和轻型节点。重型节点存储区块链的全量数据,轻型节点只存储默克尔树根节点的256哈希值,只做校验工作。

    (3)对于性能瓶颈,已经有很多面向物联网的区块链软件平台做了改进。例如,IOTA就提出不使用链式结构,采用有向非循环图(DAG)的数据结构,一方面提升了交易性能,另一方面,也具有抗量子攻击的特性。Lisk采用采用主链-侧链等跨链技术,进行划区划片管理,也在性能方面取得了不少突破。

    (4)对于分区容忍,针对可能存在的网络割裂,可以选择支持链上链下交易,尤其是离线的交易,并在系统设计时支持多个CPS集群。

    从物联网的角度来看,

    (1)对于资源消耗,随着eMTC、NB-IoT、LoRA等低功耗广域网(LPWA)技术的发展,传输质量、传输距离、功耗、蓄电量的问题将得以逐步解决。


    (2)对于数据膨胀,根据摩尔定律和超摩尔定律,存储成本下降,物联网存储能力持续上升。

    (3)对于性能瓶颈,随着MEMS传感器、SiP封装工艺等新技术、新工艺、新架构的不断成熟、成本降低,小体积、低功率的传感节点有望广泛应用。


    区块链以算法和软件来承担信任基础。但是,刚刚我们提到,有的区块链软件已经不使用“链式结构”了。区块链,顾名思义,区块+链,不用链的结构了,对于最终用户,会有些云里雾里。此外,还存在多链协同、跨链整合、链上链下、分区划片、共识切换等多方面的改进,区块链技术正处于待成熟、未定型的阶段。那么,最终用户如何相信企业的信息披露,选择合适的区块链产品呢?这就需要可信的规则来规范,从用户的角度、以业务为导向,围绕智能合约是否有效执行、共识机制是否保证数据最终一致、私钥存储是否安全、权限管理是否分级分类、企业信息披露是否准确等多个方面,提出标准规范,增强区块链的可信程度, 给区块链的信任增加砝码。

    数据中心联盟于2016年12月1日成立可信区块链工作组,由30多家单位组成,包括中国信通院、中科院计算所、中国联通、中国电信、腾讯、华为、中兴通讯、金证股份、浪潮、世纪互联、飞天诚信、曙光信息、IBM、思科、太一云、火币网、比特大陆、布比、优刻得、中联润通、万国数据、深信服等单位。可信区块链工作组主要致力于标准的制定和输出,目前,已经在国际标准中的ITU-T SG16完成立项,行业标准中的CCSA TC1完成立项,促进标准的相关落地,包括可信区块链的标准预测试、建立区块链开放实验室和测试平台,推进区块链和物联网、云计算和大数据等前言技术的交叉创新,加速区块链在金融、能源、供应链等各行各业的广泛普及和融合创新。欢迎大家关注可信区块链的最新进展!

    展开全文
  • EDITED BY CHENYU * 移动互联网产品设计 移动互联网产品设计课程 Mobile Internet Product Design 主讲教师 陈煜 移动通信技术专业教学资源库 深圳信息职业技术学院电子与通信学院 区块链的技术与应用 目录 01 02 ...
  • 区块链跨链通信研究概述 跨链技术本质上是⼀种将A链上的数据D(或信息I,或消息M)安全可信地转移到B链并B链上产⽣预期效果的⼀种技术。因为区块链系统本来就是⼀种特殊的分布式账簿数据库系统,所以这个转移的...

    区块链跨链通信研究概述

    跨链技术本质上是⼀种将A链上的数据D(或信息I,或消息M)安全可信地转移到B链并在B链上产⽣预期效果的⼀种技术。因为区块链系统本来就是⼀种特殊的分布式账簿数据库系统,所以这个转移的数据,最常见的就是资产的数据,如代币余额。

    目前,主流的区块链跨链技术⽅案**按照其具体的两种架构(实现⽅式)**主要有:

    • 公证⼈机制;
    • 哈希锁定
    • 侧链&中继链
    • 分布式私钥控制。

    ⽬前,最有名的跨链项⽬有CosmosPolkadot,两者采⽤的都是基于中继链的多链多层架构。由此可⻅,侧链&中继链技术将会是未来跨链技术的主⼒

    本⽂⾸先简要介绍跨链的技术原理。其中简要介绍公证⼈机制、哈希锁定,详细介绍侧链&中继链技术。然后将介绍⼏个相关的跨链项⽬,包括基于ETH的Plasma基于Polkadot的达尔文网络基于Cosmos 的IRIS

    公证人机制及哈希锁定

    跨链交互根据所跨越的区块链底层技术平台的不同可以分为:同构链跨链和异构链跨链。同构链之间安全机制、共识算法、⽹络拓扑、区块⽣成验证逻辑都⼀致,它们之间的跨链交互相对简单。⽽异构链的跨链交互相对复杂,如Bitcoin采⽤PoW算法⽽Fabric采⽤传统确定性共识算法,其区块的组成形式和确定性保证机制均有很⼤不同,直接跨链交互机制不易设计。异构链之间的跨链交互⼀般需要第三⽅辅助服务辅助跨链交互

    跨链要达到安全可信必然对跨链机制、步骤等有⼀些要求,其中最重要的就是跨链事务的原⼦性。对于普通的链内交易来说,交易需要⽀持原⼦性——交易如果失败则需要回滚。⽽跨链的交易也是如此,其失败时要回滚涉及本次交易两条或多条链的交易。

    1. 公证人机制(Notary Schemes)

    公证人机制,也成为见证人机制,是一种中介的方式。设区块链A和B本身是不能直接进⾏互操作的,那么可以引⼊⼀个共同信任的第三⽅作为中介由这个共同信任的中介进⾏跨链消息的验证和转发。很多时候,这个公证⼈/中介就是交易所。其优点在于⽀持异构的区块链跨链,缺点在于有中⼼化⻛险,只能实现交换不能实现转移。
    跨链交易示例说明

    假设A和B进⾏1个BTC换50个ETH的交易:
    1. A将自己的1个BTC存入交易所的比特币地址;B将自己的50个ETH存入交易所的以太坊地址;
    2. A在交易所上挂单:1 BTC for 50 ETH;
    3. B通过交易所完成与A的交易,A得到50个ETH,B得到1个BTC。这里会有不少的形式:一种是B挂出购买比特币的单子,然后交易所撮合;另一种是B直接看到A挂出的卖单,然后直接要这个卖单。
    4. A将从交易所得到的50个ETH提币到自己的以太坊账户中;B将从交易所得到的1个BTC提币到自己的比特币账户;通过引入中介完成A和B的BTC和ETH的交换。

    通过该例⼦可以看出交易所的⽅式⽬前仅能够⽀持资产的交换,且资产交换的原⼦性、安全性完全由中⼼化的交易所保障,故存在⼀定的中⼼化⻛险。

    2. 哈希锁定(Hash-Locking)

    哈希锁定的典型实现是哈希时间锁定合约HTLC(Hashed TimeLock Contract)。哈希时间锁定最早出现在⽐特币的闪电⽹络。哈希时间锁定巧妙地采⽤了哈希锁和时间锁,迫使资产的接收⽅在deadline内确定收款并产⽣⼀种收款证明给打款⼈,否则资产会归还给打款⼈。收款证明能够被付款⼈⽤来获取接收⼈区块链上的等量价值的数量资产或触发其他事件。哈希锁定只能做到交换⽽不能做到资产或者信息的转移,因此其使⽤场景有限。
    跨链交易示例说明

    以公证人机制示例中的需求为例:
    1. A随机构建一个字符串s,并计算出其哈希h;
    2. A将h发送给B;
    3. A通过合约锁定自己的1个BTC资产,设置一个较长的锁定时间T1,再设置了获取该BTC的条件:B提供h的原始值s;
    4. B锁定50个ETH到自己的合约,设置一个相对较短的锁定时间T2(T2<T1)。再设置50个ETH的获取条件:A提供h的原始值s;
    5. A将字符串s发送到B的合约获得50个ETH;
    6. B观察到步骤5中A的s值,将其发送给A的合约成功获取1个BTC;至此完成资产的交换。
    7. 如果超时,则锁定的资产返回原主。

    从上述过程看,哈希时间锁定合约有一些约束条件:

    • 双方必须能够解析双方的合约内部数据,例如s、锁定资产的证明等
    • 哈希锁定的超时时间设置时需要保证存在时间差,这样在单方面作弊时另一方可以及时撤回自己的资产。

    侧链/中继链

    什么是侧链?

    最初,主链特指比特币主网区块链。所谓侧链就是除了比特币区块链以外的,任何能遵循侧链协议并和比特币互通的一切区块链。侧链使得比特币有更好的流动性;而在比特币主网上开发应用很困难,现在通过在侧链上开发应用再使用互通方式与主链连接可以解决这个问题,也就是间接使用了比特币,从而进一步巩固了比特币的中心地位。

    根据维基百科上的解释:侧链用来指代与主区块链并⾏的那条区块链。来⾃主区块链的entries可以向侧链连接,也可以被侧链连接;这样⼀来,侧链就可以独⽴于主区块链进⾏操作(例如通过使⽤备⽤的记录保持⽅式)。⼀个侧链模型是驱动链。”
    这里包含三个要点:

    1. 侧链是相对的。不能单纯的说某条链B是侧链,而必须说这条链B可以是链A的侧链;
    2. 侧链与主链是独立的。链B可以有自己的功能,在它自己运行时不需要链A的支持。如果链B发生运行故障或被中心化控制,不会直接影响到链A本身的运行(但是可以间接影响,比如链B被控制后,链A还依旧与之交互);
    3. 侧链与主链可以连接互通,即跨链。当要实现跨链的功能时才需要链B和链A进行互通。因为侧链的互通机制是其最主要的功能,所以常常将侧链与主链的互通称为侧链技术。至于侧链本身是否包含在侧链技术之中,还存在争论。

    侧链的意义

    从主链单链⻆度讲,侧链可以虚拟化横向和纵向提升主链的性能。

    • 所谓横向,就是将多个侧链与主链互通,将⼤部分交易放到侧链上,然后再通过与主链互通实现,可以虚拟地提升主链的TPS。
    • 所谓纵向,就是侧链可以有主链不具有的功能,通过侧链,主链看上去也像是⽀持了这些功能。
    • 所谓虚拟化,就是虽然有横向和纵向的提升,但是主链本身并任何没有变化,只是通过众多侧链帮其起到类似代理的作⽤,使其看上去性能提升。

    从全局角度看,侧链作为跨链技术的一种,自然是为万链互连做出了重要贡献。实现万链互联有两者架构:

    1. 任何⼀条链,既有主链的功能,⼜有侧链的功能(⼀些资料将拥有侧链功能叫做遵循侧链协议),这就像计算机⽹络中任何计算机既是主机⼜是路由器。
    2. 只有特定的⼏条链作为主链,其他所有链都只⽀持侧链功能,就和现在的计算机⽹络类似,有⽹络核⼼部分——单纯的路由器,也有⽹络的边缘部分——单纯的主机。

    侧链技术

    侧链是通过双向锚定技术实现的。将暂时的数字货币在主链中锁定,同时将等价的数字资产在侧链中释放。实现双向锚定的最大难点在于协议改造需要兼容现有主链,也就是不能对现有主链的工作造成影响。其具体的实现方式有:单一托管模式、联盟模式、SPV模式、驱动链模式、混合模式。

    • 单一托管模式:类似交易所做中介完成锁币放币。一种最简单的实现主链与侧链双向锚定的方法就是通过将数字资产发送到一个主链单一托管方(类似于交易所),当单一托管方收到相关信息后,就在侧链上激活相应数字资产。这个解决方案的最大问题是过于中心化
    • 联盟模式:即公证⼈模式,由多个公证⼈的多重签名来对转移资产的交易进⾏签名,避免了中⼼化。在这种模式中,如果要想盗窃主链上冻结的数字资产就需要突破更多的机构,但是侧链安全仍然取决于公证人联盟的诚实度
    • SPV模式:SPV(Simplified Payment Verification)模式是最初的侧链白皮书《Enabling Blockchain Innovations with Pegged Sidechains》中的去中心化双向锚定技术最初设想。==SPV是一种用于证明交易存在的方法,通过少量数据就可以验证某个特定区块中交易是否存在。==在SPV模式中,用户在主链上将数字资产发送到主链的一个特殊的地址,这样做会锁定主链的数字资产,该输出仍然会被锁定在可能的竞争期间内,以确认相应的交易已经完成,随后会创建一个SPV证明并发送到侧链上。此刻,一个对应的带有SPV证明的交易会出现在侧链上,同时验证主链上的数字资产已经被锁住,然后就可以在侧链上打开具有相同价值的另一种数字资产这种数字资产的使用和改变在稍后会被送回主链。当这种数字资产返回到主链上时,该过程会进行重复。它们被发送到侧链上锁定的输出中,在一定的等待时间后,就可以创建一个SPV证明,来将其发送回主区块链上,以解锁主链上的数字资产。SPV模式存在的问题是需要对主链进行软分叉
    • 驱动链模式:驱动链概念是由Bitcoin Hivemind创始人Paul Sztorc提出的。在驱动链中,矿工作为‘算法代理监护人’,对侧链当前的状态进行检测。换句话说,矿工本质上就是资金托管方,驱动链将被锁定数字资产的监管权发放到数字资产矿工手上,并且允许矿工们投票何时解锁数字资产和将解锁的数字资产发送到何处。矿工观察侧链的状态,当他们收到来自侧链的要求时,他们会执行协调协议以确保他们对要求的真实性达成一致。诚实矿工在驱动链中的参与程度越高,整体系统安全性也就越大。如同SPV侧链一样,驱动链也需要对主链进行软分叉
    • 混合模式:上述所有的模式都是对称的,而混合模式则是将上述获得双向锚定的方法进行有效的结合的模式。由于主链与侧链在实现机制存在本质的不同,所以对称的双向锚定模型可能是不够完善的。混合模式是在主链和侧链使用不同的解锁方法,例如在侧链上使用SPV模式,而在主链网络上则使用驱动链模式。同样,混合模式也需要对主链进行软分叉

    这⾥SPV模式是使⽤得最多的,也是最有前途的。SPV就是简单⽀付验证(Simplifified Payment Verifification),其能验证交易是否存在。

    BTC-Relay是号称的史上第⼀个侧链,其通过以太坊构建了⼀个⽐特币的侧链,运⽤以太坊的智能合约允许⽤户验证⽐特币的交易。
    SPV交易示例

    以之前的需求为例
    1 B将50个ETH发送到BTCSwap的合约进行冻结(该合约若确认B接收到来自A的1个BTC就自动将50个ETH转给A)
    2 A确认B冻结信息后,将1个BTC转到B的比特币账户;
    3 BTC-Relay将比特币区块头推送到BTCSwap合约;A将自己转BTC给B的交易tx发给合约BTCSwap合约,请求50个ETH;
    4 BTCSwap合约结合tx和比特币区块链进行SPV验证,验证通过则将50个ETH转到A的以太坊地址。

    侧链的机制相对哈希锁定⽽⾔能够提供更多的跨链交互场景,侧链以及类SPV验证的思想适合所有跨链的场景。

    中继链

    中继链算是公证⼈机制和侧链机制的融合和扩展,⽬前社区内最活跃的两个跨链项⽬ Cosmos 和 Polkadot 采⽤的都是基于中继链的多链多层架构,其中

    • Cosmos⽬前⽀持的是跨链资产交互;
    • Polkadot则宣称提供任意类型的跨链交互,具体实现还有待观察。

    Cosmox的中继链机制

    为了⽀持平⾏链之间的跨链操作,Cosmos提出了⼀种跨链交互协议IBC(Inter-Blockchain Communication Protocol)。

    以链A到链B转账10token为例说明使用IBC的跨链交互:
    1 互相跟踪。如果A要和B进行跨链交易,那么A和B链需要分别运行相当于对方区块链的轻节点,这样可以实时接收到对方的区块头信息(方面后续执行类SPV验证);链A、链B初始化IBC协议;
    2 链A冻结10token,并生成相应的证明发送给链B;
    3 链B接收到相应的IBC消息,通过链A的区块头信息确定链A确实进行相应的资产冻结,然后链B会生成等价10token的资产。

    以上是使用IBC协议的两个平行链直接进行跨链的基本过程,如果区块链很多,那么这种方式的两两跨链复杂度会呈现出组合级别增加,因此Cosmos网络又引入一种Hub的中继链,所有的平行链都通过IBC连接到Hub,让Hub辅助跨链交易的验证和资产转移(因此,某链能与Cosmos体系中的链进行交互=某链能连接到Hub)。目前Cosmos实现了一个官方的Hub称为Cosmos Hub,如图所示:
    Cosmos Hub
    另外,Cosmos网络的详细架构图如下所示。⼀条链从层次结构上讲,分为⽹络层、共识层、应⽤层为⽅便平⾏链开发,Cosmos提供了tendermint core(简称tendermint)和Cosmos SDK(Go语⾔)。其中tendermint 是指⽹络层、共识层的封装,⽽Cosmos SDK是应⽤层中常⽤的模块:账户、治理、Staking、IBC等等的封装。因此,⾃⼰开发⼀条新链可以使⽤Cosmos SDK+ tendermint,并且由此开发出来的链能直接与 Cosmos Hub连接(Cosmos Hub⾃⼰本身也是⽤Cosmos SDK+tendermint开发的)。
    Cosmos的详细架构图
    ⽽对于⾮Cosmos SDK开发的区块链(如已经存在的这些区块链),如果要与Cosmos体系中的链进⾏交互 (即能与Hub连接),需要使⽤Peg Zone进⾏桥接,所谓的Peg Zone就是使⽤Cosmos SDK开发的,既能接⼊Hub的,⼜能和原链进⾏交互的⼀条链。如图中的Ethereum,如果要接⼊Cosmos Hub,则需要专⻔使⽤Cosmos SDK开发⼀条起Peg Zone作⽤的新链。

    所谓Cosmos主⽹是指由Cosmos团队⾃⼰开发的第⼀个官⽅版Hub,也就是不同链进⾏跨链操作时的第⼀个中央枢纽。以太坊将是Cosmos最先连接的⾮Cosmos SDK开发的公链,⽬前有两个项⽬去实现这种连接:Cosmos 开发团队主导的Ethermint 项⽬,以及由 Loom Network主导的PlasmaChain。这两个项⽬其实就是开发⼀个连接以太坊和Cosmos Hub的、起Peg Zone功能的⼀条链。

    协议应该是各⽅达成共识的,上面说到的“侧链协议”其实并不是真正的协议,因为侧链技术⽬前没有像计算机⽹络⼀样有⼀些共识的协议,所以其实只能说是侧链机制。⽽Cosmos为跨链带来的最⼤贡献在于IBC协议的设计,IBC协议提供了⼀种通⽤的跨链协议标准。IBC的设计使得跨链交易可以在多个Hub之间进⾏安全路由和转发,类似⽬前互联⽹的TCP/IP 协议。但是遗憾的是⽬前的Cosmos设计也只能够⽀持资产的跨链,⽽且由于不同区块链的业务不同其共识速率的不⼀致也会影响跨链交易有效性的证明。这⾥只讲了Cosmos的侧链技术,关于Cosmos更多的内容,请看其他资料。

    Polkadot的中继链机制

    Polkadot的平⾯体系结构下图所示,其中有三种链⻆⾊和四种参与⽅。
    Polkadot体系结构
    三种链角色

    • 中继链(Relay chain):中继链位于Polkadot的体系的核心地位,主要是为整个系统提供统一的共识和安全性保障;
    • 平行链(Parachain):在Polkadot中平行链负责具体的业务场景,平行链自身不具备区块的共识,它们将共识的职责渡让给了中继链,所有平行链共享来自中继链的安全保障,中继链是Polkadot组成的一部分(中继链有可能不是一条链,Polkadot对其定义是App的数据结构,因此可以是DApp甚至是一般的App;不过大部分情况下还会是一条链);
    • 转接桥(Bridges):在Polkadot中转接桥其实有三个含义,其中最重要的含义是:为Polkadot体系之外的区块链(如Bitcoin,Ethereum)提供不同的Bridge与Polkadot连接在一起进行跨链交互。三种链角色和Cosmos体系中差不多。

    四种参与方

    • 验证者(Validator):验证者负责Polkadot的⽹络出块,会运⾏⼀个中继链的客户端,在每⼀轮区块产⽣中会对其提名的平⾏链出的块进⾏核验。当平⾏链的块都被他们的验证者集合确定好之后,验证者们会将所有平⾏链区块头组装到中继链的区块并进⾏共识;
    • 收集者(Collator):也叫核对⼈: 帮助验证者收集、验证和提交备选平⾏链区块,维护了⼀个平⾏链的全节点;
    • 钓鱼人(Fisherman):钓鱼人主要靠检举非法交易或者区块以获取收益;
    • 提名人(Nominator):拥有stake的相关方,维护和负责验证者的安全性。

    下图对这四种参与方进行了描述。整个过程是自动地、去中心化地执行。
    四种参与方的详细描述
    用户在平行链发起交易,交易被收集人收集,打包成区块,交给一组验证人去验证。这组验证人并不是来自平行链,而是来自中继链统一管理的验证人池,通过随机分组指定给平行链。
    每条平行链都有一个消息输出队列和一个消息输入队列。如果用户发起的是跨链交易,交易就会被放进输出队列。再被目标平行链的收集人放入其输入队列。目标平行链的收集人执行交易,生成区块,由验证人组敲定。
    提名人是Polkadot基础通过DOT的持有者,它希望质押DOT获得收益。但是要么是因为DOT数量少,要么是缺少运行维护验证人节点的专业技能。因此系统提供了另一个参与途径,就是持币者选择它信任的验证人,把自己的DOT通过验证人质押,分享验证人收益。
    钓鱼人是个软件进程,它监控网络上的非法行为,一旦发现就会向区块链提交举报交易。举报交易也要经过共识过程,通过2/3以上验证人验证,打包进区块,惩罚和奖励也都是区块链交易。

    在Polkadot中如果Parachain A需要发送一笔交易到Parachain B的过程如下:

    • 链A将跨链交易放到自己的消息输出队列engress;
    • 链A的Collator收集链A的普通交易以及跨链交易并提交给链A的验证者集合;
    • 链A的验证者集合验证成功,将本次链A的区块头信息以及链A的engress内信息提交到中继链上。中继链运行共识算法进行区块确认以及跨链交易路由,中继链上的验证者会将链A的相应交易从链A的engress queue中移动到链B的消息输入队列ingress queue中;
    • 链B执行区块,将ingress queue中相应交易执行并修改自身账本。

    以上便是Polkadot跨链交易的主要步骤。Polkadot为应用链提供的工具是Substrate,目前支持Rust语言开发。

    参考资料

    • https://mp.weixin.qq.com/s/X7ztDBG6kqgrBaGwrrsfQw
    • https://www.jianshu.com/p/233657a2a205
    • https://www.jinse.com/blockchain/189868.html
    展开全文
  • EOS区块链通信模型

    千次阅读 2018-12-03 08:44:47
    今天我们推出了一个全新的系列,...每篇文章,我们将探讨区块链的特定部分。我们从EOS通信模型开始,希望能坚持下去! 今天,我们将探索EOS通信模型。我们将深入探讨不同类型的沟通模式和行动。对于desser...

    今天我们推出了一个全新的系列,Hacking the Blockchain!它适用于刚刚开始开发EOSIO的所有开发人员。它也适用于所有EOS Blockchain爱好者,他们不是完全技术性的,但想要搞清楚该技术的工作原理。

    在每篇文章中,我们将探讨区块链的特定部分。我们从EOS通信模型开始,希望能坚持下去!

    今天,我们将探索EOS通信模型。我们将深入探讨不同类型的沟通模式和行动。对于dessert,我们将看到如何在我们的代码中使用它,并在我们要开发一个自动化的演示中使用它。

    但首先,让我们从EOS智能合约的内容开始。这将奠定基础。

    EOS 智能合约

    eos_smart_contracts

    每个EOS智能合约都有一组操作和类型。action表示单个操作。你可以将其视为JavaScript中的函数或C#中的方法。type定义合约中使用的所需内容和结构。大多数时候我们将它们用于我们的表。

    EOSIO中的合约可以相互通信。它是通过基于消息的通信架构实现的。

    EOS通信模型就是他们沟通的方式。通信模型有两种类型:Inline Communication Model(内联通信模型)和Deferred Communication Model(延时通信模型)。

    内联操作(内联通信模型)

    内联操作是内联通信模型的一部分。如果你了解它们,就能理解内联通信。

    我们来看看下图:

    inline_action_diagram

    用户从智能合约A执行操作(Action #1)。当操作开始执行时,它会触发另外两个操作:来自智能合约B的操作Action #1.1来自智能合约C的操作Action #1.2。一切都在当前交易中完成。

    在当前交易中执行并与其完成相关的操作,称为inline action内联操作

    重要的是要记住内联操作是作为调用操作的一部分执行的。因此,它们与原始交易的范围和权限相同。这是他们将被执行的保证。如果其中一个操作失败,则整个交易将失败。

    所以,你应该已经知道内联通信是什么意思了吧。

    请求将执行操作作为调用操作的一部分是inline communication内联通信的示例。

    延时操作(延时通信模式)

    第二种类型是延时通信模型。表示模型的延时操作非常有趣,因为它们不在同一交易中执行。我们来看看下图:

    deferred_action_diagram

    我们有相同的交易工作流程。这里唯一的区别是从智能合约C执行的第二个操作不是内联而是延时。延时操作计划在将来运行。

    根据生产者的判断,延时的操作最好可以安排在稍后的时间运行。无法保证延期操作将执行。

    即使它们不属于同一交易,它们也具有发送它们的合约的权限。

    所以基本上,延时通信在概念上采用发送给对等交易的操作通知的形式。

    交易与操作

    在继续演示之前,让我们检查一些有趣的东西。

    在EOSIO中,交易和操作之间存在差异。操作表示单个操作,而交易是一个或多个操作的集合。

    deferred_action_diagram

    交易可以包含N个操作。但是,每个交易必须在30ms或更短的时间内执行。如果交易包含多个操作,并且这些操作的总和大于30毫秒,则整个交易将失败。

    机器人工厂

    我们要做个机器人。你可以在我们的GitHub中找到包含所有智能合约和代码的项目。

    作为一家创造未来的机器人公司,我们希望一切都是完美的。新建新的机器人时,应发送出售信息,并在终端上打印相关信息。为了实现这三个操作,我们将使用内联操作。

    看一下下面的代码片段。

    void RobotFactory::create(account_name account, robot newRobot) {
            robotIndex robots(_self, _self);
    
            auto iterator = robots.find(newRobot.series_number);
            eosio_assert(iterator == robots.end(), "Robot with this series number already exists");
    
            robots.emplace(account, [&](auto& robot) {
                robot.series_number = newRobot.series_number;
                robot.model = newRobot.model;
                robot.operating_system = newRobot.operating_system;
                robot.profession = newRobot.profession;
                robot.owner = name{account}.to_string();
                robot.manufactured = now();
            });
    
            // Execute INLINE ACTION from another contract
            // action({permission_level}, {contract_deployer}, {contract_action}, {data_to_pass}).send();
            action(permission_level(account, N(active)), N(market), N(forsale), make_tuple(account, 
                newRobot.series_number, 
                newRobot.model, 
                newRobot.manufactured
            )).send();
    
            // Execute INLINE ACTION from another contract
            // action({permission_level}, {contract_deployer}, {contract_action}, {data_to_pass}).send();
            action(permission_level(account, N(active)), N(messenger), N(printmessage), make_tuple(newRobot.model)).send();
        }
    

    首先,我们开始创建一个新的机器人。操作完成后,它将出现第一个内联操作。我们让发送机器人一个出售信息,所以我们要求RobotMarketplace智能合约的forsale

    请注意,当我们要求智能合约A从智能合约B执行操作时,应首先添加适当的权限。我们将在下一部分介绍,目前,请务必遵循README.md中的指南。

    第一个内联操作完成后,第二个内联操作就会完成。这次我们从Messenger智能合约中请求printmessage。 同样应该添加适当的权限。

    在这两种情况下,当我们通过终端执行创建操作时,我们已收到操作已完成(或失败)的通知。

    cleos push action weyland create '{"account":"weyland","newRobot":{"series_number":14441992,"model":"A330","operating_system":"DX42","profession":"engineer","owner":"","manufactured":0}}' -p weyland
    
    executed transaction: 9874a8a5f516ca540c44cafd8b9b371c856fe7958be1fc6268641cc7ab67fdaf  136 bytes  6000 us
    #      weyland <= weyland::create             {"account":"weyland","newRobot":{"series_number":14441992,"model":"A330","operating_system":"DX42",...
    #        market <= market::forsale              {"account":"weyland","robotForSale":{"series_number":14441992,"model":"A330","manufactured":0}}
    #     messenger <= messenger::printmessage      {"message":"A330"}
    >>  ==== For sale | Robot model: A330
    

    让我们将printmessage操作从内联更改为延时。为此,我们需要使用EOSIO的transaction.hpp标头。

    void RobotFactory::create(account_name account, robot newRobot) {
            robotIndex robots(_self, _self);
    
            auto iterator = robots.find(newRobot.series_number);
            eosio_assert(iterator == robots.end(), "Robot with this series number already exists");
    
            robots.emplace(account, [&](auto& robot) {
                robot.series_number = newRobot.series_number;
                robot.model = newRobot.model;
                robot.operating_system = newRobot.operating_system;
                robot.profession = newRobot.profession;
                robot.owner = name{account}.to_string();
                robot.manufactured = now();
            });
    
            // Execute inline action from another contract
            // action({permission_level}, {contract_deployer}, {contract_action}, {data_to_pass}).send();
            action(permission_level(account, N(active)), N(market), N(forsale), make_tuple(account, 
                newRobot.series_number, 
                newRobot.model, 
                newRobot.manufactured
            )).send();
    
            // Execute DEFERRED ACTION from another contract
            eosio::transaction tx;
            tx.actions.emplace_back(permission_level{account, N(active)}, N(messenger), N(printmessage), make_tuple(newRobot.model));
            tx.delay_sec = 12;
            tx.send(N(newRobot.model), account); 
        }
    

    要创建延时交易,我们首先从类型交易声明一个变量tx。然后我们在其操作集合中添加一个新操作。我们可以选择设置延时。如果它为0,则延时交易将在调用之后立即进行。

    设置完所有后,我们只需调用send方法即可。

    但是,不保证将执行延时交易。此外,我们不会像在内联操作中那样收到有关其成功或失败的任何通知。

    cleos push action weyland1 create '{"account":"weyland1","newRobot":{"series_number":14441993,"model":"A330","operating_system":"DX42","profession":"engineer","owner":"","manufactured":0}}' -p weyland1
    
    executed transaction: 5f45b48877aac9d03172616a2443b7a9079ee9f74a124a0976d2fcf0b756e985  176 bytes  2722 us
    #      weyland1 <= weyland1::create             {"account":"weyland1","newRobot":{"series_number":14441993,"model":"A330","operating_system":"DX42",...
    #        market <= market::forsale              {"account":"weyland1","robotForSale":{"series_number":14441993,"model":"A330","manufactured":0}}
    
    # No notification for printmessage action
    

    正如你在12秒后看到的那样,执行延时交易。

    deferred_action_diagram

    总结一下它们是EOS中的两种通信模型:内联和延时。内联通信期间使用的操作称为内联操作,在延时通信中使用时称为延时操作。

    ======================================================================

    分享一些以太坊、EOS、比特币等区块链相关的交互式在线编程实战教程:

    • EOS教程,本课程帮助你快速入门EOS区块链去中心化应用的开发,内容涵盖EOS工具链、账户与钱包、发行代币、智能合约开发与部署、使用代码与智能合约交互等核心知识点,最后综合运用各知识点完成一个便签DApp的开发。
    • java以太坊开发教程,主要是针对java和android程序员进行区块链以太坊开发的web3j详解。
    • python以太坊,主要是针对python工程师使用web3.py进行区块链以太坊开发的详解。
    • php以太坊,主要是介绍使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和交易等内容。
    • 以太坊入门教程,主要介绍智能合约与dapp应用开发,适合入门。
    • 以太坊开发进阶教程,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。
    • C#以太坊,主要讲解如何使用C#开发基于.Net的以太坊应用,包括账户管理、状态与交易、智能合约开发与交互、过滤器和交易等。
    • java比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Java代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Java工程师不可多得的比特币开发学习课程。
    • php比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Php代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Php工程师不可多得的比特币开发学习课程。
    • tendermint区块链开发详解,本课程适合希望使用tendermint进行区块链开发的工程师,课程内容即包括tendermint应用开发模型中的核心概念,例如ABCI接口、默克尔树、多版本状态库等,也包括代币发行等丰富的实操代码,是go语言工程师快速入门区块链开发的最佳选择。

    汇智网原创翻译,转载请标明出处。这里是原文EOS区块链的通信模型

    展开全文
  • 本文介绍了区块链技术发展的基本情况,探讨了区块链技术物联网中应用的主要方向,并此基础上分析了区块链技术物联网应用中面临的挑战。 物联网作为新一代信息通信技术高度集成和综合应用的典范,正在与经济...

     区块链技术作为当前国内外的焦点技术之一,可能会对未来技术创新和产业变革产生重要影响,在物联网中将会有广阔的发展空间。本文介绍了区块链技术发展的基本情况,探讨了区块链技术在物联网中应用的主要方向,并在此基础上分析了区块链技术在物联网应用中面临的挑战。

    物联网作为新一代信息通信技术高度集成和综合应用的典范,正在与经济社会深度融合,深刻改变生产活动、社会管理、公共服务。随着物联网技术在各行业中的普及和不断深化,人类社会正进入“万物互联”的新时代,可穿戴设备、智能家电、自动驾驶汽车、智能机器人等数以百亿计的新设备将接入网络,也使得物联网成为当今全球技术创新最活跃、应用空间最广阔的领域之一。云计算、大数据、新一代移动通信技术与智能感知、行业应用相互交织,激荡融合,不断激发创新活力,成为物联网发展的新动力。区块链技术作为当前国内外的焦点技术之一,可能会对未来技术创新和产业变革产生重要影响。在物联网中如何定位和应用区块链技术值得进一步思考和探讨。

    区块链的技术与应用情况

    区块链的概念首次在2008年底由化名中本聪(Satoshi Nakamoto)发表在比特币论坛中的论文中提出。论文中区块链技术是构建比特币数据结构与交易信息加密传输的基础技术,该技术实现了比特币的挖矿与交易。

    区块链是分布式数字存储、点对点传输、共识机制、加密算法等技术的集成应用。从狭义上讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义而言,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问安全、利用智能化合约来编程和操作数据的一种全新的分布式基础架构与计算范式。与传统的数据库技术相比,区块链具备3个特点:一是数据的不可篡改性;二是系统集体维护;三是信息的公开透明。同时,相对传统数据库技术,现阶段的区块链技术数据吞吐量小,读写时延较大,更适合低频率、小数据的可靠存储和处理。

    从现有的区块链的技术应用看,区块链基础架构一般由数据层、网络层、共识层、激励层、合约层和应用层组合。其中,数据层封装了底层数据区块以及相关数据加密和时间戳等技术;网络层则包括分布式组网机制、数据传播机制和数据验证机制等;共识层主要封装网络节点的各类共识算法;激励层将经济因素集成到区块链技术体系中,主要包括经济激励的发行机制和分配机制等;合约层主要封装各类脚本、算法和智能合约,是区块链可编程特征的基础;应用层则封装了区块链的各种应用。在这一模型中,基于时间戳的链式区块结构、分布式节点的共识机制、灵活可编程的智能合约是区块链技术最具创新性的技术环节。

    全球区块链应用探索非常活跃,总体而言还处于小规模的概念验证阶段。当前的区块链技术应用主要集中在两个方面:一是在不同机构或个人之间缺乏互信并缺少中介的情况下,实现数据的直接交换。区块链技术源于比特币,是比特币的底层数据存储技术,因此金融是区块链应用最热门的领域。美国Ripple公司早在2012年就已经引入区块链技术为多家银行提供跨境转账、清算和支付服务,与SWIFT(环球同业银行金融电讯协会)等传统渠道相比,能够节约1/3手续费,把跨行对账等操作时间从数天压缩到几秒。区块链在数字货币、支付结算、证券交易、互助保险等金融场景中的应用也受到高度重视。此外,在能源领域,美国公司Brooklyn MicroGrid等使用区块链技术,智能电网的用户无需通过电力公司就能进行电力资源的灵活交换。在医疗领域,瑞士公司HealthBank和美国公司Gem采用区块链技术存储医疗数据,帮助多家医院和医疗机构直接交换电子病历。

    二是用于重要数据的保全与可靠存储。利用区块链不可篡改的特点,重要数据(如权属、协议、票据等法律文书)的保全成为应用探索的热点。目前,爱沙尼亚、格鲁吉亚等国家政府正尝试采用区块链技术对重要资产进行登记,开展了土地注册、商业登记、电子征税等重要信息的登记工作。美国法律服务公司Pryor Cashman推出了数字产品(如音乐、视频等)的交易平台“Monograph”,采用区块链技术解决数字艺术品的权属和认证问题。国内网站“保全网”通过区块链技术对互联网金融平台的身份信息、操作记录以及保险业务中的保险凭证等电子数据的真实性进行认证,并与公证处和司法鉴定中心对接,可以提供公证书、司法鉴定报告等服务。

    区块链技术在物联网中应用的思路探讨

    应该说,区块链最核心的价值便是通过程序算法来建立一个公开透明的规则,以此为基础来创立一个信任网络,确保点对点之间的信任与交易的安全,这就摒弃了传统的中心化的第三方机构,也省去了统一的账簿更新和验证环节。而随着物联网规模的不断扩大,构建百亿级设备的“巨系统”,物联网面临的安全隐私保护、数据真实性保障、系统可扩展性和信息共享等的一系列挑战,应用区块链技术的空间十分广阔。总体而言,区块链技术在物联网中应用主要在以下3个方面。

    物联网的核心理念是通过传感器等感知设备将物理世界的隐性数据转化为显性数据,进而从显性数据中获得客观世界的运行规律和相关知识。作为物理世界在网络信息空间的投射,物联网对数据在产生、传输、处理过程中的真实性具有更高的要求,这也是区块链技术在物联网中可能应用的主要方向之一。在产品追溯、车联网等领域均有广阔的应用空间。

    以产品追溯为例。产品追溯是物联网技术的重要应用领域之一,目前广泛应用在农牧产品原产地追溯,工业生产的原材料和零配件追溯,以及消费品防伪等方面。其主要实现方式是为追溯产品分配惟一的标识(可以是RFID射频标签、二维码等多种形式),在标识中关联产品的相关信息(如原产地信息、制造企业信息等),采购该产品的企业或消费者可通过标识识别装置(如RFID读写器、手机二维码扫描等)对标识中的信息进行读取,实现对产品信息的追溯、真伪查询等功能。在产品溯源过程中应用区块链技术,可形成多方参与且信息透明、共享、保真的溯源链。在产品的生产、加工、销售等多个环节建立区块链账本,建立真品溯源的全程链式路径,直达最终使用方或消费者。以肉类产品为例建立的溯源链结构如图1所示。

    blob.png

    图1 肉类产品溯源链结构

    利用区块链技术构建的溯源链,具有数据公开透明、不可伪造、不可篡改、不可撤销的特点,能够从技术上解决产品数据的真实性问题。在这一溯源链中,不论是生产企业、经销商、零售商,还是监管部门均能够基于溯源链对各个环节的数据进行共享,有效地解决了目前产品溯源中数据可能在某一环节遭到篡改而造成整体数据失真问题。另外在车联网的V2X交互过程中,为了保证高即时性和高不确定性的路况信息在车辆之间的可靠性传递,避免由于数据信息真实导致失效,也可以利用区块链技术构建“路况链”,保障信息的透明、可靠传递。

    区块链技术增强物联网系统的安全性

    随着万物互联时代的到来,物联网安全威胁日益凸显。物联网节点分布广;数量多,应用环境复杂,计算和存储能力有限,这使得物联网的安全性相对脆弱。随着物联网应用在工业、能源、电力、交通等国家战略性基础行业,一旦发生安全问题,将造成难以估量的损失。从伊朗的震网病毒攻击核设施的事件、2015年底乌克兰电网受木马影响而局部停电事件到2016年美国发生的物联网终端被木马控制发起攻击导致互联网瘫痪的事件,物联网安全问题日益突出。与安全相关的,还有物联网的数据隐私保护。随着物联网平台化的发展,对于行业用户而言,如何保证物联网中的数据隐私也是亟需解决的问题之一。而不论是安全还是隐私保护,物联网中应用的仍是在互联网或通信网中常规的安全防护技术和手段。这种“嫁接”对物联网本身在安全和数据隐私保护方面的特定要求考虑并不充分,也难以应对物联网设备数量大幅度增长带来的扩展性问题。物联网的安全风险及安全需求如图2所示。

    blob.png

    图2 物联网的安全风险及安全需求

    区块链技术的应用能够在一定程度上提升物联网的系统安全性,当前主要在以下方面起到重要作用。

    一、物联网节点合法性身份的鉴别。由于物联网感知设备有限的计算、存储能力,造成感知设备上难以应用复杂度较高、对节点性能要求较高的安全措施,被仿冒的风险较高。区块链的验证和共识机制有助于识别合法的物联网节点,避免非法或恶意的物联网节点或设备的接入。

    二、物联网数据的隐私保护。集中式的物联网方案由平台对感知数据进行汇聚和处理。对于接入到物联网平台的行业用户而言,面临着物联网平台在未经许可的方式下存储和转发涉及用户隐私的物联网数据。区块链带来的分布式、无中心化结构,以及对所有传输数据进行加密处理的方式,将能够有效的解决这方面的问题。

    三、物联网网络基础设施安全性的提升。不论是构建在互联网之上的物联网应用,还是物联网专网,其网络基础设施中的集中式服务提供设备均是安全攻击的重点。例如利用DDOS攻击互联网DNS服务器,或是DDOS攻击基站或核心路由器等,均将造成网络的瘫痪。而利用区块链技术将集中式服务改为分布式服务,能够有效防范对关键核心网络基础设施的攻击。

    区块链技术改变物联网信息交换模式

    物联网发展将带来百亿级设备,而这些设备将分属于不同的平台,形成中心化的设备连接结构。不同的设备获得用户的状态信息都是片面的,但由于分属不同的业务提供商、不同的平台,因此设备之间无法进行直接信息的交换或交易。在现有的物联网信息交互模型下,设备之间的信息交互需要通过设备所属平台进行(当然信息交换的前提是设备所属业务提供商之间已经达成了一致),这种信息交换模式不仅效率低,而且需要业务提供商之间达成一致,并需要平台之间互联互通技术的支持。物联网现有的信息交换模式如图3所示。

    blob.png

    图3 物联网现有信息交换模式

    利用区块链技术在物联网设备商的部署,能够快速、有效地建立设备之间的互信和交易网络,推动物联网信息交换模式从平台之间的交换,向设备之间进行对等的信息交换或交易的方式转变。去中心化的数据信息流动将能够快速、准确地将相关信息进行关联,碎片化的信息将形成系统化的信息,能够更准确地反应客观世界的运行状态,促进业务和应用创新,为物联网发展开辟新的空间。

    区块链技术在物联网中应用面临的挑战

    虽然区块链技术在物联网中具有广阔的应用场景,但也应该看到区块链技术仍处于发展初期,主要面向的应用场景还是以金融、记账等为主,其技术的先进性在逐步向其他领域扩展。因此在区块链向物联网扩展过程中,也应该考虑其面临的挑战,这些挑战包括但不限于以下3点。

    一、区块链技术的部署和实施需要由多个节点共同参与,但现在物联网节点设备的存储和计算能力普遍受限,联网能力也较弱。因此如何在物联网节点中部署区块链技术、是否应在物联网中采取分级的区块链架构,以及现有的区块链技术需要做哪些方面的增强,都是需要考虑的问题;

    二、很多物联网应用对实时性要求较高,如车联网业务等。而现有的区块链共识机制普遍存在延时较大的问题(特别是随着节点规模扩大,延时可能进一步增加)。共识延时可能引起反馈延时、告警延时,无法满足现有物联网应用的需求,需要在技术上进行进一步改进;

    三、目前区块链在互联网中的应用,仅在一定范围内、有限节点中开展。而一旦区块链应用在物联网中,节点数量将呈几何级数增加,其频繁的关系数据查询请求将对现有的链式数据架构提出非常严峻的挑战。

    当今时代,全球新一轮科技革命和产业变革正在兴起,网络信息技术以前所未有的速度转化为生产力,深刻改变着全球格局。物联网发展前景广阔,面临着难得的历史机遇,也面临着不少挑战。区块链技术在物联网中的应用,能够在一定程度上解决物联网面临的问题;同时物联网提出的新的需求,也将为区块链技术发展注入新的活力。



    本文转自d1net(转载)

    展开全文
  • 区块链技术引入6G蜂窝移动通信系统以保障用户的隐私安全,减少资源分配和通信服务成本,支持不同分布式应用,从而实现移动通信区块链技术的有机结合,被预测为6G蜂窝移动通信的关键技术之一。从区块链结合...
  • 区块链在数据流通应用闫树,卿苏德,魏凯中国信息通信研究院,北京 100191摘要:大数据的流通是创造数据价值的关键一环,然而目前数据流通面临着诸多问题。区块链是一种分...
  • 区块链核心技术及应用

    千次阅读 2018-08-29 16:30:42
    区块链核心技术及应用 目录 区块链核心技术及应用 什么是区块链 关于比特币 Bitcoin需要解决的问题 矿机 Bitcoin的定义 区块链涉及的核心技术 区块链与BitTorrent 区块链应用场景 区块链的技术特点 ...
  • IoTeX 对话 高校区块链技术社区:物联网区块链的超级落地应用在哪里? 原创:Raullen Chai IoTeX社区 8月17日下午,IoTeX联合创始人Raullen做客“高校区块链技术社区”,为大家分享主题:“物联网区块链的超级...
  • 区块链+各行业应用案例

    万次阅读 多人点赞 2019-07-25 22:03:44
    文章目录区块链 + 金融区块链 + 电商区块链 + 文娱区块链 + 社交区块链 + 搜索区块链 + 媒体区块链 + 品牌区块链 + 服务区块链 + 医疗区块链 + 农业区块链 + 公益区块链 + 法律区块链 + 物联网参考资料 区块链 + ...
  • 区块链在项目应用 好客租房项目中应用区块链 1、认识区块链 1.1、什么是区块链区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。 区块链(Blockchain),是比特币的一个...
  • 区块链中VRF的应用及原理解析》,起因是来自我们团队做的一条叫 Tarax Network 的公链。因为场景定位的缘故,我们想找到一种低功耗的方式来进行共识。那么 POW 肯定是没办法考虑的,很容就会想到 POS。继而考虑...
  • 为了借助第三方(图 2 的 混淆服务器)的能力隐藏交易双方的关联性,发送 方会继续用第三方的公钥 KI 做第二重加密,并将结果(见下方公式的箭头左侧)提交给第三方。 当第三方接收到若干密文后,分别进行解密以...
  • 区块链七大应用场景

    万次阅读 多人点赞 2019-09-05 18:47:11
    这应该是区块链最简单的应用场景,就是信息互通有无。 1、传统的信息共享的痛点 要么是统一由一个中心进行信息发布和分发,要么是彼此之间定时批量对账(典型的每天一次),对于有时效性要求的信息共享,难以达到...
  • 20210320-中国通信服务-区块链行业:区块链赋能新基建领域应用白皮书.pdf
  • 区块链信用机制与应用场景介绍

    千次阅读 2018-07-30 11:41:08
    本文向大家介绍了区块链以及区块链信用机制,最后简要列举了区块链的商业应用。本文选自《区块链供应链金融》。 区块链简介 将有意义的事件记录下来,是形成人类文明的重要内容之一。《史记》生动地记录和展开了...
  • 发表于MIS Quarterly Executive的论文A Case Study of Using Blockchain Technology in Regulatory Technology探讨了将区块链技术应用于监管合规、降低合规成本和减轻监管负担的应用潜力,描述了Maison区块链系统...
  • 从去年开始,国内很多知名不知名,高调不高调的投资人开始抢占区块链市场,让多年的区块链技术慢慢由概念到应用中实现。   什么是区块链?   那到底什么是区块链呢?很多人第一反应是比特币,将比特币与区块链...
  • 区块链技术打通医疗应用场景

    千次阅读 2020-07-06 22:01:42
    ”国泰君安证券研究所通信首席分析师宋嘉吉表示,市场普遍认为区块链只是一种新的ICT(信息通信技术),却低估了区块链在产业链打造信用价值网络所发挥的关键作用。 国家卫生健康委办公厅近期发布《国家卫生健康委...
  • 随着物联网技术各行业的普及和不断深化,人类社会正进入“万物互联”的新时代,可穿戴设备、智能家电、自动驾驶汽车、智能机器人等数以百亿计的新设备将接入网络,也使得物联网成为当今全球技术创新最活跃、应用...
  • 区块链在能源管控领域的应用 区块链是共享和分布式的数据结构或分类帐,可以不使用中央权限的情况下安全地存储数字交易。可以看作是一个数据库,允许多个用户同时对分类账进行更改,从而产生多个链版本。每个网络...
  • 这是区块链的一个比较核心的应用,对于软件系统或者说对于互联网系统来讲,对数据的处理、分析、计算,这些功能是属于比较基本的软件功能 对于区块链来讲它的核心的功能是在于创新式的提供了一个原先各种软件都没有...
  • 区块链FISCO BCOS实战应用篇 精通java,熟悉面向对象的程序设计方...
  • 布隆过滤器在区块链中应用

    千次阅读 2018-12-10 16:13:09
    布隆过滤器(bloom filter)是空间效率很高的一种概率数据结构,1970年由bloom提出,用于判断一个元素是否一个集合。Bloom filter 判断一个元素不存在集合,则肯定不存在,如果判断一个元素存在于集合...
  • 作者介绍:何鑫铭,携程技术中心创新研发部区块链技术专家,携程区块链技术平台技术负责人,精通当前...上图是Gartner提供的一份2018年关于企业对区块链技术规划的调研结果,结果表明受访的企业(包含高科技、I...
  • 到今年 2019 年,比特币等再次迎来小牛市,各种关于区块链、虚拟币的新闻又重新活跃大众视野,如比特币产量再次减半,价格重回 1 万美金,波场创始人孙宇晨 3000 万拍下巴菲特午餐,某市值百亿的团队跑路等。...
  • 白皮书通过对5G技术特征和现状,以及区块链技术特征的分析与洞察,从5G接入网络、5G通信设备和网络管理、5G通信应用与业务等多个维度进行了需求分析和阐述,针对各领域给出了“5G+区块链”典型融合应用的痛点和运用...
  • 农场 VyperFarm应用程序的区块链通信的智能合约,测试/部署脚本。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,152
精华内容 6,860
关键字:

区块链在通信中的应用