Trang chủ » White Paper nguyên bản của Bitcoin

White Paper nguyên bản của Bitcoin

bởi Tun Tun
WHITE-PAPER-BITCOIN

Bitcoin: Hệ thống tiền mặt điện tử ngang hàng
Satoshi Nakamoto
satoshin @ mx.com
www.bitcoin.org

Đặt vấn đề

Một phiên bản hoàn toàn ngang hàng của tiền điện tử 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ố là một phần của giải pháp, nhưng sẽ bị mất nếu một bên thứ ba đáng tin cậy được yêu cầu để 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. Các dấu tích thời gian trên mạng giao dịch bằng cách băm vào một chuỗi liên tục tạo ra các bằng chứng công việc dựa trên hàm băm, nó tạo thành một bản ghi không thể thay đổi. Chuỗi dài nhất không chỉ đóng vai trò là bằng chứng của chuỗi sự kiện chứng kiến, nhưng bằng chứng rằng nó đến từ nguồn năng lượng CPU lớn nhất. Như miễn là phần lớn năng lượng CPU được điều khiển bởi các nút không hợp tác với
tấn công mạng, họ sẽ tạo ra những kẻ tấn công chuỗi dài nhất và vượt ra ngoài. Các mạng tự nó đòi hỏi cấu trúc tối thiểu. Tin nhắn được phát đi trên một nỗ lực tốt nhất cơ sở 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 lâu nhất chuỗi bằng chứng làm việc như bằng chứng về những gì đã xảy ra trong khi họ đã biến mất.

Giới thiệu

Thương mại trên Internet hầu như chỉ dựa vào 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ử. Trong khi hệ thống hoạt động đủ tốt cho hầu hết các giao dịch, nó vẫn phải chịu những điểm yếu cố hữu của mô hình dựa trên niềm tin. Các giao dịch hoàn toàn không thể đảo ngược là không thể, vì các tổ chức tài chính không thể tránh tranh chấp hòa giải. 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 giảm khả năng cho các giao dịch ngẫu nhiên nhỏ, và có một chi phí lớn hơ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, niềm tin phải cao hơn, phải cảnh giác với khách hàng, làm phiền họ để có nhiều thông tin hơn những gì họ cần.

Một tỷ lệ gian lận nhất định được chấp nhận tồn tại trong hệ thống dựa vào niềm tin. Những chi phí và sự không chắc chắn trong thanh toán có thể tránh trực tiếp bằng cách sử dụng tiền tệ vật chất, nhưng không có cơ chế nào tồn tại để thanh toán qua một kênh truyền thông mà không có một 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ì tin tưởng, cho phép bất kỳ hai bên sẵn sàng giao dịch trực tiếp với nhau mà không cần nhờ một bên thứ ba đứng ra làm niềm tin. Các giao dịch được tính toán không thực tế để đảo ngược sẽ bảo vệ người bán từ gian lận, và các cơ chế ký quỹ thông thường có thể dễ dàng được thực hiện nhằm bảo vệ người mua. Trong bài 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 phân phối ngang hàng máy chủ dấu thời gian để tạo bằng chứng tính toán về thứ tự thời gian của các giao dịch. Các hệ thống được bảo mật miễn là các nút trung thực kiểm soát chung sức mạnh của CPU nhiều hơn bất kỳ nhóm hợp tác của các nút tấn công.

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 tiền vào tiếp theo bằng cách ký điện tử một hàm băm của giao dịch trước đó và khóa chung của chủ sở hữu tiếp theo và thêm những thứ này vào cuối đồng tiền. Người được trả tiền có thể xác minh chữ ký để xác minh quyền sở hữu chuỗi .

Tất nhiên là người được trả 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 xu. Một giải pháp phổ biến là giới thiệu một cơ quan trung ương đáng tin cậy, hoặc đúc tiền, kiểm tra mọi
giao dịch cho chi tiêu gấp đôi. Sau mỗi giao dịch, đồng xu phải được trả lại cho đúc 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ừ tiền đúc mới được tin tưởng không được 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 phụ thuộc vào công ty điều hành đúc tiền, với mọi giao dịch phải trải qua, giống như một ngân hàng. Chúng tôi cần một cách để người được trả tiền biết rằng chủ sở hữu trước đó đã không ký bất kỳ sớm hơn giao dịch. Đố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 về những nỗ lực sau này để chi tiêu gấp đôi. Cách duy nhất để xác nhận sự vắng mặt của một giao dịch là nhận thức được tất cả các giao dịch. Trong mô hình dựa trên đúc tiền, bạc hà đã nhận thức được tất cả các giao dịch và quyết định nào đến trước Để thực hiện điều này mà không có bên đáng tin cậy, các giao dịch phải được công bố công khai và chúng tôi cần một hệ thống để người tham gia đồng ý về một lịch sử duy nhất của
thứ tự mà họ đã được nhận. Người được trả 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à lần đầu tiên nhận được.

Máy chủ dấu thời gian

