我是區塊鏈新手。據我所知,區塊鏈保留了所有交易的記錄,每筆交易都使用私鑰簽署。然而,爲什麼任何人都無法進入任意數量的比特幣交易?說,解決一個只有1比特幣,但它的所有者可以創建一個100比特幣的交易,並仍然簽署。比特幣是什麼機制來驗證交易的傳出和傳入量?區塊鏈如何驗證交易金額有效
回答
也許這個link比特幣交易如何工作將幫助你。看看「如果輸入和輸出量不匹配怎麼辦?」
此外,由於區塊鏈使用分佈式總賬,因此所有節點都將在事務被接受之前對其進行驗證。此外,應該有連鎖店的審計員確保欺詐活動不會發生。希望這可以幫助。
比特幣的區塊鏈包含所有曾經發生過的交易的歷史記錄。客戶當然可以選擇少存儲,而區塊鏈可以通過不存儲很久以前已經花費的交易來修剪。
比特幣地址在傳統銀行分類帳的意義上在技術上沒有「平衡」。相反,地址有能力花費發送給它的交易。
深入研究技術細節,我們來看看地址1PkCAVKjPz1YK7iJwT8xTLxBXR1av8dL98
(我自己)。
我最近收到一筆0.004 BTC的非常小的交易,與TxID 432794be2e056275cafb0eeb7ab59a24444dd4c9e00cd9702a49c2a655a3e705
交易。
的(十六進制編碼)本次交易的原始數據是:0100000001e9a24c1d1b8d10b13482cdcbbb90d894577292c4d0c0c1427411fb9d82ea710c010000006b483045022100d9a5433c1381b39b7e02b0b0f042990e7c16cfea252b05ccfef2e85c2dab2a6f022057c7def782fe3b0d7e5e0eae277d2a5890844da7d72309817a2dac22a6307c6001210390d78cb0c1d34d4417db7e0a9a9f125a689dc29dc2197a01a5f827a20f870f62ffffffff01801a0600000000001976a914f97df8f593e0056d337c274fd81a163f47a17d3788ac00000000
這在其人類可讀的形式是:
{
"txid": "432794be2e056275cafb0eeb7ab59a24444dd4c9e00cd9702a49c2a655a3e705",
"size": 192,
"version": 1,
"locktime": 0,
"vin": [
{
"txid": "0c71ea829dfb117442c1c0d0c492725794d890bbcbcd8234b1108d1b1d4ca2e9",
"vout": 1,
"scriptSig": {
"asm": "3045022100d9a5433c1381b39b7e02b0b0f042990e7c16cfea252b05ccfef2e85c2dab2a6f022057c7def782fe3b0d7e5e0eae277d2a5890844da7d72309817a2dac22a6307c60[ALL] 0390d78cb0c1d34d4417db7e0a9a9f125a689dc29dc2197a01a5f827a20f870f62",
"hex": "483045022100d9a5433c1381b39b7e02b0b0f042990e7c16cfea252b05ccfef2e85c2dab2a6f022057c7def782fe3b0d7e5e0eae277d2a5890844da7d72309817a2dac22a6307c6001210390d78cb0c1d34d4417db7e0a9a9f125a689dc29dc2197a01a5f827a20f870f62"
},
"sequence": 4294967295
}
],
"vout": [
{
"value": 0.00400000,
"n": 0,
"scriptPubKey": {
"asm": "OP_DUP OP_HASH160 f97df8f593e0056d337c274fd81a163f47a17d37 OP_EQUALVERIFY OP_CHECKSIG",
"hex": "76a914f97df8f593e0056d337c274fd81a163f47a17d3788ac",
"reqSigs": 1,
"type": "pubkeyhash",
"addresses": [
"1PkCAVKjPz1YK7iJwT8xTLxBXR1av8dL98"
]
}
}
]
}
所以地址1PkCAVKjPz1YK7iJwT8xTLxBXR1av8dL98
能夠「花」的交易432794be2e056275cafb0eeb7ab59a24444dd4c9e00cd9702a49c2a655a3e705
。 該交易的產值爲0.004 BTC,所以我無法進行嘗試花費更多的比特幣交易。不過,我們仍然試着去做。
我將創建一個原始交易,嘗試從輸出餘額爲0的交易中輸出0.01 BTC到1MgLu9L7ftmGQM84xhKYKw8pTXiSANwggs
。004 BTC:
bitcoin-rpc createrawtransaction '[{"txid":"432794be2e056275cafb0eeb7ab59a24444dd4c9e00cd9702a49c2a655a3e705","vout":0}]' '{"1MgLu9L7ftmGQM84xhKYKw8pTXiSANwggs":0.01}'
返回原始交易:
010000000105e7a355a6c2492a70d90ce0c9d44d44249ab57aeb0efbca7562052ebe9427430000000000ffffffff0140420f00000000001976a914e2d3595bd0a55c16f4b19f5cd996568dd7e811f688ac00000000
然後我可以籤交易:
bitcoin-rpc signrawtransaction 010000000105e7a355a6c2492a70d90ce0c9d44d44249ab57aeb0efbca7562052ebe9427430000000000ffffffff0140420f00000000001976a914e2d3595bd0a55c16f4b19f5cd996568dd7e811f688ac00000000
返回:
{
"hex": "010000000105e7a355a6c2492a70d90ce0c9d44d44249ab57aeb0efbca7562052ebe942743000000006b483045022100ce3fad8ccdee48f1fe9060ef81624d3bbe721293feb8ee06a96751e65b9c423e0220106a3e80d5fdf93df5dbf037d8cfd32af70a405586e12294c937308a3c57b10e012102f2acb810346866908108dd86462ee5400b15786739f5e908711d2d15d9dd2238ffffffff0140420f00000000001976a914e2d3595bd0a55c16f4b19f5cd996568dd7e811f688ac00000000",
"complete": true
}
我可以拿返回十六進制,這是一個有效的形式atted交易,並將其提交到網絡:
bitcoin-rpc sendrawtransaction 010000000105e7a355a6c2492a70d90ce0c9d44d44249ab57aeb0efbca7562052ebe942743000000006b483045022100ce3fad8ccdee48f1fe9060ef81624d3bbe721293feb8ee06a96751e65b9c423e0220106a3e80d5fdf93df5dbf037d8cfd32af70a405586e12294c937308a3c57b10e012102f2acb810346866908108dd86462ee5400b15786739f5e908711d2d15d9dd2238ffffffff0140420f00000000001976a914e2d3595bd0a55c16f4b19f5cd996568dd7e811f688ac00000000
這給我的錯誤:
66: insufficient priority (code -26)
這是一個客戶端的錯誤,但如果我是成功播出的原始交易的網絡,其他同齡人只會查找引用(或「花」)交易432794be2e056275cafb0eeb7ab59a24444dd4c9e00cd9702a49c2a655a3e705
和看到總產量我的新交易比總產值我試圖花交易大。
這個規則有一個例外:coinbase交易爲礦工生成比特幣,因此被允許輸出正確的塊補貼(最初是50 BTC,但是在一個半月前減半後目前是12.5 BTC)加上塊中包含的所有交易的交易費用。
我知道這個帖子已經老了,但沒有用於驗證比特幣transcation的完整列表:
- 1. 如何保持交易的運行餘額並獲得交易後的金額
- 2. 區塊鏈如何驗證新資產?
- 3. 區塊鏈API確定交易確認
- 4. 確認後交易金額變化
- 5. Bardcode包含交易金額信息
- 6. 在取消交易後查找最高交易金額
- 7. Cakephp驗證負金額
- 8. JavaScript驗證貨幣金額
- 9. 一個帳戶的所有交易金額總和的有效計算方法
- 10. 我們如何從貝寶獲得交易費用金額?
- 11. 如何使用BitcoinJS設置交易費用金額?
- 12. 與貸款有關的交易的MySQL總金額相反
- 13. 交易和驗證Rails4
- 14. 開盤交易的驗證
- 15. 比特幣區塊鏈 - 驗證過程
- 16. 條紋付款不驗證金額
- 17. 驗證支付金額與WorldPay的
- 18. 如何在magento成功交易後手動設置付款金額和到期金額?
- 19. 如何驗證idToken有效
- 20. jquery.validation() - 驗證有效,但沒有提交
- 21. 如何通過nodejs觀察區塊鏈上的比特幣交易?
- 22. Neo4jClient交易 - 交易完成時的驗證錯誤
- 23. 查找大於指定交易金額的帳戶
- 24. Paypal:交易實例化後的金額變化
- 25. 根據交易金額爲數據分配分數
- 26. 根據交易計算最低帳單金額的算法
- 27. 下載金融交易
- 28. 區塊鏈的非金融用途
- 29. 我們如何計算與Yodlee的重複交易,且金額不同?
- 30. 如何獲得2不同類型的交易的金額的差異在MySQL
我明白了。那麼每個新的交易都是源自先前的交易權利?比方說,如果你有兩個輸入,一個是2 BTC,另一個是1個BTC,它讓你共有3個BTCS;而你想花2.5億美元,所以每個投入都會有兩筆交易,對吧? – Yangrui
@yangrui除了coinbase交易,所有交易參考(並在這樣做,防止任何其他交易從引用)以前的交易。 如果你有兩個單獨的交易,一個2 BTC,另一個用於1 BTC,您將創建一個事務,其花費兩個輸入交易,支付2.5 BTC的人,並支付剩餘的0.5 BTC你操控的改變地址(或0.5減去要支付,作爲總的輸入減去總輸出= txFee交易費用)。交易既可以花費也可以不花費,您不能部分花費一筆交易。 –