© CCFOUND sp. z o.o. sp.k.

Bitcoin: Hệ thống tiền điện tử ngang hàng Peer-to-Peer

Satoshi Nakamoto October 31, 2008 Abstract Một phiên bản hoàn toàn dựa trên mô hình đồng ngang hàng của tiền điện tử sẽ cho phép việc thanh toán trực tuyến được gửi trực tiếp từ một bên sang bên kia mà không cần thông qua một cơ sở tài chính. Chữ ký số có phần giải quyết vấn đề, nhưng các lợi ích chính sẽ mất nếu vẫn cần một bên thứ ba đáng tin cậy để ngăn chặn việc chi tiền gấp đôi. Chúng tôi đề xuất một giải pháp cho vấn đề chi tiền gấp đôi bằng cách sử dụng một mạng đồng ngang hàng. Mạng lưới đánh dấu thời gian cho các giao dịch bằng cách băm chúngx thành một chuỗi liên tục của các chứng chỉ công việc chứng minh dựa trên băm, tạo thành một bản ghi không thể thay đổi mà không cần phải làm lại công việc chứng minh. Chuỗi dài nhất không chỉ phục vụ như là chứng cứ của chuỗi sự kiện đã chứng kiến, mà còn chứng cứ rằng nó đến từ bộ xử lý CPU lớn nhất. Miễn là đa số năng lực CPU được kiểm soát bởi các nút không hợp tác để tấn công mạng, họ sẽ tạo ra chuỗi dài nhất và vượt xa kẻ tấn công. Chính mạng lưới đòi hỏi cấu trúc tối thiểu. Tin nhắn được tuyên truyền trên cơ sở tốt nhất và các nút có thể rời khỏi và tham gia lại vào mạng theo ý muốn, chấp nhận chuỗi chứng chỉ công việc dài nhất là chứng cứ cho điều gì đã xảy ra trong thời gian họ rời đi. 1. Giới thiệu Thương mại trên Internet đã phần lớn dựa vào việc sử dụng các tổ chức tài chính phục vụ như bên thứ ba đáng tin cậy để xử lý 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 vẫn mắc phải những yếu điểm 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 thể, vì cơ quan tài chính không thể tránh khỏi việc trung gian xảy ra tranh chấp. Chi phí của việc trung gian tăng lên làm tăng chi phí giao dịch tối thiểu và hạn chế khả năng thực hiện giao dịch nhỏ lẻ, và có một chi phí rộng lớn trong việc mất khả năng thực hiệ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. Thương gia phải cảnh giác với khách hàng của họ, làm phiền họ để có được nhiều thông tin hơn so với những thông tin họ thực sự cần. Một phần trăm nhất định của gian lận được chấp nhận là không thể tránh. Những chi phí và không chắc chắn về thanh toán này có thể tránh được trong giao dịch trực tiếp bằng cách sử dụng tiền mặt vật lý, nhưng không có cơ chế nào tồn tại để thực hiện thanh toán qua một kênh truyền thông mà không cần bên thứ ba đáng tin cậy. Điều cần là một hệ thống thanh toán điện tử dựa trên chứng cứ mật mã thay vì sự tin cậy, cho phép bất kỳ hai bên nào sẵn lòng 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 mà tính toán khó khăn trong việc đảo ngược sẽ bảo vệ người bán hàng khỏi gian lận, và các cơ chế trung gian bình thường có thể dễ dàng thực hiện để bảo vệ người mua hàng. Trong bài báo này, chúng tôi đề xuất một giải pháp cho vấn đề chi tiền gấp đôi bằng cách sử dụng một máy chủ dấu thời gian phân phối đồng ngang hàng để tạo ra chứng cứ tính toán về thứ tự thời gian của các giao dịch. Hệ thống là an toàn miễn là các nút trung thực cùng kiểm soát nhiều năng lực CPU hơn bất kỳ nhóm kẻ tấn công nào 2. Giao dịch Chúng tôi xác định 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 coin cho chủ sở hữu tiếp theo bằng cách ký số một băm của giao dịch trước và chìa khóa công khai của chủ sở hữu tiếp theo và thêm chúng vào cuối đồng coin. Người nhận có thể xác minh các chữ ký để xác minh chuổi quyền sở hữu. Vấn đề tất nhiên là người nhận không thể xác minh rằng một trong số các chủ sở hữu trước đã không chi tiền gấp đôi cho đồng coin. Một giải pháp phổ biến là giới thiệu một cơ quan tín nhìn đáng tin cậy, hoặc ngân hàng, kiểm tra mỗi giao dịch để ngăn chặn việc chi tiền gấp đôi. Sau mỗi giao dịch, đồng coin phải được trả lại cho ngân hàng để phát hành một đồng coin mới và chỉ có các đồng coin được phát hành trực tiếp từ ngân hàng được tin tưởng là không giả mạo. Vấn đề với giải pháp này chính là số phận của toàn bộ hệ thống tiền tệ phụ thuộc vào công ty vận hành ngân hàng, 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 biết rằng các 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 chính là cái được tính, vì vậy chúng ta không quan tâm đến các cố gắng chi tiền gấp đôi sau này. Cách duy nhất để xác nhận sự vắng mặt của một giao dịch là biết tất cả các giao dịch. Trong mô hình dựa trên ngân hàng, ngân hàng biết tất cả các giao dịch và quyết định cái nào đến trước. Để thực hiện điều này mà không cần bên thứ ba đáng tin cậy, các giao dịch phải được công bố công cộng và chúng ta cần một hệ thống cho các bên tham gia đồng ý về một lịch sử duy nhất của thứ tự trong đó họ đã nhận được. Người nhận cần chứng từ rằng tại thời điểm mỗi giao dịch, đa số các nút đều đồng ý rằng đó là giao dịch đến trước. 3. Máy chủ đánh dấu thời gian Giải pháp mà chúng tôi đề xuất bắt đầu với một máy chủ đánh dấu thời gian. Một máy chủ đánh dấu thời gian hoạt động bằng cách lấy một băm của một khối các mục cần được đánh dấu thời gian và công bố rộng rãi băm đó, như trong một tờ báo hoặc bài viết trên Usenet. Thời dấu thời gian chứng tỏ dữ liệu phải tồn tại vào thời gian đó, rõ ràng, để được đưa vào theo băm. Mỗi thời dấu thời gian bao gồm thời dấu thời gian trước đó trong băm của mình, tạo thành một chuỗi, với mỗi thời dấu thời gian bổ sung tiếp theo củng cố những cái trước nó. 4. Chứng cứ công việc Để triển khai một máy chủ đánh dấu thời gian phân phối trên cơ sở đồng ngang hàng, chúng ta sẽ cần sử dụng một hệ thống chứng cứ công việc tương tự như Hashcash của Adam Back, thay vì báo chí hoặc bài viết trên Usenet. Chứng cứ công việc bao gồm quét một giá trị mà khi đưa vào băm, chẳng hạn như với SHA-256, băm bắt đầu bằng một số lượng bit không. Lượng công việc trung bình cần thiết là mũ của số bit không yêu cầu và có thể được xác minh bằng cách thực hiện một băm duy nhất. Cho mạng lưới thời dấu thời gian của chúng tôi, chúng tôi triển khai chứng cứ công việc bằng cách tăng giá trị nứt trong khối cho tới khi tìm được giá trị biểu diễn cho băm của khối có số bit không cần thiết. Khi lượng công cần phải tốn nhiều nổ lực CPU đã được tiêu để làm cho nó đáp ứng chứng cứ công việc, khối không thể thay đổi mà không cần phải làm lại công việc. Khi các khối sau được liên kết sau nó, công việc để thay đổi khối sẽ bao gồm phải làm lại tất cả các khối sau nó. Chứng cứ công việc cũng giải quyết vấn đề xác định biểu diễn trong quyết định của đa số. Nếu đa số dựa trên một-địa-chỉ-IP-một-bỏ phiếu, nó có thể bị phá hoại bởi bất kỳ ai có khả năng cấp phát nhiều địa chỉ IP. Chứng cứ công việc về cơ bản là mỗi-CPU-một-bỏ phiếu. Quyết định của đa số được đại diện bởi chuỗi dài nhất, có nhiều công việc thử nghiệm nhất được đầu tư vào nó. Nếu đa số năng lực CPU được kiểm soát bởi các nút trung thực, 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 chứng cứ công việc của khối và tất cả các khối sau đó và sau đó đuổi 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 xác suất của một kẻ tấn công chậm catching up giảm theo cấp số mũ khi các khối tiếp theo được thêm vào. Để bù đắp cho việc tăng tốc độ phần cứng và sự quan tâm thay đổi về việc chạy các nút qua thời gian, độ khó của chứng cứ công việc được xác định bởi một trung bình di động nhắm vào một số lượng 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 Các bước để chạy mạng là như sau: Thông báo về giao dịch mới được truyền đến tất cả các nút. Mỗi nút thu thập các giao dịch mới vào một khối. Mỗi nút làm việc để tìm chứng cứ công việc khó khăn cho khối của nó. Khi một nút tìm thấy chứng cứ công việc, nó truyền khối đó đến tất cả các nút. Các nút chỉ chấp nhận khối nếu tất cả các giao dịch bên trong nó đều hợp lệ và chưa bao giờ được chi tiền trước đó. Các nút bày tỏ sự chấp nhận của họ đối với khối bằng cách làm việc để tạo ra khối tiếp theo trong chuỗi, sử dụng băm của khối được chấp nhận như là băm trước đó. Các
Satoshi Nakamoto October 31, 2008 Abstract Một phiên bản hoàn toàn dựa trên mô hình đồng ngang hàng của tiền điện tử sẽ cho phép việc thanh toán trực tuyến được gửi trực tiếp từ một bên sang bên kia mà không cần thông qua một cơ sở tài chính. Chữ ký số có phần giải quyết vấn đề, nhưng các lợi ích chính sẽ mất nếu vẫn cần một bên thứ ba đáng tin cậy để ngăn chặn việc chi tiền gấp đôi. Chúng tôi đề xuất một giải pháp cho vấn đề chi tiền gấp đôi bằng cách sử dụng một mạng đồng ngang hàng. Mạng lưới đánh dấu thời gian cho các giao dịch bằng cách băm chúngx thành một chuỗi liên tục của các chứng chỉ công việc chứng minh dựa trên băm, tạo thành một bản ghi không thể thay đổi mà không cần phải làm lại công việc chứng minh. Chuỗi dài nhất không chỉ phục vụ như là chứng cứ của chuỗi sự kiện đã chứng kiến, mà còn chứng cứ rằng nó đến từ bộ xử lý CPU lớn nhất. Miễn là đa số năng lực CPU được kiểm soát bởi các nút không hợp tác để tấn công mạng, họ sẽ tạo ra chuỗi dài nhất và vượt xa kẻ tấn công. Chính mạng lưới đòi hỏi cấu trúc tối thiểu. Tin nhắn được tuyên truyền trên cơ sở tốt nhất và các nút có thể rời khỏi và tham gia lại vào mạng theo ý muốn, chấp nhận chuỗi chứng chỉ công việc dài nhất là chứng cứ cho điều gì đã xảy ra trong thời gian họ rời đi. 1. Giới thiệu Thương mại trên Internet đã phần lớn dựa vào việc sử dụng các tổ chức tài chính phục vụ như bên thứ ba đáng tin cậy để xử lý 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 vẫn mắc phải những yếu điểm 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 thể, vì cơ quan tài chính không thể tránh khỏi việc trung gian xảy ra tranh chấp. Chi phí của việc trung gian tăng lên làm tăng chi phí giao dịch tối thiểu và hạn chế khả năng thực hiện giao dịch nhỏ lẻ, và có một chi phí rộng lớn trong việc mất khả năng thực hiệ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. Thương gia phải cảnh giác với khách hàng của họ, làm phiền họ để có được nhiều thông tin hơn so với những thông tin họ thực sự cần. Một phần trăm nhất định của gian lận được chấp nhận là không thể tránh. Những chi phí và không chắc chắn về thanh toán này có thể tránh được trong giao dịch trực tiếp bằng cách sử dụng tiền mặt vật lý, nhưng không có cơ chế nào tồn tại để thực hiện thanh toán qua một kênh truyền thông mà không cần bên thứ ba đáng tin cậy. Điều cần là một hệ thống thanh toán điện tử dựa trên chứng cứ mật mã thay vì sự tin cậy, cho phép bất kỳ hai bên nào sẵn lòng 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 mà tính toán khó khăn trong việc đảo ngược sẽ bảo vệ người bán hàng khỏi gian lận, và các cơ chế trung gian bình thường có thể dễ dàng thực hiện để bảo vệ người mua hàng. Trong bài báo này, chúng tôi đề xuất một giải pháp cho vấn đề chi tiền gấp đôi bằng cách sử dụng một máy chủ dấu thời gian phân phối đồng ngang hàng để tạo ra chứng cứ tính toán về thứ tự thời gian của các giao dịch. Hệ thống là an toàn miễn là các nút trung thực cùng kiểm soát nhiều năng lực CPU hơn bất kỳ nhóm kẻ tấn công nào 2. Giao dịch Chúng tôi xác định 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 coin cho chủ sở hữu tiếp theo bằng cách ký số một băm của giao dịch trước và chìa khóa công khai của chủ sở hữu tiếp theo và thêm chúng vào cuối đồng coin. Người nhận có thể xác minh các chữ ký để xác minh chuổi quyền sở hữu. Vấn đề tất nhiên là người nhận không thể xác minh rằng một trong số các chủ sở hữu trước đã không chi tiền gấp đôi cho đồng coin. Một giải pháp phổ biến là giới thiệu một cơ quan tín nhìn đáng tin cậy, hoặc ngân hàng, kiểm tra mỗi giao dịch để ngăn chặn việc chi tiền gấp đôi. Sau mỗi giao dịch, đồng coin phải được trả lại cho ngân hàng để phát hành một đồng coin mới và chỉ có các đồng coin được phát hành trực tiếp từ ngân hàng được tin tưởng là không giả mạo. Vấn đề với giải pháp này chính là số phận của toàn bộ hệ thống tiền tệ phụ thuộc vào công ty vận hành ngân hàng, 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 biết rằng các 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 chính là cái được tính, vì vậy chúng ta không quan tâm đến các cố gắng chi tiền gấp đôi sau này. Cách duy nhất để xác nhận sự vắng mặt của một giao dịch là biết tất cả các giao dịch. Trong mô hình dựa trên ngân hàng, ngân hàng biết tất cả các giao dịch và quyết định cái nào đến trước. Để thực hiện điều này mà không cần bên thứ ba đáng tin cậy, các giao dịch phải được công bố công cộng và chúng ta cần một hệ thống cho các bên tham gia đồng ý về một lịch sử duy nhất của thứ tự trong đó họ đã nhận được. Người nhận cần chứng từ rằng tại thời điểm mỗi giao dịch, đa số các nút đều đồng ý rằng đó là giao dịch đến trước. 3. Máy chủ đánh dấu thời gian Giải pháp mà chúng tôi đề xuất bắt đầu với một máy chủ đánh dấu thời gian. Một máy chủ đánh dấu thời gian hoạt động bằng cách lấy một băm của một khối các mục cần được đánh dấu thời gian và công bố rộng rãi băm đó, như trong một tờ báo hoặc bài viết trên Usenet. Thời dấu thời gian chứng tỏ dữ liệu phải tồn tại vào thời gian đó, rõ ràng, để được đưa vào theo băm. Mỗi thời dấu thời gian bao gồm thời dấu thời gian trước đó trong băm của mình, tạo thành một chuỗi, với mỗi thời dấu thời gian bổ sung tiếp theo củng cố những cái trước nó. 4. Chứng cứ công việc Để triển khai một máy chủ đánh dấu thời gian phân phối trên cơ sở đồng ngang hàng, chúng ta sẽ cần sử dụng một hệ thống chứng cứ công việc tương tự như Hashcash của Adam Back, thay vì báo chí hoặc bài viết trên Usenet. Chứng cứ công việc bao gồm quét một giá trị mà khi đưa vào băm, chẳng hạn như với SHA-256, băm bắt đầu bằng một số lượng bit không. Lượng công việc trung bình cần thiết là mũ của số bit không yêu cầu và có thể được xác minh bằng cách thực hiện một băm duy nhất. Cho mạng lưới thời dấu thời gian của chúng tôi, chúng tôi triển khai chứng cứ công việc bằng cách tăng giá trị nứt trong khối cho tới khi tìm được giá trị biểu diễn cho băm của khối có số bit không cần thiết. Khi lượng công cần phải tốn nhiều nổ lực CPU đã được tiêu để làm cho nó đáp ứng chứng cứ công việc, khối không thể thay đổi mà không cần phải làm lại công việc. Khi các khối sau được liên kết sau nó, công việc để thay đổi khối sẽ bao gồm phải làm lại tất cả các khối sau nó. Chứng cứ công việc cũng giải quyết vấn đề xác định biểu diễn trong quyết định của đa số. Nếu đa số dựa trên một-địa-chỉ-IP-một-bỏ phiếu, nó có thể bị phá hoại bởi bất kỳ ai có khả năng cấp phát nhiều địa chỉ IP. Chứng cứ công việc về cơ bản là mỗi-CPU-một-bỏ phiếu. Quyết định của đa số được đại diện bởi chuỗi dài nhất, có nhiều công việc thử nghiệm nhất được đầu tư vào nó. Nếu đa số năng lực CPU được kiểm soát bởi các nút trung thực, 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 chứng cứ công việc của khối và tất cả các khối sau đó và sau đó đuổi 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 xác suất của một kẻ tấn công chậm catching up giảm theo cấp số mũ khi các khối tiếp theo được thêm vào. Để bù đắp cho việc tăng tốc độ phần cứng và sự quan tâm thay đổi về việc chạy các nút qua thời gian, độ khó của chứng cứ công việc được xác định bởi một trung bình di động nhắm vào một số lượng 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 Các bước để chạy mạng là như sau: Thông báo về giao dịch mới được truyền đến tất cả các nút. Mỗi nút thu thập các giao dịch mới vào một khối. Mỗi nút làm việc để tìm chứng cứ công việc khó khăn cho khối của nó. Khi một nút tìm thấy chứng cứ công việc, nó truyền khối đó đến tất cả các nút. Các nút chỉ chấp nhận khối nếu tất cả các giao dịch bên trong nó đều hợp lệ và chưa bao giờ được chi tiền trước đó. Các nút bày tỏ sự chấp nhận của họ đối với khối bằng cách làm việc để tạo ra khối tiếp theo trong chuỗi, sử dụng băm của khối được chấp nhận như là băm trước đó. Các
Show original content

2 users upvote it!

0 answers