程序员注意区块链的三大技术要点你不得不

点击标题下「上方网」可快速    

  

作为程序员的你,关于区块链在去中心和去中介、隐私保护、时间戳三大要素中的技术内涵,好好学习一下吧~

本文目的就是为程序员介绍区块链的独特技术,以及这些技术如何运用到项目或者产品的开发过程中。

即使你不想进入全新的区块链应用开发大潮,你也会发现其底层技术对平日的应用开发有不少启发和借鉴作用。

去中心和去中介

年凯文·凯利(国内称KK)出版了一本预言式的巨著《失控》,“去中心化”是凯文·凯利在书中提出的“九律”中的一条。

一个去中心化的系统,没有一个中央的、至上而下的控制主体,而完全是由大量相互联结看似无组织的小个体构成,这些个体有一定的独立性,可以相互作用,它们自发地形成一个整体以后,由量变引起质变,结果整体的能力、智慧、适应性和灵活性,都大大超过了个体的简单相加。

这样的去中心化系统生命力极强,遭到破坏可以自我修复,因而很难被完全摧毁。

互联网就是一个典型去中心化的例子,极强的适应性和抗破坏性是互联网的根本。不过如今的互联网却有了中心化的趋势。

中心化的后果见仁见智,对崇尚多种选择的人来说,中心化代表着选择自由的丧失,服务质量的下降,活力的倒退和创新的萎缩。微博做为新一代互联网媒体的翘楚,它的兴起、没落以及再次复兴,从内容的产生和传播来说,就是一个从一开始的去中心化,到由大V们控制的中心化,再到去中心化的历程。

总之,只有那些赋予其中每个个体充分发展的自由的系统,那些抗拒中心化趋势的系统,才是生机勃勃、有创新力、能够不断进化的系统。

站在-年之交,智能机器时代似乎离我们不远了。

芯片、存储、网络、移动、物联网技术,都极大增强了各种网络终端(edge)的能力,无论这些终端是人、手机、汽车、机器人,或是其他设备。以前由于存储、网络或者计算能力等限制而选择中心化的应用程序设计,现在的程序员则有更大的自由去选择一种去中心化的设计。去中心化的系统更加灵活,更具适应性,更有活力。

另一方面,现实社会中的各种交易活动,由于交易双方缺乏信任、信息不对称、搜寻成本、匹配效率、交易费用等因素,需要有交易双方共同信任的中介参与。

比如银行间的跨境支付,中间需要通过SWIFT网络和代理银行,而不能直接进行点对点交易。

中介的产生源自于降低交易成本的目的,但是随着新技术的出现和普及,双方直接交易成为可能,而且成本更低。在这样的情况下中介变得多余了,交易双方通过去中介化来降低交易成本。

去中心和去中介有多种不同层次,可以体现在业务模式、业务数据的产生和传播、应用系统的架构、应用系统的开发、运行、维护、升级等方面。比特币和区块链是一种比较彻底的去中心和去中介应用,它包含以下几种去中心和去中介技术:

1.点对点网络(P2Pnetwork)

点对点网络并不是什么新概念,网上的很多文件共享和视频直播服务就是用P2P网络协议实现的。P2P是对等网络,网络中每个节点的地位相当,没有任何节点处于中央控制的地位,也没有任何节点扮演交易中介的角色;每个节点既是Server,又是Client;节点可以选择随时加入,随时退出;节点可以选择运行所有的功能(Fullnode),也可以选择运行部分的功能;节点越多,整个系统的运算能力越强,数据安全性越高,抗破坏能力越强。

2.去中心化数据库

例如Bitcoin的分布式总帐。

3.去中心化应用(DecentralizedApp,简称DApp)

例如在Ethereum上运行的智能合约应用。

4.共识算法

无中心、无中介、无需相互信任的对等网络的节点间需要协调一种共识算法,以便共同维护一个统一的分布式数据库,以及协同工作以保障整个系统的安全性和适应性。有多种共识算法,包括:

PoW–ProofofWork工作量证明

PoS–ProofofStake权益证明

DPoS–DelegatedProofofStake授权权益证明

PBFT–PracticalByzantineFaultTolerance实用拜占庭容错

PoET–ProofofElapsedTime流逝时间量证明等。

在时下这股区块链的淘金热里,已经有很多创业公司准备颠覆传统的中心化应用。几乎所有的应用,都开始有相应的基于区块链技术的去中心化版本。如果你认为目前没有必要或者不可能去中心化,未雨绸缪总是不会错的。

隐私保护

个人隐私信息泄露在中国是一个非常严重的现象。

盗取、贩卖个人信息已经有完整的黑市产业链,部分互联网征信和数据公司,从黑市上购买数据,甚至雇佣黑客盗取数据。互联网用户普遍意识到个人隐私信息的重要,对隐私保护的要求会更高。程序员有责任从技术上加强个人隐私的保护。

在传统的应用架构设计中,隐私保护或者安全性设计的优先级并不是很高,现在这种情况必须有所改变,架构师需要提升隐私保护设计的优先级。

