參考以下文章來源:
如果你用過多鄰國(guó)學(xué)語言,可能從沒有想過這個(gè)軟件,還能和(萬惡的)驗(yàn)證碼有關(guān)系。
它的創(chuàng)始人,路易斯·馮·安,還有一個(gè)響亮的名號(hào):那就是驗(yàn)證碼之父。
01 反向圖靈測(cè)試
驗(yàn)證碼這東西,看起來不起眼,但背后有一個(gè)很終極的問題:在互聯(lián)網(wǎng)上,如何證明你是一個(gè)人。
在這個(gè)問題上,最有發(fā)言權(quán)的必然是計(jì)算機(jī)科學(xué)之父阿蘭·圖靈。他老人家在 1950 年提出的「圖靈測(cè)試」,即使到了大語言模型時(shí)代,依然被 AI 研究者們視為評(píng)估機(jī)器智能的重要方式之一??傊?,把AI做得越來越像人類,一直是計(jì)算機(jī)科學(xué)家們的目標(biāo)。
但反過來,如何把人類和計(jì)算機(jī)區(qū)分開來,一直是個(gè)少有人研究的問題。尤其是上個(gè)世紀(jì),人工智障水準(zhǔn)還差太遠(yuǎn),這基本上屬于一個(gè)不成問題的問題。
直到2000年前后,互聯(lián)網(wǎng)浪潮來襲,人們工作生活中很多部分都被搬上互聯(lián)網(wǎng),于是灰黑產(chǎn)應(yīng)運(yùn)而生。
早年最常見的灰黑產(chǎn)就是腳本機(jī)器人,攻擊者們用它來海量注冊(cè)賬號(hào),郵箱賬號(hào)可以用來發(fā)垃圾郵件,PayPal賬號(hào)可以用來盜刷信用卡,以及擾亂各種網(wǎng)絡(luò)民調(diào)、幫助黃牛攻破在線購(gòu)票平臺(tái)。
腳本機(jī)器人雖然壓根算不上人工智能,但怎么攔住它,并且不影響活人用戶,成了個(gè)問題。
2001年,PayPal的聯(lián)合創(chuàng)始人兼CTO麥克斯·拉夫琴(Max Levchin)發(fā)現(xiàn),機(jī)器無法識(shí)別經(jīng)過一定扭曲的字符文本。于是,他們?cè)谧?cè)流程里,加入了識(shí)別扭曲字符的要求,成功降低了詐騙賬號(hào)的數(shù)量。
這是驗(yàn)證碼在商業(yè)社會(huì)的第一次亮相,首戰(zhàn)告捷。
它的底層邏輯,就是人類與計(jì)算機(jī)在認(rèn)知能力上存在差距。尤其是在復(fù)雜扭曲的圖形環(huán)境里識(shí)別字母和物體,在嘈雜的場(chǎng)景識(shí)別語音,在視頻動(dòng)畫里識(shí)別特定圖案,以及對(duì)自然語言和邏輯的認(rèn)知,很長(zhǎng)時(shí)間里機(jī)器都做不到。
但我們現(xiàn)在通用的驗(yàn)證碼方案并不來自PayPal。而是來自卡內(nèi)基·梅隆大學(xué)的一個(gè)研究團(tuán)隊(duì),路易斯·馮·安正好是這個(gè)團(tuán)隊(duì)的一員。
1995年,馮老師去了美國(guó)杜克大學(xué)學(xué)習(xí)數(shù)學(xué),然后又跑去了計(jì)算機(jī)強(qiáng)??▋?nèi)基·梅隆大學(xué),拜入圖靈獎(jiǎng)得主,有密碼學(xué)之父稱號(hào)的曼紐爾·布盧姆門下。
馮老師和驗(yàn)證碼的緣分,源自系里舉行的一次活動(dòng)。2003年,雅虎的首席科學(xué)家來學(xué)校做了一場(chǎng)名為《我們無法解決的十大問題》的講座,他提到,很多不法分子會(huì)用機(jī)器人自動(dòng)注冊(cè)郵箱賬戶,來發(fā)送垃圾郵件。
馮老師聽了講座,覺得這事兒用密碼學(xué)可以解決啊,于是他回去和導(dǎo)師說了這事兒。幾個(gè)人在一起,鼓搗出一篇論文。
在論文中,他們提出了一個(gè)全新的概念:分辨人類與電腦的全自動(dòng)公共圖靈測(cè)試(Completely Automated Public Turing test to tell Computers and Humans Apart),就是讓計(jì)算機(jī)自主生成一些測(cè)試方案,比如在隨機(jī)生成的文本上添加一些失真的效果,或者將一些動(dòng)物的圖片進(jìn)行扭曲。
這些測(cè)試?yán)?,人類可以輕松識(shí)別出正確的文本和動(dòng)物的種類,但計(jì)算機(jī)卻搞不定。這樣一來,這個(gè)測(cè)試就可以作為一種自動(dòng)化識(shí)別人類和電腦的方案。某種程度來說,它是一種「反向圖靈測(cè)試」。
這個(gè)概念縮寫為「CAPTCHA」,也就是我們現(xiàn)在說的驗(yàn)證碼。
馮老師也不藏著掖著,把這套方案免費(fèi)送給了雅虎,雅虎一看,如獲至寶,我先用為敬。
隨著雅虎率先在自家郵箱產(chǎn)品里應(yīng)用了CAPTCHA,很快就解決了垃圾郵箱的問題。此后越來越多的開發(fā)者們開始使用這套方案去識(shí)別機(jī)器人和真實(shí)用戶。
02 人類可以給機(jī)器打工嗎?
驗(yàn)證碼的出現(xiàn),的確解決了很多網(wǎng)絡(luò)安全問題,但代價(jià)也不是沒有。
一個(gè)核心問題,如果驗(yàn)證碼,用戶覺得很容易,那機(jī)器人大概率也會(huì)覺得它不難。但如果把驗(yàn)證碼做得非常扭曲,安全性是上來了,那用戶可能就要罵人了。
流暢的用戶體驗(yàn)和靠譜的安全性是很難共存的。
這個(gè)事情讓路易斯·馮·安非常困擾,馮老師很早就對(duì)媒體表示過:每天全球幾億人在使用驗(yàn)證碼,每天輸入驗(yàn)證碼的時(shí)間就要花掉50萬小時(shí),而一個(gè)人的一生差不多也只有70萬的小時(shí)??梢哉f,每天驗(yàn)證碼就要耗掉一條生命。
為此,他開始思考如何讓驗(yàn)證碼產(chǎn)生更多社會(huì)價(jià)值,抵消它的浪費(fèi)。
2005年,馮老師完成了他的博士論文,他的論文內(nèi)容是一項(xiàng)名叫「ESP Game」的游戲。
這個(gè)游戲類似于你畫我猜,或者綜藝?yán)锏牟略~游戲。登錄后,系統(tǒng)會(huì)隨機(jī)匹配兩位玩家,給雙方相同的圖片,要求雙方輸入一些單詞去描述這張圖片。
在不能交流的情況下,兩位玩家只有對(duì)同一張圖片輸入了同一個(gè)單詞描述才算過關(guān)。兩位玩家要在兩分半的時(shí)間里完成15張圖片的匹配。
而在馮老師看來,互聯(lián)網(wǎng)公司完全可以利用這樣的游戲,對(duì)數(shù)據(jù)庫(kù)里的圖片打標(biāo)簽,實(shí)現(xiàn)更準(zhǔn)確的圖片搜索。
這個(gè)思路,被他總結(jié)為「人類計(jì)算(Human Computation)」概念。也就是把傳統(tǒng)的,人類用計(jì)算機(jī)解決問題的流程倒過來,由計(jì)算機(jī)出題,讓一群人來解決那些計(jì)算機(jī)搞不定的問題,并且收集、整合他們的解決方案。
這篇論文不僅幫他拿下了學(xué)位,「ESP Game」還被谷歌收購(gòu),成為馮老師第一個(gè)變現(xiàn)的項(xiàng)目。
回到驗(yàn)證碼,馮老師覺得,同樣是「人類計(jì)算」,既然可以用在圖片領(lǐng)域,也可以用在文字領(lǐng)域。
00年代初期,很多公益組織開始嘗試將書籍進(jìn)行數(shù)字化,把舊書掃描成電子版。但褪色的墨水的褶皺的紙張,都會(huì)讓文字扭曲模糊,導(dǎo)致電腦無法識(shí)別文字。
于是,馮老師開發(fā)了一個(gè)名叫reCAPTCHA的全新驗(yàn)證碼系統(tǒng)。
和傳統(tǒng)的單一驗(yàn)證碼不同, reCAPTCHA一次會(huì)要求用戶輸入兩個(gè)單詞,一個(gè)是常規(guī)的驗(yàn)證碼,另一個(gè)則是在書籍?dāng)?shù)字化的過程中難以識(shí)別的單詞。
只要用戶輸入正確的常規(guī)碼,那么他在第二個(gè)單詞里輸入的答案就會(huì)被計(jì)算機(jī)讀取,和其他用戶對(duì)同一個(gè)單詞的識(shí)別進(jìn)行比對(duì),如果同一率高,就會(huì)被當(dāng)成正確的文字,拿去進(jìn)行書籍的數(shù)據(jù)化。既讓用戶做了驗(yàn)證,又幫助文獻(xiàn)數(shù)字化,為知識(shí)的傳播做了貢獻(xiàn),一舉兩得。
這個(gè)系統(tǒng)發(fā)明出來,立刻吸引了《紐約時(shí)報(bào)》的注意。當(dāng)時(shí)《紐約時(shí)報(bào)》正在做一個(gè)舊報(bào)紙數(shù)字化的項(xiàng)目,想把過去130年的內(nèi)容全部都數(shù)字化。借助reCAPTCHA的力量,一千多萬篇內(nèi)容很快完成了識(shí)別。
隨后,各種各樣的組織找上門,都希望用reCAPTCHA來做書籍?dāng)?shù)字化。
這套由人類和計(jì)算機(jī)共同形成的「大規(guī)模分布式計(jì)算網(wǎng)絡(luò)」,在推出的第一年,就正確破譯和轉(zhuǎn)錄了超過4.4億個(gè)單詞,相當(dāng)于17600本書。
馮老師徹底賺麻了,每隔幾個(gè)禮拜就有支票寄到學(xué)校請(qǐng)他簽收。
這么一來,學(xué)校不爽了,你在外面接私活也就算了,還這么高調(diào)賺大錢,你讓其他教職員工怎么想?于是取消了他的職位。眼看著鐵飯碗沒了,馮老師心一橫:老子不奉陪了。
當(dāng)了兩年人民教師,2007年,路易斯·馮·安下海創(chuàng)業(yè)建立了自己的公司。
誰知這次創(chuàng)業(yè)只堅(jiān)持了兩年,馮老師,哦不,馮老板就再次收到谷歌的收購(gòu)要約,含淚賣掉公司成為千萬富翁,并且加入谷歌成為大廠打工人。
話說回來路易斯·馮·安提出的「人類計(jì)算」,聽起來非常性感,但實(shí)際上也是一個(gè)古老的概念,我們通常稱其為「眾包」,也就是企業(yè)把過去由員工完成的工作,外包給不特定的大眾網(wǎng)絡(luò)。
每個(gè)使用驗(yàn)證碼的用戶,其實(shí)都在不知不覺中,為驗(yàn)證碼背后的工作充當(dāng)了免費(fèi)勞動(dòng)力。
但路易斯·馮·安覺得,眾包模式還有其他的可能性。
雖然他本人屬于含著金湯匙出身的一批人,但馮老師屬于比較懂事的那種,加上母國(guó)危地馬拉又是個(gè)窮國(guó)家,馮老師很早就注意到,像他這樣從小接受英語教育,長(zhǎng)大還能跑到美國(guó)上大學(xué)的屬于萬中無一,大部分都困在「低收入-低教育水平-低收入」的循環(huán)里。
他覺得,也許眾包模式能解決這個(gè)問題。
于是2011年,當(dāng)了幾年大廠高級(jí)打工仔的馮老師宣布重回學(xué)校,并且和他的學(xué)生一起帶來了一個(gè)全新的產(chǎn)品:
免費(fèi)語言學(xué)習(xí)平臺(tái)多鄰國(guó)(Duolingo)。
成立初期的多鄰國(guó)和現(xiàn)在那個(gè)背單詞打卡完全不是一個(gè)物種,它主要的業(yè)務(wù)是眾包翻譯平臺(tái)。
也就是它會(huì)將需要翻譯的頁面內(nèi)容拆解出來,給學(xué)習(xí)者去翻譯,然后將反饋回來的翻譯內(nèi)容利用后臺(tái)算法比對(duì)篩選,找出最佳翻譯組合,最后將翻譯內(nèi)容以遠(yuǎn)低于人工翻譯的價(jià)格提供給網(wǎng)站客戶。
某種程度上,和reCAPTCHA又異曲同工之妙。
通過眾包翻譯的模式,學(xué)習(xí)者可以免費(fèi)在這里學(xué)習(xí)語言,客戶付費(fèi)獲取廉價(jià)的翻譯服務(wù),多鄰國(guó)作為中介平臺(tái)實(shí)現(xiàn)營(yíng)收。
但和驗(yàn)證碼不一樣,馮老師的「眾包教育」之路沒有走通。這套模式并不足以讓多鄰國(guó)實(shí)現(xiàn)盈利。盡管一口氣融到D輪,但投資人是要看到回報(bào)的。
于是在2015年,多鄰國(guó)放棄翻譯服務(wù),轉(zhuǎn)而開發(fā)用戶價(jià)值,陸續(xù)上線了App內(nèi)購(gòu),廣告,會(huì)員服務(wù)等等等等,也就有了如今我們看到,那個(gè)擅長(zhǎng)PUA用戶,賤兮兮的綠色貓頭鷹App。
到2021年,多鄰國(guó)在納斯達(dá)克上市,馮老師再次步入人生巔峰。
如今的多鄰國(guó),是一個(gè)靠著6%的付費(fèi)用戶,貢獻(xiàn)70%營(yíng)收的公司,看似已經(jīng)變成一個(gè)用戶付費(fèi)主導(dǎo)的平臺(tái)了,但事實(shí)上我們都知道,在一個(gè)游戲化的設(shè)計(jì)里,免費(fèi)玩家本身就是付費(fèi)玩家用戶體驗(yàn)的一部分。
路易斯·馮·安自己也承認(rèn),免費(fèi)用戶的存在,能幫助公司省下大量的營(yíng)銷、增長(zhǎng)和促活費(fèi)用。
只要大家還有攀比心,還有收集癖和上進(jìn)的動(dòng)力,多鄰國(guó)就能用精妙的運(yùn)營(yíng)手段,從用戶身上獲取價(jià)值。
畢竟他最擅長(zhǎng)的事情,就是讓用戶免費(fèi)為他打工。
03 驗(yàn)證碼的無盡戰(zhàn)爭(zhēng)
盡管路易斯·馮·安早早地就離開了reCAPTCHA,但此后,這家公司依然是這個(gè)市場(chǎng)上最重要的玩家。
誰叫它背后,站著谷歌這么個(gè)巨頭呢?
而且在他走后,驗(yàn)證碼的江湖更加精彩。
畢竟驗(yàn)證碼就在那兒,總會(huì)有人想方設(shè)法去破解它。
技術(shù)含量最低的,也是最容易想到的方式,就是人工暴力破解,只要你能找到價(jià)格足夠低的人力,雇人填寫驗(yàn)證碼就是一項(xiàng)劃得來的生意。
你要做的只是做一個(gè)API接口,把驗(yàn)證碼轉(zhuǎn)發(fā)給打碼平臺(tái),平臺(tái)就會(huì)把任務(wù)分配給身處世界各地的打碼工,打碼工識(shí)別后把答案?jìng)骰厝?,就能?shí)現(xiàn)自動(dòng)化的操作了。
但人工破解并不完美,2013年,斯坦福大學(xué)一項(xiàng)研究演示,主流網(wǎng)站上的驗(yàn)證碼解決準(zhǔn)確率大約只有85%,當(dāng)研究人員給三個(gè)不同的人提供相同的驗(yàn)證碼時(shí),三人同時(shí)輸入正確的比例,只有71%。況且,人工破解的速度也并不夠快。
要打敗這套「反向圖靈測(cè)試」,還得靠足夠強(qiáng)大的AI。
2014年,谷歌內(nèi)部專家提出了一套基于強(qiáng)化學(xué)習(xí)的驗(yàn)證碼解決算法,可以用99.8%的準(zhǔn)確率解決最困難的扭曲文本變體。
這個(gè)準(zhǔn)確率有多恐怖,研究人員找來活人,讓他們識(shí)別同樣難度的驗(yàn)證碼,人類的正確率也只有33% 。
人類一敗涂地啊。
到這個(gè)階段,傳統(tǒng)驗(yàn)證碼對(duì)AI來說已經(jīng)如土雞瓦狗,冢中枯骨了。
谷歌覺得,是時(shí)候給破解者們上上強(qiáng)度了。
2012年,reCAPTCHA開始探索圖片驗(yàn)證碼,它要求用戶從谷歌街景的圖片中,識(shí)別人行橫道,路燈和其他物品。延續(xù)了reCAPTCHA的作風(fēng),用戶的標(biāo)記會(huì)被拿去發(fā)揮余熱,為谷歌地圖和搜索訓(xùn)練模型。
到2014年,谷歌正式推出了全新的驗(yàn)證碼解決方案No-CAPTCHA。也就是我們熟悉的「我不是機(jī)器人」按鈕。
正如這個(gè)方案的名稱,No-CAPTCHA不再使用傳統(tǒng)的驗(yàn)證碼來考察人類的認(rèn)知能力,而是對(duì)用戶的交互方式展開分析,觀察鼠標(biāo)運(yùn)動(dòng)軌跡,分析用戶之前訪問過的頁面,從而判斷訪問者是不是活人。
到2017年,谷歌更是推出了全新的reCAPTCHA v3。
這個(gè)版本對(duì)用戶來說,幾乎完全取消了驗(yàn)證碼環(huán)節(jié),直接通過后臺(tái)分析用戶戶行為進(jìn)行判斷,只有在無法判斷時(shí),才會(huì)彈出傳統(tǒng)的圖形驗(yàn)證碼來輔助進(jìn)一步驗(yàn)證。
除了谷歌和reCAPTCHA之外,也有其他的開發(fā)者在試圖平衡驗(yàn)證碼的安全性和易用性。
有人希望用硬件進(jìn)行安全驗(yàn)證,登錄注冊(cè)的時(shí)候插一個(gè)U盤到電腦里。
有人希望用面部識(shí)別驗(yàn)證,讓攝像頭證明你生而為人。
至于常見的「拼圖」式驗(yàn)證碼、旋轉(zhuǎn)式驗(yàn)證碼,則是另一個(gè)流派。這類游戲驗(yàn)證碼并不會(huì)給出明確的任務(wù)指示,AI很難搞清楚要怎么做,但人類只要看到這些游戲,本能的就能理解它的邏輯。
甚至還有更走火入魔的,利用一些高語境問題來做驗(yàn)證。
比如拿「宮廷玉液酒」做驗(yàn)證碼,可能只有中國(guó)用戶才能填出「一百八一杯」。這就已經(jīng)違背了驗(yàn)證碼作為區(qū)分人和機(jī)器的初心了。
當(dāng)然,我們也必須承認(rèn),如今AI的發(fā)展一夜千里,無論防御手段如何進(jìn)化,只要通過條件是已知的,那任何反向圖靈測(cè)試本質(zhì)上都是可以被破解的。
但如果我們用另一種方式去解讀,驗(yàn)證碼的意義,從來不止于網(wǎng)絡(luò)安全。
至少路易斯·馮·安和reCAPTCHA,從一開始就沒有單純把它當(dāng)成一種安全策略。
相反,無論是「反向圖靈測(cè)試」還是「人類計(jì)算」,reCAPTCHA都認(rèn)為,驗(yàn)證碼與人工智能息息相關(guān),他們從一開始就承認(rèn),驗(yàn)證碼是一種非常優(yōu)雅的人工智能訓(xùn)練工具,因此任何給定的測(cè)試都只能是暫時(shí)的。
更重要的是,驗(yàn)證碼身上還有著諸多限制,為了讓驗(yàn)證碼能夠適配不同教育水平,不同國(guó)族文化,不同生活經(jīng)驗(yàn)的用戶,它必須被設(shè)計(jì)為獨(dú)立于一定語境之外的,無需事先訓(xùn)練或者長(zhǎng)期培養(yǎng)才能通過的。比如看圖識(shí)字母,比如選擇圖片。
從這個(gè)角度看,驗(yàn)證碼就像一場(chǎng)注定失敗的戰(zhàn)役,它想要分辨人類與機(jī)器,但它所考察的,卻是那些最不能體現(xiàn)「生而為人」特質(zhì)的。
這就是驗(yàn)證碼的悖論所在,它試圖用一項(xiàng)任務(wù)衡量人性含量,但人性恰好是無法通過高效完成任務(wù)去驗(yàn)證的,不確定,不精確,才是人的特征。
谷歌放棄識(shí)別型驗(yàn)證碼,轉(zhuǎn)而從用戶行為去做驗(yàn)證,也必然是看到了這條悖論。
正如谷歌前員工,負(fù)責(zé)打擊點(diǎn)擊欺詐的舒曼所言:真正的人類無法很好地控制自己的運(yùn)動(dòng)功能,無法在多次交互中以相同的方式多次移動(dòng)鼠標(biāo)。
他說:「人類行為具有難以欺騙的‘熵’。」
但更終極的問題在于,當(dāng)人工智能更進(jìn)一步,學(xué)會(huì)模仿人類行為上的不精確,不穩(wěn)定之后,又有什么能證明人類與機(jī)器的差異?
而這一切,都無數(shù)次的回應(yīng)了《紐約客》那個(gè)著名的互聯(lián)網(wǎng)格言:
「在互聯(lián)網(wǎng)上,沒人知道你是一條狗」。