国庆放假倒计时,无心恋战,分享点儿东西,也算做点儿贡献。
起因是,我老婆的公司最近技术上在搞“区块链溯源”,ppt里言必称无法篡改,客观公正,可确保真实安全。她表示听不懂,于是问我
“到底什么是区块链?”。
“自己查啊”。
“查了,看不懂。”……
按说区块链从比特币火起来之后,现在已经快10年了,火差不多了,风口过了,最近应该是人工智能,元宇宙了。但是目前眼下很多公司还是言必称区块链,不碰瓷个区块链就仿佛就已经与世隔绝,完全OUT了,全然不顾是否有实际的场景需求,无脑区块链!
直白说,“区块链”是我从业以来,最务虚,最忽悠的技术概念,没有之一(因为我比较年轻 :-0)。对于技术的概念吹嘘,一般的套路是,把一个已经在行业中应用了一段时间,有点儿用,靠点儿谱的东西拿出来,夸大一点儿吹。
比如最近的Chatgpt一出,程序员都要下岗啦之类;元宇宙一来,以后大家就是数字生命了。这类,可以算作畅想未来的,并且展望方向比较明确,不能算完全的忽悠。而“区块链”真的是既没啥应用,展望的未来方向也非常不清晰。目前落地场景最恰当仍然是虚拟货币。但未来却可以赋能一切。-_-|| 。
时隔这么久,搜索“区块链”网上的文章数以万计,但如果真想搞懂,到底什么是区块链,理解区块链能做什么,却依然十分困难。也是,都不甚了解的东西才显得高大上,方便拿出来忽悠。
一、概念简介
关于区块链一些常见的名词“去中心化,分布式记账,共识,拜占庭将军问题,POW, POS, 公有链 ,私有链, 。。。。”。这里按照我媳妇儿能听懂的层次做一个科普,非技术向,主要谈区块链的能力,与落地问题,不求精准但求好理解。
举一个生活中的场景,便于后面讨论理解:
为了培养娃的理财意识,我的娃在家里有一个小黑板,他的零花钱会以在这个黑板上贴上几朵花花表示他有多少钱。例如黑板上有五朵花花,就表示他有50元可以自由支配的零用钱,花掉了就拿掉对应的花花。
上面的场景中,娃的零花钱这个数据就是存储在这个小黑板上的。 这个小黑板就是所谓的“中心”。只要给这个黑板增加,或者拿掉花花,就可以改变娃的零用钱余额。这种中心化的数据存储,有一些特点:
1. 如果这个黑板遭遇什么不测,被盗或者人为毁灭。那么娃到底有多少零花钱这事儿就没人记得了。娃可能没有什么安全感。
2.娃有多少零花钱全看这个黑板上的花花数量(大家都不过脑子去记,去回忆的话),如果娃聪明,自己偷偷贴上两个,如果妈妈聪明,自己偷偷拿去两个,都可以改变娃余额。妈妈和娃都没有安全感。
去中心化,就是去掉这个黑板。 但是仍然要能知道娃到底有多少花花,咋办呢?
因为成员之间相互不信任,于是各自都开始自己记账了。并且约定,如果有人给娃钱或者娃花了钱,要通知到大家知道。这样,相当于每个人都有了一个黑板,只能自己修改。定时对一下账,如果发现有出入,那就肯定是哪里有问题。这种去中心化的存储方式,也有一些特点:
1. 不是团灭的话,这个账本,不会灭失, 少一两个无所谓。
2. 记录的花花数,不容易被个人修改。如果出现矛盾,需要大家协商一致,重新对当前的花花数量达成共识。
因为是分布式记账, 那么每个人的账本可能因为各种原因,产生不一致。可能有的人离开一段时间,少了几笔, 有的人比较糊涂会记错,有的人不是很公正,会多记,少记等等。 面对这种情况,人们会想出一种办法。来解决。比如回忆梳理下,花费和支出明细,确保合乎逻辑。或者简单的相信最权威的人,或者使用少数服从多数的原则。最终达成共识,重新确定目前花花的数量。达成一致的方法就是人类世界的共识机制。可以看出:
1. 共识机制是为了保证每个独立的账本,能够抵抗错误,欺骗的。是一种不就修正措施,如果一切OK,实际上不重要。
2. 共识的基础其实仍旧是信任。比如少数服从多数,信任多数人不会乱来。 或者信任权威, 最有威望的人不会乱来。 真实的信息已经灭失,不可追溯了,只能依赖人性,没有绝对的真相。
如果参与记账的只有我们自己家的人,那可以理解为私有链。如果有其他的非家庭成员,参与,可以理解为公有链。区别公私的并不是规模,而是与参与者的角色立场有关,不同的角色立场,会引入不同的问题:
1. 私有链大家有基本的相互信任,有一致的目的和责任,比如让娃健康成长。所以私有链的共识机制可以简略一点。而公有链,参与者各不相同,可能有跟娃不和的小朋友,等等。所以公有链对共识机制的要求要更强壮,能够抵抗一定的故意作恶攻击。
2. 私有链的去中心化程度不如公有链,通常在一个组织的控制下。比如太爷爷一拍桌子,都他娘的听我的,就这么定了……。公有链去中心化则比较充分。
3. 公有链的参与者不会义务劳动。私有链,一家人大家是为了自己娃的成长。 公有链,你娃跟我有啥关系, 我帮你记账你要给我点儿好处。我又不是闲的没事儿。所以公有链要有对应的奖励机制。相当于请别人当见证人,要给别人公证费。
二、到底什么是区块链?
有了上面概念的理解,只需要稍作延伸,就很容易理解了。
就是用计算机及互联网技术,线上化上面举例的去中心化分布式记账系统,账本被存储在了网络上的计算机中。交易信息会通知,更新全网的参与计算机。全网的计算机能够对记录的账目达成一个一致结果。
具体界面可以理解为,每个人安装一个程序,登录上去每当给娃花钱,或者发钱。就通过这个程序操作记录下,信息回被同步保存到全网,这套系统最后总能对娃目前有多少钱这件事给出一个确定答案,网络上的计算机成百上千个W计,不用担心信息会灭。基于人之初,性本善的理解, 多数人一般是好人,共识机制保证偶尔有几个坏人, 也没有能力去篡改你记录的账目。
是一个技术概念,是指如何存储交易明细信息的逻辑结构。 几笔交易会被存在一起形成一个块, 然后块和块直接会按照时间连接起来形成链。
区块链特点:
1. 数据安全,不会灭失。
2.记录无法篡改,依赖于多数人是好人。
3.存储,交易成本高。类似于物理世界要告诉很多人, 每个人还要记住账目信息。需要的时候,他们也要给你提供账目信息。所以,帮你存储见证信息的人要有利益收益。
三、区块链应用
好了,我娃的零用钱管理系统已经全面线上化,也应用了区块链技术了。那么是不是就像很多公司吹嘘的,“我公司对娃零用钱的管理已经上了XXX链,实现了全程可追溯,无法篡改,可以确保真实可靠?”
显然不是,凡是要从根本需求出发,如果他奶奶,直接给他买了他想要的奥特曼卡片,却并没有减花花,请问阁下如何应对? 他爷爷直接给他兜里塞100RMB,阁下如何应对,虽然账上有钱,他娘以危害健康为名,就不给他买冰激凌,如何应对?
所以,其实根本问题并没有解决,这体现了区块链难以落地的根本原因,线上系统无法直接约束物理世界!。
就实践而言,
1. 保证数据不灭失。本就是分布式解决的问题之一, 各类分布式数据库, 磁盘阵列,异地灾备。
2.保证数据不篡改。篡改并不是痛点,可以多录,可以少录,可以瞎录。。不需要改。o(* ̄︶ ̄*)o。
这两个问题,第一个已经被解决的很好。 第二个无法解决,线上无法约束线下,信息的输入源自线下。
一些具体行业应用。
信息是不是人输入的? 是不是想输入啥输入啥? 想打什么二维码打什么二维码?
上了区块链,是东西不会丢,还是摔不坏? 没区块链,丢了东西,物流公司也没不认账啊,就是不包赔而已。-_-||
我对银行,对国家充满信任,从不担心他篡改我数据, 就担心房价下跌,股票下跌,通胀通缩。韭菜要割,不能拔。
怎么上的这? 游戏关服了,还能接着玩儿是咋地?
看病能便宜,还是用药能便宜? 我担心医院改我账单么?
反正都是你说了算。何必那么麻烦。
……
总而言之,分布式记账,并不是什么革命性技术,古已有之,不然合同为啥是一式两份。只是以为虚拟币的大热,引起了人们的重视。
比特币的诞生,于人类而言确实有伟大意义,区块链是其依赖的技术方案。但就像曲轴之于内燃机,虽然内燃机发明很伟大,但不意味曲轴可以赋能一切机械与行业。
为什么虚拟货币可以成功?因为虚拟货币是一个自洽系统,类似于数学。虚拟货币的产生,交易流转,都在这个系统内部,交易的规则明确清晰,都是加加减减。当虚拟货币和现实世界有了价值关联时,他才有应用价值,否则只是一堆游戏币。
写到这里,只恨当年没有入点儿比特币。。。,中秋快乐-_-|| 。
日常开发中,我们经常使用锁或者其他同步器来控制并发,那么它们的基础框架是什么呢?如何实现的同步功能呢?本文将详细用白话讲解构建锁和同步器的基础框架--AQS,并根据源码分析其原理。
今天讲讲 i18n,无论是 ToB 还是 ToC 的业务,常常存在多语言的需求,由于用户有时来自不同国家,因此需要对页面展示内容,包括响应结果做多语言的适配。