區塊鏈期末復習3:跨鏈原子交換其他加密貨幣

參考教材:《區塊鏈:技術驅動金融》

一、跨鏈原子交換(不可分割的交叉鏈互換)

1.實施步驟

假設Alice要拿1BTC交換Bob的3BCY。Alice作為交易的發起者。

1)Alice創建一個secret(一個隨機數x), 并計算其哈希值 (h(x))

2)Alice創建交易tx1,但并不廣播上鏈。

tx1的輸入是Alice擁有的1BTC,輸出腳本則要求使用方滿足下面兩個條件之一:

A. Alice的簽名以及Bob的簽名

B.? ?secret(即x的值)以及Bob的簽名

也就是說,Bob要想拿走Alice的這一BTC,除了簽上Bob的簽名之外,還需要擁有Alice的簽名或者secret(x)的值。Bob當然拿不到Alice的簽名,所以Bob只有在知道secret(x)的值之后,才能拿走這1BTC。

tx1的輸出腳本可以如下:

<pubkey_Bob>
OP_CHECKSIGVERIFY
OP_DUP
<pubkey_Alice>
OP_CHECKSIG
OP_IF
OP_DROP
OP_I
OP_ELSE
OP_HASH160
<x_hash>
OP_EQUAL
OP_ENDIF

拿走tx1中存儲的這1BTC的交易,需要輸入腳本如下:

<sig_Alice>
<sig_Bob>

或者如下:

<sig_Alice>
<sig_Bob>

?3)Alice利用時間鎖,創建贖回這1BTC的交易tx11.請求Bob對tx11簽名,

這是為了防止Bob不拿走tx1中存儲的1BTC,Alice也無法拿回這筆錢。(因為這筆錢已經被轉到了某個地址,需要借由Bob的簽名和隨機數x才能取出)。

時間鎖可以設置為48h.輸入是tx1中存儲的這1BTC,輸出地址是Alice的地址。只要tx1中的這筆錢在48h內沒有被取走,這筆錢就會轉入Alice的地址,Alice就能成功贖回這筆錢。

4)Bob簽名tx11后(也就是如果tx1中的錢沒有被Bob拿走,Alice可以借由tx11成功贖回鎖在tx1中的錢),tx1廣播上鏈。

5)Bob從Alice發布的tx1中獲得h(x),即隨機數的哈希值。借此創建交易tx2.tx2不廣播上鏈。

tx2的輸入是Bob的3BCY,輸出腳本需要滿足下面兩個條件之一才能把3BCY拿走:

A. Alice的簽名以及Bob的簽名

B.? ?secret(即x的值)以及Alice的簽名

Alice想要拿走這3BCY,當然無法簽上Bob的簽名,只能簽上自己的簽名并提供隨機數x(secret)的值。

只要Alice成功拿走了這3BCY,Bob也就從這筆交易中知曉了隨機數x的值,從而可以拿走Alice存儲在tx1中的1BTC.

6)Bob利用時間鎖,時間設為24h(小于Alice的時間鎖時間就好),創建贖回這3BCY的交易tx22.請求Alice對tx22簽名。

這是為了防止Alice不愿意交換幣,不拿走Bob在tx2中存儲的3 BCY,從而Bob也無法拿走鎖在tx2中的這筆錢,

7)? ?tx2廣播上鏈

如果兩人都愿意交換,則Alice通過x和自己的簽名從tx2中拿走3BCY后,Bob也就從交易記錄中知曉了x的值,從而可以借助x和自己的簽名從tx1中拿走1BTC,從而完成交換。

如果任一一方反悔,另一方都可以在時間鎖時間到達后,成功贖回自己放在tx1或tx2中的錢。

流程總結

1)Alice創建secret(x),計算哈希值。(注意這個secret不能提前公布,而哈希值可以公布)

2)Alice把1 BTC放在tx1中,tx1先不廣播上鏈。Bob需要知道secret才能拿走tx1中的這筆錢。

3)Alice用48h時間鎖創建贖回交易tx11,如果tx1中的錢沒有被Bob取走,Alice可以在48h后從tx1中拿回自己的這筆錢。Alice需要請求Bob在tx11上簽名,使之有效。

