精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

比特幣交易腳本詳解

lviY_AI_shequ ? 來源:未知 ? 作者:胡薇 ? 2018-06-22 09:59 ? 次閱讀

經過第五章的學習,其實對區塊鏈有一個更深的了解,就是,不僅區塊前后相連,而且交易和交易之間也是相連,一個普通交易的輸入部分總是前面某個交易的輸出UTXO。在《比特幣 (1):傳統貨幣和比特幣的區別》中看到的相連,就是普通交易之間的相互連接;在《比特幣 (2):區塊鏈的大致結構》中看到的相連,是區塊之間的相互連接。

假設你已經閱讀完第五章,對于為啥需要腳本也比較清楚了。首先明確一下,交易輸入其實是之前某個交易的某個輸出UTXO,是按照之前那個交易的Hash值加上對應輸出在該交易中的位置標記的。一旦UTXO被選中,錢包會為每個UTXO生成包含簽名的解鎖腳本,換句話說,每個解鎖腳本都對應的是一個之前某個輸出的某個UTXO。

對于解鎖腳本加上鎖定腳本拼在一起,按照棧的方式運算,這個書中第五章已經說得很明確了,最重要的是棧操作的最后一步:

棧內是操作符是CHECKSIG

其實CHECKSIG很簡單,就是基于一定的規則,看看之前錢包生成的正不正確。CHECKSIG的步驟肯定和生成的過程相同。我們來看看CHECKSIG的過程,其實也就知道了生成的過程。如下圖:

正如前面所述,正在檢查的這個解鎖腳本,是放在該交易下面的該輸入中,會對應一個之前某個交易的某個輸出UTXO,那么假設,之前這個交易叫 TxPrev,而當前包含這個解鎖腳本的交易叫TxNew(即TxNew的某個輸入是該UTXO)。按照上圖中說明的CHECKSIG的步驟(根據簽名類型SIGHASH_ALL對整個交易進行驗證):

1. 在棧中pop出

2. TxPrev中該UTXO對應的輸出腳本,也即鎖定腳本,會有很多的操作系列,每個操作系列之間使用OP_CODESEPARATOR分隔。取這個腳本最后一個操作系列,也就是倒數第一個OP_CODESEPARATOR和腳本結束之間的部分(上圖與該邏輯不符合),取出來即為Subscript,注意該Subscript對應的是TxPrev下面的一個輸出UTXO。

(3. 在Subscript中去掉簽名)

4. 在Subscript中移除OP_CODESEPARATORS

5. 之前從棧中彈出的,最后一個字節代表的是簽名類型,1是指SIGHASH_ALL,對整個交易進行驗證。一個字節沒有所謂的大小端問題。

6. 復制TxNew為TxCopy

7. 將交易TxCopy中的所有輸入中的解鎖腳本置為空(因為上面說過,CHECKSIG是和生成的過程對應,生成的時候,該部分都沒有,所以驗證的時候該部分肯定得去掉)

8. TxCopy中正在檢查的解鎖腳本位置,替換為經過步驟4處理完的Subscript

9. 序列化TxCopy,添加4字節的簽名類型,即在步驟5中提到的簽名類型,因為在5中是1個字節,現在變成4個字節,這時候才會涉及大小端問題,存為小端模式。得到的最終信息假設叫verifyThisStr。

10. 之前是個人錢包使用私鑰對SHA256(SHA256(verifyThisStr))進行ECDSA加密的結果,現在已經重新計算出來了verifyThisStr,其他人驗證的時候,利用對應的公開的公鑰,對進行ECDSA解密,看是否與SHA256(SHA256(verifyThisStr))相同即可!!(反過來也是一樣的)

至此,交易腳本的驗證過程結束。

這里面最重要的是:

1. 生成verifyThisStr的過程,確保了每次進行加密解密的內容都不一樣

2. 個人錢包使用用戶的私鑰進行加密,其他人利用用戶公開的公鑰進行解密

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 區塊鏈
    +關注

    關注

    110

    文章

    15560

    瀏覽量

    105806
  • 比特幣
    +關注

    關注

    57

    文章

    7002

    瀏覽量

    140363

原文標題:區塊鏈系列--比特幣 (5):交易腳本詳解

