Proof of History (PoH)– cơ chế đồng thuận được sử dụng bởi Solana – sử dụng một **Verifiable Delay Function (VDF)**

0 0 0

Người đăng: Phan Ngoc

Theo Viblo Asia

Chắc chắn rồi! Dưới đây là một ví dụ minh họa đơn giản bằng data mẫu về cách hoạt động của Proof of History (PoH) – cơ chế đồng thuận được sử dụng bởi Solana – sử dụng một Verifiable Delay Function (VDF) để chứng minh thời gian trôi qua giữa các block.


🧠 Tóm lược lý thuyết:

  • PoH = ghi nhận thời gian có thể xác minh được
  • Nó sử dụng một hàm VDF (Verifiable Delay Function) – một phép tính tuần tự mất thời gian và không thể tăng tốc bằng tính toán song song.
  • Mỗi output mới của VDF phụ thuộc vào output trước đó.
  • Khi có chuỗi đầu ra VDF liên tục, ta có thể xác minh được thứ tự và khoảng thời gian các sự kiện xảy ra.

📊 Data mẫu minh họa:

Giả sử VDF là hàm hash lặp lại nhiều lần:

VDF(x) = SHA256(x) // đơn giản hóa để dễ hiểu

🧪 Ví dụ minh họa:

Block 1:

  • Input ban đầu: "genesis"
  • Số lần hash (delay count): 5
  • Chuỗi hash:
Step Hash (SHA256)
1 hash_1 = SHA256("genesis")
2 hash_2 = SHA256(hash_1)
3 hash_3 = SHA256(hash_2)
4 hash_4 = SHA256(hash_3)
5 hash_5 = SHA256(hash_4)
  • Kết quả cuối (PoH): hash_5

Block 2:

  • Input: hash_5
  • Delay count: 5
  • Hash tiếp tục:
Step Hash (SHA256)
6 hash_6 = SHA256(hash_5)
7 hash_7 = SHA256(hash_6)
8 hash_8 = SHA256(hash_7)
9 hash_9 = SHA256(hash_8)
10 hash_10 = SHA256(hash_9)
  • Kết quả PoH cho block 2: hash_10

✅ Cách xác minh:

Một node khác chỉ cần:

  1. Nhận hash_10 và biết hash_5.
  2. Chạy VDF 5 lần từ hash_5hash_10.
  3. Nếu khớp, thì chứng minh được đã có 5 đơn vị thời gian trôi qua.

Mô phỏng Proof-of-History với VDF:

import hashlib
import time def sha256(data: str) -> str: return hashlib.sha256(data.encode()).hexdigest() def vdf_chain(start: str, delay: int) -> list: chain = [start] for _ in range(delay): next_hash = sha256(chain[-1]) chain.append(next_hash) return chain def verify_vdf(start: str, target: str, delay: int) -> bool: current = start for _ in range(delay): current = sha256(current) return current == target # --- Giả lập dữ liệu ---
genesis = "genesis_block"
delay_per_block = 5 # Block 1
chain_block_1 = vdf_chain(genesis, delay_per_block)
print("Block 1 chain:")
for i, h in enumerate(chain_block_1): print(f"Step {i}: {h}") # Block 2 - tiếp tục từ hash cuối của Block 1
start_block_2 = chain_block_1[-1]
chain_block_2 = vdf_chain(start_block_2, delay_per_block)
print("\nBlock 2 chain:")
for i, h in enumerate(chain_block_2): print(f"Step {i+delay_per_block}: {h}") # --- Xác minh PoH của Block 2 ---
is_valid = verify_vdf(start_block_2, chain_block_2[-1], delay_per_block)
print("\nXác minh PoH Block 2:", "✅ Hợp lệ" if is_valid else "❌ Không hợp lệ") 

Kết quả.

Block 1 chain:
Step 0: genesis_block
Step 1: a16d0...
Step 2: b47ac...
...
Step 5: e2c1f... Block 2 chain:
Step 5: e2c1f... (tiếp từ block 1)
Step 6: 37af9...
...
Step 10: ab173... Xác minh PoH Block 2: ✅ Hợp lệ 


🧭 Tổng kết:

  • Mỗi block không cần đồng hồ ngoài, chỉ cần chain hash như vậy là đủ chứng minh thời gian và thứ tự.
  • Việc chèn dữ liệu sự kiện (transaction) vào giữa các bước VDF cho phép ghi nhận chính xác thời điểm các transaction diễn ra.

Bình luận

Bài viết tương tự

- vừa được xem lúc

[Blockchain] Road to Bitcoin

. Chắc mọi người hẳn đã không còn xa lạ gì với anh chàng tỷ phú đã ném vỡ cửa kính ô tô nhà mình cùng với siêu năng lực điều khiển vật giá chỉ bằng lời nói, người đã đẩy định giá Bitcoin trên thị trường vượt ngưỡng 50K dolar/coin với những bài twitter để đời . .

0 0 66

- vừa được xem lúc

Khi Ethereum có chi phí giao dịch quá đắt đỏ - Tương lai cho layer2 ?

Với sự phát triển như vũ bão của Blockchain, ETH dường như đang quá tải và hệ quả là chi phí Gas đã lên đến 1000Gwei, phí để tạo những transaction phức tạp đã xấp xỉ 500$ . Và một giải pháp cứu cánh cho các sản phẩm Defi trên ETH chính là Layer2, và trong nhiệm vụ lần này Matic đang thể hiện khả năn

0 0 93

- vừa được xem lúc

Blockchain với Java - Tại sao không?

Cuộc cách mạng công nghiệp 4.0 ra đời kéo theo nhiều sự thay đổi và xu hướng mới được hình thành. Riêng đối với lĩnh vực CNTT cũng không nằm ngoài vùng ảnh hưởng mạnh mẽ. Chính làn sóng 4.

0 0 100

- vừa được xem lúc

Phân loại và tầm quan trọng của các node trong mạng blockchain

Trước khi đi vào phân loại và nêu rõ được tầm quan trọng của các node trọng mạng blockchain thì mình xin được trích dẫn khái niệm về blockchain từ Wikipedia như sau:. .

0 1 73

- vừa được xem lúc

Code Smart Contract bằng Assembly ?

Introduction. Hồi còn học trong ghế nhà trường bộ môn lập trình tốn nhiều não nhất của mình là code assembly. Nôm na thì bất cứ ngôn ngữ bậc cao nào như C , Go, Java,... được sinh ra để người dễ hiểu và dễ code , tuy nhiên chúng đều sẽ được compiled down xuống assembly một ngôn ngữ bậc thấp để máy h

0 0 64

- vừa được xem lúc

Dextool - Công cụ phân tích Decentralized Exchange tuyệt vời

. Trend Defi mặc dù đã bớt nhiệt nhưng những sản phẩm nổi bật của làn sóng này mang lại thì vẫn rất được người dùng ưa chuộng. Đặc biệt là các nền tảng Decentralized Exchange, tiêu biểu là Uniswap, SushiSwap, 1inch Exchange, FalconSwap,... Nhưng khi đã sử dụng các nền tảng DEx này mà không biết đến

0 0 113