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