Satoshi Nakamoto
satoshin@gmx.com
www.bitcoin.org

Tóm tắt: Một phiên bản tiền điện tử hoàn toàn ngang hàng sẽ cho phép thanh toán trực tuyến được gửi trực tiếp từ bên này sang bên khác mà không cần thông qua tổ chức tài chính. Chữ ký số cung cấp một phần của giải pháp, nhưng lợi ích chính sẽ mất đi nếu vẫn cần bên thứ ba đáng tin cậy để ngăn chặn chi tiêu gấp đôi. Chúng tôi đề xuất một giải pháp cho vấn đề chi tiêu gấp đôi bằng cách sử dụng mạng ngang hàng. Mạng đóng dấu thời gian giao dịch bằng cách băm chúng thành chuỗi bằng chứng công việc dựa trên băm đang diễn ra, tạo thành một bản ghi không thể thay đổi nếu không thực hiện lại bằng chứng công việc. Chuỗi dài nhất không chỉ đóng vai trò là bằng chứng về trình tự các sự kiện được chứng kiến mà còn là bằng chứng cho thấy nó đến từ nhóm sức mạnh CPU lớn nhất. Miễn là phần lớn sức mạnh CPU được kiểm soát bởi các nút không hợp tác để tấn công mạng, chúng sẽ tạo ra chuỗi dài nhất và vượt qua những kẻ tấn công. Bản thân mạng yêu cầu cấu trúc tối thiểu. Các tin nhắn được phát trên cơ sở nỗ lực tốt nhất và các nút có thể rời khỏi và tham gia lại mạng theo ý muốn, chấp nhận chuỗi bằng chứng công việc dài nhất làm bằng chứng về những gì đã xảy ra trong khi chúng không có mặt.
1. Giới thiệu
Thương mại trên Internet đã phụ thuộc gần như hoàn toàn vào các tổ chức tài chính đóng vai trò là bên thứ ba đáng tin cậy để xử lý các khoản thanh toán điện tử. Mặc dù hệ thống hoạt động đủ tốt cho hầu hết các giao dịch, nhưng nó vẫn mắc phải những điểm yếu cố hữu của mô hình dựa trên sự tin cậy. Các giao dịch hoàn toàn không thể đảo ngược thực sự không khả thi, vì các tổ chức tài chính không thể tránh khỏi việc hòa giải các tranh chấp. Chi phí hòa giải làm tăng chi phí giao dịch, hạn chế quy mô giao dịch thực tế tối thiểu và cắt đứt khả năng thực hiện các giao dịch nhỏ thông thường, và có chi phí lớn hơn khi mất khả năng thực hiện các khoản thanh toán không thể đảo ngược cho các dịch vụ không thể đảo ngược. Với khả năng đảo ngược, nhu cầu về sự tin cậy lan rộng. Các thương gia phải cảnh giác với khách hàng của mình, làm phiền họ để có thêm thông tin hơn mức họ cần. Một tỷ lệ gian lận nhất định được chấp nhận là không thể tránh khỏi. Những chi phí và sự không chắc chắn về thanh toán này có thể tránh được khi trực tiếp sử dụng tiền tệ vật lý, nhưng không có cơ chế nào để thực hiện thanh toán qua kênh truyền thông mà không có bên đáng tin cậy.
Điều cần thiết là một hệ thống thanh toán điện tử dựa trên bằng chứng mật mã thay vì sự tin tưởng, cho phép bất kỳ hai bên nào muốn giao dịch trực tiếp với nhau mà không cần bên thứ ba đáng tin cậy. Các giao dịch không thực tế về mặt tính toán để đảo ngược sẽ bảo vệ người bán khỏi gian lận và các cơ chế ký quỹ thông thường có thể dễ dàng được triển khai để bảo vệ người mua. Trong bài báo này, chúng tôi đề xuất một giải pháp cho vấn đề chi tiêu gấp đôi bằng cách sử dụng máy chủ dấu thời gian phân tán ngang hàng để tạo bằng chứng tính toán về thứ tự thời gian của các giao dịch. Hệ thống an toàn miễn là các nút trung thực cùng nhau kiểm soát nhiều sức mạnh CPU hơn bất kỳ nhóm nút tấn công hợp tác nào.
2. Giao dịch
Chúng tôi định nghĩa một đồng tiền điện tử là một chuỗi chữ ký số. Mỗi chủ sở hữu chuyển đồng tiền cho người tiếp theo bằng cách ký số vào hàm băm của giao dịch trước đó và khóa công khai của chủ sở hữu tiếp theo và thêm chúng vào cuối đồng tiền. Người nhận có thể xác minh chữ ký để xác minh chuỗi quyền sở hữu.

Vấn đề tất nhiên là người nhận tiền không thể xác minh rằng một trong những chủ sở hữu không chi tiêu gấp đôi đồng tiền. Một giải pháp phổ biến là giới thiệu một cơ quan trung ương đáng tin cậy, hay xưởng đúc tiền, kiểm tra mọi giao dịch để phát hiện chi tiêu gấp đôi. Sau mỗi giao dịch, đồng tiền phải được trả lại xưởng đúc tiền để phát hành một đồng tiền mới và chỉ những đồng tiền được phát hành trực tiếp từ xưởng đúc tiền mới được tin tưởng là không bị chi tiêu gấp đôi. Vấn đề với giải pháp này là số phận của toàn bộ hệ thống tiền tệ phụ thuộc vào công ty điều hành xưởng đúc tiền, với mọi giao dịch phải thông qua họ, giống như một ngân hàng. Chúng ta cần một cách để người nhận tiền biết rằng những chủ sở hữu trước đó đã không ký bất kỳ giao dịch nào trước đó. Đối với mục đích của chúng tôi, giao dịch sớm nhất là giao dịch được tính, vì vậy chúng tôi không quan tâm đến những nỗ lực chi tiêu gấp đôi sau đó. Cách duy nhất để xác nhận sự vắng mặt của một giao dịch là nhận biết tất cả các giao dịch. Trong mô hình dựa trên xưởng đúc tiền, xưởng đúc tiền nhận biết tất cả các giao dịch và quyết định giao dịch nào đến trước. Để thực hiện điều này mà không cần bên đáng tin cậy, các giao dịch phải được công bố công khai [1] và chúng ta cần một hệ thống để những người tham gia đồng ý về một lịch sử duy nhất về thứ tự mà họ đã nhận được. Người nhận tiền cần bằng chứng rằng tại thời điểm của mỗi giao dịch, phần lớn các nút đã đồng ý rằng đó là giao dịch đầu tiên được nhận.
3. Máy chủ dấu thời gian
Giải pháp chúng tôi đề xuất bắt đầu bằng một máy chủ dấu thời gian. Máy chủ dấu thời gian hoạt động bằng cách lấy một hàm băm của một khối các mục cần đóng dấu thời gian và công bố hàm băm rộng rãi, chẳng hạn như trên báo hoặc bài đăng trên Usenet [2-5]. Dấu thời gian chứng minh rằng dữ liệu phải tồn tại tại thời điểm đó, rõ ràng là vậy, để có thể đưa vào hàm băm. Mỗi dấu thời gian bao gồm dấu thời gian trước đó trong hàm băm của nó, tạo thành một chuỗi, với mỗi dấu thời gian bổ sung củng cố các dấu thời gian trước đó.

4. Bằng chứng công việc
Để triển khai máy chủ dấu thời gian phân tán trên cơ sở ngang hàng, chúng ta sẽ cần sử dụng hệ thống bằng chứng công việc tương tự như Hashcash của Adam Back [6], thay vì các bài đăng trên báo hoặc Usenet. Bằng chứng công việc bao gồm việc quét giá trị khi được băm, chẳng hạn như với SHA-256, băm bắt đầu bằng một số bit không. Công việc trung bình cần thiết là theo cấp số nhân theo số bit không cần thiết và có thể được xác minh bằng cách thực hiện một băm duy nhất.
Đối với mạng dấu thời gian của chúng tôi, chúng tôi triển khai bằng chứng công việc bằng cách tăng một nonce trong khối cho đến khi tìm thấy giá trị cung cấp cho băm của khối các bit zero cần thiết. Sau khi nỗ lực CPU đã được sử dụng để làm cho nó đáp ứng bằng chứng công việc, khối không thể được thay đổi mà không làm lại công việc. Vì các khối sau được nối tiếp sau nó, công việc thay đổi khối sẽ bao gồm việc làm lại tất cả các khối sau nó.

