Hàng khô: Về quyền và sự đồng thuận
Lưu ý của biên tập viên: Bài viết này đến từNhững người đam mê Ethereum (ID: ethfans), được in lại bởi Odaily với sự cho phép.
Những người đam mê Ethereum (ID: ethfans)https://download.wpsoftware.net/bitcoin/old-pos.pdfxuất hiện.
Những người đam mê Ethereum (ID: ethfans)
, được in lại bởi Odaily với sự cho phép.
Lưu ý: Tài liệu này đã được sửa đổi đáng kể vào tháng 3 năm 2015. Các phiên bản cũ hơn có thể được tìm thấy tại
xuất hiện.
1. Giới thiệu
Vào năm 2009, Satoshi Nakamoto đã tạo ra Bitcoin [Nak09]. Bitcoin là một hệ thống tiền tệ Internet cho phép chuyển mã thông báo kỹ thuật số ngang hàng. Để đảm bảo mọi người đều có sự đồng thuận về quyền sở hữu mã thông báo, Satoshi sử dụng sổ cái công khai có thể sao chép và kiểm chứng bởi tất cả những người tham gia mạng. Để tránh lỗi tại một điểm duy nhất, sổ cái được xác thực bằng cách sử dụng cơ chế chữ ký đa bên thành viên động (DMMS) [BCD+14], tức là toàn bộ lịch sử sổ cái được thực thi một lần ở mỗi "nhịp tim". nhưng chi phí xác minh thấp).
Không giống như chữ ký số truyền thống, không có khái niệm về "khả năng giả mạo" đối với DMMS trong DMMS. Mỗi DMMS rất tốn kém để tạo ra (bằng Bitcoin, chi phí điện cao) và hành vi này có thể được thưởng bằng các đồng tiền mới được phát hành trên sổ cái. Vì những mã thông báo mới này phải được những người khác xác nhận là hữu ích, nên những người tham gia được khuyến khích cùng nhau mở rộng "sổ cái thực" thay vì tự tạo sổ cái1. (Ghi chú của người dịch: Nguyên văn của từ "công nhận" ở đây là "công nhận", nghĩa là nghĩa gốc của nó có thể không có nhiều gợi ý về "sự đồng thuận xã hội" như vậy, và bản thân nó có thể mang một ý nghĩa kỹ thuật nghiêm ngặt: nếu bạn làm không chấp nhận Đối với một khối, bạn sẽ không chấp thuận loại tiền do khối này phát hành.)
Do DMMS của Bitcoin đắt về mặt tính toán và nhiệt động [Poe14a] nên các giải pháp thay thế khác tiết kiệm hơn và thân thiện với môi trường hơn đã được đề xuất. Giải pháp được đề xuất phổ biến nhất là PoS (Proof of Stake), đây là một cơ chế đồng thuận phân tán với chi phí thấp. Như Andrew Poelstra [Poe14b] đã nêu vào năm 2014, PoS là không khả thi, nhưng nhiều hình thức kế hoạch PoS khác nhau đã xuất hiện. Đồng thời, các lập luận của Poelstra thường được cho là "sai" hoặc "sai" trên các diễn đàn khác nhau, mặc dù chúng không bao giờ đưa ra bất kỳ phản ví dụ hoặc lỗi thuyết phục nào. Ngoài ra, một số người đưa ra ý kiến xác đáng rằng bài báo của Poelstra được viết một cách tối nghĩa và nhàm chán. Có thể thấy bài viết này vẫn còn nhiều thiếu sót. Mặc dù Poelstra không tìm thấy điểm nào không chính xác trong công việc trước đây của mình, nhưng ông sẵn sàng nắm lấy cơ hội để tiếp tục chính thức hóa lập luận của mình.
Sự hiểu biết khoa học về sự đồng thuận của Bitcoin đã đi một chặng đường dài kể từ khi Poelstra viết bài báo của mình [MLJ14, BMC+15].
Bài viết này nhằm mục đích cập nhật luận điểm của Poelstra để làm sáng tỏ các vấn đề mà Bitcoin giải quyết, cơ sở thiết kế đằng sau PoS và lý do tại sao các cơ chế như PoS không thể tạo ra sự đồng thuận phân tán trong mô hình tin cậy của Bitcoin.
Lưu ý 1: Để đảm bảo rằng tất cả những người tham gia có thể xem "sổ cái thực sự", chúng tôi cần một mạng đồng bộ: tất cả dữ liệu (hợp lệ) có thể đến được với tất cả những người tham gia trong một khoảng thời gian nhất định λ và thời gian nhịp tim của mạng dài hơn λ nhiều. Nếu không có mạng đồng bộ, sự đồng thuận phân tán sẽ khó khăn hơn nhiều. (Một trong những kết luận thường được trích dẫn là sự đồng thuận phân tán là không thể với các thuật toán xác định [FLP85]; vấn đề này dễ dàng tránh được với các thuật toán xác suất, vì vậy không có nhiều thảo luận về khó khăn trong việc thiết kế các hệ thống đồng thuận. Một phiên bản cũ hơn của tài liệu này đã trích dẫn sai kết luận này giống như suy nghĩ rằng nó khiến cho tất cả các cơ chế đồng thuận phân tán trong một mạng không đồng bộ không thể có được sự đồng thuận. Cảm ơn Dominic Williams đã chỉ ra điều này.)
2. Đồng thuận phân tán
Trước khi thảo luận về giải pháp của Bitcoin cho vấn đề đồng thuận phân tán, trước tiên chúng ta phải hiểu bản chất của vấn đề. Đồng thuận phân tán (thuật ngữ được sử dụng bởi hệ thống Bitcoin) là sự đồng thuận (nghĩa là thỏa thuận toàn cầu) giữa các bên thiếu tin tưởng lẫn nhau. Các bên này ẩn danh và không nhất thiết phải tồn tại khi hệ thống được thiết lập. Như Poelstra giải thích trong bài báo của mình:
Trong trường hợp tiền điện tử, chỉ cần đạt được sự đồng thuận phân tán theo thứ tự thời gian của các giao dịch, tức là "sự đồng thuận về giao dịch đầu tiên để chuyển một số tiền cụ thể". Điều này đảm bảo rằng toàn bộ mạng nhận ra chủ sở hữu mới của quỹ.
Lý do cần có sự đồng thuận này là để ngăn chặn chi tiêu gấp đôi. Trong tất cả các cơ chế tiền kỹ thuật số phi tập trung, người trả tiền có thể gửi cùng một khoản tiền cho hai người khác nhau và cả hai giao dịch đều có vẻ hợp lệ. Do đó, người được thanh toán cần có khả năng đảm bảo rằng không có xung đột nào xảy ra hoặc trong trường hợp xảy ra xung đột, mạng sẽ nhận ra giao dịch của họ là phiên bản chính xác. Một sự đồng thuận phân tán về thứ tự giao dịch có thể đạt được điều này: trong trường hợp có xung đột, mọi người đều đồng ý rằng giao dịch đầu tiên là hợp lệ và phần còn lại là không hợp lệ.
(Các vấn đề khác với tiền kỹ thuật số, chẳng hạn như quyền và chống làm giả, tương đối dễ dàng và có thể được giải quyết bằng mật mã truyền thống.)
Vấn đề là, chúng ta nên nhận ra rằng mặc dù sự đồng thuận phân tán là một vấn đề khó khăn, nhưng sự đồng thuận chung sẽ dễ dàng hơn, được nghiên cứu kỹ hơn và hiệu quả hơn hàng nghìn tỷ lần với những người ký tên đáng tin cậy và có thể nhận dạng được. Do đó, một loại tiền điện tử giới thiệu các bên đáng tin cậy (ngay cả trong các điều kiện hạn chế) nên xem xét liệu mô hình tin cậy mới của nó có thể giúp giảm bớt khó khăn trong việc đạt được sự đồng thuận hay không. Độc giả quan tâm đến các cơ chế đồng thuận hiệu quả hơn với các bên đáng tin cậy có thể xem xét nó.
3. Chữ ký nhiều bên thành viên động
Sổ cái của Bitcoin được cung cấp công khai và tất cả những người tham gia mạng Bitcoin có thể xác minh tính hợp lệ của từng giao dịch trên sổ cái. Tuy nhiên, vì sổ cái về cơ bản là một bản ghi lịch sử, mật mã không thể phân biệt tính xác thực, ai đó phải chứng minh sổ cái và những người khác phải tin tưởng rằng người này sẽ không ký sai lịch sử.
Các hệ thống tiền mặt kỹ thuật số sớm nhất có một người không ẩn danh duy nhất ký tất cả các giao dịch [Cha83]. Tuy nhiên, điều này không chỉ đưa ra một điểm rủi ro lỗi duy nhất cho hệ thống mà còn cho phép người ký (và bất kỳ ai có thể ép buộc người ký đó bằng quyền lực hoặc vũ lực) kiểm duyệt các giao dịch hoặc bắt đầu chi tiêu gấp đôi. Mặc dù chữ ký mù (xem [Cha83] để biết chi tiết) có thể được sử dụng để ngăn chặn kiểm duyệt, nhưng chúng không thể bảo vệ chống lại các lỗi đơn lẻ và chi tiêu gấp đôi. Chữ ký của nhiều bên có thể giải quyết được hai vấn đề sau, nhưng hai yêu cầu khó có thể ép buộc tất cả những người ký cùng một lúc và tất cả những người ký phải được tất cả những người tham gia tin tưởng lại mâu thuẫn với nhau. Không ẩn danh cũng có nghĩa là kẻ tấn công cụ thể luôn có thể tấn công hệ thống.
Giải pháp của Bitcoin là loại bỏ hoàn toàn những người ký cố định và có thể nhận dạng. Sổ cái của bitcoin được xác minh bởi một nhóm người ký được gọi là thợ mỏ, những người không tiết lộ danh tính của họ cho những người tham gia khác và có thể vào hoặc ra khỏi hệ thống mà không mất phí. Công cụ khai thác tạo chữ ký thông qua một quá trình gọi là "khai thác". Trong quá trình khai thác, chúng cùng nhau tạo bằng chứng công việc [Bac02] cho các khối dữ liệu giao dịch liên tiếp.
- Trong phần này, chúng tôi giải thích cách khai thác hoạt động và cách nó cung cấp xác minh.
- 3.1 Xác thực trong một thế giới ẩn danh
- Nguyên lý hoạt động của cơ chế chữ ký số mật mã như sau. Người ký tạo cặp khóa "ký" và "xác minh" (s, v) và xuất bản v cùng với tên của nó trên một số kênh công khai. Người ký có thể tạo chữ ký σ theo m thông báo đã cho và bất kỳ ai cũng có thể xác minh tính hợp lệ của σ. Nghĩa là, nhập v, m và σ vào thuật toán xác minh sẽ luôn xuất ra 1 nếu chữ ký hợp lệ.
Có thể thấy rằng thuật toán xác minh sử dụng khóa xác minh v để xác minh chữ ký và theo cách này xác minh "danh tính" của người ký. Vì bất kỳ ai cũng có thể tạo cặp khóa nên để chữ ký có giá trị, hồ sơ công khai phải liên kết khóa xác minh với danh tính thực của người ký. Nếu có hành vi không trung thực (ký lịch sử không hợp lệ) thì bên không trung thực sẽ phải chịu trách nhiệm.
Từ quan điểm này, xác thực không phù hợp với các hệ thống mà người ký là ẩn danh và không cố định. Trên thực tế, không rõ "xác thực" có thể đóng vai trò gì trong các hệ thống như vậy! Nếu ai đó có thể tạo chữ ký ẩn danh, thì sẽ không thể phân biệt được chữ ký trung thực với chữ ký không trung thực, lịch sử thật với lịch sử giả. Sau đó, định nghĩa về bảo mật ở trên mất đi ý nghĩa của nó, bởi vì kẻ tấn công có thể tự do tham gia vào nhóm người ký và "giả mạo chữ ký"2.
Để giải quyết vấn đề này, Bitcoin sử dụng một mô hình bảo mật khác. Trong mô hình này, tất cả những người tham gia đều bình đẳng, nhưng họ có động cơ kinh tế để thành thật. Trong phần tiếp theo, chúng tôi giới thiệu mô hình bảo mật này.
- Lưu ý 2: Như chúng ta đã thấy trong Phần 4, trong trường hợp tiền điện tử, các bên ẩn danh có thể khóa tiền gửi và có một số cơ chế để trừng phạt những kẻ gian dối mà không cần xác nhận danh tính của bất kỳ ai. Đây thực sự là Proof of Stake. Tuy nhiên, tiền điện tử không thể tách rời khỏi sự đồng thuận, vì vậy tiền đề "nếu đó là tiền điện tử" khiến chúng tôi không thể sử dụng bằng chứng cổ phần ở đây, nếu không nó sẽ rơi vào suy luận vòng vo. Chúng tôi sẽ giải quyết vấn đề này trong phần tiếp theo.
- 3.2 Xác định bảo mật cho DMMS
Thuật toán xác định Verify nhận thông báo m, chữ ký σ và chi phí mục tiêu T làm đầu vào và đầu ra là 0 hoặc 1.
Khi và chỉ khi Verify(m, T, AttempSign(m)) = 1 có xác suất là 1/T cho tất cả T thuộc về nó, thì ta nói rằng DMMS là đúng (true), xác suất này được xác định bởi AtemptSign thuật toán Đảm bảo; nếu và chỉ khi xác suất của bất kỳ thuật toán đa thức nào nhận ra Verify(m, T, A (m)) = 1 không vượt quá 1−(1−1/T)t, thì chúng ta nói rằng DMMS như vậy là an toàn ( bảo mật) (trong đó t là chi phí thực hiện của Thuật toán A).Nói cách khác, một DMMS an toàn có nghĩa là không có thuật toán ký nào tốt hơn (theo nghĩa tạo chữ ký xác minh) hơn là thực thi lặp đi lặp lại AttemptSign.Chúng tôi trình bày ngắn gọn định nghĩa bảo mật của mình. Để đạt được một nhóm thành viên năng động, chúng tôi không thể làm cho việc tham gia trở nên quá tốn kém, cũng như không cho phép những người ký hiện tại loại trừ những người ký mới thông qua các phương tiện rõ ràng hoặc các yếu tố kinh tế. Điều này có nghĩa là quá trình ký phải "có thể chia được", không yêu cầu cũng như không khuyến khích bất kỳ giao tiếp nào giữa những người ký. Tức là, thời gian chạy một thuật toán chữ ký sẽ gấp đôi thời gian sẽ có xác suất thành công cao hơn so với việc chạy nó song song trên cùng hai phần cứng. Cuối cùng, điều này có nghĩa là các thuật toán chữ ký tốt nhất nên bao gồm các lần thực hiện độc lập, lặp đi lặp lại của một bước cơ bản duy nhất, được dẫn xuất theo định nghĩa.- 3.3 Cơ chế khai thác dưới dạng DMMS
- Khai thác bitcoin sử dụng hashcash [Bac02], một thuật toán bằng chứng công việc dựa trên các hàm băm. Đây là DMMS [BR93] sử dụng mô hình tiên tri ngẫu nhiên. Là một mô hình tính toán, tiên tri ngẫu nhiên đề cập đến mô hình coi hàm băm là "tiên tri số ngẫu nhiên" hoặc hàm ngẫu nhiên thực 3, có đầu ra hoàn toàn là ngẫu nhiên và chỉ có thể được tính toán thông qua hàm này.
- Mặc dù việc sử dụng mô hình tiên tri số ngẫu nhiên đã gây ra nhiều tranh cãi [Gre11], nhưng có bằng chứng thực nghiệm mạnh mẽ rằng nó có thể được sử dụng để đảm bảo an ninh. Sau đây, H đề cập đến một hàm băm có đầu vào lên tới 256 bit, được coi là một lời tiên tri số ngẫu nhiên.
Hàm chi phí đưa ra số lần tiên tri số ngẫu nhiên được gọi trong quá trình thực thi.
AttemptSign lấy thông báo m làm đầu vào và xuất ra một số ngẫu nhiên σ ∈ {0,1}256.
Xác minh lấy đầu vào là chữ ký σ, thông báo m và mục tiêu T. Chỉ xuất 1 khi H(m || σ) < 2256/T.Không khó để thấy rằng trong mô hình tiên tri số ngẫu nhiên, không có cách nào tốt hơn để tạo chữ ký hợp lệ hơn là chạy lặp đi lặp lại một hàm băm.Lưu ý 3: Mô hình này hoàn toàn không thực tế, bởi vì hàm ngẫu nhiên thực sự, chẳng hạn, từ 512 bit đến 256 bit, yêu cầu trung bình 2512·256 bit để biểu diễn, đã vượt quá giới hạn biểu thức hiện được biết đến.3.4 Không có giờ thế giới
Lưu ý rằng trong phần trước, chúng tôi đã sử dụng số lần gọi hàm băm làm hàm chi phí, hàm này tỷ lệ thuận với số lần tính toán, do đó tỷ lệ thuận với mức tiêu hao nhiệt. Cuối cùng, lượng nhiệt tỏa ra gần như tỷ lệ thuận với chi phí kinh tế và môi trường khi tạo ra các chữ ký này.
Một câu hỏi rõ ràng là, chúng ta có thể sử dụng hàm chi phí "rẻ hơn" không? Đặc biệt, tại sao chúng ta không thể sử dụng thời gian đồng hồ trực tiếp? Tại sao chúng tôi sử dụng DMMS để ký các khối để tạo chuỗi khối thay vì sắp xếp trực tiếp các giao dịch theo trình tự thời gian để giải quyết xung đột đồng thuận?
Câu trả lời là thiếu thời gian đồng hồ được xác định rõ trong các hệ thống phân tán. Độ trễ của mạng giới hạn tốc độ truyền thông tin. Theo thuyết tương đối hẹp, những người quan sát khác nhau không thể thống nhất về thứ tự thời gian của các sự kiện xảy ra gần như đồng thời.
Nếu đây là vấn đề duy nhất, thì hãy yêu cầu một vài giây giữa mỗi giao dịch (nếu khoảng thời gian giữa các giao dịch xung đột quá ngắn, cả hai giao dịch sẽ bị từ chối; nhưng hãy đợi vài giây sau mỗi giao dịch, tất cả các bên liên quan có thể đảm bảo rằng điều này không xảy ra). Tuy nhiên, tình hình thực tế còn tồi tệ hơn nhiều vì hai lý do:
"Độ trễ mạng" không thể bị giới hạn trong môi trường thù địch. Những kẻ tấn công có thể sử dụng các biện pháp từ chối dịch vụ để làm chậm hệ thống một cách tùy tiện và nếu không thì các mạng phân vùng vật lý.Theo thuật ngữ tương đối, điều này có nghĩa là bất kể thời gian chờ được đặt là bao lâu, không có cách nào đảm bảo rằng người tham gia sẽ không bị tách biệt giống như không gian với những người tham gia khác trong mạng.Người dùng mới tham gia mạng hoặc gần đây đã ngoại tuyến cần truy cập vào dữ liệu lịch sử. Tuy nhiên, không có cách nào để xác minh thứ tự các giao dịch xảy ra sau thực tế, vì vậy trong trường hợp xung đột giao dịch, người dùng không có gì đảm bảo rằng giao dịch họ nhận được xảy ra trước.3.5 Đồng thuận từ DMMSBây giờ chúng ta đã hiểu về DMMS và giải thích tại sao hashcash của Bitcoin là một thuật toán an toàn, hãy nghĩ về cách đạt được sự đồng thuận phân tán thông qua DMMS.Tuyên bố của chúng tôi là có thể đạt được sự đồng thuận phân tán thông qua DMMS.Trước tiên, chúng ta cần đo (a) một số loại tài nguyên khan hiếm không thể tạo chữ ký cho nhiều thư cùng một lúc và (b) thời gian trung bình cần để tạo chữ ký thông qua hàm chi phí (một hàm đơn điệu). (Để được phân cấp, nguồn tài nguyên khan hiếm này có thể cần phải được tiêu thụ mãi mãi, như trong hệ thống Bitcoin, cho phép chi phí khai thác cận biên chi phối chi phí vốn. Poelstra ủng hộ quan điểm này [Poe14a], nhưng John Tromp không đồng ý với [ Tro14].)Lấy Bitcoin làm ví dụ, hàm chi phí của chúng tôi được định nghĩa là "số lần hàm băm được gọi". Chúng tôi lập luận rằng chức năng này thực sự đo năng lượng tiêu thụ để tính toán chữ ký và được chứng minh bằng giới hạn Landauer [Lan61]. Từ quan điểm vật lý, cái gọi là năng lượng là nhiệt lượng tối thiểu được tiêu thụ bởi bất kỳ hoạt động bit không thể đảo ngược nào. Bằng cách đếm số lượng hoạt động bit không thể đảo ngược liên quan đến tính toán sha256, chúng ta có thể (ít nhất là về nguyên tắc) đặt giới hạn dưới cho lượng năng lượng cần thiết để tạo DMMS Bitcoin.Hàm chi phí cũng có thể được sử dụng để đo thời gian cần thiết để tạo chữ ký, vì chỉ một lượng năng lượng nhất định có thể được sử dụng trên mỗi đơn vị thời gian, trừ khi bạn tạo lỗ đen (nghĩa là không cho phép chữ ký, hoặc thực sự bất kỳ thông tin nào, được trích xuất ở dạng có thể sử dụng được). Tất nhiên, trong đời thực, các công cụ khai thác Bitcoin không hoạt động gần giới hạn lỗ đen và thời gian cần thiết phụ thuộc vào tốc độ của phần cứng khai thác. Khi phần cứng khai thác được cải thiện và số lượng phần cứng trực tuyến cùng lúc tăng lên, thời gian cần thiết để tạo DMMS giảm xuống. Trong Bitcoin, chi phí mục tiêu được điều chỉnh theo điều này, duy trì thời gian cần thiết để tạo mỗi chữ ký vào khoảng 10 phút4.Lưu ý 4: Do không có giờ thế giới được đề cập trong 3.4, người đọc có thể thắc mắc làm thế nào để điều chỉnh thời gian chính xác. Trên thực tế, dấu thời gian được chèn vào các khối bởi những người khai thác và thực sự không có cách nào để ngăn chặn những người khai thác làm sai lệch chúng. Bitcoin có khả năng chống lại những sai lệch nhỏ so với mục tiêu do dấu thời gian sai gây ra và cũng cấm mục tiêu (Ghi chú của người dịch: Độ khó) thay đổi quá nhanh. Do đó, rất tốn kém để tạo ra những sai lệch lớn so với mục tiêu và có thể bị cản trở bởi những người khai thác không hợp tác. Xem [Poe14c, Mục 6.3] để thảo luận thêm.Vì vậy, với một DMMS an toàn đo lường các nguồn lực khan hiếm thông qua hàm chi phí, làm cách nào để chúng tôi có được lịch sử đồng thuận? Đầu tiên, chúng tôi giả định rằng mạng là đồng bộ, do đó (đại đa số) người tham gia có sẵn tất cả dữ liệu hợp lệ trong một thời gian nhất định λ. Chúng tôi chia lịch sử giao dịch thành một loạt các khối, trong đó mỗi khối chứa một loạt các giao dịch và cam kết mã hóa đối với khối trước đó5. Mỗi khối hợp lệ phải có DMMS có mục tiêu sao cho mất nhiều thời gian hơn λ để tạo khối (để những người khai thác làm việc trên cùng một lịch sử đồng thuận biết khối nào được cập nhật và những người tạo khối không có nhiều lợi thế khi biết khối mới nhất trước). Rõ ràng, chi phí mục tiêu của mỗi DMMS được xác định theo quy tắc hệ thống, không phải bởi người khai thác.Lưu ý 5: Một cam kết (commitment) là một đối tượng mật mã được tính toán từ một dữ liệu bí mật nào đó, nhưng dữ liệu sẽ không bị lộ ra ngoài nên không thể sửa đổi dữ liệu về sau. Các hàm băm chống va chạm là một ví dụ: đã cho dữ liệu x, trước tiên bạn có thể xuất bản H(x) (H là hàm băm), sau đó xuất bản x sau. Người xác minh có thể sử dụng giá trị công khai để tính H(x) để xác nhận xem giá trị này có giống với giá trị ban đầu hay không.Những người tham gia mạng làm việc bằng cách trước tiên xem xét tất cả các nhánh khối hợp lệ bắt đầu với cùng một khối gốc (được mã hóa cứng vào hệ thống). (Vì mỗi khối chứa cam kết của khối trước đó, kết quả là một biểu đồ tuần hoàn có hướng bắt nguồn từ khối gốc và các nhánh khối này là các đường dẫn trong biểu đồ.) Sau đó, tính toán tổng chi phí mục tiêu trong DMMS mang lại kết quả trọng lượng của mỗi nhánh khối. Nhánh khối nặng nhất được coi là lịch sử "có thật".Khi tạo một khối, người khai thác chọn các giao dịch theo mong muốn của riêng mình và thêm một "giao dịch phần thưởng" đặc biệt để phân phối phí của các giao dịch khác và khoản trợ cấp do mạng xác định cho chính anh ta, cộng với (cái mà anh ta coi là của chuỗi chính thống) của cam kết khối mới nhất, sau đó tính toán DMMS. Nếu một công cụ khai thác khác tạo và xuất bản một khối, thì công cụ khai thác đó sẽ cập nhật "khối mới nhất trong lịch sử thực" của họ tương ứng và thay đổi các cam kết trong các khối của riêng họ để phù hợp với thay đổi này. Sau khi tính toán DMMS, họ xuất bản khối đã hoàn thành lên mạng.Chúng tôi lập luận rằng điều này dẫn đến lịch sử đồng thuận, nghĩa là toàn bộ mạng sẽ dần dần đi đến thống nhất về chính xác khối nào là một phần của lịch sử thực (và khối nào không) và sự không nhất quán sẽ chỉ xảy ra trong lịch sử gần đây. Thảo luận cụ thể có thể được tìm thấy trong Miller và La Viola Jr. [MLJ14] (chúng tôi có thể đo lường mức độ tiêu thụ năng lượng DMMS trong bài viết này và cách diễn đạt trong bài viết đó là "câu đố khó vừa phải"), nhưng chúng tôi đính kèm ở đây một lập luận ít chính thức hơn.Do mạng đồng bộ nên thời gian truyền khối ngắn hơn nhiều so với thời gian tạo khối, vì vậy tất cả những người tham gia có thể nhanh chóng nhận ra lịch sử nặng nề nhất.Chúng tôi tin tưởng thêm rằng hầu hết những người tham gia mạng sẽ tham gia sản xuất DMMS mở rộng lịch sử thực. Vitalik Buterin [But15] đề xuất một lý do hợp lý và chính xác: bởi vì "giao dịch phần thưởng" sẽ được chấp nhận khi và chỉ khi khối của nó thuộc về lịch sử thực, đối với mỗi người khai thác, trạng thái cân bằng Nash phải tuân theo Hầu hết tuyệt đối của 6.
Lưu ý 6: Cũng trong cùng một bài viết, Buterin nói: "Nếu bạn cảm thấy mệt mỏi với việc các đối thủ PoS trích dẫn bạn từ bài viết này của Andrew Poelstra (tức là [Poe 14b]), vui lòng liên kết bài viết này với tên Hit back". không hoàn toàn rõ ràng ý của anh ta khi nói điều đó; xuyên suốt, và không chỗ nào, anh ta không thể bác bỏ tuyên bố của bài báo rằng không có cách nào để tạo ra sự đồng thuận ngoài việc sử dụng các tài nguyên bên ngoài một hệ thống.
Để thay đổi "lịch sử thực", kẻ tấn công phải tạo một lịch sử khác có trọng số lớn hơn (nghĩa là chi phí mục tiêu lớn hơn) (phiên bản lịch sử thay thế như vậy có thể được định nghĩa là được tạo từ đỉnh mới nhất của lịch sử hiện tại trở lại N khối) một nhánh của ). Anh ta có ít tài nguyên hơn nhóm thợ mỏ đang kéo dài lịch sử thực, bởi vì nhóm thợ mỏ đó chiếm đa số. Do đó, xác suất anh ta có thể giành chiến thắng trong mạng nhỏ hơn 1 (vì trong bất kỳ khoảng thời gian nhất định nào, số lần cố gắng mở rộng lịch sử thực trong mạng nhiều hơn số lần cố gắng mở rộng lịch sử thay thế của chính anh ta), và vì lịch sử của chính anh ta vượt quá lịch sử thực, và anh ta phải thắng hơn N lần. Nếu xác suất trúng một lần là P < 1 thì xác suất để anh ta trúng N lần là PN, nếu N đủ lớn thì xác suất đó nhỏ đến mức có thể bỏ qua.
(Lập luận ở đây rất yếu, bởi vì nó chỉ xem xét rằng kẻ tấn công phải giành chiến thắng liên tục và không tính đến việc độ khó của việc tạo khối sẽ được điều chỉnh; việc điều chỉnh độ khó sẽ cho phép kẻ tấn công tạo lại khối cũ nhanh hơn hơn mạng. Các khối mới nhanh hơn. Tôi khẳng định ở đây, không có cơ sở nào, rằng đây không phải là những vấn đề nghiêm trọng, chỉ là những vấn đề tẻ nhạt.)
3.6 Đồng thuận không có DMMS
Có cần sử dụng DMMS để tạo cơ chế đồng thuận phân tán không? Cho đến nay đây là một vấn đề mở. Tôi đoán là "không". Cụ thể hơn, việc chỉ thay đổi giao thức Bitcoin để thưởng cho những người khai thác "phiếu giảm giá" để khai thác các khối trong tương lai ở độ khó thấp hơn [BDC+14, Mục 6.1] không có khả năng phá vỡ sự đồng thuận, nhưng mô hình rõ ràng là không đáp ứng định nghĩa DMMS ở trên của chúng tôi.
4. Bằng chứng cổ phần
Với cơ chế đồng thuận của Bitcoin làm cơ sở, hãy phân tích giải pháp thay thế phổ biến nhất, Proof of Stake. Xem [Poe14b] để biết mô tả về PoS:
Với mật mã hiện đại, khái niệm rằng bản thân 'thông tin' là một thứ gì đó có thật và có giá trị" đã ra khỏi lớp học của khoa triết học và đi vào thế giới kinh doanh thực tế. Tất cả chúng ta đều quen thuộc với hoạt động kinh tế được củng cố bởi truyền thông an toàn: Các cuộc đàm phán, hợp đồng, thỏa thuận, hóa đơn và đơn đặt hàng đều có thể được gửi tới Internet công cộng mà không sợ bị giả mạo hoặc chặn. Tất cả chúng ta đều biết hậu quả tài chính nếu dữ liệu bí mật bị mất hoặc bị đánh cắp. Đến tháng 1 năm 2009, với sự ra đời của các loại tiền mã hóa [Nak09], khái niệm thông tin có giá trị trở nên cụ thể hơn. Bạn có thể nắm giữ và trao đổi kho lưu trữ giá trị có thể thay thế được trong một phương tiện giao tiếp mở, chỉ sử dụng mật mã (không có phương tiện bảo mật vật lý) để ngăn gian lận và trộm cắp. Người ta không chỉ có thể nói "khóa mã hóa này trị giá 10.000 đô la vì chúng tôi sẽ mất số tiền này nếu nó bị lộ", mà người ta còn có thể nói "khóa này trị giá 10.000 đô la, nhưng giá trị trong đó có thể chia được. 20 đô la và gửi cho người khác, và giữ phần còn lại cho chính mình.” Với kiến thức cơ bản này, bằng chứng cổ phần thực sự dễ hiểu. Bằng chứng cổ phần là bằng chứng mật mã về quyền sở hữu. Trong tiền điện tử, bằng chứng về vốn chủ sở hữu không chỉ có thể chứng minh quyền sở hữu của một loại tiền mà còn chứng minh rằng tiền đáp ứng một số đặc điểm (ví dụ: tiền bị khóa và không thể chi tiêu cho đến khi đáp ứng một số điều kiện mở khóa). Cụ thể, việc chứng minh rằng tiền bị khóa trong một loại tiền điện tử thử nghiệm và khan hiếm có thể được coi là bằng chứng cho thấy một người có mối quan tâm nghiêm túc đến thành công của dự án. Người dùng có thể chứng minh sự quan tâm của họ đối với sự tồn tại liên tục (và sự phát triển bền vững) của dự án bằng cách cung cấp các quyền và lợi ích bị khóa.
Nghĩa là, Proof of Stake là khái niệm mà chúng ta có thể sử dụng bằng chứng mã hóa, thay vì các lý thuyết vật lý như giới hạn Landauer, để chứng minh rằng một số tính toán nhất định rất tốn kém.
4.1 Bằng chứng cổ phần so với DMMS
Việc sử dụng "bằng chứng cổ phần thuần túy" để tạo ra sự đồng thuận về lịch sử của tiền điện tử giả định trước rằng có thể tạo sơ đồ chữ ký giống như DMMS7 có chức năng chi phí tự đo lường số lượng tiền xu. Điều này nghe có vẻ đơn giản về nguyên tắc, và chúng tôi trích dẫn lại [Poe14b]:
Trên một sổ cái đủ rõ ràng, người nắm giữ tiền tệ có thể khóa tiền tệ của họ trong một khoảng thời gian để thuê một "cổ phần" có thể kiểm chứng bằng mật mã. Khi lịch sử đồng thuận cần được nâng cao, mỗi bên liên quan sẽ ký vào nội dung mở rộng (khối) thay vì đính kèm bằng chứng công việc cho những nội dung này. Để thuận tiện cho thực tế, nói chung, mỗi khi một khối được tạo ra, một phần nhỏ các bên liên quan sẽ được chọn ngẫu nhiên để chịu trách nhiệm tạo khối; hơn nữa, để có được tính hợp lệ của khối, chỉ cần Hầu hết nhóm nhỏ đồng ý. Những người nắm giữ cổ phần được chọn này sẽ được thưởng và sau một khoảng thời gian, họ có thể mở khóa cổ phần của mình nếu muốn. Ý tưởng ở đây là thay vì làm cho chi phí kinh tế của việc kiểm soát lịch sử quá cao, các bên liên quan có động cơ để đồng ý về mọi khối vì (a) tất cả chúng đều được chọn ngẫu nhiên và không có khả năng thông đồng với nhau;(b) mặc dù họ có thể thông đồng với nhau, họ không muốn làm sụp đổ toàn bộ hệ thống (ví dụ: ký kết các lịch sử mâu thuẫn sẽ dẫn đến điều đó); (c) họ có vốn hạn chế để gây ra nhiều thiệt hại. Vì những lý do trên, nhóm bên liên quan được chọn ngẫu nhiên tiếp theo chỉ có thể chọn tạo khối dựa trên lịch sử mà họ cho là đáng tin cậy.
Lưu ý 7: Chương trình bằng chứng cổ phần không phải lúc nào cũng được thiết kế để không có quy trình (không có tiến trình, nghĩa là bất kể bạn đã làm gì trước đó, nó sẽ không ảnh hưởng đến tỷ lệ thành công của lần thử tiếp theo của bạn), vì vậy không tất cả chúng đều có thể trở thành DMMS phù hợp hoặc an toàn. Tuy nhiên, nguyên lý cơ bản vẫn là "làm cho lịch sử trở nên rất tốn kém và thưởng cho những người tham gia vào lịch sử đúng đắn", vì vậy chúng tôi tiếp tục xem xét nó qua lăng kính chi phí.
Bài viết này có những điều phức tạp một chút: trong một hệ thống bằng chứng cổ phần thực, thường chỉ cần sự chấp thuận của một người ký và hầu hết các sự chấp thuận đều không cần thiết.
Vấn đề ở đây là việc xác định chính xác hàm chi phí đo lường số lượng cổ phần bị khóa (bằng một loại tiền tệ) yêu cầu phải có lịch sử đồng thuận của loại tiền tệ đó. Nếu nó chỉ có thể đạt đến điểm "có một lịch sử nhất định trong đó các đồng tiền này được khóa cùng nhau", thì mặc dù DMMS cuối cùng có thể được xác định rõ, nhưng hàm chi phí của nó không còn là thước đo mức độ khan hiếm nữa và Mục 3.5 của bài báo này Các kết luận cũng không giữ.
Tất nhiên, sự khan hiếm có thể được hình thành bằng cách trừng phạt các bên liên quan ký nhiều lịch sử. Ví dụ: nếu hệ thống sử dụng sơ đồ chữ ký Schnorr hoặc ECDSA và các bên liên quan chỉ có thể chọn một nonce cụ thể khi ký, thì họ phải sử dụng cùng (key, nonce) khi muốn ký nhiều cặp lịch sử để ký hai thông báo, điều này sẽ cho phép những người khác để giải quyết hình học cho khóa riêng của họ. Tuy nhiên, thiết kế như vậy vẫn không thể ngăn các bên liên quan "mài" khối (liên tục thử các khối khác nhau) và chỉ xuất bản khối 8 cho phép họ tiếp tục là nhà sản xuất khối trong khối tiếp theo. chuỗi khối. Đây là một ví dụ về một cuộc tấn công "nghiền cổ phần". Như chúng ta sẽ thấy bên dưới, mài vốn chủ sở hữu chỉ là một trường hợp đặc biệt của một vấn đề tổng quát hơn.
Nói chung, sơ đồ chữ ký một lần ngăn các bên liên quan công bố lịch sử xung đột (với điều kiện kẻ tấn công coi trọng số coin mà anh ta sẽ mất nhiều hơn có thể nhận được nhiều hơn từ sự hỗn loạn mà anh ta gây ra), nhưng một khi chữ ký tình dục không làm gì để ngăn chặn các bên liên quan bí mật tạo ra những lịch sử mâu thuẫn.
Lưu ý 8: Lưu ý rằng số ngẫu nhiên phải được xác định bởi chính chuỗi khối, bởi vì nó là đối tượng duy nhất mà mọi người cần phải đồng ý. Vì vậy, những người khai thác PoS có thể vặn vẹo hệ thống bằng cách mài cổ phần. Sử dụng nhiều khối hoặc khối dài hạn để xác định số ngẫu nhiên không giải quyết được vấn đề này.
4.2 Mô phỏng không tốn kém
Cuối cùng, vấn đề là các đồng tiền được liên kết với chữ ký cổ phần chỉ tồn tại trong chuỗi khối mà những đồng tiền đó thuộc về. Điều này có nghĩa là miễn là các nhóm nhất định có thể tạo chuỗi khối với giá rẻ, thì các nhóm đó sẽ tạo nhiều chuỗi khối và chọn chuỗi có lợi hơn cho lợi ích của họ.
Nếu mọi người có thể tạo ra lịch sử với giá rẻ, hệ thống sẽ bị hỏng. Mục đích của vốn chủ sở hữu bị khóa là làm cho "lịch sử tạo ra giá rẻ" chỉ dành cho những người sẵn sàng nắm giữ tiền tệ trong một thời gian dài và có thể giả định rằng đối với những người này, hệ thống có ý nghĩa đến mức không thể tấn công nó. nó. Tuy nhiên, vì không có thời gian toàn cầu (và không có lịch sử toàn cầu cho những người mới tham gia mạng), đơn giản là không có cách nào để phân biệt ai đó "gần đây" đã bắt đầu nắm giữ tiền xu với người "luôn luôn" nắm giữ tiền xu. Đối với hệ thống bằng chứng cổ phần, tại bất kỳ thời điểm nào trong lịch sử, có một bộ khóa chữ ký có thể chuyển tiền tệ, khóa và mở khóa vốn chủ sở hữu cũng như ký các khối. Có thể giả định rằng tại một thời điểm nhất định trong thế giới thực, khi hệ thống tạo một khối mới, tại thời điểm này, một số khóa tương ứng với quyền sở hữu. Tuy nhiên, thời gian trong thế giới thực sẽ tiếp tục trôi và khối này sẽ trở thành một thứ tĩnh và tất cả các khóa ký được liên kết với nó cũng sẽ trở thành tĩnh.
Tôi sẽ nói lại lần nữa: Trong thời gian thực, chuỗi khối sẽ ngày càng dài hơn, các quyền sẽ được mở khóa, tiền sẽ được đổi lấy các sản phẩm và dịch vụ khác và những khóa đó, ngay cả khi bị lạm dụng, sẽ khiến người nắm giữ mất giá trị và trở nên vô nghĩa. Nhưng đối với một chuỗi khối bất biến, ý nghĩa của khóa của khối không bao giờ có thể thay đổi.
Bởi vì trong một hệ thống bằng chứng cổ phần, một phần của chìa khóa quyết định tương lai, điều này tạo ra một vấn đề. Bất kể ai có thể lấy được các khóa này (có thể là người dùng đã tự dọn tiền hoặc ai đó đã mua khóa riêng với cô ấy hoặc nhặt được khóa riêng của cô ấy; người dùng không giỏi giữ khóa riêng trong thời gian dài, đặc biệt là những người có khóa riêng tư mà họ cảm thấy sẽ không bao giờ sử dụng lại!), có khả năng phân nhánh mạng hoặc tạo lịch sử thay thế; người dùng mới không thể biết đâu là thật và đâu là giả.
Vấn đề là ngay cả khi người nắm giữ cổ phần khóa một số tiền lớn (với giá trị thị trường cao) và mất tất cả tiền nếu họ không tuân thủ thỏa thuận, thì sự ngăn cản này sẽ biến mất sau khi người dùng mở khóa cổ phần của họ và sự mở khóa Nó sẽ đến sớm hay muộn (cho dù nó được nhìn từ bên ngoài hệ thống hay từ bên trong hệ thống), và tại thời điểm này (khối này) nhất định không thể xác định được khi nào (khối nào) quyền và lợi ích sẽ được mở khóa. Do đó, không thể ngăn chặn lịch sử miễn phí hoặc "mô phỏng chi phí bằng không" bằng cách khóa giá trị do hệ thống xác định nội bộ.
4.3 Tấn công "tầm xa" so với tấn công "tầm ngắn"
Nếu bạn yêu cầu những người nắm giữ cổ phần ràng buộc cổ phần của họ trong một thời gian dài và sử dụng các khối từ lâu (trong các khối) để tạo ra sự ngẫu nhiên trong việc lựa chọn người ký, thì bạn có thể khiến những kẻ tấn công ở trên phải viết lại Lịch sử trong một thời gian dài. Người ta thường nói rằng điều này sẽ "bảo vệ chống lại các cuộc tấn công tầm ngắn".
Rõ ràng, điều này vẫn không giải quyết được vấn đề mô phỏng chi phí bằng không; xét cho cùng, việc tạo các nhánh lịch sử rất dễ dàng, bất kể thời gian là bao lâu, miễn là việc tạo ra lịch sử là dễ dàng. Tuy nhiên, những người ủng hộ thường nói rằng có một lịch sử được tạo ra bởi những người ký tên trung thực, số lượng khối được tích lũy trong chuỗi này cũng tương ứng với thời gian dài hơn trong thế giới thực và bất kỳ sửa đổi nào đối với lịch sử này sẽ liên quan đến những người tham gia. xung đột. Vì vậy, mọi người có thể phát hiện và nhận ra đó là một cuộc tấn công và từ chối nó.
Nếu phần mềm thực hiện đúng các quy tắc ở đây thì không sao, nhưng nó sẽ thay đổi mô hình tin cậy được sử dụng bởi các hệ thống như Bitcoin. Những người mới tham gia mạng phải đối mặt với nhiều lịch sử và không còn có thể tự mình biết cái nào là đúng; họ cần hỏi những người tham gia hiện tại trong mạng (có thể là bạn bè, gia đình, tập đoàn lớn nổi tiếng, trang web công cộng, v.v.) .) mà lịch sử là sự thật. Đây không phải là một cơ chế đồng thuận phân tán! Đây là một loại cơ chế đồng thuận khác và mặc dù nó có thể được hình thành phi tập trung giữa các đồng nghiệp luôn trực tuyến, nhưng người dùng mới và những người đã ngoại tuyến trong một thời gian dài phải tin tưởng ai đó. Mô hình này rất dễ bị tổn thương trước áp lực pháp lý, các cuộc tấn công vào các thực thể "đáng tin cậy" và các cuộc tấn công mạng.
4.4 Các cân nhắc khác
Trích dẫn lại [Poe14b]:


