Skip to content

jack-751/rsa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bitcoin Transaction Signing Demo

這是一個教學用的比特幣交易簽章演示程序,使用TypeScript編寫,展示了完整的BTC交易創建和簽章過程。

功能特色

  1. 密鑰管理: 使用固定私鑰生成公鑰和地址
  2. 交易構建: 創建包含1個輸入和1個輸出的交易
  3. 簽章過程: 完整展示ECDSA簽章流程
  4. 教學輸出: 詳細的console輸出,展示每個步驟
  5. 結構解析: 解析最終交易的十六進制結構
  6. 簽章驗證: 驗證生成的簽章有效性

安裝和運行

# 安裝依賴
npm install

# 運行最終完整版演示(推薦)
npm run final

# 運行TypeScript版本
npm run demo

# 運行JavaScript測試版
npm run test

# 編譯TypeScript
npm run build

# 運行程序
npm start

# 或直接運行開發版本
npm run dev

版本說明

npm run final - 最終完整版(推薦)

  • JavaScript實現,保證console輸出正常
  • 完整的比特幣交易簽章教學演示
  • 詳細的簽章內容顯示和R/S/V分解
  • DER格式解析和逐字節說明
  • 包含所有教學要點和安全提醒

npm run demo - TypeScript版本

  • TypeScript實現的完整演示
  • 功能與最終版相同
  • 注意:可能有console輸出顯示問題

npm run test - JavaScript測試版

  • 簡化的功能測試版本
  • 用於驗證基本簽章流程

## 輸出內容

程序將完整展示比特幣交易簽章的教學過程:

### 第一步:密鑰初始化
- 🔒 固定私鑰展示(教學用途)  
- 🔑 公鑰生成過程
- 🏠 比特幣地址計算

### 第二步:交易內容準備
- 📄 模擬交易輸入(UTXO)
- 📄 交易輸出和手續費計算
- 🔍 交易雜湊(要簽章的內容)

### 第三步:ECDSA簽章過程
- 🎲 固定隨機數k(教學用途)
- ✒️ 完整簽章結果(64字節)
- ⚠️ 安全性提醒

### 第四步:簽章格式解析
- 📍 R/S值分解(各32字節)
- 🔄 DER格式轉換
- 🔍 DER格式逐字節解析

### 第五步:簽章驗證
- ✅ 使用公鑰驗證簽章
- 📝 驗證結果解釋

### 第六步:模擬廣播
- 📜 ScriptSig(解鎖腳本)構建
- 🆔 TXID計算和格式說明
- 🎯 完整教學總結

## 教學要點

- 展示比特幣私鑰如何生成公鑰和地址
- 說明UTXO模型和交易結構
- 演示ECDSA數字簽章算法
- 解釋SIGHASH類型的作用
- 展示交易序列化格式

## 技術棧

- TypeScript
- bitcoinjs-lib: 比特幣協議實現
- tiny-secp256k1: 橢圓曲線加密
- ecpair: 密鑰對管理

## 注意事項

這是教學演示程序,使用模擬的UTXO數據。在實際應用中需要:
- 從區塊鏈API查詢真實的UTXO
- 處理網絡費用估算
- 實現適當的錯誤處理
- 確保私鑰安全存儲

## 作者

加密學教授 - 專注於比特幣和區塊鏈技術教學

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published