“即時”交易驗證?
Jan Moritz Lindemann 慷慨地教育我,難度不僅用於調節加密貨幣的創建率,還用於允許塊傳播,從而防止孤立塊。
既然可以假定加密貨幣的消費者想要即時交易驗證,那麼近乎即時的交易驗證是否可能且安全?如果是這樣,怎麼做?
如果您所說的“即時”是指“在交易的那一刻” - 好吧,不。即使是 Visa 等人也沒有。即使您的意思是,在等待一段合理的時間(例如,不到 2 分鐘)後,您會收到關於您的交易有效性的明確答复,這也是不可能的。
加密貨幣的工作方式是,所有交易都“排隊等候”被礦工拾取並包含在一個區塊中。同時,您可以隨時恢復它或創建另一個與第一個衝突的。但是,一旦交易進入一個區塊,您仍然不能聲稱勝利,因為它們仍然不是官方硬幣歷史的一部分:其他礦工需要接受該區塊並開始在其上建構新區塊- 這是關鍵部分。
世界其他地方的另一位礦工可能已經發現了目前區塊的另一種解決方案並將其廣播到網路上。從那一刻起,將有 2 條鏈參與競爭,它們都有效,但最終只有一個會成為官方鏈。哪一個?無論哪個先變長,即被大多數礦工拾取以在它之後創建一個新塊 - 請記住每個塊不僅包含其雜湊值,還包含前一個塊的雜湊值,因此實際上每個塊“指向”其前身,因此稱為“鏈”。
惡意部分也有可能故意這樣做——如果該部分可以訪問大量的計算能力,它可能會說服你給你一些東西來換取他們的比特幣。你看到他們的交易出現在 2 個區塊中並給出了東西,然後他們在你的交易出現之前取出最後一個區塊,並在沒有交易的情況下快速創建 3 個區塊。一旦他們將他們的 3 個區塊廣播到網路上 - 瞧!他們的鏈條由於長度而接管,您最終沒有物品也沒有硬幣。
所以你永遠不會得到明確的是或否答案——你只是得到一定程度的確定性。你的交易出現的區塊越多,它就越有可能成為官方交易歷史的一部分。這就是為什麼通常說你應該等待比特幣中的 6 次確認或萊特幣中的 12 次確認以認為交易 99% 有效 - 在該數字之後,攻擊者試圖超過(可以說)組合雜湊算力的機率整個網路變得幾乎可以忽略不計。