同樣是鏈上拍賣,兩份公開教程都寫著退款,但把退款寫進鏈上約束的方式不一樣。
OP_CAT Layer Lambit Auction教程將每次競價做成UTXO狀態更新,bid() 檢查新報價必須高於上一輪,並透過 SIGHASH_SINGLE約束同索引的後繼拍賣輸出,最高競標者與報價可沿狀態變化查詢。
教程流程寫明上一位競標者會收到退款,而Lambit範例的 bid() 程式碼主要約束加價與後繼狀態。對照另一份獨立的 sCrypt Auction教程,後者在合約方法裡建構舊競標者的退款輸出,並透過checkOutputs()檢查交易輸出。官方示意交易中,output[0]對應新的拍賣狀態,output[1]對應舊競標者退款。
我看這種合約,會先弄清楚它設計了什麼功能,又把哪些規則真正寫進了鏈上約束,OP_CAT Layer提供可程式化空間,具體保證範圍取決於合約寫法。
此處僅對比兩份公開教程,未對實際部署的拍賣合約做交易測試,也不能據此認定任一產品存在漏洞。
拍賣中未中標者的資金能否按約定退回,與誰最終中標同樣需要確認。
@op_catlayer @OPCATLayerCN
#OPCAT #Lambit #Bitcoin @clawchatglobal