營運加密貨幣 ATM 機隊:現金、鈔匣與合規
加密貨幣 ATM 是雙向運作的提款機:顧客投入紙鈔換取加密貨幣,或傳送加密貨幣並領取紙鈔。營運一整個機隊,本質上是披著軟體介面的物流事業。螢幕負責報價與確認,但難處都在實體層面——現金存放在鈔匣裡、機器位於你不在的地方,而且每台機櫃上發生的兌換都必須精確到分毫地對帳。把加密貨幣 ATM 當成一個 App 的人,看到的只是容易的那一半。
所以這是一篇營運面的拆解:機櫃內的兩個子系統、玻璃前的兌換、沒人會放進展示的鈔匣、機隊衍生出的預測問題,以及對看不到的機器進行控管與對帳的紀律。
一個機櫃裡的兩台機器
加密貨幣 ATM 其實是兩個子系統拼在一起:一是現金處理機——驗鈔進鈔模組、驗證器、出鈔或循環模組,以及存放紙鈔的鈔匣;二是加密貨幣終端——錢包、網路連線,以及負責報價與確認的螢幕。買幣是現金換加密貨幣:顧客投入紙鈔,驗證器清點並疊放,機器再將加密貨幣傳送到顧客的錢包。賣幣是加密貨幣換現金:顧客把加密貨幣傳送到機器的地址,轉帳確認後,出鈔模組從鈔匣點出紙鈔。所有難題都出在這兩半交會之處,因為紙鈔一旦疊入即屬實體且不可逆,加密貨幣一旦確認也不可逆——機器在另一端確定之前,不能提交任何一方。
玻璃窗前的兌換
每台機器上都在進行一次兌換,且遵循與櫃檯終端相同的鎖定報價原則:螢幕顯示匯率,並以倒數計時在整個交易階段內鎖定;客戶只能依此報價交易,否則該階段會重新報價。順序就是安全模型。買幣時,機器必須等鈔票經驗證並收進鈔箱後才釋出加密貨幣,光是插入並不算,因為還卡在暫存口的鈔票還不是錢。賣幣時,在進帳轉帳取得足夠確認數之前,機器一張鈔票都不會吐出,因為吐出的鈔票無法追回。不可逆的動作永遠放在最後,且只在另一方已確定之後才執行。順序一旦出錯,打造出來的就是一台為沒收下的鈔票送出加密貨幣、或為從未入帳的轉帳吐出現金的機器。
鈔匣:無人展示的實體那一半
現金存放在鈔匣裡,也就是可抽換的鈔票匣,通常每種面額一個,插入機器中。循環機(recycler)可以把收進來的鈔票再付出去;較簡單的出鈔機則只從營運商裝填的鈔匣出鈔。每個鈔匣有兩個數字:軟體認為的張數,以及實際的張數。營運商的全部工作,一句話就能概括:讓這兩個數字保持一致。每收一張鈔票,帳面張數加一;每出一張,帳面張數減一;每次收款作業則以實點張數重設。若收款時帳面張數與實點張數不符,這個差額就是機隊營運中最重要的數字:它可能是點錯、卡鈔,或更糟的情況,而找出原因靠的是清點,不是祈禱。
現金水位,以及為何機隊是個預測問題
一台機器只是件雜務;一支機隊則是預測問題。出鈔機空了會把客戶擋在門外,收鈔機的鈔箱滿了就不再收現金;這兩者都是停機,而且都不會亮起路人看得到的故障燈,因為機器只是無法完成客戶想做的交易。因此主控台會逐台、逐鈔匣追蹤現金水位,並轉換成路線:哪些機櫃需要補鈔、哪些需要清空,趕在任何一方見底之前處理。經營良好的機隊,本質上就是一份運鈔排程:誰開車到哪個機櫃、載多少錢、在哪一天。軟體的用途就是依即時水位排出這份排程,取代憑感覺猜測與週五下午的臨時慌亂。
遠端鎖定,以及從主控台操作
機器所在的地方,營運商並不在場,可能是大廳、店面或車站大廳,所以控制必須能遠端進行。營運商可從主控台即時鎖定單一機器或整支機隊,被鎖定的機器不會再完成任何新交易。遇到卡鈔、疑似故障、現金差異,或需要在有人趕往現場前先凍結機器時,就用鎖定來應對。鑰匙與鈔匣維持原狀,機器只是停止交易,直到有人手動解除。這裡的原則是:危險操作要從主控台執行、附上原因並寫入日誌,而不是由人在現場點機器自己的螢幕、不留紀錄,事後沒人能還原做了什麼、為何而做。
加密貨幣 ATM 機隊不是附帶一點硬體的軟體產品,而是一項前端有螢幕的現金物流業務,螢幕上的每個數字都必須對得上你能握在手裡的一張鈔票。
對帳一台看不見的機器
對帳是證明機隊誠實的每日憑據。機器上的每個交易階段都會留下紀錄:鈔票進、加密貨幣出,或加密貨幣進、鈔票出,並附上鎖定匯率、錢包地址與確認數。把一台機器自上次收款以來的所有交易加總,就得到它應該持有的現金;到場清點鈔匣,就得到它實際持有的現金;兩者必須吻合。加密貨幣端同樣對帳,對象是機器的錢包餘額。每台機器、每天對帳的機隊,第一天就能抓到有問題的機櫃,無論是卡鈔、盜刷還是點錯,而不是等到季末才發現一個誰也解釋不了的缺口。逐機帳本的意義就在於:它從未被允許偏離,所以經得起稽核。
合規是營運商的責任;軟體負責執行與記錄
加密貨幣 ATM 機隊的義務由營運商承擔。必須持有的許可、必須執行的身分驗證、必須遵守的交易限額,會因每台機器所在地而異,這些都屬於營運商,不屬於機器,也不屬於機器的供應商。軟體做的事刻意保持機械式:執行營運商設定的每位客戶與每日限額,在營運商設定的門檻觸發營運商要求的身分驗證步驟,並記錄每張鈔票、每筆轉帳與每次限額判定,讓營運商日後能為機隊交代。機器不制定政策;它在每個機櫃上以相同方式套用營運商的政策,並如實記下發生的一切。把政策訂對,是營運商的本分。軟體的貢獻,是讓這套政策在沒有任何人能同時盯住全部機器的機隊中,保持一致且可稽核。
坦白的界線
只有一個據點的一台機器幾乎用不到機隊主控台,一份試算表加每週清點就夠了。這套機制的價值在機隊規模才顯現,當數字多到一個腦袋裝不下:跨多個機櫃的現金水位、必須逐站對得上的鈔匣張數、相隔數小時車程機器的遠端鎖定,以及經得起稽核的逐機帳本。只營運一個機櫃,這些是額外負擔;營運二十個,排程、對帳與遠端控制就是事業與一堆慢慢失衡的機櫃之間的差別。機隊主控台位於 /products/atm,相關術語(鈔匣、循環機、對帳、結算)請見 /glossary。