Giải pháp chúng tôi đề xuất bắt đầu với một máy chủ dấu thời gian. Một máy chủ dấu thời gian hoạt động bằng cách lấy hàm băm của một khối các mục được đánh dấu thời gian và xuất bản rộng rãi hàm băm, chẳng hạn như trong một báo hoặc Usenet bài. Dấu thời gian chứng minh rằng dữ liệu phải tồn tại ở thời gian, rõ ràng, để có được vào 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 trước đó.

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 tôi sẽ cần sử dụng hệ thống bằng chứng tương tự như Hashcash của Adam Back, thay vì các bài đăng trên báo hoặc Usenet. Bằng chứng công việc liên quan đến việc quét một giá trị mà khi được băm, chẳng hạn như với SHA-256, hàm băm bắt đầu bằng một số bit không. Công việc trung bình cần có là theo cấp số nhân không có bit nào được yêu cầu và có thể được xác minh bằng cách thực hiện một hàm 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 số lần mở trong chặn cho đến khi tìm thấy một giá trị cung cấp cho hàm băm của khối các bit không cần thiết. Khi CPU nỗ lực đã được sử dụng để làm cho nó đáp ứng bằng chứng công việc, khối không thể thay đổi mà không làm lại công việc. Khi các khối sau bị xích sau nó, công việc thay đổi khối sẽ bao gồm 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 đại diện trong quyết định đa số chế tạo. Nếu đa số dựa trên một phiếu bầu một địa chỉ IP, thì bất kỳ ai cũng có thể bị lật đổ có khả năng phân bổ nhiều IP. Proof-of-work về cơ bản là một CPU-một phiếu. Đa số quyết định được đại diện bởi chuỗi dài nhất, trong đó có nỗ lực chứng minh công việc lớn nhất được đầu tư trong đó. Nếu phần lớn sức mạnh của CPU được điều khiển 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 xa mọi chuỗi cạnh tranh. Để sửa đổi một khối quá khứ, 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 nó và sau đó bắt kịp và vượt qua
công việc của các nút trung thực. Sau đó chúng tôi sẽ chỉ ra rằng xác suất kẻ tấn công chậm bắt kịp giảm dần theo cấp số nhân khi các khối tiếp theo được thêm vào. Để bù cho việc tăng tốc độ phần cứng và thay đổi sở thích chạy các nút theo thời gian, độ khó của công việc được xác định bởi mức trung bình di chuyển nhắm mục tiêu số lượng trung bình khối mỗi giờ. Nếu chúng được tạo ra quá nhanh, độ khó sẽ tăng lên.

Mạng lưới

Các bước để chạy mạng như sau:

1) Giao dịch mới được phát đến tất cả các nút.
2) Mỗi ​​nút thu thập các giao dịch mới thành một khối.
3) Mỗi ​​nút làm việc để tìm một bằng chứng khó cho công việc cho khối của nó.
4) Khi một nút tìm thấy một 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 đó là hợp lệ và chưa được chi tiêu.
6) Các nút thể hiện sự chấp nhận của họ đối với khối 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 chính xác và sẽ tiếp tục hoạt động
mở rộng nó Nếu hai nút phát đồng thời các phiên bản khác nhau của khối tiếp theo, một số nút các nút có thể nhận được một hoặc cái khác trước. Trong trường hợp đó, họ làm việc trên cái đầu tiên họ nhận được, nhưng lưu các nhánh khác trong trường hợp nó trở nên dài hơn. Cà vạt sẽ bị phá vỡ khi công việc bằng chứng 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 làm việc khác nhánh sau đó sẽ chuyển sang cái dài hơn.

Chính sách khích lệ

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 sở hữu bởi người tạo ra khối. Điều này thêm một sự khích lệ cho các nút hỗ trợ mạng và cung cấp một cách để phân phối tiền ban đầu 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ư các công cụ khai thác vàng đang mở rộng nguồn lực để thêm vàng lưu thông. Trong trường hợp của chúng tôi, đó là thời gian CPU và điện được sử dụng. Các ưu đãi cũng có thể được tài trợ với phí giao dịch. Nếu giá trị đầu ra của một giao dịch là nhỏ hơn giá trị đầu vào của nó, chênh lệch 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 được xác định trước đã nhập lưu thông, ưu đãi có thể chuyển hoàn toàn sang phí giao dịch và hoàn toàn lạm phát miễn phí.


Các ưu đãi 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ể lắp rá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 chọn giữa việc sử dụng nó để lừa gạt mọi người bằng cách đánh cắp các khoản thanh toán của anh ta hoặc sử dụng nó để tạo ra các đồng tiền mới. Anh ta nên chơi theo luật có lợi hơn khi chơi theo luật, những luật như vậy có lợi cho anh ta với nhiều tiền mới hơn mọi người khác kết hợp, 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.

Không gian lưu trữ

Khi giao dịch mới nhất trong một đồng tiền bị chôn vùi dưới đủ khối, các giao dịch đã chi tiêu trước đó nó có thể được loại bỏ để tiết kiệm không gian đĩa. Để tạo điều kiện 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, chỉ có gốc được bao gồm trong hàm băm của khối. Các khối cũ sau đó có thể được nén lại bằng cách nhổ các nhánh của cây. Băm nội thất làm không cần lưu trữ.

