2016-07-28 14 views
1

ブロックチェインが初めてです。ブロックチェーンはすべてのトランザクションの記録を保持し、各トランザクションは秘密鍵で署名されていることを理解しています。しかし、誰もBitcoinトランザクションの任意の量を入力できないのはなぜですか?アドレスaにはBitcoinが1つしかありませんが、所有者は100個のBitcoinsのトランザクションを作成して署名することができます。 Bitcoinのトランザクションの送受信量を確認するメカニズムとは何ですか?ブロックチェインによる取引金額の有効性の確認方法

答えて

0

ビットコイン取引の仕組みに関するlinkが役立つかもしれません。 「入力と出力の量が一致しないとどうなるでしょうか?」というセクションを見てください。

また、Blockchainは分散元帳を使用するため、すべてのノードがトランザクションを受け入れられる前に検証します。さらに、詐欺行為が起こらないことを確認する監査役がチェーン上に存在する必要があります。お役に立てれば。

1

Bitcoinのブロックチェーンには、これまでに発生したすべてのトランザクションの履歴レコードが含まれています。クライアントは確かに少ない記憶量を選ぶことができます。ブロックチェーンは、すでにずっと前に費やされたトランザクションを保存しないことで刈り込むことができます。

Bitcoinアドレスは、技術的には従来の銀行元帳という意味では「バランス」を持っていません。代わりに、アドレスには、送信されたトランザクションを費やす機能があります。

技術的な詳細を調べるには、アドレス1PkCAVKjPz1YK7iJwT8xTLxBXR1av8dL98(私が所有しています)を見てみましょう。

最近、TxID 432794be2e056275cafb0eeb7ab59a24444dd4c9e00cd9702a49c2a655a3e705の取引で0.004BTCの非常に小さな取引が届きました。

(16進数でエンコードされた)この取引の生データは次のとおりです。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.004BTCなので、より多くの費用をかけようとするBitcoinトランザクションを作成することはできません。しかし、とにかくそれをやろうとしましょう。

出力残高0のトランザクションから0.01 BTCから1MgLu9L7ftmGQM84xhKYKw8pTXiSANwggsを出力しようとする生トランザクションを作成します。004 BTC:

bitcoin-rpc signrawtransaction 010000000105e7a355a6c2492a70d90ce0c9d44d44249ab57aeb0efbca7562052ebe9427430000000000ffffffff0140420f00000000001976a914e2d3595bd0a55c16f4b19f5cd996568dd7e811f688ac00000000 

返します:

{ 
     "hex": "010000000105e7a355a6c2492a70d90ce0c9d44d44249ab57aeb0efbca7562052ebe942743000000006b483045022100ce3fad8ccdee48f1fe9060ef81624d3bbe721293feb8ee06a96751e65b9c423e0220106a3e80d5fdf93df5dbf037d8cfd32af70a405586e12294c937308a3c57b10e012102f2acb810346866908108dd86462ee5400b15786739f5e908711d2d15d9dd2238ffffffff0140420f00000000001976a914e2d3595bd0a55c16f4b19f5cd996568dd7e811f688ac00000000", 
     "complete": true 
} 

そして私が取ることができるの

010000000105e7a355a6c2492a70d90ce0c9d44d44249ab57aeb0efbca7562052ebe9427430000000000ffffffff0140420f00000000001976a914e2d3595bd0a55c16f4b19f5cd996568dd7e811f688ac00000000 

私は、トランザクションに署名することができます。

bitcoin-rpc createrawtransaction '[{"txid":"432794be2e056275cafb0eeb7ab59a24444dd4c9e00cd9702a49c2a655a3e705","vout":0}]' '{"1MgLu9L7ftmGQM84xhKYKw8pTXiSANwggs":0.01}' 

は、生のトランザクションを返します。それは有効な形式である16進数を返すトランザクションをatted、およびネットワークに提出してください:

私にエラーを与える
bitcoin-rpc sendrawtransaction 010000000105e7a355a6c2492a70d90ce0c9d44d44249ab57aeb0efbca7562052ebe942743000000006b483045022100ce3fad8ccdee48f1fe9060ef81624d3bbe721293feb8ee06a96751e65b9c423e0220106a3e80d5fdf93df5dbf037d8cfd32af70a405586e12294c937308a3c57b10e012102f2acb810346866908108dd86462ee5400b15786739f5e908711d2d15d9dd2238ffffffff0140420f00000000001976a914e2d3595bd0a55c16f4b19f5cd996568dd7e811f688ac00000000 

66: insufficient priority (code -26) 

これは、クライアント側のエラーですが、私がいた場合、正常に生のトランザクションをブロードキャストします他の同僚は参照された(または "消費された")トランザクション432794be2e056275cafb0eeb7ab59a24444dd4c9e00cd9702a49c2a655a3e705を検索し、私の新しいトランザクションの出力合計が、私が費やそうとしているトランザクションの出力合計よりも大きいことを確認します。

コインベース取引では、鉱夫のBitcoinsが生成されるため、正しいブロック補助金(当初は50BTCでしたが、半年後には現在12.5BTC)プラスブロック内に含まれるすべてのトランザクションの取引手数料。

+0

私が参照してください。したがって、新しいトランザクションはそれぞれ、以前のトランザクション権利から生成されますか? 2つの入力がある場合、1つは2 btcで、もう1つは1 btcで合計3 btcsになります。あなたは2.5 btcを使いたいので、各入力に2つの取引があるでしょう、そうですか? – Yangrui

+1

@yangruiコインベース取引を除いて、すべての取引は以前の取引を参照します(その際、他の取引が参照するのを防止します)。 2つの別々の取引がある場合は、2つのBTCと1つのBTCに対して1つの取引を登録し、両方の入力取引に費やし、2.5 BTCを支払うほか、残りの0.5 BTCを管理する変更住所に支払う(または、0.5から支払うトランザクション手数料、合計入力から合計出力= txFee)。トランザクションは、使用されても使用されなくてもかまいませんが、トランザクションを部分的に費やすことはできません。 –

関連する問題