9999精品视频,一区二区色,91福利在线免费播放,人妻在线综合综合网,人妻丰满精品一区,九九九精品九九九精品,久久精品店,国产午夜久久,五月天人妻超碰

  • +1

Comunion區(qū)塊鏈深度學習系列|橢圓曲線數(shù)字簽名應用

2020-09-18 13:59
來源:澎湃新聞·澎湃號·湃客
聽全文
字號

Comunion 是一個基于區(qū)塊鏈的組織形式 (DAO) 與創(chuàng)業(yè)互助網(wǎng)絡,為超級個體提供面向數(shù)字時代的全新商業(yè)基礎設施和價值轉化機制,致力于讓勞動價值 像 資本一樣自由流通、交易和積累。

本系列內(nèi)容包含:基本概念及原理、密碼學、共識算法、錢包及節(jié)點原理、挖礦原理及實現(xiàn)。

區(qū)塊鏈中哪些地方使用了ECDSA?

通過前面系列的區(qū)塊鏈原理和技術,大家應該都熟悉交易是如何在區(qū)塊鏈系統(tǒng)或者在比特幣、以太坊系統(tǒng)里面開展的。

在進行交易的環(huán)節(jié)當中,有一個很重要的消息,那就是需要進行簽名。

也就是說一筆交易至少涉及到三項內(nèi)容:付款人、收款人、付款金額。

例如,張三給李四付款的時候,張三付款人,李四是收款人,付款金額假設是5個 Token。

當張三準備好這筆交易之后,需要發(fā)給全網(wǎng),當其他人看到這筆交易的時候,他們需要去認證這筆交易是否由張三發(fā)起的,這個環(huán)節(jié)中就使用到了數(shù)字簽名技術。

交易簽名如何運用ECDSA?

以特幣為例,具體流程如下圖所示。

交易的模塊分為:交易輸入和交易輸出,一筆交易由多個輸入或者多個輸出組成。

交易輸入代表付款信息,交易輸出代表收款信息。當然里面還會有付款金額,付款金額的字段是在交易輸出里面顯示的。

這種交易類型和我們正常理解的交易是非常類似的,其資金的流向是從交易輸入流向交易輸出,即從付款人流向收款人。

圖的右邊有一個虛線的框,里面的 ScriptSig 是一個腳本簽名,這個字段屬于交易輸入。同理,ScriptPubKey屬于交易輸出。腳本里面包含一些數(shù)據(jù)和操作碼來支持這個腳本語言的運行。

ScriptSig  和 ScriptPubKey  可以直觀的用中文解釋為:解鎖腳本和鎖定腳本。

為什么 ScriptSig 又叫解鎖腳本呢?是因為 ScriptSig 在之前相關連接的交易輸出里面 鎖定了一些資金。

如果張三要花費之前已有的 Token,也就是要花費一個未花費的交易輸出,那么其需要在另一筆交易里面 構造一筆交易輸入,在這個交易輸入里面 會設置簽名字段和公鑰,以此證明張三有資格花費 未花費的交易輸出。

這種情況叫做解鎖腳本,即把之前已有的資金打開進行使用。

這個過程中,解鎖腳本里面有兩個字段數(shù)據(jù),<sig> 和 <PubK>(PubKey的簡寫)。這兩個字段分別代表:簽名和公鑰。兩者由使用者提供,用以解決阻礙。

鎖定腳本里面也有一些字段和操作碼:DUP 是復制操作碼;HASH160 是哈希操作碼;<PubkHash> 是字段;EQUALVRTIFY 是驗證操作碼;CHECKSIG 也是驗證操作碼。

其整體意思是:執(zhí)行復制——進行哈希——執(zhí)行字段——驗證是否相等——校驗簽名是否正確。

在驗證簽名的環(huán)節(jié),就會調(diào)用ECDSA里面的驗簽算法。

如何使用ECDSA

 我們知道了簽名在交易里面的具體使用位置,那么 ScriptSig 和 ScriptPubKey 這兩個腳本語言,是如何執(zhí)行,以及在執(zhí)行的過程當中如何使用 ECDSA 呢?

如上圖所示,這里會將兩個腳本語言進行堆棧處理,即所有字段和操作碼全部羅列在右邊,解鎖腳本里面有2個,鎖定腳本里面有5個。

第一步,將第一個字段 <sig>  解鎖,置于堆棧的底部;

第二步,向右移動一格,將 <PubK>  解鎖推送至堆棧頂部,置于 <sig>  的上面;

第三步,DUP 是復制操作碼,它會將剛剛解鎖腳本里面的 <PubK> (公鑰)進行復制,此時會有兩個 <PubK>,結果被推送至堆棧頂部;

第四步,HASH160 將復制的公鑰進行哈希,使之變成 <PubKHash>, 公鑰哈希;

第五步,EQUALVRTIFY 操作碼將 PubKHash 和用戶的 PubKHash 對比,如果一致,則都被移除,然后繼續(xù)執(zhí)行(這里是為了對公鑰進行認證,來表明公鑰或者地址是否相同);

如果第五步匹配的話,繼續(xù)執(zhí)行第六步——驗證簽名,這里就用到了 ECDSA,也是交易中很關鍵的一步。

在圖中會看到,在執(zhí)行最后一個操作碼的時候,堆棧里面有兩個字段。

此時 CHECKSIG 操作碼會核查簽名 <sig>  是否與公鑰的 <sig> 匹配,如果匹配,則會在頂部顯示 TRUE,如果不匹配會顯示 FLOSE。

如果返回值是TRUE 的話,此時發(fā)送者也表明了其對發(fā)送 Token 的所有權和使用權。

以上就是橢圓曲線數(shù)字簽名(ECDSA)在區(qū)塊鏈中的主要應用位置和場景。

    本文為澎湃號作者或機構在澎湃新聞上傳并發(fā)布,僅代表該作者或機構觀點,不代表澎湃新聞的觀點或立場,澎湃新聞僅提供信息發(fā)布平臺。申請澎湃號請用電腦訪問http://renzheng.thepaper.cn。

    +1
    收藏
    我要舉報
            查看更多

            掃碼下載澎湃新聞客戶端

            滬ICP備14003370號

            滬公網(wǎng)安備31010602000299號

            互聯(lián)網(wǎng)新聞信息服務許可證:31120170006

            增值電信業(yè)務經(jīng)營許可證:滬B2-2017116

            ? 2014-2026 上海東方報業(yè)有限公司

            宁海县| 双江| 巢湖市| 濉溪县| 洪泽县| 台安县| 苏尼特左旗| 永福县| 井冈山市| 石狮市| 靖宇县| 平罗县| 蒲江县| 慈利县| 喀喇沁旗| 油尖旺区| 万源市| 淮南市| 新源县| 云梦县| 页游| 兴仁县| 成武县| 北京市| 大冶市| 怀来县| 连州市| 罗城| 襄樊市| 镇原县| 贵溪市| 德格县| 五寨县| 郸城县| 周至县| 松江区| 澄迈县| 英超| 宜春市| 林芝县| 曲沃县|