Bằng chứng công việc cũng giải quyết vấn đề xác định sự biểu diễn trong quá trình ra quyết định của đa số. Nếu đa số dựa trên một địa chỉ IP-một-phiếu bầu, thì nó có thể bị phá hoại bởi bất kỳ ai có thể phân bổ nhiều IP. Bằng chứng công việc về cơ bản là một CPU-một-phiếu bầu. Quyết định của đa số được biểu diễn bằng chuỗi dài nhất, có nỗ lực bằng chứng công việc lớn nhất được đầu tư vào đó. Nếu phần lớn sức mạnh CPU được kiểm soát bởi các nút trung thực, thì chuỗi trung thực sẽ phát triển nhanh nhất và vượt qua bất kỳ chuỗi cạnh tranh nào. Để sửa đổi một khối trước đó, kẻ tấn công sẽ phải làm lại bằng chứng công việc của khối đó và tất cả các khối sau đó, sau đó bắt kịp và vượt qua công việc của các nút trung thực. Chúng tôi sẽ chỉ ra sau rằng khả năng kẻ tấn công chậm hơn bắt kịp sẽ giảm theo cấp số nhân khi các khối tiếp theo được thêm vào.
Để bù đắp cho tốc độ phần cứng ngày càng tăng và sự quan tâm khác nhau trong việc chạy các nút theo thời gian, độ khó của bằng chứng công việc được xác định bằng cách trung bình động nhắm mục tiêu vào số khối trung bình mỗi giờ. Nếu chúng được tạo ra quá nhanh, độ khó sẽ tăng lên.
5. Mạng lưới
Các bước để chạy mạng như sau:
1) Các giao dịch mới được phát tới tất cả các nút.
2) Mỗi nút thu thập các giao dịch mới vào một khối.
3) Mỗi nút sẽ tìm kiếm bằng chứng công việc khó khăn cho khối của mình.
4) Khi một nút tìm thấy bằng chứng công việc, nó sẽ phát khối tới tất cả các nút.
5) Các nút chỉ chấp nhận khối nếu tất cả các giao dịch trong đó hợp lệ và chưa được chi tiêu.
6) Các nút thể hiện sự chấp nhận khối của mình bằng cách tạo khối tiếp theo trong chuỗi, sử dụng hàm băm của khối được chấp nhận làm hàm băm trước đó.
Các nút luôn coi chuỗi dài nhất là chuỗi đúng và sẽ tiếp tục mở rộng chuỗi đó. Nếu hai nút phát các phiên bản khác nhau của khối tiếp theo cùng lúc, một số nút có thể nhận được một hoặc cả hai trước. Trong trường hợp đó, chúng sẽ xử lý chuỗi đầu tiên chúng nhận được, nhưng lưu nhánh kia trong trường hợp nó trở nên dài hơn. Sự ràng buộc sẽ bị phá vỡ khi bằng chứng công việc tiếp theo được tìm thấy và một nhánh trở nên dài hơn; các nút đang xử lý nhánh kia sau đó sẽ chuyển sang nhánh dài hơn.
Phát sóng giao dịch mới không nhất thiết phải đến tất cả các nút. Miễn là chúng đến được nhiều nút, chúng sẽ sớm vào được một khối. Phát sóng khối cũng có thể chấp nhận các tin nhắn bị loại bỏ. Nếu một nút không nhận được một khối, nó sẽ yêu cầu khối đó khi nhận được khối tiếp theo và nhận ra rằng nó đã bỏ lỡ một khối.
6. Khuyến khích
Theo quy ước, giao dịch đầu tiên trong một khối là một giao dịch đặc biệt bắt đầu một đồng tiền mới do người tạo khối sở hữu. Điều này tạo thêm động lực cho các nút hỗ trợ mạng lưới và cung cấp một cách để ban đầu phân phối tiền vào lưu thông vì không có cơ quan trung ương nào phát hành chúng. Việc bổ sung đều đặn một lượng tiền mới không đổi tương tự như việc thợ đào vàng sử dụng tài nguyên để thêm vàng vào lưu thông. Trong trường hợp của chúng tôi, đó là thời gian CPU và điện năng được sử dụng.
Khuyến khích cũng có thể được tài trợ bằng phí giao dịch. Nếu giá trị đầu ra của một giao dịch nhỏ hơn giá trị đầu vào của nó, thì sự khác biệt là phí giao dịch được thêm vào giá trị khuyến khích của khối chứa giao dịch. Khi một số lượng tiền xu được xác định trước đã đi vào lưu thông, khuyến khích có thể chuyển hoàn toàn sang phí giao dịch và hoàn toàn không có lạm phát.
Động cơ này có thể giúp khuyến khích các nút trung thực. Nếu một kẻ tấn công tham lam có thể tập hợp nhiều sức mạnh CPU hơn tất cả các nút trung thực, anh ta sẽ phải lựa chọn giữa việc sử dụng nó để lừa đảo mọi người bằng cách lấy lại khoản thanh toán của mình hoặc sử dụng nó để tạo ra các đồng tiền mới. Anh ta nên thấy rằng việc chơi theo các quy tắc có lợi hơn, các quy tắc như vậy có lợi cho anh ta với nhiều đồng tiền mới hơn tất cả những người khác cộng lại, hơn là làm suy yếu hệ thống và tính hợp lệ của sự giàu có của chính mình.
7. Thu hồi không gian đĩa
Khi giao dịch mới nhất trong một đồng tiền được chôn dưới đủ khối, các giao dịch đã chi trước đó có thể bị loại bỏ để tiết kiệm dung lượng đĩa. Để tạo điều kiện thuận lợi cho việc này mà không phá vỡ hàm băm của khối, các giao dịch được băm trong Cây Merkle [7][2][5], chỉ có gốc được bao gồm trong hàm băm của khối. Sau đó, các khối cũ có thể được nén bằng cách cắt bỏ các nhánh của cây. Các hàm băm bên trong không cần phải được lưu trữ.