4)tx1廣播上鏈

5)Bob通過x的哈希值,創建交易tx2,把3 BCY放在tx2中。tx2先不廣播上鏈。Alice需要提供secret才能拿走tx2中的這筆錢。

6)Bob用24h時間鎖創建贖回交易tx22,如果tx2中的錢沒有被Alicce取走,Bob可以在24h后從tx2中拿回自己的這筆錢.Bob需要請求Alice在tx22上簽名,使之有效。

7)tx2廣播上鏈

8)Alice通過自己的簽名和secret從tx2中拿走3 BCY。

9)Bob從上一步的交易記錄中知曉secret的值,通過自己的簽名和secret從tx1中拿走1 BTC。交換成功。

2.圖示

成功拿走Alice在tx1中存儲的1BTC的圖示。

上半部分展示的是輸入腳本是Alice和Bob的簽名的情況;

下半部分展示的是知道隨機數x的值和Bob簽名的情況:

二、兩種簡單的加密貨幣

1.高飛幣

1)兩個規則:

  • (造幣):高飛可以隨時創建新幣,且這些新創建的幣都屬于他
  • (轉幣):擁有此幣的人可以將它轉給其他人

?對于規則一,高飛將生成一個以前從未生成的唯一貨幣編號(uniqueCoinID),并建立字符串CreateCoin [uniqueCoinID]”,該字符串與高飛的簽名構成一單位幣任何人都可以驗證該新幣具有高飛的有效簽名,則該幣為有效幣。

對于規則二,需要匯款人的私鑰簽名,收款人的公鑰。可以借由哈希指針追溯幣的來源,以及最開始是否具有高飛的簽名。

2)致命安全隱患:雙重支付。

在交易規則中,只追溯該幣的來源是否有效,卻沒有檢測該幣是否被花費過。

?2.財奴幣

以高飛幣為基礎創建,解決雙重支付的問題。

1)特點:由財奴負責公布“僅增賬目”(append-only ledger)。

建立一個區塊鏈,每個區塊都包含一次交易(而在比特幣中,每個區塊包含多個交易)。

每個區塊包含交易的ID、交易的內容,以及上一個區塊的哈希指針。

財奴數字簽名是針對最后一個哈希指針(它約束整個結構中的所有數據),并將簽名與區塊一起公布。

注:僅增特性確保財奴不能修改或刪除已經發布的交易,也避免財奴支持雙重支付(因為在區塊鏈中,能看到這筆錢是否被花過)。

2)規則

  • (造幣):財奴負責創建幣。相較高飛幣,財奴可以在一次交易中創建多個幣量。
  • (轉幣):付幣交易有效,當且僅當:被消耗的幣有效;具有全部所有者的簽名;沒有被雙花;消耗(轉入)的幣值等于產生(轉出)的幣值。

?

3)財奴幣存在的問題:中心化

財奴具有太高的權利,雖然無法改變已有的交易,但可以拒絕為某些人提供服務,不把他們的交易發布在區塊上,讓他們手中的幣花不出去。并且財奴擁有造幣的權利。?

補充:幾種最早的另類幣

?1.域名幣

1)目的:提供一個去中心化的域名系統DNS。

2)基本原則:

-把錄入的數據視為域名或數值對(name/value pairs),域名是全球唯一的

-只有首次錄入某個域名的使用者,才有權限更新這個域名。

2.萊特幣

1)設計理念:通過維護CPU礦工社區,創造出一個用CPU挖礦的分布式體系。(失敗了)

2)采用memory-hard puzzles,每2.5min產生一個區塊。其他的類似比特幣。

?3.狗幣

賣點是有趣幽默,而非技術創新。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/64485.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/64485.shtml
英文地址,請注明出處:http://en.pswp.cn/web/64485.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

OCR實踐-Table-Transformer

前言 書接上文 OCR實踐—PaddleOCR Table-Transformer 與 PubTables-1M table-transformer&#xff0c;來自微軟&#xff0c;基于Detr&#xff0c;在PubTables1M 數據集上進行訓練&#xff0c;模型是在提出數據集同時的工作&#xff0c; paper PubTables-1M: Towards comp…

重裝操作系統后 Oracle 11g 數據庫數據還原

場景描述&#xff1a; 由于SSD系統盤損壞&#xff0c;更換硬盤后重裝了操作系統&#xff0c;Oracle數據庫之前安裝在D盤(另一個硬盤)&#xff0c;更換硬盤多添加一個盤符重裝系統后盤符從D變成E&#xff0c;也就是之前的D:/app/... 變成了現在的 E:/app/...&#xff0c;重新安裝…

gozero項目接入elk的配置與實戰

在 **GoZero** 項目中接入 **ELK&#xff08;Elasticsearch、Logstash、Kibana&#xff09;** 來進行日志管理&#xff0c;是一個非常強大的監控和分析方案。通過集成 ELK&#xff0c;你可以收集、存儲、查詢和可視化日志數據。 在這里&#xff0c;我將介紹如何在 GoZero 項目中…

探索PIL庫:Python圖像處理的強大工具

文章一覽 前言一、PIL圖像處理庫簡介二、基本概念2.1顏色模型2.1.1 RGB 顏色模型2.1.2 CMY色彩空間 2.2 通道2.3 圖像數據2.4 模式 三、用PIL做圖像處理3.1 圖像縮放、翻轉等處理3.1.1 圖像縮放處理3.1.2 圖像旋轉處理&#xff08;1&#xff09;PIL 提供的函數:&#xff08;2&a…

boot工程需求

1、 關閉看門狗、初始化中斷和trap向量表&#xff0c;進行時鐘和外設初始化&#xff0c;讓芯片正常運行起來 2、 提供CAN ETH等用于通訊功能的驅動&#xff0c;能夠接受外部數據的傳輸請求 3、 提供Flash的讀寫與擦除驅動&#xff0c;設置服務來對通訊端接受到的數據更新代…

C#中的類型和函數參數傳遞

1.類型 C#中類型分為兩類&#xff1a;值類型和引用類型 1.值類型 所有值類型繼承自System.ValueType類&#xff08;這是System.Object的一個子類&#xff09; 值類型變量是直接存儲數據&#xff0c;值類型變量聲明后&#xff0c;不管是否賦值&#xff0c;編譯器都會為其分配…

android系統查找應用包名以及主activity:

一、查找應用的主activity&#xff1a; pm list packages 發現所有的包 dumpsys package 包名&#xff1a; 獲取所有的包信息&#xff0c;可以所有關鍵詞MAIN來找主activity 也可以通過下面命令找到所有activity&#xff0c;看下面大概率com.android.settings/.Settings為主ac…

微信V3支付報錯 平臺證書及平臺證書序列號

1.平臺證書及平臺證書序列號設置錯誤報錯&#xff1a; 錯誤1&#xff1a; Verify the response’s data with: timestamp1735184656, noncea5806b8cabc923299f8db1a174f3a4d0, signatureFZ5FgD/jtt4J99GKssKWKA/0buBSOAbWcu6H52l2UqqaJKvrsNxvodB569ZFz5G3fbassOQcSh5BFq6hvE…

在Ubuntu下通過Docker部署Mastodon服務器

嘿&#xff0c;朋友們&#xff0c;今天咱們來聊聊如何在Ubuntu上通過Docker部署Mastodon服務器。想要擁有自己的社交媒體平臺&#xff1f;Mastodon就是個不錯的選擇&#xff01;&#x1f310;&#x1f680; Docker與Mastodon簡介 Docker是一個開源的容器化平臺&#xff0c;讓…

Es搭建——單節點——Linux

Es搭建——單節點——Linux 一、安裝 下載安裝包&#xff1a; 官網下載地址&#xff1a;https://www.elastic.co/downloads/elasticsearch 上傳包到linux 切換到安裝目錄下 解壓&#xff1a;tar -zxvf elasticsearch-7.17.1-linux-x86_64.tar.gz 重命名安裝文件夾 mv elastics…

【機器學習】梯度下降

文章目錄 1. 梯度下降概念2. 梯度下降的技巧2.1 動態設置學習率2.2 Adagrad調整梯度2.3 隨機梯度下降&#xff08;SGD&#xff09;2.4 特征縮放 3. 梯度下降理論基礎 1. 梯度下降概念 梯度&#xff1a;Loss 對參數在某一點的偏微分&#xff0c;函數沿梯度的方向具有最大的變化…

