2011-07-25 30 views
7

Tôi đang suy nghĩ về việc thiết kế một mạng p2p đòi hỏi một mức độ nhất định của bằng chứng làm việc để kiểm tra người dùng (tương tự như bitcoin) và quy định về spam/ddos. Do tính chất của p2p, kiến ​​trúc POW khả thi duy nhất mà tôi đã thấy là mô hình xác minh giải pháp. Các mô hình khác (thách thức-phản ứng) dường như rất dễ bị tấn công Sybil, vì vậy tôi không xem xét chúng.GPU- "Proof" Hash Function (s)?

Hoàn nguyên đảo ngược có vẻ là một cách tuyệt vời để thực hiện, nhưng vấn đề bẻ cong GPU làm hỏng tính công bằng của giao thức bằng một vài đơn vị độ lớn. Do đó, tôi đang cố gắng để xác định các thuật toán băm khó khăn/không khả thi để tăng tốc vượt ra ngoài khả năng của một CPU đa lõi hiện đại bằng cách sử dụng GPU.

Ý tưởng?

Trả lời

5

Sơ đồ hoạt động bằng chứng Cuckoo Cycle của tôi dường như phù hợp với hóa đơn, vì nó là 5% tính toán và 95% truy cập ngẫu nhiên vào bộ nhớ dùng chung trên toàn cầu, phát sinh thời gian chờ dài . Bộ nhớ GPU bị giới hạn và có độ trễ tồi tệ hơn nhiều, và không đủ tính toán để giữ hơn một vài chục CPU-CPU bận.

Các tính năng khác: nó có thể yêu cầu bất kỳ lượng RAM mong muốn nào và có thể xác minh ngay lập tức.

Xem https://github.com/tromp/cuckoo cho báo cáo và triển khai.

+0

Công việc tuyệt vời! –

+0

Thú vị, nhưng câu hỏi lớn là, nó cắt nó như là một thuật toán băm mật mã, hoặc có bất kỳ điểm yếu? –

+0

Nó không phải là một thuật toán băm. Có lẽ http://cryptorials.io/beyond-hashcash-proof-work-theres-mining-hashing (có nhiều thứ để khai thác hơn băm) giải thích sự nhầm lẫn của bạn ... –

2

Tất cả các cuộc đua vũ trang - trong khi chức năng băm được triển khai dễ dàng để tăng tốc GPU và các hàm băm mới hơn/lớn hơn/dài hơn không phải do giới hạn phần cứng hiện tại. .

Đề xuất đầu tiên của tôi là để ứng dụng cung cấp "bộ băm", được xác định bằng số nguyên dương. Khi thời gian trôi qua, bạn có thể chuyển sang các hoạt động mới hơn và tốn kém hơn và có phần mềm mới ngừng chấp nhận các bằng chứng từ các bộ băm được đánh số thấp hơn.

Ngoài ra, không phải là truyền thống. Có lẽ sử dụng một sự kết hợp của tất cả các ứng viên SHA-3 mới (tất cả trong số họ, trong một số loạt xếp tầng). Sử dụng thuật toán băm khối mật mã (AES có thể được chuyển thành hàm băm ngẫu nhiên). Làm một số lượng lớn các viên đạn. Có lẽ yêu cầu ký bằng các khóa RSA rất lớn (4096 bit và hơn thế nữa, và yêu cầu các khóa "ném đi" độc đáo).

Bạn đang mua thời gian, do đó cơ chế không dùng nữa quan trọng hơn nhiều so với lựa chọn thuật toán thực tế.

+0

Tôi đã định vị những gì dường như là một ứng cử viên khá tốt cho đến nay ... http://www.usenix.org/event/usenix99/provos/provos_html/node4.html Lịch biểu quan trọng là biến vì vậy khó có thể được tăng lên theo thời gian và mỗi lần thực thi yêu cầu 4KB bộ nhớ cho S-box, vì vậy các GPU nên có một thời gian rất khó xử lý việc này song song. –

0

Tôi muốn giới thiệu một cái gì đó như BCrypt trong đó hàm băm có số lượng vòng thay đổi, thường là trong hàng nghìn. Miễn là hàm băm ở cốt lõi của thuật toán vẫn an toàn, nó có thể được thực hiện nhiều khả năng chống lại sức mạnh vũ phu khi tiến độ thời gian bằng cách tăng số vòng.