龙8国际-long8-唯一官方网站登录

00656.HK 6.530

龙8游戏官方进入关于区块链程序员需要了解些什么?|仙踪林 老狼信息|

发布时间:2025-11-04 06:43:32 作者:小编 来源: 龙8游戏国际登录

  如果说比特币是对传统货币的一种颠覆ღ★◈✿,那么比特币的基础技术——区块链则是对传统编程范式的一种颠覆ღ★◈✿。区块链技术被看作是一次Paradigm Shiftღ★◈✿。

  也许很多人对 “颠覆”这种说法不以为然ღ★◈✿,因为现在这个词已经被用滥了(如今哪个好一点儿的词没有被用滥呢?)仙踪林 老狼信息ღ★◈✿。但是明眼人在匆忙做出”这又是一个噱头”这样的结论之前会谨慎的去了解一下背后的东西ღ★◈✿。

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

  即使你不想进入全新的区块链应用开发大潮之中ღ★◈✿,你也会发现区块链相关的底层技术对平日的应用开发有不少启发和借鉴作用ღ★◈✿。一个新技术的诞生是有它顺应时代的合理性的(黑格尔语”存在就是合理的“)ღ★◈✿。

  作为程序员我们应该去了解它的合理性所在之处仙踪林 老狼信息ღ★◈✿,取而用之ღ★◈✿。我们不一定非要用新技术去颠覆一个老应用ღ★◈✿,但可以用新技术去重塑一个老应用仙踪林 老狼信息ღ★◈✿。

  1994年凯文•凯利(国内称KK)出版了一本预言式的巨著《失控》ღ★◈✿,书中充满了关于智慧生命及其社会进化机制的真知灼见ღ★◈✿。书中提到的很多概念ღ★◈✿,比如云计算ღ★◈✿、物联网ღ★◈✿、网络社区等等ღ★◈✿,在二十多年后的今天已经成为普遍的事实ღ★◈✿。

  “去中心化”是凯文•凯利在书中提出的“九律”中的一条ღ★◈✿。一个去中心化的系统ღ★◈✿,没有一个中央的ღ★◈✿、至上而下的控制主体ღ★◈✿,而完全是由大量的ღ★◈✿、相互联结的ღ★◈✿、看似无组织的小个体构成ღ★◈✿,这些个体有一定的独立性ღ★◈✿,可以相互作用ღ★◈✿,他们自发地形成一个整体以后ღ★◈✿,由量变引起质变ღ★◈✿,结果整体的能力ღ★◈✿、整体的智慧ღ★◈✿、整体的适应性和灵活性ღ★◈✿,都大大超过了个体的简单相加ღ★◈✿。这样的去中心化系统生命力极强ღ★◈✿,遭到破坏可以自我修复ღ★◈✿,因而很难被完全摧毁ღ★◈✿。

  互联网就是一个典型去中心化的例子龙8游戏官方进入ღ★◈✿,极强的适应性和抗破坏性是互联网的根本ღ★◈✿。不过如今的互联网却有了中心化的趋势ღ★◈✿。中心化的后果见仁见智ღ★◈✿,对崇尚多种选择的人来说ღ★◈✿,中心化代表着选择自由的丧失ღ★◈✿,服务质量的下降ღ★◈✿,活力的倒退和创新的萎缩ღ★◈✿。

  微博做为新一代互联网媒体的翘楚ღ★◈✿,它的兴起ღ★◈✿、没落以及再次复兴ღ★◈✿,从内容的产生和传播来说ღ★◈✿,就是一个从一开始的去中心化ღ★◈✿,到由大V们控制的中心化ღ★◈✿,再到去中心化的历程ღ★◈✿。总之ღ★◈✿,只有那些赋予其中每个个体充分发展的自由的系统ღ★◈✿,那些抗拒中心化趋势的系统ღ★◈✿,才是生机勃勃ღ★◈✿、有创新力ღ★◈✿、能够不断进化的系统ღ★◈✿。

  站在2016-2017年之交ღ★◈✿,智能机器时代似乎离我们不远了ღ★◈✿。芯片技术ღ★◈✿、存储技术ღ★◈✿、网络技术ღ★◈✿、移动技术ღ★◈✿、物联网技术ღ★◈✿,这些都极大的增强了各种网络终端( edge)的能力ღ★◈✿,无论这些终端是人ღ★◈✿、手机ღ★◈✿、汽车ღ★◈✿、机器人ღ★◈✿,或是其他设备ღ★◈✿。

  以前由于存储ღ★◈✿、网络或者计算能力等限制而选择中心化的应用程序设计ღ★◈✿,现在的程序员则有更大的自由去选择一种去中心化的设计ღ★◈✿。去中心化的系统更加灵活ღ★◈✿,更具适应性ღ★◈✿,更有活力ღ★◈✿。

  另一方面ღ★◈✿,现实社会中的各种交易活动ღ★◈✿,由于交易双方缺乏信任ღ★◈✿、信息不对称ღ★◈✿、搜寻成本ღ★◈✿、匹配效率ღ★◈✿、交易费用等因素ღ★◈✿,需要有交易双方共同信任的中介参与ღ★◈✿。比如银行间的跨境支付ღ★◈✿,中间需要通过SWIFT网络和代理银行ღ★◈✿,而不能直接进行点对点交易ღ★◈✿。

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

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

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

  作为一个程序员或者架构师ღ★◈✿,这些思路和技术有什么帮助呢?你的应用需要去中心或者去中介吗?你的下一个应用需要采用去中心化的架构吗?设计去中心化的架构需要作哪些改变?需要哪些基础设施?

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

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

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

  区块链应用领域采用了很多密码学的技术龙8游戏官方进入ღ★◈✿,例如哈希算法ღ★◈✿、加密算法ღ★◈✿、公钥密码学ღ★◈✿、默克尔树ღ★◈✿、和零身份证明ღ★◈✿。 Bitcoin在保护用户身份方面ღ★◈✿,它使用哈希过的公钥作为个人账号ღ★◈✿,这样在交易时隐藏了个人信息ღ★◈✿。另外ღ★◈✿,个人账号可以设计成一次性的ღ★◈✿,每次交易都使用新的账号ღ★◈✿,这样就很难通过追踪某个账号的交易来推测用户身份ღ★◈✿。

  Bitcoin的总帐是公开的ღ★◈✿,上面每笔交易记录包含付费账号ღ★◈✿、收费账号以及转账金额ღ★◈✿。如果觉得这样的隐私保护还不够的话ღ★◈✿,另一个数字货币Zcash在Bitcoin之上增加了一些协议ღ★◈✿,将付费账号ღ★◈✿、收费账号以及转账金额都隐藏了起来ღ★◈✿,采用的方法仍然是加密ღ★◈✿、哈希ღ★◈✿、默克尔树和零知识证明ღ★◈✿。

  尽管比特币出自于一群无政府主义者之手ღ★◈✿,但他们秉承的一些诸如保护个人隐私的信念ღ★◈✿,在这个信息泛滥的互联网时代还是非常可取的ღ★◈✿。对于你的应用ღ★◈✿,你是否收集了超越应用需要的个人信息?(保护隐私的最好办法就是不收集它们)在处理交易时ღ★◈✿,是否可以传递尽可能少的个人身份信息?或者使用一次性账号?在日志中是否可以记录尽可能少的个人身份信息?或者完全不需记录?缓存数据库中的个人信息是否安全?消息传递时不仅采用Session Key加密ღ★◈✿,是否还可以采用Message Key?

  如今ღ★◈✿,哈希算法ღ★◈✿、公钥加密ღ★◈✿,默克尔树ღ★◈✿,这些加密技术唾手可得ღ★◈✿。程序员应该养成新的习惯ღ★◈✿,在应用设计中采用各种加密技术保护个人隐私信息ღ★◈✿,包括个人账户信息ღ★◈✿,交易信息ღ★◈✿,浏览信息ღ★◈✿,日志信息等ღ★◈✿。

  传统关系型数据库在设计表时一般会有一个或多个时间戳(timestamp)字段ღ★◈✿,用来标记一行记录添加或修改时的时间ღ★◈✿。基本上ღ★◈✿,这些时间戳是给应用内部使用的ღ★◈✿。当数据被共享给其他应用时ღ★◈✿,这些时间戳并没有多大意义ღ★◈✿,因为时间戳可以伪造ღ★◈✿。

  在数据黑市上ღ★◈✿,一个数据掮客可以将一份银行VIP客户数据进行注水ღ★◈✿,掺入一半的假数据ღ★◈✿。一家保险公司为了搅乱市场上竞争对手的视线ღ★◈✿,故意污染数据ღ★◈✿,将高净值用户放入骗保用户黑名单ღ★◈✿,将骗保用户放入高净值用户名单ღ★◈✿,然后让污染后的数据故意泄露出去ღ★◈✿。

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

  以前我们很少关心数据的时间戳ღ★◈✿,很少去了解这个时间戳对数据的意义ღ★◈✿,一个原因也许是我们不知道如何用技术去实现这样的时间戳ღ★◈✿。如果技术上实现这样一个时间戳是完全可行的ღ★◈✿,那么这个时间戳对我们来说就有了全新的意义ღ★◈✿。

  首先ღ★◈✿,我们有了真正可以信任的历史数据ღ★◈✿。第二ღ★◈✿,这些数据因为可信变得更有价值ღ★◈✿,可以在应用之外被其他应用或者分析工具使用ღ★◈✿。第三ღ★◈✿,我们可以基于这些可信的历史记录生成信用ღ★◈✿。最后ღ★◈✿,我们真正进入一个信用社会ღ★◈✿。

  想象一下ღ★◈✿,如果我们想在未来某天证明我们的数据是在今天产生的ღ★◈✿,我们可以在今天对今天的所有数据进行某种形式的哈希(比如默克尔树)ღ★◈✿,最终得到一个哈希值ღ★◈✿,然后在第二天的《参考消息》上登一个广告ღ★◈✿,把哈希值发布出去ღ★◈✿。明天的《参考消息》就成了我们的时间戳ღ★◈✿。如果明天我们想做同样的事仙踪林 老狼信息ღ★◈✿,我们可以如法炮制ღ★◈✿,另外有一个关键点ღ★◈✿,那就是要记得把今天的哈希值也给哈希进去ღ★◈✿。这样每天的哈希值就包含了以前所有数据的哈希信息ღ★◈✿。

  区块链在P2P网络上通过节点间的共识算法实现了一个分布式的时间戳服务ღ★◈✿。区块链是在时间上有序的ღ★◈✿、由记录块(区块)组成的一根链条ღ★◈✿。一个区块包含两个部分ღ★◈✿:区块头( block header)和记录部分ღ★◈✿。区块中的所有记录通过默克尔树( Merkle tree)组织起来ღ★◈✿,默克尔树根( root)的哈希值做为本区块里所有记录的数字指纹被放入区块头ღ★◈✿。

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

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

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

  对一个普通的应用来说ღ★◈✿,如何实现这样一个时间戳服务呢?我们需要自己创建一个区块链吗?其实没有必要ღ★◈✿, Bitcoin就是一个很好的时间戳服务ღ★◈✿,我们可以把哈希值写到Bitcoin的区块链中去ღ★◈✿。这是一种存在证明( Proof of Existence)ღ★◈✿。 Factom也提供类似的服务ღ★◈✿,它收集所有的哈希ღ★◈✿,每隔10分钟生成一个哈希值ღ★◈✿,写到Bitcoin的区块链中ღ★◈✿。

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

  作者简介ღ★◈✿:曹严明龙8游戏官方进入ღ★◈✿。架构师ღ★◈✿,现就职于SAP公司咨询服务部ღ★◈✿,专注于保险业核心系统ღ★◈✿、电子商务ღ★◈✿、企业移动应用等解 决方案ღ★◈✿。曾就职于微软和HCL公司ღ★◈✿,参与过SQL Server, SharePoint, Visual Studio等产品的研发ღ★◈✿。long8龙8游戏ღ★◈✿,龙8龙国际long8龙8游戏ღ★◈✿,理财专员ღ★◈✿,龙8国际ღ★◈✿。long8.唯一(中国)官方网站龙8游戏国际登录ღ★◈✿,

关于龙8游戏 企业简介 领导团队 全球合夥人 企业文化 公司战略 全球办公室 龙8游戏国际登录 新闻动态 30年轨迹 媒体聚焦 活动展览 公司业务 健康板块 快乐板块 富足板块 智造板块 可持续发展 基金会 战疫成果 社会责任 相关举措 投资者关系 财务信息 股票信息 人才发展 龙8国际-long8-唯一官方网站登录