Một tiêu đề khối không có giao dịch sẽ có khoảng 80 byte. Nếu chúng ta cho rằng các khối là được tạo cứ sau 10 phút, 80 byte * 6 * 24 * 365 = 4.2MB mỗi năm. Với hệ thống máy tính thường bán với 2GB RAM vào năm 2008 và Định luật Moore dự đoán sự tăng trưởng hiện tại của 1,2 GB mỗi năm, dung lượng lưu trữ không phải là vấn đề ngay cả khi các tiêu đề khối phải được giữ trong bộ nhớ.

Xác nhận thanh toán giản hoá

Có thể xác minh thanh toán mà không cần chạy một nút mạng đầy đủ. Một người dùng chỉ cần giữ một bản sao của các tiêu đề khối của chuỗi bằng chứng dài nhất mà anh ta có thể nhận được bằng cách truy vấn. Các nút mạng cho đến khi anh ta tin rằng anh ta có chuỗi dài nhất và có được chi nhánh Merkle liên kết giao dịch với khối được đánh dấu thời gian. Người đó không thể kiểm tra giao dịch chính mình, nhưng bằng cách liên kết nó với một vị trí trong chuỗi, ngươi đó 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 khi xác nhận thêm 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 nhiều hơn dễ bị tổn thương nếu mạng bị áp đảo bởi kẻ tấn công. Trong khi các nút mạng có thể xác minh giao dịch cho chính họ, phương thức đơn giản hóa có thể bị đánh lừa bởi kẻ tấn công bịa đặt giao dịch miễn là kẻ tấn công có thể tiếp tục áp đảo mạng. Một chiến lược để bảo vệ chống lại điều này sẽ là chấp nhận cảnh báo từ các nút mạng khi họ phát hiện không hợp lệ chặn, nhắc phần mềm của người dùng tải xuống toàn bộ khối và giao dịch được cảnh báo xác nhận sự không nhất quán Các doanh nghiệp nhận được thanh toán thường xuyên có thể vẫn muốn chạy các nút riêng của họ để bảo mật độc lập hơn và xác minh nhanh hơn.

Kết hợp và chia tách giá trị

Mặc dù có thể xử lý các đồng tiền riêng lẻ, nhưng việc tạo ra một giao dịch riêng cho mỗi xu trong một lần chuyển. Để cho phép giá trị được phân chia và kết hợp, 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 số tiền nhỏ hơn và nhiều nhất là hai đầu ra: một cho thanh toán và một trả lại thay đổi, nếu có, trở lại cho người gửi.

Bảo mật

Mô hình ngân hàng truyền thống đạt được mức độ riêng tư bằng cách giới hạn quyền truy cập thông tin vào các bên liên quan và bên thứ ba đáng tin cậy. Sự cần thiết phải thông báo công khai tất cả các giao dịch loại trừ 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 trong một nơi khác: bằng cách giữ các khóa công khai ẩn danh. Công chúng có thể thấy 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. Đây là tương tự như mức độ thông tin được phát hành bởi các sàn giao dịch chứng hoán, trong đó thời gian và quy mô của các giao dịch riêng lẻ, “băng”, đượ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, nên sử dụng một cặp khóa mới cho mỗi giao dịch để giữ chúng từ đượ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 đa đầu vào các giao dịch, nhất thiết phải tiết lộ rằng đầu vào của họ được sở hữu bởi cùng một chủ sở hữu. Rủi ro là nếu chủ sở hữu của một khóa được tiết lộ, liên kết có thể tiết lộ các giao dịch khác thuộc về cùng chủ sở hữu.

Tính toán

Chúng tôi xem xét kịch bản của một kẻ tấn công đang cố gắng tạo ra một chuỗi thay thế nhanh hơn so với trung thực chuỗi. Ngay cả khi điều này được thực hiện, nó cũng không mở hệ thống cho các thay đổi tùy ý, như vậy
như tạo ra giá trị từ không khí mỏ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ệ dưới dạng thanh toán và các nút trung thực sẽ không bao giờ chấp nhận một 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.

Cuộc đua giữa chuỗi trung thực và chuỗi tấn công có thể được mô tả là Binomial. Sự kiện thành công là chuỗi trung thực được mở rộng bởi một khối, tăng chuỗi của nó dẫn đầu bằng +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, làm giảm khoảng cách bằng -1.

Xác suất kẻ tấn công bắt kịp từ thâm hụt nhất định là tương tự như Người đánh bạc Vấn đề hủy hoại. Giả sử một con bạc có tín dụng không giới hạn bắt đầu thâm hụt và có khả năng chơi vô số thử nghiệm để cố gắng đạt được mức hòa vốn. Chúng ta có thể tính xác suất anh ấy từng có đạt đến mức hòa vốn hoặc kẻ tấn công đã bắt kịp chuỗi trung thực, như sau:

Biên tập: VIC.News

Nguồn: White Paper Bitcoin

0 Bình luận

Related Posts

Để lại bình luận