区块链应用领域采用了很多密码学的技术,例如哈希算法、加密算法、公钥密码学、默克尔树、和零身份证明。

Bitcoin在保护用户身份方面,使用哈希过的公钥作为个人账号,这样在交易时隐藏了个人信息。另外,个人账号可以设计成一次性的,每次交易都使用新账号,这样就很难通过追踪某个账号的交易来推测用户身份。Bitcoin的总帐是公开的,上面每笔交易记录包含付费账号、收费账号以及转账金额。

如果觉得这样的隐私保护还不够,另一个数字货币Zcash在Bitcoin之上增加了一些协议,将付费账号、收费账号以及转账金额都隐藏了起来,采用的方法仍然是加密、哈希、默克尔树和零知识证明。

尽管比特币出自于一群无*府主义者之手,但他们秉承的一些诸如保护个人隐私的信念,在这个信息泛滥的互联网时代还是非常可取的。

时间戳

传统关系型数据库在设计表时一般会有一个或多个时间戳(timestamp)字段,用来标记一行记录添加或修改时的时间。

基本上,这些时间戳是给应用内部使用的。当数据被共享给其他应用时,这些时间戳并没有多大意义,因为时间戳可以伪造。

在数据黑市上,一个数据掮客可以将一份银行VIP客户数据进行注水,掺入一半的假数据。

一家保险公司为了搅乱市场上竞争对手的视线,故意污染数据,将高净值用户放入骗保用户黑名单,将骗保用户放入高净值用户名单,然后让污染后的数据故意泄露出去。

如果每条数据都带有一个真实可信的时间戳(这条数据产生的真实时间点),这样的造假行为就比较难奏效,因为假数据的时间戳一般都是最近的。

以前我们很少关心数据的时间戳,很少去了解时间戳对数据的意义,一个原因也许是我们不知道如何用技术去实现这样的时间戳。

如果技术实现完全可行,那么这个时间戳对我们来说就有了全新的意义。

首先,我们有了真正可以信任的白癜风。

第二,这些数据因为可信变得更有价值,可以在应用之外被其他应用或者分析工具使用。

第三,我们可以基于这些可信的历史记录生成信用。

,我们真正进入一个信用社会。

区块链在P2P网络上通过节点间的共识算法实现了一个分布式的时间戳服务。

区块链是在时间上有序的、由记录块(区块)组成的一根链条。一个区块包含两个部分:区块头(BlockHeader)和记录部分。区块中的所有记录通过默克尔树(MerkleTree)组织起来,默克尔树根(Root)的哈希值做为本区块里所有记录的数字指纹被放入区块头。

区块头还包含以下字段:前一个区块头的哈希值(这是前一个区块的数字指纹,也可以看做是指向前一个区块的哈希指针),本区块的时间戳、高度(Hight,即从 个区块开始数本区块是第几个块),以及一些其他信息。系统的共识算法保证了每过固定的一段时间(Bitcoin是大约10分钟),参与整个系统记账的节点会达成共识在区块链上添加下一个新的区块。

时间戳的这种设计,使得更改一条记录的困难程度按时间的指数倍增加,越老的记录越难更改。这是因为,如果改动某个区块里的一条记录,意味着该区块原来的默克尔树根失效了,需要改动区块头,该区块的数字指纹随之失效。又由于下一个区块的区块头包含这个哈希指针,这就意味着下一个区块也需要改动。如此直到 的那个区块。

可见要想改动一个区块,必须同时改动该区块后面的所有区块。因为将一个区块放入区块链中需要消耗非常多的资源(资源种类依共识算法的不同而不同,可以是计算力,流逝的时间,拥有的权益等),随着后面添加的区块越来越多,要想改动某个区块几乎是不可能的。

哪些数据需要有时间戳?必须是不能变更的数据,特别适合存档文件。需要现在就考虑实施时间戳吗?这个跟你的数据战略相关。在大数据时代,拥有高质量的数据就是拥有了价值。时间戳可以一定程度上保证数据的可信度,至少这些数据是经过“时间考验”的。

本文作者曹严明,SAP咨询服务部架构师,专注于保险业核心系统、电子商务、企业移动应用等解决方案。曾就职于微软和HCL,参与过SQLServer、SharePoint、VisualStudio等产品的研发。

本文来源CSDN

上方传媒业务

联系方式:

  上方网及   

  上方网新闻提供/活动及专访邀约/稿件撰写

  

  MTP媒体联盟推广/整合传播/会议商务合作

  

  棋牌联盟/棋牌游戏代理及推广

  

  上方汇会员权益咨询/洽谈

  

  明星搭档/明星代言

  

  游戏版号/商标/专利

  

  长尾流量渠道联运/游戏定制发行

  

  海外地区游戏推广/资源洽谈

  

  百度信息流/今日头条

  

  腾讯智汇推

  

  请联系QQ后电话确认合作!

赞赏

长按







































北京治疗白癜风 的专科医院
北京白癜风公立医院



转载请注明:http://www.xxcyfilter.com/cxrs/8361.html