程序员该掌握区块链技术

"区块链技术"

周日,深圳的天气特别适合写文字。所以动笔给程序员们写写区块链,这是一篇动员的积极的文章,区块链会改变你们的思维模式,去实现以往的不可能。 也请你行动起来,花两个小时了解区块链的原理,你会被其巧妙的运作方式所折服,拜倒在中本聪的石榴裙下。

区块链是什么? >区块链(Blockchain)是由节点参与的分布式数据库系统,它的特点是不可更改,不可伪造,也可以将其理解为账簿系统(ledger)。它是比特币的一个重要概念,完整比特币区块链的副本,记录了其代币(token)的每一笔交易。通过这些信息,我们可以找到每一个地址,在历史上任何一点所拥有的价值。

区块链是由一串使用密码学方法产生的数据块组成的,每一个区块都包含了上一个区块的哈希值(hash),从创始区块(genesis block)开始连接到当前区块,形成块链。每一个区块都确保按照时间顺序在上一个区块之后产生,否则前一个区块的哈希值是未知的。这些特征使得比特币的双花非常困难。区块链是比特币的核心创新。

下图是比特币下半年行情,2017年是爆发年,国内9月底一个比特币暴跌到1.6万,而国庆后不久突破4万。

谈论区块链,最好的代表是比特币。这里谈及比特币不是鼓励你去炒币,而是方便说明区块链技术的重要性。

为何程序员应该去了解区块链呢?我将从三个角度聊聊我的看法。

区块链的价值

首先是真正意义的“去中心化”

中心化对程序员不陌生,怕单机故障所以要搞备机,又分热备,冷备等。为了突破性能瓶颈,又搞分布式,一直在追求去中心化。

哪怕现在互联网让世界平坦,但现在又趋向于中心化。Facebook左右美国总统大选,百度搜索让你进莆田医院,微信不让你逛淘宝。实际我们还是离不开中心化。而区块链技术不一样,会像移动互联一样,改变生活方式。一个任何个体都无法干涉运行的系统,没有国界,24小时运转,永不宕机。

区块链带来的是真正意义上的去中心化,世界更加平坦。

其次是可信任存在性证明

当前各种产品设计,系统架构都在考虑不可靠、不可信任问题。分布式要解决一致性问题、证券交易记录归档20年,以方便合规检查、域名需要由域名服务商维护拥有者、产品证书需要时间戳服务器支持等等。

在互联网中没有谁能相信谁,特别是大范围的信任。而区块链技术却巧妙的解决此问题,比特币利用POW工作量证明算法让所有矿工花大量精力竞争解决一道数学难题,解题后其他矿工却可秒级验证其正确性。这就在不可信任的环境中,轻易的验证某一答案,从而确认对方的正确性,不信任环境提供可信任。

另一方面在解题的过程中,派生出另一个价值:存在性证明。区块链技术中是使用密码学知识解决数学难题,一个核心要素是时间戳。解出难题,公布答案的同时,便同时证明了某一事物在某一时间发生的真实性。

而区块链中环环相扣,任何人都难以在去中心化的环境中,篡改数据。除非你能得到全网51%以上同盟军。区块产生时间越长、就越难以篡改,新区块会将强旧区块的不可篡改强度,最终趋向不可篡改。

谁都无法篡改,给可信任提供重要依据,同时给存在性提供可靠证明。利用区块链技术思考产品设计,将是一种新的思维逻辑。

改变金融格局

区块链技术诞生于比特币,比特币是当下区块链最成功的项目。一种无人可敢于的数字货币,不会通货膨胀,不受政府控制。中本聪的初衷也是想改变全球金融模式,不受国家或地区影响,实现资产的安全性和隐秘性。所以区块链首当其冲的是金融领域的实践。

为何中国要禁止比特币,却要发布自己的数字货币,还要不遗余力的推动区块链技术研究。比特币就是区块链平台上一杀手级应用,野蛮成长,必引火烧身。 不管是什么币,只要是基于区块链技术的数字货币,必将改变现有金融格局。有人高兴,有人紧张。区块链技术是无中介的,这使得资金流动更加顺畅。无国界货币,宇宙币。

这都是有利于老百姓的,你的资产不会因国家政治动荡而一夜变白纸,也不会随意贬值,更加无法阻碍你投资全球的折腾。也能极大的缩短资金转移速度,当下跨国转账周期有一个星期,且手续费极高。这在区块链数字货币中,不会存在。

对金融格局的变化时,各国态度的不一致,各国政府必然是需控制本国法定货币地位,这毕竟是政府的命根子。但持乐观态度还积极参与比特币,一般都是小国。因为小国都没有自己的货币,自己的命挂在别人的腰间。所以他们是非常欢迎比特币。所以大概的情况是,大国要消灭比特币,而小国要支持顶起比特币。最终金融格局是,大国没法消灭比特币,还越打击越顽强。只能是监管安抚,可以在本国做小弟,但不能取代我做大哥。

程序员是天然的跟随者

实际也是如此,比特币一直在极客间盛行,美味无比。金融从业者都很难看懂为何比特币那么火,还越打击越坚强。我认为最重要的一点是,每次高调打击,实际是在提高比特币的知名度。大量新的人员开始去了解比特币,而从中不乏好奇心强的程序员。

程序员比普通人的优势是能深入代码层看懂原理,无需金融知识背书,花一天时间便可了解其原理。会发现区块链技术真他妈是天才创意,以最简单粗暴的方式解决了程序员曾遇到过的各种难题。

当程序员能看到区块链技术的价值,能清楚比特币的前景时,必然会成为区块链的跟随者,宣传者。区块链技术应用也会愈加普及,程序员艺术性创造生活。为何华尔街的大佬批判比特币,而交易员却大肆参与比特币交易。肤浅的看是交易员有计算机背景,能看得更加深入,能清楚区块链背后所能代表的实际意义。

引发新的技术革命

如前所说,去中心化、可信任、可证明存在性。必然引起新一轮技术革命。现在我们花大量时间在解决网络的不安全、不稳定、不健壮等系列问题,而当下却横空跳出了区块链技术,一种糅合了现有成熟技术的组合,却天马行空般的解决了网络难题。

有了这份药方,什么病都能治。活跃在产品一线、创业一线的朋友,在看懂区块链后,将给你带来巨大的认知性挑战,以前不可能的现在可成为可能。区块链技术给你现在所困惑的问题提供了一扇新的窗户,新的思维模式。

从此你不需要证明你妈是你妈,世界趋向真实的平坦。而对程序员来说,关注业务本身的实现才是你该花时间做的事情,借助区块链去实现曾经的不可能!

错过了移动互联网,云计算。而当下热火的大数据、人工智能已在进行时。唯独区块链技术还在调研尝试中,程序员不入红海谁入红海。

那么程序员如何开始了解区块链技术,这里我把我的学习路线图给你知乎-比特币是什么,从此区块链大军中多了一个你!

关于作者

虞双齐,一名全栈开发工程师,#热爱编程、#工具控、#爱读书、#宅男

活跃在 知乎,开源项目在Github,博文分享在 个人博客上。