掃描比特幣收款 QR Code,會直接付款嗎?

在商店結帳時,掃描 QR Code 往往讓人聯想到「嗶一聲就付款完成」。比特幣錢包也能掃描收款方提供的方形圖案,並立刻顯示一串地址與金額,看起來像交易已經開始執行。
不過,QR Code 只是一種搬運資料的方法。它可以替使用者省下手動抄寫收款資訊的麻煩,卻沒有因此取得錢包裡的支出權,也不會自行替任何交易產生授權。
因此,普通比特幣付款在掃描後通常還要經過解碼、核對、建立交易、簽署、廣播與確認。把這些階段分開,才能判斷畫面目前只是預填付款資料,還是資產已經進入可共同驗證的鏈上紀錄。
方形圖案通常包著一段付款資料
最簡單的比特幣收款 QR Code 可以只包含一個地址。較完整的做法則會把 bitcoin: 開頭的付款 URI 編進圖案,除了地址,還能附上建議金額、收款標籤或付款說明,讓錢包掃描後自動填入對應欄位。
這些欄位的角色並不完全相同。地址會用來建立鏈上輸出的花費條件;金額可以成為錢包準備交易時的輸入值;標籤與說明多半只供介面整理,不一定會寫進公開交易。畫面顯示店名,也不代表比特幣網路已替那個名稱驗證真實身分。
QR Code 本身甚至可以裝入任何文字或網址。能被相機辨識,只證明圖案成功解碼;錢包仍要判斷內容是不是它支援的比特幣付款格式,以及地址所屬網路與編碼是否有效。
掃描和簽署隔著一層權限
錢包讀到付款資料後,會選擇可用的 UTXO,建立收款輸出與可能的找零輸出,再依交易大小和當時需求估算手續費。此時形成的仍是待核對的交易安排,掃描動作沒有替它附上有效簽章。
真正的支出授權來自私鑰。軟體錢包可能要求使用者確認後再簽署,硬體簽署裝置則可在獨立畫面顯示收款條件、金額與費用。收款方提供的 QR Code 屬於公開請求資料,正常情況下不含付款人的私鑰,也無法只靠掃描動作就動用資產。
某些專門設計的自動付款系統可以在使用者預先授權的範圍內減少確認步驟。這是應用程式另外設定的行為,不能反推一般錢包掃描任何 QR Code 都會自動付款。
格式正確仍可能指向錯誤對象
QR Code 能避免逐字輸入造成的許多錯誤,卻不能證明圖案由誰提供。遭替換的貼紙、被竄改的網頁或惡意程式,都可能放入另一個格式完全有效的地址;錢包只檢查編碼時,不會知道使用者原本打算付給哪一家商店。
金額與介面標籤也可能被一起改動。安全邊界因此落在簽署前的核對:可信顯示畫面呈現的收款資訊、金額與費用,才是即將獲得授權的內容。若簽署裝置顯示的資料和收款情境不一致,QR Code 掃描成功並不能補上這段信任缺口。
訂單逾期與鏈上條件分屬兩層
商家產生的 QR Code 可能綁定一筆訂單、即時計價結果或內部識別碼,並設定接受付款的期限。期限過後,商家系統可能要求重新計價或建立新訂單;原先編入的地址在協議層卻未必同步失效。
這會形成一個容易忽略的差距:交易仍可能依有效規則送到該地址,服務端卻因訂單已關閉、金額不符或對照資料更新,而無法自動完成入帳。鏈上付款能否成立,以及平台是否把它歸到正確訂單,必須分別判斷。
付款證據從廣播後才逐步建立
交易完成簽署後,還要送給全節點並傳向網路。廣播成功表示至少有其他參與者收到資料,仍沒有保證它已寫進共同歷史;只有交易進入有效區塊,才會取得第一次交易確認。
因此,畫面顯示「已掃描」只能證明付款資料已被讀取;顯示「已簽署」代表某份交易獲得授權;顯示「已廣播」表示資料已送出;確認數才描述它在鏈上歷史中的位置與穩定程度。任何一個較早階段,都不能單獨替代後面的結果。
比特幣收款 QR Code 可以理解成一張機器容易讀取的付款單。它把收款資料帶進錢包,減少輸入摩擦,也把錯誤或惡意內容更快帶到簽署畫面。真正移動資產的仍是使用者授權的交易,以及網路對該交易的驗證與收錄;掃描只是這條流程的入口。