摘 要: 針對銀行機構反洗錢大額交易中存在的問題設計了一個檢錯系統(tǒng)。介紹了系統(tǒng)的主要功能和相關設計,詳細分析了系統(tǒng)的數(shù)據(jù)處理技術。本系統(tǒng)已用于對銀行機構的反洗錢檢查中。
關鍵詞: 反洗錢;大額交易;數(shù)據(jù)處理
隨著2006年新反洗錢法規(guī)的出臺,各家金融機構紛紛或自行設計反洗錢監(jiān)測分析報告系統(tǒng)或購買第三方機構的相應軟件,以輔助其履行反洗錢大額交易和可疑交易報告義務。在隨后幾年對多家銀行金融機構的現(xiàn)場檢查中發(fā)現(xiàn)各機構均不同程度地存在大額交易錯報和漏報情況。究其原因發(fā)現(xiàn)各家機構的大額交易均由系統(tǒng)自動采集和報告,少有人工分析或干預,且各家機構都自認為其反洗錢監(jiān)測分析報告系統(tǒng)能夠精確地采集大額交易并及時上報,不會主動采取措施檢查大額交易錯報和漏報問題,因此大額交易報告中存在的問題也難以被發(fā)現(xiàn)。而銀行業(yè)的大額交易報告數(shù)量占所有大額交易報告量的99%以上,為提高大額交易的整體報告質量,需要加強對銀行大額交易問題的監(jiān)督和檢查。為提高相關檢查的質量和效率,本設計開發(fā)了銀行反洗錢大額交易檢錯系統(tǒng),能夠快速地發(fā)現(xiàn)各銀行機構大額交易存在的錯報和漏報問題。
1 系統(tǒng)功能
銀行反洗錢大額交易檢錯系統(tǒng)能一次性發(fā)現(xiàn)大額交易監(jiān)測報告系統(tǒng)存在的所有關鍵問題。系統(tǒng)使用人員可根據(jù)反饋結果剖析產生問題的根源,從而幫助銀行改正其大額交易監(jiān)測報告系統(tǒng)中存在的問題,減少錯報漏報的可能。
銀行反洗錢大額交易檢錯系統(tǒng)分為兩個部分:大額交易錯報檢測部分和大額交易漏報檢測部分。
1.1 大額交易錯報檢測
大額交易錯報檢測部分對已經(jīng)上報的大額交易報告按條款進行分析,根據(jù)《金融機構大額交易和可疑交易報告管理辦法》中對大額交易條款的規(guī)定,查找不符合條款規(guī)定而已上報的大額交易,標記出錯報大額交易記錄和錯誤原因。
1.2 大額交易漏報檢測
大額交易漏報檢測部分對銀行一段時間內的部分交易數(shù)據(jù)進行篩選,分析生成符合各規(guī)定條款的大額交易,再與銀行同時間已報送的大額交易進行比對,反饋未能報送(即漏報)的大額交易記錄。
2 系統(tǒng)設計
2.1 總體架構
銀行反洗錢大額交易檢錯系統(tǒng)存在以下特點:
(1)處理的數(shù)據(jù)量大。根據(jù)銀行大小的不同,采集的銀行一段時間內的交易數(shù)據(jù)一般為幾百萬至上千萬條不等,大多數(shù)時候需要系統(tǒng)處理的數(shù)據(jù)量巨大。
(2)需要一定的響應時速。
(3)保障數(shù)據(jù)的安全。無論是銀行已報的大額交易報告,還是銀行的業(yè)務交易數(shù)據(jù),都極其敏感且決不能向外泄露,因此要從數(shù)據(jù)、系統(tǒng)以及使用人員上都要保證數(shù)據(jù)的安全。
?。?)數(shù)據(jù)基本不需要維護。除必要的用戶與日志數(shù)據(jù)需要管理外,被處理的銀行數(shù)據(jù)基本是一次性被使用的。
?。?)系統(tǒng)使用范圍小。該系統(tǒng)主要用于對銀行的反洗錢檢查工作中,使用者僅限于內部工作人員。
系統(tǒng)存在的以上特點適合采用傳統(tǒng)的C/S兩層結構。系統(tǒng)的兩層結構說明如下:
?。?)應用層:為系統(tǒng)應用程序,包含用戶功能命令、數(shù)據(jù)入庫前處理、數(shù)據(jù)庫訪問服務等。系統(tǒng)應用界面設計采用Visual C# 2005完成。
?。?)數(shù)據(jù)層:為數(shù)據(jù)庫服務程序,負責數(shù)據(jù)存取和數(shù)據(jù)處理。系統(tǒng)數(shù)據(jù)庫使用SQL Server 2005,數(shù)據(jù)處理采用存儲過程完成。
2.2功能模塊設計
銀行反洗錢大額交易檢錯系統(tǒng)的主要功能菜單如表1所示。
為保證對數(shù)據(jù)的安全與適當使用,特別增加了日志管理,將系統(tǒng)使用人員的每次操作都進行了記錄,以便追溯與監(jiān)督。
2.3 數(shù)據(jù)庫設計
鑒于銀行自動集中采集核心交易數(shù)據(jù)可能會導致大額錯報和漏報問題,大額交易檢錯系統(tǒng)采集了銀行易出錯業(yè)務的原始交易數(shù)據(jù),并直接在原始交易數(shù)據(jù)上篩選符合規(guī)定條款的大額交易。涉及的原始業(yè)務交易包括人民幣匯款交易、人民幣現(xiàn)金交易、跨境匯款、外幣兌換等。
銀行反洗錢大額交易檢錯系統(tǒng)涉及的主要數(shù)據(jù)表以及核心屬性如表2所示。
為便于數(shù)據(jù)處理,數(shù)據(jù)庫表中涉及金額的屬性的數(shù)據(jù)類型均設置為數(shù)字,涉及日期的屬性的數(shù)據(jù)類型均設置為8位字符,其他屬性的數(shù)據(jù)類型均設置為可變字符。
3 數(shù)據(jù)處理
3.1 存儲過程
銀行反洗錢大額交易檢錯系統(tǒng)涉及處理的數(shù)據(jù)量大,并需要對數(shù)據(jù)進行大量的查詢和更新,且查詢和更新都有較為復雜的判斷條件,為提高SQL語句的執(zhí)行速度和保證數(shù)據(jù)的安全,該系統(tǒng)的數(shù)據(jù)處理基本采用編寫存儲過程的方式來執(zhí)行完成。
下面簡單例舉系統(tǒng)中查詢錯報大額交易的存儲過程和C#語言實現(xiàn)的相關執(zhí)行代碼。
?。?)存儲過程
CREATE PROCEDURE proc_ERSelect
AS
select*from tb_Report
where ErrorTag<>′0′
//ErrorTag為0標示大額交易正確報送
order by RDate,CIDNumber
?。?)相關執(zhí)行代碼
……
sqlConn=new System.Data.SqlClient.SqlConnection();
sqlCommand=sqlConn.CreateCommand();
connectString conStr=new connectString();
sqlConn.ConnectionString=conStr.getConnstr();
//獲取數(shù)據(jù)庫連接字符串
QueryValue=new DataSet();//查詢結果數(shù)據(jù)集
string sqlQuery="Exec proc_ERSelect";
//執(zhí)行存儲過程語句
sqlConn.Open();
sqlCommand.CommandText=sqlQuery;
sqlAdapter=new System.Data.SqlClient.SqlDataAdapter();
sqlAdapter.SelectCommand=sqlCommand;
QueryValue.Clear();
sqlAdapter.Fill(QueryValue);
sqlConn.Close();
……
3.2 數(shù)據(jù)預處理
銀行反洗錢大額交易檢錯系統(tǒng)需要對銀行提交過來的原始數(shù)據(jù)進行預處理,主要包括兩個關鍵部分:涉及外幣交易的交易金額轉換為美元金額和匯總客戶當天單向(資金進或者資金出)交易金額。前部分在應用程序中處理并作為數(shù)據(jù)記錄的一個屬性值導入到數(shù)據(jù)庫中,后部分通過編寫存儲過程來執(zhí)行完成。
3.3 數(shù)據(jù)分類處理
人民銀行規(guī)定的大額交易特征明確給出了相關的屬性和屬性值,且屬性之間相互依賴,如交易方式(現(xiàn)金或轉賬)的不同、賬戶屬性(單位或個人)的不同、幣種(人民幣或外幣)的不同都會導致大額交易的交易金額閾值不一樣[2],因此可根據(jù)這些屬性以及屬性間的關系來進行分類。而大額交易特征涉及的屬性少,并且屬性值已量化,所以其數(shù)據(jù)分類規(guī)則非常適合采用決策樹進行描述。
下面以人民幣匯款交易篩選大額交易為例,制作一棵如圖1所示的決策樹,決策樹的每條分支是一個分類規(guī)則,規(guī)則之間并列,是邏輯或的關系。
在系統(tǒng)數(shù)據(jù)分類規(guī)則中對交易對手采用的是按其名稱長度來判斷,所以分類的準確率不能達到100%,極少數(shù)結果需要人工判斷。
本系統(tǒng)所有的分類規(guī)則均采用編寫存儲過程來實現(xiàn)。
本系統(tǒng)已應用于對多家銀行機構的反洗錢檢查中,系統(tǒng)發(fā)現(xiàn)大額交易的錯報和漏報速度快且準確率高,大大提高了反洗錢檢查的速度和質量,從而也能很快地幫助銀行機構改正其大額交易監(jiān)測報告系統(tǒng)存在的問題。
參考文獻
[1] 銀行業(yè)大額交易和可疑交易報告數(shù)據(jù)報送接口規(guī)范[Z].2008(修訂版).
[2] 金融機構大額交易和可疑交易報告管理辦法[Z].中國人民銀行令(2006)第2號.