扫了这么多年,二维码还没用完?
滴~~扫一扫这个声音,我们一天可能会触发个好几次。
这一下,对我们而言,可能只是付掉了一顿饭钱;而在工厂的流水线上,这一下意味着追踪一个零件的诞生;在各个物流仓库里,这一下是指挥着一个包裹的去向;
可以说等等扫一扫已经融入了我们生活,工作,社会运作的各个方面。
那么大家有没有想过,在扫一扫的瞬间,到底发生了什么?它怎么就能立刻“看懂”每一次扫码背后的信息。究竟唤醒了一个怎样庞大和精密的系统?
今天,咱们就来聊聊“扫一扫”。
要回答这个问题,我们首先要看懂它最核心的载体——二维码。它是我们与数字世界沟通的通道。
它就像一个神奇的“压缩包”,能把网址、文字、图片等海量信息,打包放进一个小小方块里。
那么,这个看似简单的黑白方块,究竟是如何做到这一切的呢?让我们回到过去,看看它最初的模样。
01
在二维码问世之前,他的前身——“条形码”是零售业最主流的编码方式,条形码的诞生,源于一个当时非常普遍的痛点:超市收银效率太低了。在条形码发明之前,收银员必须手动敲入每一个商品的价格,错误百出,效率低下。
于是,两位天才工程师,诺曼·约瑟夫·伍德兰和伯纳德·西尔弗,开始思考如何解决这个问题。他们的灵感,就来源于我们都熟悉的摩尔斯电码。
他们将摩斯电码拉长、加粗,变成了粗细不一的线条,这就是最初的条形码。
1974 年,第一件使用条形码扫描的商品——箭牌口香糖,在美国俄亥俄州的一家超市被成功扫描,标志着一个新时代的开始。
条形码的发明,确实极大地提高了收银效率。
但它有致命的局限性:它只能单向记录信息,而且信息容量非常小,通常只能存储 13 位数字,用来代表商品编号。这样就无法在条形码里存储更多的内容了。
直到 1994 年,二维码横空出世,才彻底解决了这一痛点。它的发明者,是日本电装公司的一位工程师——原昌宏。
当时,丰田汽车工厂的零部件管理效率太低,他需要一种能承载更多信息的编码方式。
于是,他受到了棋盘启发,将信息从一维的线条扩展到了二维的平面。
二维码最显著的特征,就是它那三个角的“回”字形定位点,这三个定位点就像是给扫描设备提供了一个精确的“坐标系”,无论你从哪个角度扫码,它都能迅速识别,就像给手机装上了 GPS。
为此国际还给二维码制定了一套标准:ISO/IEC 18004,你可以把它理解为二维码的“通用语言”,这个标准的作用在于不管你使用的是什么系统、什么品牌的手机,都能轻松识别出任何一个二维码,它确保了二维码能够成为一个真正开放、通用的工具。
但说到这有人就会要反驳我了,不是已经制定了一套标准了吗,那为什么我不可以用微信扫支付宝的二维码,相反,支付宝也扫不了微信的二维码?
哎,这就涉及到第二个层面了——应用层面。
02
首先,ISO/IEC 18004 标准只负责硬件方面的标准,他的任务是确保任何设备的摄像头,都能识别出这是一个二维码并解码,至于二维码里面的内容他并不能保证能全部解读。
举个我们我们常见的例子:USB 口,假如你插 U 盘、数据线之类的进 USB 口,电脑虽然识别到有设备接入,但要管理插入的设备文件,你可能需要安装一个驱动程序。
二维码也是类似,如果扫出来是一个 http:// 开头的网址,这是一个全球通行的、开放的应用层协议,所有浏览器和主流 APP 都认识它,就会执行“打开网页”这个指令。
但微信支付码解码出来的内容,则是一种私有协议,这串字符相当于一个内部指令或加密令牌,它的语法和语义只在微信自己的生态系统内有定义,而用支付宝来扫的话,物理层它能识别出,但到了应用层就无法执行下一步指令了。
那为什么搞这么麻烦,就是为了应用安全和生态。
总结就一句话:ISO 标准负责“连接”,应用标准负责“内容”,能连接上,不代表一定能读懂内容。
不仅如此,为了确保设备在恶劣情况下能准确读取,二维码还内置了强大的“纠错码”机制。
你可能好奇,为什么二维码缺了一角,甚至被水弄花了,被挡住了一小块,为什么还能扫出来?
如果你有兴趣,有空,你甚至可以自己画一个二维码,也能识别成功。这是我 8 年前画的二维码可以看到,也能识别成功。
这就是纠错码的功劳。它就像是给二维码里的信息上了“双保险”,即使信息区有 30% 被破坏,它也能通过冗余信息进行自我修复。
这种强大的容错能力,让二维码在现实应用中显得非常实用,这也是它能够迅速普及的重要原因。
既然二维码能承载如此庞大的信息,那么,一个简单的问题随之而来:如果统计一下全球每天扫码的次数,究竟会发生多少次?
答案,可能会是一个天文数字,想一想这些场景:在全球数百万个仓库中,工人们正用扫描枪对上亿个包裹进行出库入库;在现代化的工厂流水线上,机器视觉系统正对成千上万的零件进行扫码追踪;再加上我们每个人每天都在进行的扫码登录、扫码点餐、扫码解锁单等等
03
当工业、商业和我们日常生活的每天都在以如此惊人的频率进行着“扫一扫”时,一个担心就出现了:那它会不会有用完的一天呢?
其实完全不用担心。
二维码的设计非常精妙,它的组合原理,是基于二进制编码构建的二维矩阵符号体系,它有 40 个不同的版本,尺寸从最小的 21x21 个模块,到最大的 177x177 个模块。
每一个模块都可以是黑或白,这就像是 0 和 1 的组合。仅是最小尺寸的二维码,其组合数量就已经远远超过了我们人类能够想象的极限。
科学家们曾计算过,至少在可预见的未来,我们根本不用担心它会用完。
既然二维码如此强大,那么,是如何通过它来实现各种功能的呢?这背后,隐藏着一套严谨而精密的过程。
整个过程可以分为三个关键步骤:
第一步:图像捕捉与识别,当你将手机对准一个二维码时,它的摄像头和内置的图像识别算法会立即协同工作,如同在海量像素中进行一次精准的搜寻。
无论光线明暗、角度倾斜,系统都会在眨眼之间,精确识别出那三个标志性的“回”字形定位图案,并捕捉到完整的二维码图形,为后续的数据解析打下了基础。
第二步:数据解码与解析,一旦二维码被锁定,手机应用就会立刻将捕捉到的黑白像素矩阵,解码为计算机能够理解的“语言”——0 和 1 组成的二进制数据流。
而这股数据流中,是一串直接驱动后端服务的指令参数,它告诉了服务器下一步该做什么。
第三步:指令执行与反馈,你的手机应用正是通过这些指令,来告诉后端服务器,你接下来想要做什么。
如果扫的是共享单车,它会解析出“单车编号”,服务器收到后,会执行“开锁指令”;如果是扫商品,它会解析出“商品的 ID”,服务器便会进行“信息查询”,将商品详情返回给你。
而当这股数据流是一组支付参数时,它将触发一个更为复杂和严密的流程,服务器会进行身份验证、资金清算等一系列操作,再将执行结果瞬时返回到你的手机。
这一整套流程执行下来,还不到一秒的时间。
当这个动作只是独立地发生时,它是一个精妙的微观过程。但当它乘以一个天文数字,当十四亿人每天都在进行着数百亿次这样的操作时,它就从一个技术问题,变成了一个宏观的系统性挑战。
首先,就是能源安全的挑战。
每一次扫码,都会有信号传输到数据中心,一次扫码支付传输的数据大小可能不起眼,但如果这个数字乘于 14 亿呢?
根据央行发布的数据,仅处理非银行支付机构,也就是我们常用的微信、支付宝等网络支付平台,2024 年的日均交易量就达到了惊人的 28.27 亿笔,而这,还仅仅是请求过程产生的最核心数据,完全没有计算系统日志、交易备份、风险监控等产生的海量衍生数据。
想想看,这些新增数据,每天都需要储存在国家级的数据中心里,装满数个专用的高密度服务器硬盘,而为了保障服务,数据中心需要 24 小时运行,其服务器运算和设备冷却汇集起来的电力消耗,对整个国家的电网构成巨大压力。
可以说,数字社会的稳定,必须建立在可靠的电力供应之上。
其次是,扫一扫的普及也让海量的个人数据被集中起来,这就带来了第二个、也是更深层次的挑战——数据安全。
我们的消费习惯、常去地点乃至社交圈等信息,一旦被窃取或滥用,风险极高。因此,如何安全、合规地管理和使用这些数据,这也就成为数字时代一个必须解决的核心问题。
看完这一切,我们下一次再做出‘扫一-扫’这个动作时,这个抬手、对准的瞬间,可能会有不一样的感觉。这个简单的动作,让我们在无形之中,与整个世界的庞大系统完成了一次无声的对话。
其实不只是扫码,在这几年,我们看到了更新的交互方式,比如手机的“碰一碰”,看一眼摄像头就能支付的“人脸支付”,甚至是伸出手掌就能完成的“掌纹支付”。
这些方式看起来比扫码更先进、更神奇,但它们的底层逻辑是完全一样的。无论我们的动作如何变化,它们最终都依赖于我们今天看到的,那个由网络、电力和数据中心共同构成的庞大而稳固的系统。
我们总说科技改变生活,或许这就是最好的答案。
真正的改变,或许不是出现了什么让人惊叹的新技术,而是有那么一套复杂的系统,在背后默默地工作,好让每一个普通人的日常生活都能享受到科技带来的便利,生活都能因此变得简单一点,这不就是科技带给我们最好的礼物吗?
本文来自微信公众号“科技狐”,作者:老狐,36氪经授权发布。