在電子支付的時代,付款碼、收款碼可以說是我們平時最常見的二維碼之一。事實上,二維碼的使用範圍並不僅限於電子支付,毫不誇張地說,一個小小的二維碼「無所不能」,它能夠存儲你所接觸到的一切網路信息。
正因為其強大的存儲能力和方便快捷性,二維碼在我們的日常生活中得到了廣泛應用。
據統計,目前全世界一天就要消耗掉100多億個二維碼,這個數字無疑是十分巨大的。可你有沒有想過,在如此快速的消耗下,二維碼會不會有被人類用完的那天呢?到了那個時候,我們又該用什麼來替代二維碼呢?
先說結論:作為消耗品的二維碼,遲早會有被用完的那天,但我們卻沒必要因此而擔心,至於具體原因,且聽我給你一一道來。
條形碼向二維碼的「進化」
雖然生活中處處可以見到二維碼,但卻很少有人知道到底什麼是二維碼,這是因為二維碼屬於「可以,但沒必要」的一類物品:我們就算不知道它是什麼,運用了什麼原理,但這也並不妨礙我們對它的使用。
但既然你讀到了這裡,所以了解一下什麼是二維碼也無妨,畢竟知識誰嫌多呢,但更為重要的是,只有知道了二維碼的原理,才能真正理解為什麼我們不必為使用完它而擔憂。
首先明確一點,二維碼並不是誰無意間的發明創造,相反,它是被賦予厚望的「替代物」。沒錯,在誕生之初,二維碼僅僅是為了替代條形碼,它現在能如此「火爆」受到各行各業的歡迎,完全出乎發明者的預料。「條形碼」向「二維碼」進化的背後,是一場浩浩蕩蕩的世界商業進步史。
諾曼・約瑟夫・伍德蘭德——商品條形碼之父
早在上世紀50年代,美國人發明人諾曼・約瑟夫・伍德蘭德就研究出了條形碼,並與其同伴一同成功申請了發明專利,但由於技術限制,直到70年代,條形碼才被正式用於商品包裝。那個時候誰也沒想到,一個小小的條形碼,卻重新定義了商品流通速度,從根本意義上顛覆了世界商業史。
由於條形碼可以存儲商品價格等信息,因此收銀員不必像往常一樣一一辨認商品,只要用手中的掃碼槍對準商品條形碼一掃,就能實現快速結賬,這極大的加快了收銀員的結賬速度,從而方便了人們的日常購物。售賣環節的加速,使得商品流通的各環節速度也因此加快,進而提高了商品盈利效率,商人們因此賺得盆滿缽滿。
但隨著現代社會的不斷發展,受制於條形碼存儲容量較小(只有30 個字元左右),單一條形碼已經無法滿足龐大的商品信息存儲需求,人們迫切需要新的存儲碼,二維碼應運而生。
二維碼最初由日本的騰弘原團隊於1994年研發成功,由於該團隊自願放棄專利與世界分享這一技術,再加上其本身的優越性,二維碼一經問世就受到了各行各業的青睞,它完美解決了條形碼容量不足的問題,把商品信息存儲正式帶入了「二維碼」世界。
二維碼的存儲原理
我們現在看到的二維碼,主要是黑白兩色,由不同方塊排列組合而成。可別小看這簡單的黑白方塊,它們可大有意義,其中白色的方塊代表0,黑色方塊代表1,二維碼中的「二維」,就是指由這些0和1組成的二進位。
提到二進位,多數人會有點陌生,我們只要知道它是一種演算法就可以了,比如我們平常使用的計算機,它採用的就是二進位演算法。二進位演算法不僅計算簡單高效,而且不容易出錯,可靠性極高,因而成為了計算機演算法的首選,而二維碼想要在狹小的空間里存儲複雜且龐大的信息,二進位也就成了不二之選。
每一個二維碼,其0和1的排列組合方式都是獨一無二的,人們只需要通過手機(計算機)識別二維碼,再與對應信息核對,就可以得到想要的信息。
二維碼會用盡嗎?
先說結論:二維碼遲早都會用盡,因為在固定的空間內,0和1的排列組合是有窮盡的。
但是,重點來了,現階段的我們絲毫不必擔心會用盡二維碼,因為二維碼的數量無比龐大,即使是日均百億次的消耗量,在二維碼驚人的總數面前,也是微不足道的。
想要知道二維碼的數量,我們可以簡單計算一下,用數據講話:
每一個二維碼都有三個固定的角,這是用來方便定位的,通過0和1的不同排列組合,就可以生成不同的二維碼。
以我們平常見的37*37的二維碼來舉例,其大小有7*7個像素點,除去三角定位點,共擁有37x37-49x3=1222個方格子,又因為每個方格僅有0或1兩種情況,因此其可以有2^1222種排列組合情況。也就是說,一個37*37的二維碼矩陣,可以產生2^1222個二維碼。
到目前為止,按照國際標準,二維碼共擁有40個正式版本,即從V1-V40。不同的版本對應著不同的矩陣,不同的矩陣也就對應著不同的二維碼數量。從21*21的矩陣到177*177的矩陣,理論上只要像素點繼續縮小,這個數字還可以繼續擴大,每一個版本的跨越意味著幾何倍數的數量增長,這就使得二維碼的數量無限接近於無窮大。
單論數字,大多數人可能不太敏感,我們換一種通俗的理解方式,簡單來說,二維碼的數量可以媲美宇宙中的原子總數。是的,你沒看錯,不是星系總數,也不是星球總數,而是肉眼不可見的原子總數,這還僅是以單一矩陣的二維碼數量而言。宇宙浩瀚無垠,科學探而不盡,由此可見二維碼的數量是多麼龐大,人類日均百億次的使用需求在它面前,又是多麼的渺小。
二維碼用盡了怎麼辦?
許多文章都只探討到二維碼數量無窮大就戛然而止,的確,二維碼如此龐大的數量要到用盡的那一天,的確遠之又遠,但這並不足以給二維碼下「用不盡」的結論。
要知道,科學家之所以要未雨綢繆,開發無盡能源等技術,就是因為人類社會的發展充滿了不確定性。就單論信息爆炸而言,我們人類的信息需求每天都在以幾何倍數的速度在增長,這還只是技術爆炸未來臨之前的常態,再加上誰也說不準下一次技術爆炸是在哪一天,因此我們必須早做打算,屆時二維碼如果不夠用就成了必須解決的問題。
- 技術進步,繼續增加二維碼數量
要知道,二維碼在設計之初並不是只有黑白兩色,而是彩色的,後來為了方便計算,才改成了黑白兩色。
既然黑白色的二維碼就能有如此龐大的數量,那麼把二維碼弄成彩色,改成三維碼、四維碼也未嘗不可,現在就有這樣的嘗試。雖然彩色二維碼在設計之初,迫於當時的計算能力有限而被迫放棄彩色,但隨著計算機計算能力的提高,彩色二維碼也逐漸成為了現實。
目前最大的二維碼版本是177*177的矩陣,但這遠遠不是二維碼矩陣的極限,只是目前科技水平的極限,未來隨著人類科技的不斷發展,在大小不變的情況下,單位面積內會有更多的方格,如果再加上不同顏色,二維碼的數量就可以真正做到無窮無盡了。
- 重複使用二維碼
因為二維碼數量的極其龐大,所以人們一直都在使用新的二維碼,但並沒有規定同一個二維碼不能重複使用,只要在排列組合方式相同的情況下,改變單一像素點存儲的單位信息,「舊」二維碼就可以搖身一變成為「新」二維碼,從而存儲不同的信息。
怎麼就「以舊換新」了呢?很多人可能不理解,其實這就是一個協議問題。目前我們使用的都是統一的二維碼協議,同一個二進位版本,這是為了方便確保信息統一,而實現跨區域流動,假如在某一地方使用不同的二維碼協議,那麼這裡的二維碼雖然不能在全世界範圍內流通,但可以在該地流通,也算從另一方面解決了二維碼不夠用的問題。
肯定有人要說,這個辦法不具備普適性,的確,為了數量問題而拋棄二維碼本身的流通性,的確有些得不償失,但這並不妨礙有的地方有的人的特殊需求,比如有些地方的貨幣雖然不能在世界上流通,但並不影響當地人民的日常所用。
再退一步來講,有沒有兩全其美,既能保持二維碼的流通性,又能實現二維碼的重複使用呢?我們可以參考停車卡,同一張卡在不同的時間內,可以錄入不同的身份信息以供人們使用,只要確保同一時間內信息不重複就可以。
同樣,二維碼也可以採用類似的方式,在單位時間內的同一二維碼內,只要確保上一時間段的信息不再有效,就可以錄入下一時間段的新信息。當然這其中存在很多技術問題,我們只是提供了一種猜想,以供大家了解。
- 開發新的存儲方式
上述兩種方法只能說是「治標不治本」,其實我們完全可以轉變新思路,不再在二維碼上下功夫。
說到底,二維碼只是在目前人類科技水平下,現有存儲技術的結晶,未來隨著人類科技的進步,也許到不了二維碼被用盡的那一天,人類就可以開發出新的存儲方式,二維碼也會像眾多時代技術產品一樣,僅僅成為我們追憶的過去而不再被使用。
電影《上載新生》男主數據上傳
科幻電影《上載新生》中就探討了一種新的可能,未來人們死後可以選擇把意識上傳至雲端,從而實現意識形態而非生理形態的永生。我們在這一構想的基礎上,再大膽想像,如果未來人類都不在依靠現實世界,而是實現了數據永生,現實中的地球只有電腦而再無其他,屆時何所謂真、何所謂假?人類意識都可以存儲,小小的二維碼能存儲的東西豈不也不在話下?
電影終歸是電影,但它在另一方面,的確可以為現實世界的科技進步提供新的方向。
回歸現實,埃隆·馬斯克的腦機介面實驗進展順利,據最新消息,下一步將繼續開展人腦實驗。我們要明確一點,人類至今研發的所有電腦、存儲設備,都遠遠趕不上人腦的存儲水平,試想未來人類真的可以生產出堪比人腦的設備,真正做到這種設備的大眾化,屆時我們每個人都擁有了「第二大腦」,屆時簡單的二維碼存儲在它面前就像一個玩笑。
結語
科學以理而存在,卻總不按照常理出牌。因此,哪怕我們知道二維碼很難被用盡,也要為用盡的那天而早做打算。要知道,杞人憂天和未雨綢繆的不同,其實也就在結果之間。