p2038 2018-4-11 06:45
用blockchain explorer 看到wallet to wallet transaction. 只見到coin amount. 咁佢prevent double spending?
yeungsammy2002 2018-6-14 12:57
佢係一種叫 "proof of work" 嘅共識算法去防止 "double spending", 每當 transaction 驗証成功後, 佢就會比礦工加寫入去 "block" 入面, 由擁有大算力嘅礦工把transaction寫入去block入面之後, 你account 入面嘅錢(即UTXO)就扣左, 你就唔可以再 "spend" 哩筆錢啦
情況一: 如果我發一筆交易後, 等其他節點未收到前發多一筆交易, 能不能double spend?
兩筆交易雖然在不同地方的節點都視為有效亦會廣播去其他節點, 但兩筆交易都屬於 unconfirmed transaction. 收款方收到通知但未肯定收款, 最後兩筆交易之中只有其中一筆會比礦工加入去block入面, 但另一筆唔會並視為作廢, 所以唔可行.
情況二: 如果我發一筆交易後, 等佢寫完入block入面, 再發一筆交易去自己私下篡改的節點"A", 節點A刻意唔廣播交易住, 用大量算力起節點A上面嘅鏈挖礦, 令節點A上的鏈長過主鏈後, 再公佈A節點上嘅"篡改鏈", 最後全部節點會基於"最長嘅鏈為主鏈"嘅原則, 迫礦工起"篡改鏈"上面挖礦, 前一筆已經寫入去block入面嘅交易會宣告無效(因為鏈比較短), 就可以double spend啦, 不過哩個方法需要主網絡所有礦工加起泥嘅算力嘅一半以上, 係要好多電力同礦機先可以成功, 所以鏈嘅安全主要係由礦工嘅算力保護而且係唔容易double spend.
[[i] 本帖最後由 yeungsammy2002 於 2018-6-15 09:53 AM 編輯 [/i]]