文章出處:【微信號:AI_shequ,微信公眾號:人工智能愛好者社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    究竟比特是什么

    12月5日央行等五部委宣布禁止金融機構開展比特業務,但表示比特交易作為一種互聯網上的商品買賣行為,普通民眾在自擔風險的前提下擁有參與的自
    發表于 12-15 11:17

    比特交易所系統開發如何適應海外市場?

    比特交易所系統開發如何適應海外市場?近日央視攜《對話》欄目幫助電視機前的觀眾們更好的探尋區塊鏈是什么、會為我們的生活帶來哪些改變、這項技術具體應該如何應用。目前大家對區塊鏈的技術非常關注,之前國內
    發表于 05-28 14:55

    比特交易平臺排名情況

    國內比特交易平臺哪個好,國內十大比特交易平臺排名2017版:搞
    發表于 12-16 09:41 ?1.4w次閱讀

    比特是不是電子貨幣_比特怎么交易

    本文開始詳細的介紹了比特的特征,其次介紹了比特的幾個易平臺和分析了比特是不是電子貨幣,最后
    發表于 01-30 16:25 ?1w次閱讀

    比特交易網站哪個好?比特交易網站排名一覽

    比特早已分布在世界的各個角落,而如今想要獲取比特比以前更加困難了,據說,在國內1枚比特現在
    發表于 05-29 16:01 ?2.5w次閱讀

    比特ETN代表著比特交易所交易基金的一個軟開端

    美國的投資者如果想在不購買加密貨幣的情況下交易比特,就可以通過比特交易所交易票據(ETN)獲
    發表于 08-17 14:52 ?2264次閱讀

    比特OTC場外交易市場具有哪些特點?

    隨著各大交易所的關閉,嚴管之下,比特逐漸由場內交易交易所)轉為場外交易。目前以社交群為載體的
    發表于 09-29 15:25 ?4940次閱讀

    比特期貨的交易模式及風險

    近期比特交易無論成交量還是價格似乎遠遠超出了我們的預期,更而甚者美國芝加哥商品交易所、芝加哥期權交易所、東京期貨
    發表于 10-23 14:45 ?1274次閱讀

    什么是灰塵比特交易

    在過去,粉塵交易比特用戶來說并不一定是個問題。然而現在,情況發生了變化,去年晚些時候費用就比以往任何時候都高了,這就使得較小的價值交易發送起來變得更昂貴了。簡而言之,一些開發商認為
    發表于 12-21 11:42 ?1118次閱讀

    比特為什么要采用UTXO模型

    比特腳本是非圖靈完備的。比特使用自行定義的一種腳本進行
    發表于 01-15 11:11 ?2401次閱讀
    <b class='flag-5'>比特</b><b class='flag-5'>幣</b>為什么要采用UTXO模型

    比特交易究竟是如何運作的

    比特使用UTXO(未使用的交易輸出)模型,而不是賬戶/余額系統。這意味著區塊鏈并不直接跟蹤每個比特地址的
    發表于 04-06 09:00 ?6268次閱讀
    <b class='flag-5'>比特</b><b class='flag-5'>幣</b><b class='flag-5'>交易</b>究竟是如何運作的

    比特交易的好處的有哪些

    你有沒有想過改變你的交易方式,用比特取代現金和銀行?如果你已經想過,而且你還沒有決定是否應該采取下一步,比如說緊接著在你的交易中全部使用數字加密貨幣,現在看看
    發表于 04-23 10:48 ?3325次閱讀

    比特腳本的應用實例介紹

    比特一直以來都有一種機制,它可通過更復雜的策略(而不僅僅是單個密鑰)來使可花費:這就是腳本(Script)系統。雖然腳本主要用于單密鑰支
    發表于 09-10 11:16 ?1720次閱讀

    比特被頻繁用于非法交易的原因是什么

    比特價格暴漲,交易手續費持續高昂,與比特功能相似,但交易速度和手續費價格更佳的萊特
    發表于 11-11 10:10 ?3526次閱讀

    比特混合交易的好處是什么

    比特網絡上的交易是開放的。這意味著任何對此感興趣的人都可以查看分類帳并了解您的交易歷史。他們甚至可以知道你錢包里有多少比特
    發表于 03-08 11:34 ?568次閱讀