這是一個教學用的比特幣交易簽章演示程序,使用TypeScript編寫,展示了完整的BTC交易創建和簽章過程。
- 密鑰管理: 使用固定私鑰生成公鑰和地址
- 交易構建: 創建包含1個輸入和1個輸出的交易
- 簽章過程: 完整展示ECDSA簽章流程
- 教學輸出: 詳細的console輸出,展示每個步驟
- 結構解析: 解析最終交易的十六進制結構
- 簽章驗證: 驗證生成的簽章有效性
# 安裝依賴
npm install
# 運行最終完整版演示(推薦)
npm run final
# 運行TypeScript版本
npm run demo
# 運行JavaScript測試版
npm run test
# 編譯TypeScript
npm run build
# 運行程序
npm start
# 或直接運行開發版本
npm run dev- JavaScript實現,保證console輸出正常
- 完整的比特幣交易簽章教學演示
- 詳細的簽章內容顯示和R/S/V分解
- DER格式解析和逐字節說明
- 包含所有教學要點和安全提醒
- TypeScript實現的完整演示
- 功能與最終版相同
- 注意:可能有console輸出顯示問題
- 簡化的功能測試版本
- 用於驗證基本簽章流程
## 輸出內容
程序將完整展示比特幣交易簽章的教學過程:
### 第一步:密鑰初始化
- 🔒 固定私鑰展示(教學用途)
- 🔑 公鑰生成過程
- 🏠 比特幣地址計算
### 第二步:交易內容準備
- 📄 模擬交易輸入(UTXO)
- 📄 交易輸出和手續費計算
- 🔍 交易雜湊(要簽章的內容)
### 第三步:ECDSA簽章過程
- 🎲 固定隨機數k(教學用途)
- ✒️ 完整簽章結果(64字節)
- ⚠️ 安全性提醒
### 第四步:簽章格式解析
- 📍 R/S值分解(各32字節)
- 🔄 DER格式轉換
- 🔍 DER格式逐字節解析
### 第五步:簽章驗證
- ✅ 使用公鑰驗證簽章
- 📝 驗證結果解釋
### 第六步:模擬廣播
- 📜 ScriptSig(解鎖腳本)構建
- 🆔 TXID計算和格式說明
- 🎯 完整教學總結
## 教學要點
- 展示比特幣私鑰如何生成公鑰和地址
- 說明UTXO模型和交易結構
- 演示ECDSA數字簽章算法
- 解釋SIGHASH類型的作用
- 展示交易序列化格式
## 技術棧
- TypeScript
- bitcoinjs-lib: 比特幣協議實現
- tiny-secp256k1: 橢圓曲線加密
- ecpair: 密鑰對管理
## 注意事項
這是教學演示程序,使用模擬的UTXO數據。在實際應用中需要:
- 從區塊鏈API查詢真實的UTXO
- 處理網絡費用估算
- 實現適當的錯誤處理
- 確保私鑰安全存儲
## 作者
加密學教授 - 專注於比特幣和區塊鏈技術教學