Một tiêu đề khối không có giao dịch sẽ có kích thước khoảng 80 byte. Nếu chúng ta cho rằng các khối được tạo ra sau mỗi 10 phút, thì 80 byte 6 24 * 365 = 4,2 MB mỗi năm. Với các hệ thống máy tính thường được bán với 2 GB RAM tính đến năm 2008 và Định luật Moore dự đoán mức tăng trưởng hiện tại là 1,2 GB mỗi năm, thì lưu trữ sẽ không phải là vấn đề ngay cả khi các tiêu đề khối phải được lưu trong bộ nhớ.
8. Xác minh thanh toán đơn giản
Có thể xác minh thanh toán mà không cần chạy một nút mạng đầy đủ. Người dùng chỉ cần giữ một bản sao của tiêu đề khối của chuỗi bằng chứng công việc dài nhất, mà anh ta có thể lấy được bằng cách truy vấn các nút mạng cho đến khi anh ta tin rằng mình có chuỗi dài nhất và lấy nhánh Merkle liên kết giao dịch với khối có dấu thời gian của nó. Anh ta không thể tự mình kiểm tra giao dịch, nhưng bằng cách liên kết nó với một vị trí trong chuỗi, anh ta có thể thấy rằng một nút mạng đã chấp nhận nó và các khối được thêm vào sau nó xác nhận thêm rằng mạng đã chấp nhận nó.

Như vậy, việc xác minh là đáng tin cậy miễn là các nút trung thực kiểm soát mạng, nhưng dễ bị tấn công hơn nếu mạng bị kẻ tấn công chế ngự. Trong khi các nút mạng có thể tự xác minh các giao dịch, phương pháp đơn giản hóa có thể bị đánh lừa bởi các giao dịch do kẻ tấn công tạo ra miễn là kẻ tấn công có thể tiếp tục chế ngự mạng. Một chiến lược để bảo vệ chống lại điều này là chấp nhận cảnh báo từ các nút mạng khi chúng phát hiện ra một khối không hợp lệ, nhắc nhở phần mềm của người dùng tải xuống toàn bộ khối và cảnh báo các giao dịch để xác nhận sự không nhất quán. Các doanh nghiệp nhận được các khoản thanh toán thường xuyên có thể vẫn muốn chạy các nút của riêng họ để bảo mật độc lập hơn và xác minh nhanh hơn.
9. Kết hợp và chia tách giá trị
Mặc dù có thể xử lý từng đồng xu riêng lẻ, nhưng sẽ rất khó khăn khi thực hiện một giao dịch riêng cho mỗi xu trong một lần chuyển tiền. Để cho phép chia nhỏ và kết hợp giá trị, các giao dịch chứa nhiều đầu vào và đầu ra. Thông thường sẽ có một đầu vào duy nhất từ một giao dịch trước đó lớn hơn hoặc nhiều đầu vào kết hợp các số tiền nhỏ hơn và nhiều nhất là hai đầu ra: một đầu ra cho khoản thanh toán và một đầu ra trả lại tiền thừa, nếu có, cho người gửi.

Cần lưu ý rằng việc phân tán, trong đó một giao dịch phụ thuộc vào một số giao dịch và các giao dịch đó phụ thuộc vào nhiều giao dịch khác nữa, không phải là vấn đề ở đây. Không bao giờ cần phải trích xuất một bản sao độc lập hoàn chỉnh của lịch sử giao dịch.
10. Quyền riêng tư
Mô hình ngân hàng truyền thống đạt được mức độ riêng tư bằng cách hạn chế quyền truy cập thông tin cho các bên liên quan và bên thứ ba đáng tin cậy. Sự cần thiết phải công bố công khai tất cả các giao dịch ngăn cản phương pháp này, nhưng quyền riêng tư vẫn có thể được duy trì bằng cách phá vỡ luồng thông tin ở một nơi khác: bằng cách giữ khóa công khai ẩn danh. Công chúng có thể thấy rằng ai đó đang gửi một số tiền cho người khác, nhưng không có thông tin liên kết giao dịch với bất kỳ ai. Điều này tương tự như mức độ thông tin được công bố bởi các sàn giao dịch chứng khoán, nơi thời gian và quy mô của từng giao dịch, "băng ghi âm", được công khai, nhưng không cho biết các bên là ai.

Là một tường lửa bổ sung, một cặp khóa mới nên được sử dụng cho mỗi giao dịch để ngăn chúng được liên kết với một chủ sở hữu chung. Một số liên kết vẫn không thể tránh khỏi với các giao dịch nhiều đầu vào, điều này nhất thiết phải tiết lộ rằng đầu vào của chúng thuộc sở hữu của cùng một chủ sở hữu. Rủi ro là nếu chủ sở hữu của một khóa bị tiết lộ, việc liên kết có thể tiết lộ các giao dịch khác thuộc về cùng một chủ sở hữu.
11. Tính toán
Chúng tôi xem xét kịch bản kẻ tấn công cố gắng tạo ra một chuỗi thay thế nhanh hơn chuỗi trung thực. Ngay cả khi điều này được thực hiện, nó cũng không khiến hệ thống mở ra những thay đổi tùy ý, chẳng hạn như tạo ra giá trị từ hư không hoặc lấy tiền không bao giờ thuộc về kẻ tấn công. Các nút sẽ không chấp nhận giao dịch không hợp lệ làm phương thức thanh toán và các nút trung thực sẽ không bao giờ chấp nhận khối chứa chúng. Kẻ tấn công chỉ có thể cố gắng thay đổi một trong các giao dịch của chính mình để lấy lại số tiền mà anh ta vừa chi tiêu. Cuộc đua giữa chuỗi trung thực và chuỗi kẻ tấn công có thể được mô tả là Bước ngẫu nhiên nhị thức. Sự kiện thành công là chuỗi trung thực được mở rộng thêm một khối, tăng khoảng cách dẫn trước của nó lên +1 và sự kiện thất bại là chuỗi kẻ tấn công được mở rộng thêm một khối, giảm khoảng cách đi -1.
Xác suất kẻ tấn công bắt kịp từ một khoản thâm hụt nhất định tương tự như bài toán Gambler's Ruin. Giả sử một người đánh bạc có tín dụng không giới hạn bắt đầu ở mức thâm hụt và có khả năng chơi vô số lần thử để cố gắng đạt điểm hòa vốn. Chúng ta có thể tính xác suất anh ta đạt điểm hòa vốn hoặc kẻ tấn công bắt kịp chuỗi trung thực như sau [8]:
p = xác suất một nút trung thực tìm thấy khối tiếp theo
q = xác suất kẻ tấn công tìm thấy khối tiếp theo
qz = xác suất kẻ tấn công sẽ đuổi kịp từ z khối phía sau
qz= { 1 nếu p≤q
(q/ p)^z nếu p>q}
Với giả định của chúng ta là p > q, xác suất giảm theo cấp số nhân khi số khối mà kẻ tấn công phải bắt kịp tăng lên. Với tỷ lệ cược chống lại anh ta, nếu anh ta không thực hiện một cú lao may mắn về phía trước ngay từ đầu, cơ hội của anh ta trở nên cực kỳ nhỏ khi anh ta tụt lại phía sau.
Bây giờ chúng ta xem xét người nhận giao dịch mới cần phải đợi bao lâu trước khi đủ chắc chắn rằng người gửi không thể thay đổi giao dịch. Chúng ta giả sử người gửi là kẻ tấn công muốn khiến người nhận tin rằng anh ta đã trả tiền cho anh ta trong một thời gian, sau đó chuyển sang trả lại cho chính mình sau một thời gian trôi qua. Người nhận sẽ được cảnh báo khi điều đó xảy ra, nhưng người gửi hy vọng rằng sẽ quá muộn.
Người nhận tạo ra một cặp khóa mới và cung cấp khóa công khai cho người gửi ngay trước khi ký. Điều này ngăn người gửi chuẩn bị một chuỗi khối trước thời hạn bằng cách liên tục làm việc trên chuỗi khối cho đến khi anh ta đủ may mắn để đi đủ xa, sau đó thực hiện giao dịch tại thời điểm đó. Sau khi giao dịch được gửi đi, người gửi không trung thực bắt đầu làm việc bí mật trên một chuỗi song song chứa phiên bản thay thế của giao dịch của anh ta.
Người nhận đợi cho đến khi giao dịch được thêm vào một khối và z khối đã được liên kết sau đó. Người nhận không biết chính xác lượng tiến trình mà kẻ tấn công đã thực hiện, nhưng giả sử các khối trung thực mất thời gian dự kiến trung bình cho mỗi khối, thì tiến trình tiềm năng của kẻ tấn công sẽ là phân phối Poisson với giá trị dự kiến:

Đang chuyển đổi sang mã C...