數據庫在大數據領域的探索與實踐:動態存儲與查詢優化

在大數據時代&#xff0c;數據庫的靈活性與高效性成為數據存儲與分析的重要基石。從關系型數據庫到 NoSQL 數據庫的演進&#xff0c;開發者逐漸可以在結構化與非結構化數據間找到平衡。本文將聚焦大數據場景下的數據庫實踐&#xff0c;尤其是如何動態存儲與查詢復雜數據&#x…

【Python科研數據爬蟲】基于國家標準查詢平臺和能源標準化信息平臺的海上風電相關行業標準查詢信息爬取及處理

基于國家標準查詢平臺和能源標準化信息平臺的海上風電相關行業標準查詢信息爬取及處理 1 背景2 標準檢索平臺2.1 能源標準化信息平臺2.2 全國標準信息公共服務平臺3 標準信息數據的爬取與處理3.1 能源標準化信息平臺的信息爬取3.2 全國標準信息公共服務平臺的信息爬取3.3 標準信…

AWS Certified AI Practitioner 自學考試心得

學習目標&#xff1a; 考取 AWS Certified AI Practitioner 那什么是 AWS Certified AI Practitioner 認證 是基礎級的認證 比較簡單 — 學習內容&#xff1a; 1. AWS網站自學網站 極客時間免費課程&#xff1a;http://gk.link/a/12sJL 配合極客時間課程的章節測試檢驗自…

Ngnix介紹、安裝、實戰及用法!!!

一、Nginx簡介 1、Nginx概述 Nginx (“engine x”) 是一個高性能的 HTTP 和 反向代理服務器&#xff0c;特點是占有內存少&#xff0c;并發能力強&#xff0c;能經受高負載的考驗,有報告表明能支持高達 50,000 個并發連接數 。 2、正向代理 正向代理&#xff1a;如果把局…

05.HTTPS的實現原理-HTTPS的握手流程(TLS1.2)

05.HTTPS的實現原理-HTTPS的握手流程&#xff08;TLS1.2&#xff09; 簡介1. TLS握手過程概述2. TLS握手過程細化3. 主密鑰&#xff08;對稱密鑰&#xff09;生成過程4. 密碼規范變更 簡介 主要講述了混合加密流程完成后&#xff0c;客戶端和服務器如何共同獲得相同的對稱密鑰…

YOLO11全解析:從原理到實戰,全流程體驗下一代目標檢測

前言 一、模型介紹 二、網絡結構 1.主干網絡&#xff08;Backbone&#xff09; 2.頸部網絡&#xff08;Neck&#xff09; 3.頭部網絡&#xff08;Head&#xff09; 三、算法改進 1.增強的特征提取 2.優化的效率和速度 3.更高的準確性與更少的參數 4.環境適應性強 5.…

C++ 與 Python(靜態類型語言與動態語言)

C 與 Python&#xff08;靜態類型語言與動態語言&#xff09; 一、說明 Python和C到底有啥區別&#xff1f;在使用的時候有啥特殊的益處&#xff1f;這種問題的意義在于&#xff1a;如果對語言了解越清楚&#xff0c;越能夠更加大膽地應用哪些極限功能&#xff0c;從而最大限…

Jenkins 構建流水線

在 Linux 系統上安裝 Jenkins 服務&#xff0c;以及配置自動化構建項目 前置準備環境&#xff1a;docker、docker-compose、jdk、maven 一、環境搭建 1. Jenkins 安裝 &#xff08;1&#xff09;拉取鏡像 # 安裝鏡像包&#xff0c;默認安裝最新版本 docker pull jenkins/jen…

【Java】面試題 并發安全 (1)

文章目錄 synchronized1. 基本概念與作用2. 使用方式3. 底層原理&#xff08;基于monitor&#xff09;4. 面試題回答要點5. 注意事項與進階理解 Java中synchronized鎖相關知識總結Java內存模型&#xff08;JMM&#xff09;CAS概述及重要性volatile關鍵字AQS簡介 synchronized …