Feature: Implement Digital Signatures (Public/Private Key Cryptography) for Transactions
Maintainer thường phản hồi trong vòng 2 ngày
@sohanjadyal đang làm issue này rồi.
Từ ngày 9/10/2026.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 48/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- java
- Lĩnh vực
- blockchain, security
Hướng nghiên cứu
Start by reading Transaction.java, Blockchain.java, and BlockchainTest.java to understand transaction creation, validation, and existing test patterns. Then check how chain.dat is serialized and how its compatibility is handled. Done means wallets can generate key pairs, transactions can be signed and verified, invalid or unsigned transactions are rejected, and tests cover valid and forged transactions.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Description:
Currently, our mini-chain relies entirely on a trust-based system where users manually type in the sender's name when creating a transaction. This means there is no concept of ownership or authentication, and anyone can easily spend someone else's coins by simply typing in their name.
To make this project behave like a real-world blockchain, I believe we should introduce cryptographic authentication to verify the sender of every transaction.
Proposed Solution:
Implement Public/Private key cryptography (e.g., using Java's built-in java.security.KeyPairGenerator with RSA or ECDSA).
- Wallets: Create a
Walletconcept where every user generates aPrivateKey(used for signing) and aPublicKey(which acts as their network address). - Transaction Signing: When sending coins, the
Transactionclass should include a new method to generate a digital signature using the sender'sPrivateKey. - Transaction Verification: The
Transactionclass should include a method to verify the signature using the sender'sPublicKey. - Validation Logic: Update
Blockchain.javaso thataddTransaction()andisValid()refuse any transactions that do not contain a valid cryptographic signature. - (Optional) Update
Main.javato simulate creating a wallet on startup if one doesn't exist.
Acceptance Criteria:
- A
Walletclass (or similar logic) exists to generate KeyPairs. -
Transactionclass stores a digital signature and the sender's Public Key. -
TransactionhassignTransaction(PrivateKey)andverifySignature()methods. -
Blockchain.javarejects unsigned or improperly signed transactions. -
BlockchainTest.javaincludes tests verifying that forged transactions are rejected and valid signatures are accepted.
Additional Context:
This will require a minor change to the Transaction model, which will likely break backward compatibility with older chain.dat files. We should increment the serialVersionUID or warn users to delete their existing .dat files when this is merged.
- Ngôn ngữ chính
- Java
- Star
- 0
- Fork
- 3
- Merge trung bình
- 2 ngày 5 giờ
- Pull request đã merge (30 ngày)
- 15
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Không có hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của techcsispit/mini-chain
-
Blockchain.isValid() does not verify sender balance, allowing blocks with negative balances to pass validationCó thể đã có người làm @aadiitya2007 đã nhận 6 ngày trước. Đang mởbug good first issue
Độ khó 4/5 1-2 ngày Mức phù hợp với người mới 20/100
techcsispit/mini-chain#37 · 1 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 2 ngày
-
README says changing Block or Transaction makes chain.dat stop loading, but adding a field or method still loads itCó thể đã có người làm @tanujb03 đã nhận 25 ngày trước. Đang mởdocumentation good first issue
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 25/100
techcsispit/mini-chain#21 ·
Maintainer thường phản hồi trong vòng 2 ngày
Tất cả issue của techcsispit/mini-chain
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
micronaut-projects/micronaut-redis#844 ·
Maintainer thường phản hồi trong vòng 4 ngày
-
ai-driven-fuzzing bug claude Major
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
linagora/tmail-backend#2862 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
ai-driven-fuzzing bug claude Minor
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
linagora/twake-calendar-side-service#1435 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Poetry updater rejects OR (||) Python constraints in PyprojectPreparer#update_python_requirementĐang mởL: python L: ruby:bundler
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
dependabot/dependabot-core#16819 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Bug] Auto-trusted serialization allow list skips array component classesCó thể đã có người làm @Icesource đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày