<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 比特幣腳本語言 在比特幣中有一個*腳本(Script)*編程語言,它用于鎖定交易輸出;交易輸入提供了解鎖輸出的數據。這個語言非常簡單,用這個語言寫的代碼其實就是基于堆棧的一系列數據和操作符。 比特幣腳本語言一方面可以很好的解決多重簽名問題,另外一方面對于加密算法有很好的支持,此外,它已經具備一定的智能合約的能力。 比特幣腳本語言不是圖靈完備的語言。 # P2PKH *Pay to Public Key Hash(P2PKH)*,這是比特幣最常用的一個腳本。它所做的事情就是向一個公鑰哈希支付,也就是說,用某一個公鑰鎖定一些幣。這是**比特幣支付的核心**:沒有賬戶,沒有資金轉移;只有一個腳本檢查提供的簽名和公鑰是否正確。 ~~~ 5 2 OP_ADD 7 OP_EQUAL ~~~ 5, 2, 和 7 是數據,`OP_ADD`和`OP_EQUAL`是操作符。*腳本*代碼從左到右執行:將數據依次放入棧內,**當遇到操作符時,就從棧內取出數據,并將操作符作用于數據,然后將結果作為棧頂元素壓入棧。***腳本*的棧,實際上就是一個先進后出的內存存儲:棧里的第一個元素最后一個取出,后面的每一個元素都會放到前一個元素之上。 比特幣中腳本支付: ~~~ <signature> <pubKey> OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG ~~~ 這個腳本實際存儲為兩個部分: 1. 第一個部分,`<signature> <pubkey>`,存儲在輸入的`ScriptSig`字段。 2. 第二部分,`OP_DUP OP_HASH160 <pubkeyHash> OP_EQUALVERYFY OP_CHECKSIG`存儲在輸出的`ScriptPubKey`里面。 | 步驟 | 棧 | 腳本 | | --- | --- | --- | | 1 | 空 | `<signature> <pubKey> OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG` | | 2 | `<signature>` | `<pubKey> OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG` | | 3 | `<signature> <pubkey>` | `OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG` | | 4 | `<signature> <pubKey> <pubKey>` | `OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG` | | 5 | `<signature> <pubKey> <pubKeyHash>` | `<pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG` | | 6 | `<signature> <pubKey> <pubKeyHash> <pubKeyHash>` | `OP_EQUALVERIFY OP_CHECKSIG` | | 7 | `<signature> <pubKey>` | `OP_CHECKSIG` | | 8 | `true`或`false` | 空 | `OP_DUP`對棧頂元素進行復制。`OP_HASH160`取棧頂元素,然后用`RIPEMD160`對它進行哈希,再將結果送回到棧上。`OP_EQUALVERIFY`將棧頂的兩個元素進行比較,如果它們不相等,終止腳本。`OP_CHECKSIG`通過對交易進行哈希,并使用`<signature>`和`pubKey`來驗證一筆交易的簽名。最后的操作符有點復雜:它生成了一個修剪后的交易副本,對它進行哈希(因為它是一個被簽名后的交易哈希),然后使用提供的`<signature>`和`pubKey`檢查簽名是否正確。 有了一個這樣的腳本語言,實際上也可以讓比特幣成為一個智能合約平臺:除了向一個單一的公鑰轉移資金,這個語言還使得一些其他的支付方案成為可能。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看