1746414407
2025-05-05 02:58:00
ブロックチェーンは「ハッキング不可能」で「将来の防止」と呼ばれていますが、それがとても安全であることはどうですか?ブロックチェーンの魔法を、実際のコードの例を使用して、プレーンな言語に分割して、ボンネットの下で何が起こっているのかを感じましょう。
読む代わりに見ることを好みますか?これが簡単なビデオガイドです
ブロックチェーンは、トランザクションを改ざんし、不可逆的にする方法でトランザクションを保存する分散デジタル元帳です。
Pythonのブロックチェーンの非常に簡素化されたバージョンを作成して、それがどのように機能するかを確認しましょう。
import hashlib
import time
class Block:
def __init__(self, index, data, previous_hash):
self.timestamp = time.time()
self.index = index
self.data = data
self.previous_hash = previous_hash
self.hash = self.calculate_hash()def calculate_hash(self):
block_string = f"{self.index}{self.timestamp}{self.data}{self.previous_hash}"
return hashlib.sha256(block_string.encode()).hexdigest()
class Blockchain:
def __init__(self):
self.chain = [self.create_genesis_block()]
def create_genesis_block(self):
return Block(0, "Genesis Block", "0")
def add_block(self, data):
prev_block = self.chain[-1]
new_block = Block(len(self.chain), data, prev_block.hash)
self.chain.append(new_block)
# Create blockchain and add data
my_chain = Blockchain()
my_chain.add_block("Alice pays Bob 5 BTC")
my_chain.add_block("Bob pays Charlie 3 BTC")
# Print blockchain
for block in my_chain.chain:
print(vars(block))
- ハッシュによる不変性:すべてのブロックには、データを一意に識別する暗号化ハッシュがあります。
import hashlib
data = "Some transaction"
hash_val = hashlib.sha256(data.encode()).hexdigest()
print(hash_val)
データが細かく変更されると、ハッシュ値が大幅に変化します。これにより、改ざんが明らかになります。
- チェーンブロック:各ブロックは、最後のブロックのハッシュを保存します。人が1つのブロックを変更しようとすると、後続のすべてのブロックが無効になります。
ネットワークはコンセンサスアルゴリズムを採用して、ブロックチェーンに追加されたものについてコンセンサスに到達します。ビットコインと同様に、仕事の証明を模倣しましょう。
class POWBlock(Block):
def mine_block(self, difficulty):
prefix = '0' * difficulty
while not self.hash.startswith(prefix):
self.timestamp = time.time()
self.hash = self.calculate_hash()# Example usage
difficulty = 4
block = POWBlock(1, "Mining Example", "0")
block.mine_block(difficulty)
print(f"Mined hash: {block.hash}")
これは、ハッシュを特定の数のゼロから始めるように強制することでマイニングを模倣します。計算作業が必要であり、ネットワークを安全にします。
- スマートコントラクトの弱点:スマートコントラクトは、Ethereumなどのブロックチェーンプラットフォームで自動的に実行されるコンピューターコードです。簡単なバギー契約が次のように表示されます。
// Vulnerable Solidity Smart Contract
pragma solidity ^0.8.0;
contract SimpleBank {
mapping(address => uint) public balances;
function deposit() public payable {
balances[msg.sender] += msg.value;
}
function withdraw() public {
uint amount = balances[msg.sender];
payable(msg.sender).transfer(amount);
balances[msg.sender] = 0; // Should come before transfer
}
}s
- フィッシング攻撃:表示するコードはありません – 誰かがメタマスクやサポートグループのように行動しようとしていても、秘密のキーや種子のフレーズを共有しないでください。
def is_chain_valid(chain):
for i in range(1, len(chain)):
current = chain[i]
previous = chain[i-1]if current.hash != current.calculate_hash():
return False
if current.previous_hash != previous.hash:
return False
return True
print("Is blockchain valid?", is_chain_valid(my_chain.chain))
# Try tampering
my_chain.chain[1].data = "Alice pays Eve 100 BTC"
print("Is blockchain valid after tampering?", is_chain_valid(my_chain.chain))
- ハードウェアウォレットを使用してください:プライベートキーをオフラインにします。
- 交換で2FAを有効にする:保護の2番目の層を追加します。
- 疑わしいリンクを避けてください:公式のダップとウォレットをブックマークしてください。
- スマートコントラクトをダブルチェックする:defiプラットフォームを使用する前。
- コード監査:専門企業はスマートコントラクトを分析します。
- バグバウンティ:倫理的なハッカーは脆弱性を明らかにします。
- マルチシグウォレット:ファンド移転には複数の署名が必要です。
- セキュリティライブラリ:試行され、テストされた暗号化ライブラリとツールを採用します。
以下は、Pseudocodeのマルチ署名ウォレットロジックの例です。
class MultiSigWallet:
def __init__(self, owners, required_signatures):
self.owners = set(owners)
self.required = required_signatures
self.transactions = []def submit_transaction(self, tx, signatures):
if len(set(signatures) & self.owners) >= self.required:
self.transactions.append(tx)
print("Transaction approved and recorded.")
else:
print("Not enough valid signatures.")
いいえ。しかし、それは最も安全な技術の1つです。最大の脅威は、以下を含むブロックチェーン自体の外側にある傾向があります。
- 欠陥のあるスマートコントラクトの推論
- ユーザーエラー
- 不安定な財布
- 弱いガバナンス
ブロックチェーンの基礎(分散化 +暗号化)は健全です。あなたの仕事は、注意深いままであり、リスクについて学び、評判の良いツールを使用することです。
- ハッシュ:すべてのブロックにユニークなデジタル指紋を作成します
- チェーン:前のハッシュの助けを借りてブロックを接続します
- 仕事の証明:ブロックを認証するための計算力を要求します
- スマートコントラクト:監査が必要な自動プログラム
- 改ざん検出:ハッシュ確認による検出の変更
- ユーザーの安全:セキュアウォレット、フィッシング保護、2FA
- Pythonでミニブロックチェーンをコーディングしてみてください。
- マスターソリビティと契約をテストネットに展開します。
- セキュリティ指向のブロックチェーンプラットフォーム(トレイルオブビット、Openzeppelinなど)を追跡します。
- ブロックチェーンをより安全にするために、バグバウンティプラットフォーム(Immunefiなど)に参加します。
#ブロックチェーンセキュリティを分類する理解しやすいガイドパワンジェイワル #2025年5月