Blockchain _ Ch8

Chương 8: Bằng chứng công việc


Vì tất cả các giao dịch được đóng dấu thời gian, chúng tôi cần triển khai máy chủ dấu thời gian phân tán trên mạng ngang hàng. Điều này đòi hỏi một số triển khai bổ sung và đó là Proof-of-Work mà tôi sẽ mô tả ngay bây giờ. Đối với mỗi khối, bây giờ chúng tôi thêm một mục nữa gọi là Nonce như trong hình bên dưới -

Hình 9

Nonce là một số sao cho hàm băm của khối đáp ứng một tiêu chí nhất định. Tiêu chí này có thể là hàm băm được tạo phải có bốn chữ số hàng đầu của nó bằng không.
Do đó, hàm băm được tạo sẽ trông giống như 000010101010xxx. Nói chung, công cụ khai thác bắt đầu với giá trị Nonce bằng 0 và tiếp tục tăng nó cho đến khi hàm băm được tạo đáp ứng tiêu chí đã chỉ định.
Lưu ý rằng việc tạo băm hoạt động ngẫu nhiên và nằm ngoài tầm kiểm soát của bạn - đó là bạn không thể buộc hàm băm tạo ra một hàm băm nhất định. Do đó, có thể mất vài lần lặp cho đến khi hàm băm mong muốn với bốn số 0 đứng đầu được tạo. Thời gian dự kiến ​​để tạo một khối trong hệ thống bitcoin là 10 phút. Khi người khai thác khai thác thành công khối, anh ta giải phóng nó trong hệ thống khiến nó trở thành khối cuối cùng trong chuỗi.
Lưu ý rằng có nhiều thợ mỏ cạnh tranh để tạo ra khối hợp pháp. Hệ thống Bitcoin thưởng cho người khai thác thành công đầu tiên bằng cách cho anh ta một số bitcoin nhất định. Nói chung, người khai thác có sức mạnh tính toán nhiều hơn có thể là người chiến thắng sớm. Điều này có thể gây ra các cuộc tấn công vào toàn bộ hệ thống bởi những người sở hữu sức mạnh xử lý khổng lồ. Tôi sẽ mô tả các cuộc tấn công và làm thế nào chúng được giảm nhẹ vào cuối hướng dẫn này.


**********

Mục lục: 


Chương 1: Giới thiệu về Blockchain 
Chương 2: Chi tiêu gấp đôi (Double Spending) 
Chương 3: Sơ lược về lịch sử phát triển của Blockchain 
Chương 4: PKI (Public Key Cryptography) - Mật mã khóa công khai 
Chương 5: Hàm Băm (Hashing) 
Chương 6: Khai phá (Mining) 
Chương 7: Chuỗi khối (Chaining Blocks) 
Chương 8: Bằng chứng công việc 
Chương 9: Mạng và khai thác 
Chương 10: Phần thưởng cho người khai thác 
Chương 11: Cây Merkle (Merkle Tree) 
Chương 12: Xác minh thanh toán 
Chương 13: Giải quyết xung đột 
Chương 14: Quyền riêng tư 
Chương 15: Giảm thiểu tấn công 
Chương 16: Kết luận

Categories

AI (13) AI programming (1) ASP (1) Android (32) App Honeygain (4) Assembly (17) Biểu diễn thuật toán (1) Bubble-Sort (1) Bài giảng (2) Bài giảng lập trình C và Cpp (21) Bài viết hay (108) Bản đồ tư duy (1) C Plus Plus (103) C/C++ (16) CDSL phân tán (1) CSS (2) Cơ sở dữ liệu (11) Danh ngôn lập trình (1) Datamining (4) Genetic Algorithm (1) Giáo trình (2) Giải thuật tiến hóa - thuật toán di truyền (2) Google App Engine (2) Góc học tập (34) HTML (1) Hướng dẫn kiếm tiền online tại nhà (6) Hướng dẫn sử dụng Emu8086 (1) Học lập trình (131) Học lập trình C và CPP qua ví dụ (17) Java (54) Java Căn bản (6) JavaScript (5) Kỹ năng đọc hiệu quả (1) Kỹ thuật lập trình (16) Kỹ thuật đồ họa máy tính (10) Lý thuyết Cơ sở dữ liệu (2) Lý thuyết đồ thị (11) Lập trình Cơ sở dữ liệu (2) Lập trình Python (2) Lập trình căn bản (8) Lập trình hướng đối tượng với Java (7) Lập trình mobile (9) Lập trình mạng (6) Lập trình nhúng (1) Lập trình trí tuệ nhân tạo (2) ML (1) MMO (6) MS Access (1) Machine learning (2) Mạng máy tính (1) Mẹo tìm kiếm trên Google (1) Nghiên cứu khoa học (3) Ngôn ngữ lập trình (2) Những cuốn sách hay mà bạn nên đọc khi còn trẻ (1) Pascal (3) Phương pháp tính toán tối ưu (2) Phương pháp tối ưu (2) Quản lý dự án CNTT (1) SEO (1) SQL (5) Swift (9) Sách hay (4) Thiết kế Web (2) Thuật toán (51) Thuật toán Sắp Xếp -Sort (9) Thuật toán Tìm kiếm - Search (5) Thuật toán di truyền (4) Thực hành Android (2) Tin học văn phòng (5) Tiện ích máy tính (3) Toán rời rạc (13) Treo máy kiếm tiền (3) Trí tuệ nhân tạo (18) Tài liệu tham khảo (4) Tìm hiểu Blockchain (2) Tự học Android (3) Tự học Android qua ví dụ (1) Tự học JavaScript (1) Tự học lập trình (9) Tự học lập trình Android (17) Tự học lập trình C và CPP (14) Tự học lập trình java qua các ví dụ (8) XML (1) blockchain (2) bài giảng quản lý dự án CNTT (1) bài tập java (3) bài tập lập trình (4) cấu trúc dữ liệu giải thuật (15) hướng dẫn viết báo (1) học lập trình Java (11) học máy (5) hợp ngữ (8) lập trình viên (3) phưng pháp đơn hình (2) thuật toán AI (2) tài liệu CNTT miễn phí (3) tính toán tối ưu (1) tự học lập trình iOS (8) tự học lập trình python (1) ví dụ Assembly (1) Đại số gia tử và ứng dụng (1) Đồ họa (4)