ビットコインエクスプローラー(ウォレットコマンド:input-sign)

# ビットコインエクスプローラー(ウォレットコマンド:input-sign)

原文(https://github.com/libbitcoin/libbitcoin-explorer/wiki/)


## bx input sign

トランザクションインプットの承認を作成する。

```
bx input-sign --help
```
```
Usage: bx input-sign [-ah] [--config VALUE] [--index VALUE] [--sign_type 
VALUE] EC_PRIVATE_KEY CONTRACT [TRANSACTION]                             

情報：トランザクションインプットの承認を作成する。

オプション (named):
-a [--anyone]        署名ハッシュを修正し、他のインプットを無視される。
                                                 
                     
-c [--config]        コンフィギュレーションファイルを指定        
-h [--help]          コマンドの説明を表示
-i [--index]         トランザクション内のinputの順番を指定。デフォルトは0                                         
-s [--sign_type]     トークンは、トランザクションが署名のために、どうハッシュ化されるかを示す。
                     オプションは、'all'、'none'、'single'、デフォルトは、'all'。
                     

引数 (positional):

EC_PRIVATE_KEY       署名するBASE16楕円曲線秘密鍵
CONTRACT             サインに使う前回のアウトプットスクリプト
                     複数のトークンが引用される。                   
TRANSACTION          BASE16トランザクションを指定。指定がなければ、STDINを読み込む。
```

このコマンドは、トランザクションの承認を生成ますが、トランザクションに適用しません。
承認は、現在のトランザクションに明記された値の転送を許可するinput(前回トランザクションのoutput)のデジタル署名となる。

#### Example 1

one input, one output, standard prevout script, --sign_type all

一つのインプット、一つのアウトプット、標準的なスクリプトで、--sign_type allを指定。

下記のようにinputとouputで始める。

```
--input 7c3e880e7c93a7b01506188c36a239f70b561dfa622d0aa0d8f3b7403c94017d:0
--output 1966U1pjj15tLxPXZ19U48c99EJDkdXeqb:45000
```

前回のトランザクションのアウトプットスクリプトを見てみる。

```
bx fetch-tx 7c3e880e7c93a7b01506188c36a239f70b561dfa622d0aa0d8f3b7403c94017d
```
```
transaction
{
    hash 7c3e880e7c93a7b01506188c36a239f70b561dfa622d0aa0d8f3b7403c94017d
    inputs
    {
        input
        {
            address 1PqLFcRyNMzsgcmT4Sd2XSVZ4XPb8CN8sj
            previous_output
            {
                hash df51c69f381a7511e95571382715cfd83c5384e9006ee7c546cfa6bb4b172346
                index 0
            }
            script "[304502206be979f1f89776e26abb40f458dc942d191d447cf3ce847d2d7e430df6b21ac4022100cade875670d71bd972f151b00544044d90a75261a9a01542968a1b36b31aea1801] [041fd7ca20852f638e82ac43b2df2ac7b38a3fec1622fb33c9f679ae909868a7e6e013429b2421a871a4e1d5d5702bea978bdd8ec399657dc6f3c0334a83de40bf]"
            sequence 4294967295
        }
    }
    lock_time 0
    outputs
    {
        output
        {
            address 1JziqzXeBPyHPeAHrG4DCDW4ASXeGGF6p6
            script "dup hash160 [c564c740c6900b93afc9f1bdaef0a9d466adf6ee] equalverify checksig"
            value 100000
        }
        output
        {
            address 18kn866ztW2Y12DkijCubQmE6xBqmJS4Gr
            script "dup hash160 [55106ed6c650e125c28f767c83ccfbc0c231fc8a] equalverify checksig"
            value 328860000
        }
    }
    version 1
}
```

The previous output script is at transaction.outputs[0].script.

前回のアウトプットスクリプトは、`transaction.outputs[0].script`に当たる。



前回のアウトプットの`1JziqzXe...`のための秘密鍵が署名のために必要となる。
下記の秘密鍵は、デモのために提供される。

```
4ce3eb6bd06c224e3c355352a488720efc5ac9fe527a219ad35178c3cf762350
```

inputとoutputをつかって、新しいトランザクションを作る。

```
bx tx-encode -i 7c3e880e7c93a7b01506188c36a239f70b561dfa622d0aa0d8f3b7403c94017d:0 -o 1966U1pjj15tLxPXZ19U48c99EJDkdXeqb:45000
```
```
01000000017d01943c40b7f3d8a00a2d62fa1d560bf739a2368c180615b0a7937c0e883e7c0000000000ffffffff01c8af0000000000001976a91458b7a60f11a904feef35a639b6048de8dd4d9f1c88ac00000000
```

トランザクションの承認を、ノンス、秘密鍵、前回のトランザクションアウトプットをつかっておこなう。

```
bx input-sign -n 707e3d717925ba2e98234dd6f3a38eb5 4ce3eb6bd06c224e3c355352a488720efc5ac9fe527a219ad35178c3cf762350 "dup hash160 [c564c740c6900b93afc9f1bdaef0a9d466adf6ee] equalverify checksig" 01000000017d01943c40b7f3d8a00a2d62fa1d560bf739a2368c180615b0a7937c0e883e7c0000000000ffffffff01c8af0000000000001976a91458b7a60f11a904feef35a639b6048de8dd4d9f1c88ac00000000
```

```
30450221008f66d188c664a8088893ea4ddd9689024ea5593877753ecc1e9051ed58c15168022037109f0d06e6068b7447966f751de8474641ad2b15ec37f4a9d159b02af6817401
```