2017-10-02 6 views
3

Bitcoin Transactionsについて理解しようとしています。私は使用していますBitcore Javascript Library.Bitcoreとの簡単な1対1 Bitcoinトランザクション

私はソースウォレット1(Address1/PublicKey1とPrivateKey1) - 10 Bitcoins(簡略化)を持っています。

友だちに私のWallet2(Address2/PublicKey2)を渡して、1 Bitcoinを受け取ろうとしています。

私は、単純なトランザクション(1対1)、次いでdocumentationを読んだときのコードは次のようになります。

var transaction = new Transaction() 
.from(utxos)   // Feed information about what unspent outputs one can use 
.to(address, amount) // Add an output with the given amount of satoshis 
.change(address)  // Sets up a change address where the rest of the funds will go 
.fee(5430) // Minimum non-dust amount 
.sign(privkeySet)  // Signs all the inputs it can 

しかし、私はこれらの質問があります。引数は何

  1. utxos int .from(utxos)関数です。これは私のWallet1のPublicKey1ですか?
  2. .to(address)関数の引数addressは、私のFriends Wallet2のPublicKey2ですか?
  3. change(address)関数の引数addressは、新しいWallet3に属するAddress3です(トランザクションを作成する直前に作成する必要があります)。 =>これはこのWallet3のPrivateKey3を知る必要があることを意味し、これは9 Bitcoinsの残りの部分を取得するWallet3です。 =>この.change(address)機能なしで取引を行うことはできますか?私が言うと、私は9つのBitcoinsの残りの部分を新しいAddressに転送したくないのですか?元のWallet1に残りますか?
  4. .fee(5430)は、この取引に5430 Satoshi = USD $ 0.2337424950を費やすことを意味しますか?
  5. .sign(privkeySet)privkeySetは、元のWallet1の右のPrivateKey1ですか?この.sign()の機能の後、トランザクションは「起動」され、ジョブは完了しますか?

    ご協力いただきありがとうございます。

答えて

0

utxosは.from(utxos)関数であるint型の引数はどのようなものです。これは私のWallet1のPublicKey1ですか?

これらは、あなたが費やすことができるアウトポイント(前回の取引からの未使用出力)です。

https://bitcore.io/api/lib/unspent-output

.TO(アドレス)関数の引数のアドレスは私の友人Wallet2のPublicKey2のですか?

宛先が必ずしも宛先公開鍵から派生するとは限りません。 p2sh/p2pkh/p2pkアドレスがどのように生成されるかを読んでおく必要があります。

しかし一般的に単純な支払い条件で誰かに支払いをしたいのであれば、支払う正規の住所は単にp2pkhのアドレスになります。これは受信者の公開キーから派生したものです。通常

https://bitcore.io/api/lib/address

// recipientPublicKey should be provided 
var address = new Address(recipientPublicKey); 
// alternative interface 
var address = Address.fromPublicKey(recipientPublicKey); 

しかし、あなたの友人がちょうどに支払うためにアドレスをご提供する必要がありますので、あなたは、アドレス生成を心配する必要はありません。上記の例では、あなたの友人があなたの公開鍵を(何らかの理由で)提供したと仮定しています。

変更(アドレス)関数の引数アドレスは、新しいWallet3に属するAddress3であり、これはトランザクションを行う直前に作成する必要がありますか? =>これはこのWallet3のPrivateKey3を知る必要があることを意味し、これは9 Bitcoinsの残りの部分を取得するWallet3です。 =>この.change(アドレス)関数なしでトランザクションを行うことは可能ですか?私が言うと、私は9つのBitcoinsの残りの部分を新しいAddressに転送したくないのですか?元のWallet1に残りますか?

あなたが費やしているUTXOが、あなたの友人に支払う金額+手数料と同じでない限り、変更住所が必要になります。通常、アドレスの再利用は一般的に悪いとみなされるため、新しい鍵ペアとアドレスを変更アドレスとして使用することをお勧めします。しかし、wallet1の住所を再利用することもできます。

.fee(5430)は、私が5430 Satoshi = USD $ 0.2337424950をこの取引に費やすことを意味しますか?

はい。

.sign(privkeySet)関数のprivkeySetは、元のWallet1のPrivateKey1の権利ですか?この.sign()関数の後、トランザクションは「起動」され、ジョブは完了しますか?

署名後、取引をシリアル化する必要があります。 シリアル化の後、サードパーティプロバイダまたは独自のBitcoinノードを使用してBitcoinネットワークにブロードキャストするために使用できる16進ASCII文字列を取得する必要があります。

bitcoin-cli sendrawtransaction <serialized transaction>

関連する問題