[ 肖佑良 ]——(2014-3-2) / 已閱5680次
理解許霆案,先理解ATM機。都知道自動柜員機是銀行的一部分,可是很少有人知道,ATM機是不能夠獨立工作的,必須與背后的銀行服務器聯(lián)接配合,才能夠辦理銀行業(yè)務。一家銀行通常只在省會城市設立一臺服務器作為核心,全省各地的ATM機和窗口電腦都是終端,所有終端都與服務器聯(lián)接在一起,組成全省該銀行的電腦網(wǎng)絡系統(tǒng)。
國外銀行柜員少,ATM機多,甚至有無人銀行,都是ATM機,國內(nèi)銀行柜員多,ATM機少。原因是國內(nèi)外人工成本差別大。中國銀行在1989年引進了我國第一臺ATM機,比英國1967出現(xiàn)世界上第一臺ATM機晚了22年。
ATM機與自動售貨機都是機器,但它們之間有本質(zhì)的區(qū)別。前者是智能機器,能夠基于判斷而運行;后者是非智能機器,只能基于響應而運行。智能機器就是能夠有限地模擬人的意識、思維(判斷)、行為的機器,能夠依據(jù)判斷的結(jié)果進行工作。換言之,智能機器能夠代表人的意志。例如,ATM機插入銀行卡后,屏幕提示請輸入密碼,當密碼正確時,屏幕進入操作界面;當密碼錯誤時,則提示密碼錯,請重新輸入。
存款、取款等銀行業(yè)務辦理的程序和規(guī)則,自古以來就沒有變化過。過去由人工做的工作,現(xiàn)在由銀行電腦系統(tǒng)來做了。把人工辦理存款、取款等業(yè)務的程序和規(guī)則,設計成為銀行電腦的操作系統(tǒng),銀行電腦運行此種操作系統(tǒng),就如同一個銀行管理者正在工作一樣,因此,我們可以將銀行電腦系統(tǒng)稱為電子代理人。
當觸動ATM機的數(shù)字鍵時,屏幕立即顯示被觸動的數(shù)字,這在很大程度上可以說,ATM機具有數(shù)字的意識能力。有些ATM機還可以進行語音交流,當ATM機讓你說出取款的金額時,你說出500,屏幕立即顯示取款金額為500元,同樣具有數(shù)字的意識能力。當輸入密碼后按確認鍵,ATM機能判斷密碼是否正確,具有判斷能力。當銀行服務器同意客戶取款后,服務器將向ATM機返回同意付款的數(shù)據(jù)信息,ATM機收到后自動啟動付款機構(gòu),執(zhí)行付款行為,具有行為能力?梢,將銀行電腦系統(tǒng)視為電子代理人是具有客觀事實基礎的。
以取款為例,識別客戶——接受取款請求——找到客戶存款賬戶——將取款請求與存款余額比較——余額足則同意取款——從余額中扣除取款數(shù)——支付取款給客戶。如果余額不足,則不同意取款。其中需要進行二個判斷:一是否本銀行客戶;二余額是否足夠支付。這些工作人工辦理效率較低,電腦能夠識別數(shù)字,并且管理數(shù)字的效率很高,交給電子代理人去做,則效率高得多。銀行通常都是使用賬號和密碼兩組數(shù)字來代替客戶并進行管理的,賬號就是銀行卡號,密碼就是代表客戶本人,當輸入密碼正確時,電子代理人認可取款者是賬戶主人,允許進入操作界面,否則,不予認可,要求重新輸入。
許霆取款時,使用自己的卡,密碼正確,進入了操作界面,意味著銀行電子代理人已經(jīng)識別出取款人是許霆,從而使許霆可以選擇取款按鈕。從密碼相符時起,電子代理人與許霆就是身份公開的交易對象,雙方?jīng)]有秘密可言。取款和存款都是交易,銀行都是這么定義的,原因是存款、取款要求即時給付,存款要將錢交給銀行,銀行立即增加客戶的債權(quán);取款要將錢交給客戶,銀行立即減少客戶的債權(quán),與一手交錢,一手交貨完全類似,定義為交易是恰當?shù)摹?br>
在ATM機鍵盤上按動數(shù)字鍵1000時,電腦能夠識別為一個數(shù)字字符“1”和三個數(shù)字字符“0”組成的字符串“1000”或者“1,000”,這種字符串“1000”或者“1,000”,在銀行術(shù)語上稱之為金額字符串。金額字符串與整數(shù)1000的性質(zhì),在電腦中是完全不同的,需要將字符串轉(zhuǎn)換成為整數(shù)才能夠進行使用。將字符串轉(zhuǎn)換為整數(shù),需要使用函數(shù)命令來執(zhí)行。整數(shù)的表示可帶千分符,也可不帶千分符,例如:整數(shù)1000或者1,000,字符串亦是一樣的,例如:字符串“1,000”或者“1000”。將這兩種格式的字符串轉(zhuǎn)換成整數(shù)1000時,需要使用不同的函數(shù)命令,才能轉(zhuǎn)換成整數(shù)1000。許霆取款使用的ATM機升級前是采用的是“1000”格式,升級后采用了“1,000”格式。格式的變化,要求程序員對操作系統(tǒng)進行調(diào)整,把原來轉(zhuǎn)換字符串“1000”的命令,都要修改成為轉(zhuǎn)換字符串“1,000”的命令。在升級操作時程序員疏忽大意,本來應該修改前后二處的,只修改了一處,留有一處沒有修改。沒有修改的仍然是原來格式的字符串轉(zhuǎn)換命令,該命令遇到非數(shù)字字符具有自動截斷的特性。當該命令轉(zhuǎn)換新格式的字符串“1,000”或者“2,000”時,在字符串中遇到非數(shù)字的千分符而自動截斷后面的字符,結(jié)果字符串被轉(zhuǎn)換成整數(shù)1或2,而不是計劃中的整數(shù)1000或者2000。
ATM機上取款,必須要求是100的整數(shù)倍,所以當許霆輸入取款金額字符串后,ATM機必須對輸入的取款金額是否符合要求進行判斷。操作系統(tǒng)將要第一次把輸入的金額字符串“1,000”轉(zhuǎn)換成整數(shù)1000,再除以100計算得出商值,然后比較商值是否是整數(shù),如果不是,ATM機要求重新輸入,如果是,ATM機將把商值暫時保存,作為后面ATM機付款時支付百元鈔票的張數(shù)。這里操作系統(tǒng)是進行第一次轉(zhuǎn)換,這次轉(zhuǎn)換沒有出現(xiàn)錯誤,金額字符串“1,000”被轉(zhuǎn)換成整數(shù)1000。
當輸入的取款數(shù)符合取款要求,ATM機操作系統(tǒng)接下來要把許霆的賬戶資料和取款請求數(shù)一并發(fā)送給銀行服務器,操作系統(tǒng)需要再次將許霆輸入的金額字符串“1,000”轉(zhuǎn)換成整數(shù)1000。這里程序員出現(xiàn)疏忽,沒有把原格式對應的命令調(diào)整為新格式對應的命令,而原格式的轉(zhuǎn)換命令遇到非數(shù)字字符“,”就產(chǎn)生截斷,結(jié)果是“1,000”轉(zhuǎn)換成了整數(shù)1,“2,000”轉(zhuǎn)換成了整數(shù)2,許霆本來是請求取款1000元或者2000元,發(fā)送給服務器變成了請求取款1元或者2元。銀行服務器收到ATM機發(fā)送來的數(shù)據(jù)后,立即從數(shù)據(jù)庫中調(diào)出許霆賬戶資料,其中就有存款的余額數(shù)。因許霆存款余額為176.97元,當?shù)谝淮握埱笕】?000元后,傳送數(shù)據(jù)時出現(xiàn)差錯變成了取款1元,取款1元的請求小于存款余額,滿足銀行設定的取款條件,服務器進行判斷后同意取款1元,從賬戶余額中扣除1元,將新的余額175.97元存入數(shù)據(jù)庫中,同時銀行服務器將取款辦理的結(jié)果返回給ATM機,即同意許霆取款。返回給ATM機的數(shù)據(jù)中,核心是啟動ATM機付款開關(guān)的數(shù)字信息。用數(shù)字信息打開ATM機付款開關(guān)啟動電動機進行工作,就是機電一體化技術(shù)的應用。唯有銀行服務器才能夠發(fā)出數(shù)字信息啟動ATM機的付款開關(guān),ATM機的付款開關(guān)實際掌握在銀行服務器手中。ATM機付款模塊被啟動后開始點鈔,ATM機具體要付給許霆的金額是由先前計算出來的商值決定的,許霆第一次請求取款的金額是1000元,除以100商值為10,意味著ATM機要支付10張百元面額的人民幣,所以銀行服務器同意取款1元之后,啟動了ATM機的付款模塊,實際付款時交給許霆的錢為1000元,而不是已經(jīng)扣賬的1元。
第一次取款1000元后,只被扣除了1元,許霆賬戶余額仍然有175.97元,取1000元扣1元或者取2000元扣2元的過程仍然可以重復下去,于是許霆總共重復了171次,其中取1000元的為167次,取2000元的為4次,直到許霆賬戶上余額數(shù)為1.97元,不能再扣為止,銀行不允許余額數(shù)低于1元。在案證據(jù)顯示,許霆取款171次之后,還有連續(xù)多次取款行為,再也沒有成功,不是ATM機沒錢了,而是賬戶余額不足了。
從上述操作系統(tǒng)發(fā)生的事實來看,當銀行服務器(相當于大腦神經(jīng)中樞)從許霆賬戶中扣除了1元或者2元后,向ATM機(執(zhí)行機構(gòu))發(fā)出了同意付款的指令。這個指令只負責啟動ATM機的付款開關(guān),而ATM機具體付出多少數(shù)額,由ATM機先前計算得出的商值決定。換言之,ATM機操作系統(tǒng)把付款分解為兩個步驟,一是決定數(shù)額,二是決定是否付款。一般情形下,商值決定的數(shù)額,與銀行服務器扣除的數(shù)額是一致的,所以銀行服務器發(fā)出的同意付款指令,啟動ATM機的付款模塊通常不會出現(xiàn)錯誤。許霆案因程序員疏忽,ATM機操作系統(tǒng)存在瑕疵,結(jié)果發(fā)生了前面意想不到的情況。這個情況就相當于:許霆請求取款1000元或者2000元,銀行電子代理人收到了請求,可是將該請求傳送到銀行服務器時,出現(xiàn)傳遞錯誤,結(jié)果銀行服務器(大腦神經(jīng)中樞)產(chǎn)生了重大誤解,誤認為許霆是取款1元或者2元。鑒于許霆賬戶余額有196.97元,銀行服務器同意許霆的取款請求共171次,每次同意取款扣除了金額1元或者2元后,都向ATM機發(fā)出同意取款的指令,這個指令當然是指同意支付取款1元或者2元,然而ATM機每次都向許霆支付了1000元或2000元,又發(fā)生了給付錯誤。許霆所使用的ATM機是廣州商業(yè)銀行從廣電運通公司租用的,銀行的錢被許霆取走了,廣電運通公司立即就把廣州市商業(yè)銀行損失的錢賠償了,原因是ATM機發(fā)生給付錯誤該公司負全部責任,廣州市商業(yè)銀行和廣電運通公司早就知道是程序瑕疵導致重大誤解和給付錯誤造成許霆案的,根本不存在所謂的盜竊行為。
在交易過程中出現(xiàn)了兩個錯誤,一是因重大誤解而雙方達成交易,二是ATM機發(fā)生給付錯誤,兩個錯誤疊加在一起的結(jié)果就是許霆案的真相。盜竊論的觀點,犯了主觀歸罪的錯誤,沒有任何事實基礎。在ATM機上按鍵取款的行為被操作系統(tǒng)固定為向銀行提出取款的請求,即使許霆沒有這么多的存款,無論按鍵多少次,提出多少次取款的請求,都不具有違法性,并且是允許的、合法的。許霆利用銀行的錯誤,反復進行惡意交易,違反誠信公德,應當受到批評和譴責。但在現(xiàn)有法律框架下,只能成立可撤銷的民事行為,連民事違法性都沒有,更不用說具有刑事違法性了。
許霆案告訴人們,電子代理人既能夠模擬銀行管理者工作時的正常狀況,又能夠模擬銀行管理者工作時的異常狀況。人有自動糾錯的能力,出現(xiàn)錯誤時,往往不會重復;電子代理人沒有自動糾錯能力,出現(xiàn)錯誤時,往往會重復,這應是電子代理人的特色。
作者單位:湖南省城步苗族自治縣人民檢察院 肖佑良