Chạy một số kết quả, chúng ta có thể thấy xác suất giảm theo cấp số nhân với z.
q=0,1
z=0 P=1.0000000
z=1 P=0,2045873
z=2 P=0,0509779
z=3 P=0,0131722
z=4 P=0,0034552
z=5 P=0,0009137
z=6 P=0,0002428
z=7 P=0,0000647
z=8 P=0,0000173
z=9 P=0,0000046
z=10 P=0,0000012
q=0,3
z=0 P=1.0000000
z=5 P=0,1773523
z=10 P=0.0416605
z=15 P=0,0101008
z=20 P=0,0024804
z=25 P=0,0006132
z=30 P=0,0001522
z=35 P=0,0000379
z=40 P=0,0000095
z=45 P=0,0000024
z=50 P=0,0000006
Giải cho P nhỏ hơn 0,1%...
P ở mức 0,001
q=0,10z=5
q=0,15z=8
q=0,20 z=11
q=0,25z=15
q=0,30 z=24
q=0,35z=41
q=0,40 z=89
q=0,45z=340
12. Kết luận
Chúng tôi đã đề xuất một hệ thống giao dịch điện tử mà không cần dựa vào lòng tin. Chúng tôi bắt đầu với khuôn khổ thông thường của các đồng tiền được tạo ra từ chữ ký số, cung cấp khả năng kiểm soát quyền sở hữu mạnh mẽ, nhưng không hoàn thiện nếu không có cách ngăn chặn chi tiêu gấp đôi. Để giải quyết vấn đề này, chúng tôi đã đề xuất một mạng ngang hàng sử dụng bằng chứng công việc để ghi lại lịch sử giao dịch công khai, điều này nhanh chóng trở nên không thực tế về mặt tính toán đối với kẻ tấn công khi thay đổi nếu các nút trung thực kiểm soát phần lớn sức mạnh CPU. Mạng này mạnh mẽ trong sự đơn giản không có cấu trúc của nó. Các nút hoạt động cùng một lúc với ít sự phối hợp. Chúng không cần phải được xác định, vì các tin nhắn không được định tuyến đến bất kỳ vị trí cụ thể nào và chỉ cần được chuyển phát theo cơ sở nỗ lực tốt nhất. Các nút có thể rời khỏi và tham gia lại mạng theo ý muốn, chấp nhận chuỗi bằng chứng công việc làm bằng chứng về những gì đã xảy ra trong khi chúng không có mặt. Chúng bỏ phiếu bằng sức mạnh CPU của mình, thể hiện sự chấp nhận các khối hợp lệ bằng cách mở rộng chúng và từ chối các khối không hợp lệ bằng cách từ chối làm việc trên chúng. Bất kỳ quy tắc và động lực cần thiết nào cũng có thể được thực thi bằng cơ chế đồng thuận này.
Tài liệu tham khảo
[1] W. Dai, "tiền b," http://www.weidai.com/bmoney.txt, 1998.
[2] H. Massias, X.S. Avila và J.-J. Quisquater, "Thiết kế dịch vụ đóng dấu thời gian an toàn với mức tối thiểu
yêu cầu về lòng tin", Trong Hội thảo lần thứ 20 về Lý thuyết thông tin tại Benelux, tháng 5 năm 1999.
[3] S. Haber, W.S. Stornetta, "Cách đóng dấu thời gian cho một tài liệu kỹ thuật số", Trong Tạp chí mật mã học, tập 3, số
2, trang 99-111, 1991.
[4] D. Bayer, S. Haber, W.S. Stornetta, "Cải thiện hiệu quả và độ tin cậy của việc đóng dấu thời gian kỹ thuật số",
Trong Sequences II: Phương pháp trong truyền thông, bảo mật và khoa học máy tính, trang 329-334, 1993.
[5] S. Haber, W.S. Stornetta, "Tên an toàn cho chuỗi bit," Trong Biên bản Hội nghị ACM lần thứ 4
về An ninh máy tính và truyền thông, trang 28-35, tháng 4 năm 1997.
[6] A. Back, "Hashcash - một biện pháp đối phó với tình trạng từ chối dịch vụ",
http://www.hashcash.org/papers/hashcash.pdf, 2002.
[7] R.C. Merkle, "Giao thức cho hệ thống mật mã khóa công khai," Trong Proc. 1980 Hội thảo về An ninh và
Quyền riêng tư, IEEE Computer Society, trang 122-133, tháng 4 năm 1980.
[8] W. Feller, "Giới thiệu về lý thuyết xác suất và các ứng dụng của nó", 1957.



