

Lưu ý của biên tập viên: Bài viết này đến từGiá trị chuỗi carbonLưu ý của biên tập viên: Bài viết này đến từ
Giá trị chuỗi carbon
(ID: cc-value), diễn giả: Giám đốc nghiên cứu Conflux Yang Guang, đối chiếu và hiệu đính văn bản: Cinderella, Tang Han, được xuất bản với sự cho phép.
Tôi rất vui khi có cơ hội chia sẻ một số nghiên cứu và hiểu biết của tôi trong lĩnh vực này với bạn tại đây.
Trước hết, hãy để tôi giới thiệu ngắn gọn về nhóm Conflux của chúng tôi: nòng cốt của nhóm chúng tôi là một số bạn học và đàn em từ lớp Yao, và chúng tôi rất vinh dự khi có ông Yao Qizhi làm nhà khoa học và cố vấn trưởng của chúng tôi. Lý do tại sao chúng tôi đầu tư vào ngành công nghiệp chuỗi khối là vì có nhiều vấn đề mới rất quan trọng và có ý nghĩa trong lý thuyết trò chơi và tiền mã hóa của ngành này, mà tôi quen thuộc nhất, chẳng hạn như chuỗi khối đang phải đối mặt Và nhiều vấn đề cần giải quyết đã là những hướng nghiên cứu tiên tiến nhất trong giới học thuật. Những vấn đề này không thể được giải quyết bởi một mình các kỹ sư mà cần có sự tham gia của nhiều lực lượng học thuật hơn và mọi người có thể làm việc cùng nhau để thúc đẩy sự phát triển của toàn bộ ngành công nghiệp blockchain.
tiêu đề phụ
01 Tấn công Sybil và Giao thức đồng thuận chuỗi khối
Hôm nay tôi sẽ nói về sự so sánh giữa PoW và PoS. Trước tiên, hãy xem xét giao thức đồng thuận blockchain điển hình nhất: mọi người đóng gói các giao dịch thành các khối, kết nối các khối thành một chuỗi thông qua các tham chiếu băm và nhận được một sổ cái dùng chung. Nhưng việc sử dụng sổ cái trực tiếp theo cách này chắc chắn là không an toàn, bởi vì những người xấu cũng có thể tạo ra một cuốn sổ cái, sau đó đặt hai cuốn sổ cái trước mặt bạn cùng một lúc, cái nào là thật và cái nào là giả, và cái nào chúng ta nên tin một câu hỏi?
Tất nhiên, nếu nó được tập trung hóa, vấn đề này rất dễ giải quyết - Tôi sử dụng Alipay và Alipay cho biết tôi có bao nhiêu tiền trong tài khoản, đó là bao nhiêu tiền. Nếu không phù hợp với thực tế, tôi có thể ra tòa kiện anh ấy nếu tôi có ý kiến khác. Nhưng nếu phân cấp thì vấn đề này rất khó nói. Trong trường hợp phân quyền, không phải tất cả mọi người đều có một thể chế dứt khoát như vậy, cần phải đạt được sự đồng thuận thông qua các phương tiện khác để có một sổ cái công bằng. Vậy trong một môi trường phi tập trung, làm thế nào để đạt được sự đồng thuận? Một phương pháp dễ nghĩ là chúng ta bỏ phiếu, mọi người cùng nhau bỏ phiếu, và bỏ phiếu cho một cuốn sổ cái, và sau đó tất cả chúng ta đều tin vào điều đó.
Tuy nhiên, vì chúng ta đang nói về việc bỏ phiếu, nên có một câu hỏi về tính công bằng trong việc bỏ phiếu: làm thế nào để phân phối quyền biểu quyết? Ví dụ, hôm nay tất cả chúng ta cùng nhau bỏ phiếu, tôi có một trăm phiếu trong tay, các bạn ngồi đây mỗi người một phiếu, đây không gọi là bỏ phiếu, tôi có một trăm phiếu, về cơ bản, tôi muốn biểu quyết điều gì thì nói ra cho, và kết quả là những gì nó là của. Nếu chúng ta thực sự muốn đạt được sự đồng thuận, thì không thể bỏ phiếu theo cách đặc biệt không công bằng này. Do đó, việc phân phối quyền biểu quyết là một trong những phần cốt lõi và quan trọng nhất của giao thức đồng thuận. Vấn đề phân phối quyền bỏ phiếu ngoại tuyến thực sự tương đối dễ giải quyết: chúng tôi chỉ đơn giản là có một người, một phiếu bầu. Mọi người đều có chứng minh thư, và sau đó chỉ cần đăng ký khi bỏ phiếu. Nhưng trên mạng, rất khó đạt được mỗi người một phiếu.
Hãy nói ngắn gọn về tấn công Sybil là gì: có nghĩa là kẻ tấn công có thể tạo nhiều tài khoản với chi phí thấp, sau đó điều khiển các tài khoản này để hành động cùng nhau, khiến những tài khoản khác trông giống như có nhiều người. Ví dụ như trên các diễn đàn, bạn sẽ thấy có những trò troll hướng dẫn dư luận, và chẳng hạn như trên các trang web đánh giá phim, sẽ có những người chuyên tổ chức để xem xét các bình luận và chấm điểm trên đó. Nếu có nhiều tài khoản về loại áo vest hải quân này tấn công, thì kết quả bình chọn cuối cùng của bạn là không đúng. Có thể một người nào đó bỏ nhiều phiếu theo cách này và kết quả bỏ phiếu cuối cùng hoàn toàn do người này kiểm soát. Trong môi trường Internet truyền thống, chúng ta có nhiều cách để chống lại các cuộc tấn công của Sybil, chẳng hạn như tăng chi phí đăng ký của mỗi tài khoản. Khi bạn muốn đăng ký một tài khoản trên Internet, bạn thường phải nhập mã xác minh, bởi vì nó rắc rối hơn khi thực hiện trên máy tính, ngay cả khi bạn có thể viết một chương trình, nó khó hơn, nhưng nó rất khó. đơn giản nếu bạn làm điều đó bởi con người; Đôi khi cần phải liên kết số điện thoại di động hoặc phát hiện địa chỉ IP, đây là những cách tương đối phổ biến để chống lại các cuộc tấn công Sybil. Nhưng trong một môi trường phi tập trung, các phương pháp trên không dễ sử dụng. Bởi vì trong một môi trường phi tập trung, ai sẽ xuất bản mã xác minh và ai sẽ đánh giá xem mã xác minh có được điền chính xác hay không? Sau đó, ai sẽ xác minh số điện thoại di động? Ngay cả khi bạn sử dụng địa chỉ ip, đó thực sự là một cách rất không công bằng. Bởi vì chúng tôi biết rằng không phải ai cũng thích một địa chỉ IP tĩnh như nhau.
Vì vậy, trong chuỗi khối, các giải pháp phổ biến nhất mà chúng tôi thực sự sử dụng là bằng chứng công việc (PoW), bằng chứng cổ phần (PoS) và bằng chứng cổ phần ủy quyền (DPoS). Có các phương pháp chứng minh khác, chẳng hạn như chứng minh bạn có bao nhiêu dung lượng hoặc bạn đã đốt bao nhiêu tiền và các phương pháp khác, nhưng những phương pháp phổ biến nhất là PoW và PoS. Ở đây tôi muốn nhấn mạnh một chút, bất kể PoW hay PoS hay PoX khác, chúng đều là cơ chế tấn công chống Sybil và là một phần quan trọng của thuật toán đồng thuận (giao thức), nhưng chúng không tương đương với thuật toán đồng thuận.
tiêu đề phụ
02 Bằng Chứng Công Việc
Tiếp theo, hãy để tôi nói về bằng chứng về khối lượng công việc mà mọi người đã quen thuộc hơn.
Ý tưởng cơ bản của bằng chứng công việc là khả năng tính toán xác định quyền sản xuất khối. Nếu bạn có thể giải quyết vấn đề tính toán PoW, bạn có thể tạo ra một khối. Đại khái thì có thể hiểu là một phiếu bầu cho một CPU, hoặc một phiếu bầu cho một GPU hoặc một máy khai thác. Lợi ích của nó bắt đầu với thực tế là hệ thống không được phép. Người tham gia không cần ai cho phép, chỉ cần có máy móc có năng lực tính toán là có thể tham gia-về lý thuyết, thậm chí không cần máy móc. Nếu bạn có thể tính toán hàm băm của một khối theo cách thủ công và tải nó lên kịp thời, thì những người khác sẽ nhận ra rằng đó là một khối hợp pháp. Một điều nữa là bản thân chi phí bỏ phiếu PoW tương đối cao, bất kể sử dụng CPU, GPU hay máy khai thác, chi phí của máy và chi phí điện đều phải được chi theo giá trị thực. Đây giống như mã xác minh mà chúng tôi đã nói trước đây, trên thực tế, nó có một chút giống nhau về hình thức, phải không? Có một số mã xác minh, sau khi đọc xong, mọi người vẫn cần dành một chút thời gian để xác định những con số hoặc chữ cái bên trong là gì, sau đó họ có thể nhập và vượt qua xác minh. Tôi nghĩ, một trong những lợi thế lớn nhất của Proof of Work là phiếu bầu và quyền biểu quyết bị ràng buộc: một khi bỏ phiếu thành công, ngay cả bản thân người bỏ phiếu cũng không thể sửa đổi nội dung của phiếu bầu.
Theo logic chung của bằng chứng công việc, khi bỏ phiếu, bạn cần đóng gói một khối trước, sau đó thực hiện bằng chứng công việc trên khối này, nếu bạn làm bằng chứng, thì tương đương với việc bỏ phiếu, nhưng tại thời điểm này, khối được đóng gói không có cách nào thay đổi. Ví dụ: máy khai thác của tôi có thể bỏ nhiều phiếu bầu trong một ngày, nhưng nếu tôi muốn tập trung sức mạnh tính toán của ngày hôm trước vào một khối mới thì điều này là không thể; mặt khác, nếu tôi muốn quay lại của riêng tôi cũng phải trả sức mạnh tính toán tương tự như khi khôi phục các khối của người khác cho các khối được tạo ra. Đây là một tính năng đặc biệt hay của PoW.
Tất nhiên, thuật toán đồng thuận dựa trên cơ chế PoW cũng có một số nhược điểm. Trước hết, nhược điểm là độ trễ tương đối cao, bởi vì sau khi chúng tôi đóng gói giao dịch thành một khối, khối này không ngay lập tức trở thành khối ứng cử viên hợp lệ, ít nhất một bằng chứng công việc phải được hoàn thành trước khi khối này có thể được gọi một khối ứng cử viên. Thời gian cho bằng chứng công việc ở đây không thể được đặt ra quá ngắn và tôi sẽ giải thích lý do tại sao không thể quá ngắn sau. Do đó, ít nhất là trong khoảng thời gian từ khi khối được đóng gói đến khi bằng chứng công việc của khối hoàn tất, giao dịch của bạn không thể được xác nhận. Vì vậy, ngay cả khi Bitcoin không đợi sáu khối được xác nhận mà xác nhận khi nhìn thấy một khối, thì trung bình sẽ mất mười phút để xác nhận một giao dịch. Một điểm bị chỉ trích khác của cơ chế PoW là nó tiêu tốn nhiều năng lượng và không thân thiện với môi trường. Về điểm này, liệu mức tiêu thụ năng lượng của bằng chứng công việc có cần thiết hay không, tôi nghĩ đó là vấn đề quan điểm và tôi có thể đặt trước. Nhưng vì chúng ta đang nói về bằng chứng công việc nên không có cách nào để lưu khối lượng công việc này, nếu lưu thì nó sẽ được gọi với cái tên khác.
Chúng ta hãy xem cách giải quyết các vấn đề chính của sự đồng thuận dựa trên PoW.
Đầu tiên phải nói rằng tốc độ xác nhận chậm. Lấy Bitcoin làm ví dụ, trung bình mất mười phút để tạo một khối và sáu khối khác để xác nhận, trung bình mất một giờ. Thứ hai là thông lượng tương đối thấp Mọi người đều biết rằng Bitcoin đã bị chỉ trích trong vài năm về điểm này. Sau đó, điểm thứ ba là tiêu thụ năng lượng cao không thân thiện với môi trường. Nhưng điểm thứ ba, vì chúng tôi muốn sử dụng PoW nên việc tiêu thụ năng lượng này là không thể tránh khỏi, vì vậy chúng tôi không muốn giải quyết vấn đề này.
Đối với hai vấn đề đầu tiên, tốc độ xác nhận chậm và thông lượng thấp. Trên thực tế, hai vấn đề này dường như có một giải pháp rất đơn giản - giảm độ khó mục tiêu của vấn đề PoW và tăng tốc độ tạo khối. Litecoin thực sự làm được điều đó. Nó đã giảm độ khó mục tiêu từ 10 phút của Bitcoin xuống còn 2,5 phút và sau đó tạo ra các khối nhanh hơn bốn lần so với Bitcoin. Một cách khác để cải thiện thông lượng là tăng dung lượng khối. Ví dụ: BCH đầu tiên mở rộng mỗi khối từ 1M lên 8M, sau đó mở rộng lên 32M. Thậm chí còn có đề xuất thay đổi thành 128M. Theo trực giác, ở cùng tốc độ sản xuất khối, khối càng lớn thì thông lượng càng lớn.
Thật đơn giản để giải quyết vấn đề tốc độ xác nhận chậm và khả năng lưu trữ thấp của Bitcoin phải không? dĩ nhiên là không. Nếu nó thực sự đơn giản như vậy, Bitcoin sẽ không được đặt ở mức 1 triệu sau mười phút. Tại sao phương pháp vừa đề cập không giải quyết được vấn đề? Bởi vì khi chúng tôi tạo khối nhanh hơn, chuỗi khối sẽ phân nhánh rất thường xuyên, đặc biệt khi tốc độ tạo khối của bạn vượt quá tốc độ phát sóng, tình trạng phân nhánh sẽ đặc biệt nghiêm trọng.
Nếu chúng ta giảm độ khó của vấn đề PoW, tăng tốc độ tạo khối, sau đó tăng dung lượng khối, thì trên thực tế, trong một số điều kiện mạng nhất định, tốc độ phát sóng chắc chắn sẽ bị giảm. Bởi vì khối càng lớn, việc phát sóng càng chậm. Sau đó, nếu bạn nói rằng tốc độ tạo khối của bạn nhanh nhưng tốc độ phát sóng chậm, tức là tôi có thể tự khai thác một khối trước khi nhận một khối mới từ người khác, và sau đó sẽ có một đợt phân tách. Sau đó, nếu khoảng cách tương đối lớn, sẽ có rất nhiều nhánh.
Có gì sai khi có quá nhiều dĩa? Nhược điểm lớn nhất là nó sẽ làm giảm tính bảo mật. Trong Bitcoin, chúng ta thường nói rằng 51% sức mạnh tính toán là cần thiết để kẻ xấu tấn công. Tiền đề là những người giỏi tập trung vào một chuỗi chính. Trong trường hợp này, 49% người tốt tập trung vào nó và 51% kẻ xấu có thể tấn công. Nhưng nếu các nhánh thường xuyên như vậy thực sự xảy ra, chẳng hạn, tôi có 30% sức mạnh tính toán trên nhánh A và 40% sức mạnh tính toán trên nhánh B. Lúc này, kẻ xấu muốn roll back fork B và đổi nó thành fork A. Không cần nhiều, chỉ cần 11% sức mạnh tính toán. Miễn là nó nhiều hơn một chút so với sự khác biệt giữa hai nhánh có sức mạnh tính toán trung thực nhất trên thế giới, kẻ tấn công có thể khiến chuỗi dài nhất nhảy qua nhảy lại trên hai nhánh trên này. Vì vậy, nếu bạn thực sự thay đổi các thông số của Bitcoin một cách đơn giản và thô bạo, thì cuối cùng thì tính bảo mật chắc chắn sẽ bị giảm đi.
Nhưng tôi không nghĩ có thể đổ lỗi cho PoW về việc giảm tính bảo mật này. PoW ở đây chỉ là một cơ chế tấn công chống sybil và độ khó của nó có thể được điều chỉnh. Thủ phạm của việc giảm tính bảo mật ở đây phải được thực hiện bởi "chuỗi dài nhất" thay vì PoW. Tại sao ngã ba kém an toàn hơn nhiều? Trên thực tế, đó là vì Bitcoin thông qua sự đồng thuận chuỗi dài nhất. Theo cơ chế chuỗi dài nhất, nếu có một ngã ba, sức mạnh tính toán trung thực có thể sẽ theo sau ngã ba, điều đó có nghĩa là những người trung thực sẽ bỏ phiếu cho ngã ba, do đó kẻ xấu dễ dàng thao túng kết quả cuối cùng hơn.
Sau đó, câu hỏi tiếp theo: Tại sao sự đồng thuận chuỗi dài nhất dựa trên PoW fork? Có nghĩa là nếu tất cả mọi người là một người tốt, sẽ không có ngã ba?
Điều này cũng không đúng. Chúng tôi sử dụng mỗi dòng trong biểu đồ để biểu thị một nút và mũi tên bên phải biểu thị thời gian. Khi nút này tạo một khối, nó cần phát khối đó, nhưng việc phát này cần có thời gian, do đó, một "hình nón ánh sáng sự kiện" sẽ được hình thành. Bạn càng ở xa nút đã tạo khối, thì càng mất nhiều thời gian để nhận được khối được phát và bạn sẽ phải đợi sau này để xem khối mới vừa được tạo. Điều đó có nghĩa là, chỉ các nút khác trong khu vực màu vàng này trở về sau mới có thể nhìn thấy một khối do phía bạn tạo ra. Vì có một hình nón ánh sáng, nên tương ứng có một khu vực bên ngoài hình nón ánh sáng, đó là phần màu xanh lá cây trong hình. Khi một nút ở khu vực bên ngoài hình nón ánh sáng, anh ta không thể biết rằng một khối vừa được tạo ở phía bạn, bởi vì nó chưa được phát. Nói cách khác, nếu khối tiếp theo được tạo trong mạng nằm ở phần màu vàng phía sau, thì tất nhiên là an toàn, vì lúc này tất cả các nút đã nhìn thấy khối mới nhất, và sau đó chúng sẽ theo sau khi tạo khối. không có dĩa - nếu mọi người đều tốt.
Nhưng nếu tốc độ tạo khối tương đối nhanh và tôi tạo khối ở khu vực bên ngoài hình nón đèn xanh, thì chắc chắn sẽ có các nhánh, và cuối cùng sẽ có các khối mồ côi, phải không? Bởi vì hai khối này không thể tham chiếu lẫn nhau. Vì vậy, để thực hiện một ước tính đơn giản, tỷ lệ khối mồ côi gần bằng diện tích của khu vực bên ngoài hình nón ánh sáng chia cho tổng diện tích của khoảng khối dự kiến. Bởi vì sự kiện tạo khối xảy ra ngẫu nhiên với xác suất bằng nhau trong khoảng thời gian khối dự kiến. Mặt khác, tỷ lệ diện tích bên ngoài hình nón ánh sáng xanh càng nhỏ thì khả năng trẻ mồ côi càng thấp.
Nhưng trong thực tế, chúng tôi chắc chắn sẽ không chỉ có bốn nút, chúng tôi sẽ có rất nhiều nút và khi có nhiều nút hơn, thời gian phát sóng sẽ tự nhiên trở nên dài hơn. Thời gian phát sóng dài hơn có nghĩa là khu vực bên ngoài hình nón ánh sáng sẽ trở nên lớn hơn và khoảng thời gian tạo khối của chúng tôi cũng sẽ cần dài hơn, để đảm bảo rằng các khối mồ côi sẽ được kiểm soát trong một phạm vi tương đối nhỏ. Vì trên thực tế, bản thân khối mồ côi cũng có tác động đến bảo mật, chẳng hạn nếu có tỷ lệ khối mồ côi là 20% thì chỉ cần 41% sức mạnh tính toán thay vì 51% để hoàn thành cuộc tấn công. Do đó, để cải thiện tính bảo mật và giảm các khối mồ côi, chúng ta phải kéo dài khoảng thời gian chặn. Ví dụ: Bitcoin được đặt ở mức mười phút. Đương nhiên, cái này mười phút cũng không phải hoàn toàn không thể thay đổi, nhưng là thay đổi sau, bảo mật nhất định sẽ có chút ảnh hưởng.
Sau khi khoảng thời gian chặn được kéo dài, hiệu quả của toàn bộ hệ thống sẽ bị giảm, đặc biệt là thông lượng sẽ bị ảnh hưởng rất nhiều. Chúng ta hãy nhìn vào băng thông của toàn bộ hệ thống ở đây, trên thực tế, nó có thể được chia thành ba phần: một phần của băng thông (phần màu xanh) là giao dịch mà mọi người cuối cùng sẽ thêm vào sự đồng thuận trong quá trình truyền tải; một phần khác của băng thông (phần màu đỏ) là giao dịch mà mọi người đang truyền Một số dữ liệu không tham gia vào sự đồng thuận, bao gồm cả chi phí hoạt động của toàn bộ giao thức và một số có thể là các khối và giao dịch không hợp lệ cuối cùng không được thêm vào sự đồng thuận; phần cuối cùng (màu trắng) là băng thông không được sử dụng và lãng phí. Nếu chúng tôi sử dụng PoW như một cơ chế chống tấn công sybil, sau đó sử dụng giao thức chuỗi dài nhất để tính toán sự đồng thuận cuối cùng, thì tốc độ sử dụng băng thông của chúng tôi thực sự rất thấp.
Lấy Bitcoin làm ví dụ, chúng tôi tạo khối hiệu dụng 1 MB trong 600 giây và dự kiến sẽ có khối 1 MB hợp lệ sau 600 giây. Ngay cả khi tôi mở rộng khối này nhiều lần, 600 giây trong toàn bộ mạng có thể được tôi sử dụng hiệu quả .Dung lượng thông tin lưu trữ có thể ít hơn 20MB? Nhưng bây giờ tốc độ trung bình của mạng đã là vài GB trong 600 giây. Do đó, tỷ lệ sử dụng toàn bộ băng thông mạng của nó chỉ khoảng 1% và sự lãng phí vẫn còn rất nghiêm trọng. Nếu chúng ta sử dụng một số công nghệ để tăng tốc độ phát sóng, chẳng hạn như sử dụng công nghệ khối dày đặc, thì thời gian dành cho khu vực bên ngoài nón đèn xanh sẽ được rút ngắn. Bằng cách này, chúng tôi cũng có thể rút ngắn khoảng thời gian khối theo tỷ lệ và cải thiện việc sử dụng băng thông trong khi vẫn duy trì tính bảo mật như trước đây. Nhưng ngay cả với sự cải tiến như vậy, miễn là chúng ta sử dụng chuỗi dài nhất và kiểm soát tỷ lệ khối mồ côi, thì tỷ lệ sử dụng băng thông vẫn không cao hơn nhiều. Nói chung, mạng chuỗi công khai có thể có hàng nghìn, thậm chí hàng chục nghìn nút, nếu nó được phát sóng, trung bình có thể mất mười lần chuyển tiếp trở lên. Lấy nhu cầu mười lần chuyển tiếp làm ví dụ, bắt đầu từ nút tạo khối, gửi nó đến nút tiếp theo, sau đó nút này nhận khối và xác minh khối đó trước khi gửi đến nút tiếp theo. Quá trình này cần được lặp lại mười lần. Trong toàn bộ quá trình của mười lần chuyển tiếp này, nếu tôi muốn giảm tỷ lệ khối mồ côi, tôi cần các nút khác trong toàn bộ mạng không tạo khối thứ hai trong khoảng thời gian này hoặc chỉ có xác suất tạo khối thứ hai rất thấp . Nói cách khác, trong một thời gian dài như vậy, mọi người thực sự chỉ phát một khối. Sau khi người thứ nhất chuyển cho người thứ hai, và khi người thứ hai chuyển cho người thứ ba, người thứ nhất ở trạng thái không hoạt động phải không? Vì vậy, việc sử dụng băng thông cuối cùng đương nhiên là không cao. Có thể so với trước không ngừng tăng lên gấp bội lần, nhưng còn lâu mới có thể sử dụng hết toàn bộ băng thông, có thể sử dụng 1/10 cũng đã coi như rất tốt rồi.
Trong trường hợp này, nếu chúng ta muốn tránh các nhánh, băng thông tất yếu sẽ không hài lòng và nếu băng thông không hài lòng, TPS không thể cao như vậy. Vì bạn có quá nhiều dữ liệu để đồng bộ hóa với nhau nên sẽ có giới hạn trên đối với các giao dịch có thể được đặt trong đó - nếu kích thước của giao dịch vẫn giữ nguyên (giảm kích thước giao dịch cũng có thể cải thiện TPS, nhưng tất cả các chuỗi khối khác cũng có thể được sử dụng. Cùng một công nghệ, nhược điểm tương đối vẫn như cũ).
Trên thực tế, vấn đề cần giải quyết ngay bây giờ là sức mạnh tính toán trung thực sẽ không được tập trung sau khi fork xảy ra, điều này sẽ làm giảm tính bảo mật. Nhưng giải pháp này không có nghĩa là chỉ có một giải pháp để giảm xác suất phân nhánh. Ví dụ: chúng ta cũng có thể sử dụng đồ thị tuần hoàn có hướng dựa trên DAG để giải quyết.
Khi Ethereum chọn rẽ nhánh, nó không sử dụng chuỗi dài nhất mà sử dụng giao thức GHOST. Trên thực tế, Ethereum sử dụng một phiên bản được sửa đổi một chút, ý tưởng cốt lõi của giao thức này là chọn nhánh có cây con nặng nhất thay vì chuỗi con dài nhất khi gặp ngã ba. Trong trường hợp này, bất kể bạn có fork hay không, và có bao nhiêu fork, vấn đề bảo mật không phải là vấn đề lớn. Bởi vì ngay cả những người khai thác trung thực của fork vẫn sẽ đóng góp vào sự an toàn của lựa chọn trước đó. Ví dụ: một người khai thác đang rẽ nhánh trong một khối sau đó, nhưng người khai thác vẫn đóng góp vào tính bảo mật của cách chọn nhánh ở đâu đó trước khi rẽ nhánh. Nó đóng góp một trọng số trên cây con của nhánh cần được chọn.
Mặc dù Conflux sẽ có một số giao dịch lặp lại, nhưng vì nó sử dụng đầy đủ toàn bộ băng thông và theo tiền đề này, tốc độ sử dụng băng thông hiệu quả cao hơn nhiều so với GHOST, do đó có thể cải thiện thông lượng của toàn bộ hệ thống. Để so sánh, vì tổng mức sử dụng băng thông của Bitcoin là cực kỳ thấp (~1%), ngay cả khi nó làm giảm chi phí giao thức, thì khoảng cách thông lượng với Conflux vẫn rất rõ ràng.
Đây là một số giới thiệu ngắn gọn về PoW, chúng ta hãy xem xét Proof of Stake tiếp theo.
tiêu đề phụ
03 Bằng chứng cổ phần (PoS)
Ý tưởng cơ bản của chứng minh vốn chủ sở hữu là: khi bạn nắm giữ tiền xu (đôi khi người ta còn gọi đây là cổ phần), bạn có quyền ghi sổ kế toán và sau đó có quyền biểu quyết. Quyền biểu quyết của bạn tỷ lệ thuận với số xu bạn nắm giữ, nghĩa là một xu, một phiếu bầu. Nói một cách đơn giản, càng nhiều tiền, càng có nhiều quyền bầu cử.
Khung cơ bản của giao thức PoS là phân phối quyền đóng gói và quyền biểu quyết theo tỷ lệ nắm giữ tiền tệ của tất cả những người tham gia. Trong hệ thống PoS, việc đóng gói và bỏ phiếu được tách biệt và nó cũng có thể được tách biệt - trong hệ thống PoW, hai điều này thực sự giống nhau. Sau khi quyền đóng gói được phân bổ, người nhận được quyền đóng gói đủ điều kiện để tạo khối ứng cử viên. Khối này chứa các giao dịch sẽ được xử lý và có chữ ký riêng. Khối ứng cử viên không có nghĩa là nó sẽ được thêm vào để đồng thuận, sau khi khối ứng cử viên được phát sóng, những người có quyền biểu quyết cần phải bỏ phiếu.
Hình thức biểu quyết có thể là ký tên vào khối biểu quyết. Sau khi nhận được nhiều phiếu bầu hơn sau khi bỏ phiếu, khối ứng cử viên cuối cùng sẽ được thêm vào sự đồng thuận và trở thành một khối hợp lệ. Tất nhiên, chúng ta có thể thực hiện quy trình bỏ phiếu theo nhiều cách và cách phổ biến hơn là sử dụng thuật toán đồng thuận trong đó thiểu số tuân theo đa số. Bởi vì bây giờ chúng tôi biết có bao nhiêu người đủ điều kiện bỏ phiếu và có bao nhiêu phiếu bầu, vì vậy chúng tôi có thể dễ dàng tính toán đa số bằng thuật toán đồng thuận này, chẳng hạn như hơn 1/2 hoặc 2/3. Điều này rất khác với PoW, bởi vì trong hệ thống PoW, bạn không biết toàn bộ mạng có bao nhiêu sức mạnh tính toán và bạn chỉ có thể dựa vào các ước tính, thường không chính xác. Do đó, trong hệ thống PoW không thể sử dụng một ngưỡng nhất định để đánh giá đâu là đa số.
Trong cơ chế phân quyền, chúng ta cần bầu ra người chịu trách nhiệm đóng gói và người chịu trách nhiệm bỏ phiếu. Đôi khi vì hiệu quả, trước tiên mọi người sẽ bầu ra một ủy ban tương đối nhỏ, sau đó họ sẽ chịu trách nhiệm bỏ phiếu. Nếu đó không phải là cơ chế DPoS của Proxy Proof of Stake, các ủy ban như vậy thường được chọn ngẫu nhiên và luân chuyển thường xuyên để đảm bảo tính công bằng.
Trong hệ thống PoS, nếu một số người tham gia bị phát hiện vi phạm giao thức đồng thuận PoS, họ có thể bị trừng phạt. Ví dụ, một số người bỏ phiếu cho nhiều khối bằng một phiếu bầu hoặc họ có phiếu bầu nhưng họ chỉ từ chối bỏ phiếu, những hành vi này sẽ ảnh hưởng đến bảo mật của hệ thống có thể bị trừng phạt.
Chúng ta hãy xem lại những lợi thế của Proof of Stake.
Ưu điểm đầu tiên: các ưu đãi của người khai thác và người nắm giữ tiền xu là như nhau. Tất cả những người khai thác PoS phải nắm giữ tiền xu, làm giảm vai trò trong toàn bộ môi trường sinh thái không nắm giữ tiền xu mà dựa vào máy móc để khai thác. Trong cộng đồng PoW, thường xảy ra những tình huống mà lợi ích của người giàu, nhà phát triển và thợ đào không hoàn toàn thống nhất, sau đó sẽ xảy ra cãi vã, dẫn đến nhiều việc khó hoàn thành. Trong PoS, ít nhất lợi ích của thợ mỏ và nhà tư bản sẽ nhất quán hơn, đồng thời giảm xung đột và khác biệt ở một mức độ nhất định.
Ưu điểm thứ hai: độ trễ của PoS có thể được thực hiện rất thấp và xác nhận có thể rất nhanh. Trong hệ thống PoS, một giao dịch có thể được đóng gói ngay sau khi nhận được giao dịch và nó có thể được phát sau khi đóng gói, không cần đợi thời gian này, không giống như PoW, phải đợi ít nhất một sự cố PoW. Trên thực tế, sự chậm trễ của sự đồng thuận PoS chủ yếu bị hạn chế bởi mạng và số lượng người bỏ phiếu. Bởi vì bạn càng bầu chọn cho nhiều người thì bạn càng phải đợi lâu hơn.
Ưu điểm thứ ba: PoS thân thiện với môi trường hơn vì không yêu cầu bằng chứng về công việc. Bỏ phiếu thực sự là một chữ ký, và nhiều nhất là một số tính toán đơn giản được thực hiện, điều này dễ dàng hơn nhiều so với việc giải quyết vấn đề PoW.
Nhưng nhược điểm của nó cũng tương đối so với những điều trên và một số ưu điểm của hệ thống PoW bị mất đi.
Đầu tiên, các hệ thống PoS ít ẩn danh và được phép hơn một chút so với các hệ thống PoW không được phép. Bởi vì với tư cách là một người, tôi muốn tham gia một hệ thống PoS và nếu tôi muốn bỏ phiếu trong đó, trước tiên tôi cần phải giữ tiền. Tôi không thể có được loại tiền này thông qua các phương tiện khác. Tôi phải thực hiện giao dịch với những người đã có tiền. Tôi có quyền sau khi họ đưa tiền cho tôi. Điều này không giống như PoW, miễn là bạn kết nối máy với hệ thống, bạn có thể trực tiếp khai thác tiền.
Thứ hai, bản thân chi phí bỏ phiếu rất thấp và chỉ cần có chữ ký để tạo phiếu bầu hợp lệ. Trong trường hợp này, sẽ có một số vấn đề trong bảo mật. Ví dụ, vấn đề tấn công vô hại phổ biến của hệ thống PoS.
Ngoài ra, quyền biểu quyết có thể được tái sử dụng và chuyển nhượng, điều này không tốt. Nếu tôi bán khóa riêng của mình cho người khác, thì các phiếu bầu tôi đã bỏ trước đó, các lựa chọn của từng nhánh trong lịch sử và người nhận được khóa riêng của tôi tại thời điểm này có thể bỏ phiếu lại. Khả năng sử dụng lại các quyền biểu quyết trước đây gây ra một số lo ngại về bảo mật. Chúng ta sẽ thảo luận chi tiết hơn về vấn đề này sau khi bàn đến các cuộc tấn công tầm xa.
Ngoài ra còn có một số vấn đề gây ra bởi cơ chế bỏ phiếu. Vừa nãy chúng tôi đã nói rằng lợi thế của sự đồng thuận PoS là nó có thể được xác nhận nhanh chóng và không thể rẽ nhánh, nhưng tiền đề của việc không rẽ nhánh này là cần phải giả định rằng hầu hết các nút đều trung thực. Ở đây đề cập rằng hơn 2/3 số nút là trung thực, trên thực tế, nói đúng ra, hơn 2/3 số xu và quyền biểu quyết phải nằm trong tay những người trung thực, và những người xấu có ít hơn hơn 1/3 quyền biểu quyết. —— Bằng cách này, đối với một khối nhận được hơn 2/3 số phiếu bầu, ngay cả khi có một số người xấu có thể bỏ phiếu cho các khối khác nhau, họ sẽ tham gia cùng những người tốt còn lại chưa ký và tất cả họ sẽ không vượt quá 2/3 . Bằng cách này, miễn là có đủ chữ ký nút và hầu hết các nút trong toàn bộ hệ thống đều trung thực, hệ thống sẽ không phân nhánh và có thể thực hiện rất nhanh và mọi người sẽ xác nhận nhanh chóng. Ví dụ: EOS hiện đạt được khả năng tạo khối nhanh và xác nhận nhanh.
Nhưng sự đồng thuận của PoS cũng có một số vấn đề mới.
Đầu tiên là độ phức tạp của giao tiếp có liên quan đến số lượng cử tri và nó thường là mối quan hệ bậc hai. Càng nhiều người bỏ phiếu, giao tiếp càng phức tạp và mọi người phải chờ đợi lâu hơn. Giống như nếu chúng ta muốn bầu tổng thống Hoa Kỳ bằng một người, một lá phiếu, toàn bộ quá trình bỏ phiếu rất phức tạp và rất chậm; trong khi bỏ phiếu trong Bộ Chính trị để quyết định một vấn đề thì nhanh hơn nhiều vì có ít người hơn.
Ngoài ra còn có một vấn đề thiết yếu hơn của sự đồng thuận PoS, đó là thời điểm quyết định quyền biểu quyết sớm hơn so với việc tạo ra các khối ứng cử viên. Trước khi có khối này, tôi biết ai có quyền biểu quyết và ai không có quyền biểu quyết. Do cách xác định quyền biểu quyết, quyết định biểu quyết thực tế và hành động thực hiện quyền này là riêng biệt và không ràng buộc với nhau. Khi tôi có quyền bầu cử, không ai khác có thể nói cho tôi biết tôi phải bầu cho ai. Vì vậy, sau khi có quyền bầu cử, tôi có thể tùy ý bỏ phiếu và việc tôi có quyền bầu cử hay không sẽ không được xác định do hành vi bỏ phiếu của tôi. Nhưng theo cách này, việc sử dụng quyền biểu quyết linh hoạt hơn và điều đó cũng có nghĩa là tôi có thể chọn một không gian chiến lược lớn hơn và toàn bộ trò chơi sẽ trở nên phức tạp hơn. Nói chung, một không gian chính sách lớn không tốt cho bảo mật vì nó để lại nhiều khoảng trống hơn cho kẻ tấn công hoạt động. Một người trung thực thường chỉ tuân theo các quy tắc và anh ta quyết định hành động mọi lúc, nhưng nếu kẻ tấn công có không gian hoạt động rộng lớn, anh ta có thể làm rất nhiều việc và việc đảm bảo an ninh sẽ trở nên khó khăn hơn. Kết quả là sẽ có nhiều phương thức tấn công hơn trong hệ thống PoS, chẳng hạn như tấn công vô hại và tấn công tầm xa.
Vậy tại sao trong hệ thống PoS, chúng ta không thể tạo khối trước rồi quyết định quyền biểu quyết như trong hệ thống PoW? Bởi vì chúng tôi cần đảm bảo rằng mọi người đều có sự đồng thuận về quyền biểu quyết. Dù cử tri bỏ phiếu cho ứng cử viên nào trong khối nào thì cũng phải biết ai là người có quyền bầu cử. Nếu không, nó có thể biến thành một tình huống tương tự như PoW - điều này được gọi là mài cổ phần trong hệ thống PoS, có nghĩa là mỗi khi bạn cố gắng tạo nhiều khối mới, sau đó chọn phát sóng có lợi nhất từ các khối này. khối này sẽ xác định quyền biểu quyết trong tương lai. Nếu đúng là khối được tạo ra trước và quyền biểu quyết được xác định sau, chúng ta có thể thấy một nhánh chia thành nhiều nhánh, và sau đó mỗi khối nhánh được theo sau bởi một ủy ban giống như một nhóm người thân và bạn bè. của nhóm người thân và bạn bè Người ta nói rằng khối này là chính xác. Nhưng do nhóm người thân, bạn bè đứng sau mỗi khối là khác nhau nên dù bầu chọn thế nào vẫn không đạt được sự đồng thuận của toàn hệ thống.
Ngoài ra còn có một vấn đề với sự đồng thuận của PoS, đó là nó cần giả định rằng hầu hết các nút đều trung thực. "Sự trung thực" thường được đề cập nhiều hơn trong mật mã học. Nhưng trong lý thuyết trò chơi và kinh tế học, rất hiếm khi nói rằng một người trung thực, hơn nữa là một người có lý trí — nếu nói dối có thể kiếm được nhiều tiền hơn, nhiều người sẽ chọn nói dối. Vì vậy, nếu bạn cho rằng các nút này là trung thực, thì đó thực sự là một giả định rất mạnh mẽ. Điều đó có nghĩa là ngay cả khi họ có thể kiếm được nhiều tiền hơn bằng cách nói dối và làm điều ác, họ vẫn sẽ chọn tuân theo thỏa thuận. Điểm này cũng cần xem xét thỏa thuận cụ thể và mức độ trung thực cần thiết để biết đó có phải là một giả định hợp lý hay không.
Hãy để tôi nói về cách giải quyết những vấn đề mới này do sự đồng thuận của PoS mang lại.
Vấn đề đầu tiên là vấn đề về độ phức tạp giao tiếp cao, đây thực sự là vấn đề dễ giải quyết nhất. Bạn có thể chọn ngẫu nhiên một ủy ban tương đối nhỏ và những người này chịu trách nhiệm bỏ phiếu với tư cách là người đại diện hoặc bạn có thể sử dụng bỏ phiếu ủy quyền, nghĩa là tôi bỏ phiếu trước để chọn người đại diện, chẳng hạn như siêu nút trong EOS, sau đó những người này mọi người được bầu Người đại diện của đảng sẽ bỏ phiếu thay tôi. Ưu điểm của điều này là số lượng người thực sự tham gia bỏ phiếu đồng thuận khối tương đối nhỏ, điều này có thể làm giảm sự phức tạp của việc bỏ phiếu. Trên thực tế, các đại hội nhân dân, quốc hội nước ngoài hoặc bồi thẩm đoàn đều sử dụng logic tương tự.
Sau đó làm thế nào để chống lại cuộc tấn công? Một cách là chúng tôi giả định rằng hầu hết mọi người đều trung thực, và sau đó cho rằng mạng có sự đồng bộ hóa rất tốt—nghĩa là sau khi phát một khối, trong một khoảng thời gian nhất định, chẳng hạn như một phút hoặc 30 giây, toàn bộ mạng Hầu hết các nút có thể nhận được nó. Với tiền đề này, rất dễ đạt được sự đồng thuận. Nhưng một giả định như vậy thực sự rất mạnh mẽ và không dễ để đảm bảo nó trong thực tế. Nếu chúng ta muốn giải quyết vấn đề của một cuộc tấn công nào đó, trực tiếp cho rằng cuộc tấn công không tồn tại, và sau đó vấn đề được giải quyết, đây chắc chắn không phải là một phương pháp thuyết phục.
Hãy thảo luận về một số phương pháp tấn công phổ biến hơn đối với các hệ thống PoS.
Đầu tiên là một cuộc tấn công không quan tâm, thực sự là nhiều hơn một phiếu bầu. Nếu trong một hệ thống PoW, một người khai thác nhìn thấy hai nhánh như vậy, sức mạnh tính toán của anh ta chỉ có thể theo một nhánh để đào và không thể theo hai nhánh cùng một lúc. Tất nhiên, không phải là không thể đào hai khối cùng một lúc, nhưng điều đó có nghĩa là sức mạnh tính toán được phân bổ cho mỗi khối phải giảm đi, tổng sức mạnh khai thác của cả hai bên là một giá trị cố định, vì vậy nói chung sẽ không có ai chịu làm đi. Nó khác trong hệ thống PoS: Tôi thấy một ngã ba ở bên trái, tôi sẽ bỏ phiếu cho anh ta; Tôi thấy một ngã ba ở bên phải, và tôi sẽ bỏ phiếu lại. Bằng cách này, bất kể fork nào được gọi là đồng thuận, tôi có thể chia sẻ phần thưởng biểu quyết. Bằng cách đó những kẻ xấu được hạnh phúc. Kẻ xấu nói rằng nếu tôi thực hiện một đợt fork, tất cả những người khai thác hợp lý sẽ bỏ phiếu cho tôi, vì vậy tôi có thể khôi phục chuỗi chính trước đó miễn là tôi có nhiều quyền biểu quyết hơn một chút so với những người còn lại "những người tốt không hợp lý lắm "Thua. Điều này rất không an toàn.
Đối với các cuộc tấn công vô hại, một cách đối đầu phổ biến là nói rằng một khi hành vi bỏ phiếu nhiều lần như vậy bị phát hiện, người này sẽ bị phạt. Nếu bạn thực sự bỏ phiếu nhiều hơn một phiếu, những người khác có thể lấy thông tin về phiếu bầu của bạn, sau đó gửi nó đến chuỗi, nói rằng "người này đã bỏ phiếu nhiều hơn một phiếu, trừ tiền của anh ta". Nhưng phương pháp này thực sự có thể gặp phải một số vấn đề, đó là có thể xảy ra trường hợp tôi bỏ phiếu nhiều hơn một phiếu cho cả hai bên, nhưng cuối cùng chỉ một bên bị trừ, nhưng tôi có thể nhận được lợi ích lớn hơn ở bên còn lại.
Ngoài ra còn có một cuộc tấn công hối lộ. Khi nói đến việc bỏ phiếu, hầu hết những người tham gia thực sự gần với những người có lý trí hơn. Ví dụ: nếu bạn giữ 100 nhân dân tệ, thu nhập của mỗi phiếu bầu là 1 nhân dân tệ, sau đó tôi nói với bạn rằng chỉ cần bạn bỏ phiếu cho khối của tôi, tôi sẽ cho bạn 2 nhân dân tệ. Chắc nhiều người sẽ chấp nhận đề nghị của tôi. Bằng cách này, kẻ xấu có thể mua thêm phiếu bầu để hỗ trợ chi nhánh của chúng với chi phí rất thấp, chẳng hạn như mua quyền biểu quyết tương đương với 100 nhân dân tệ tài sản với hai nhân dân tệ. Điều này chắc chắn có tác động đến an ninh. Hiện đã có một số giải pháp cho vấn đề hối lộ, mặc dù chúng không hoàn hảo nhưng khá thuyết phục. Ví dụ: giải pháp do Algorand đề xuất là phân phối quyền biểu quyết được tính toán thông qua các số ngẫu nhiên riêng tư. Trước khi cử tri công khai bằng chứng về quyền bầu cử, không ai biết ai là người có quyền bầu cử. Bằng cách này, ít nhất sẽ không ai biết rằng tôi có quyền bỏ phiếu trước khi bỏ phiếu, và họ sẽ không thể hối lộ tôi. Sau khi bỏ phiếu công khai, bởi vì phương pháp của Algorand là thay đổi tất cả các thành viên của ủy ban mỗi khi hoàn thành một vòng bỏ phiếu, sau đó bầu lại một nhóm người để bỏ phiếu, vì vậy khi những người khác biết rằng tôi có quyền bỏ phiếu, phiếu bầu của tôi đã được bỏ. , Không có cách nào hối lộ để sửa đổi nó. Đây là một giả định tương đối cao về tính trung thực của những người tham gia đồng thuận: Tôi không thể nói rằng sau khi tôi có quyền bỏ phiếu, tôi sẽ lên Internet để hỏi xem tôi có quyền bỏ phiếu ở vòng nào và liệu có ai trả tiền không cho nó. Trên thực tế, nếu ai đó thực sự hỏi về điều này trên diện rộng, thì thực sự rất dễ bị cộng đồng phát hiện và mọi người sẽ biết rằng ai đó đang thực hiện kiểu tấn công này và sẽ dễ dàng phản hồi hơn. Vì vậy, đây ít nhất là một cách để giảm nguy cơ bị tấn công.
Một số khác là về tính bảo mật của các cuộc tấn công tầm xa. Điều này nói lên điều gì? Điều đó có nghĩa là, nếu A có 20% số tiền hoặc 20% vốn chủ sở hữu trong khối tạo, anh ta có thể bỏ phiếu cho khối bình thường. Tuy nhiên, A có thể bán tất cả số tiền của mình trên chuỗi tại một thời điểm nhất định, nghĩa là rút tiền mặt và bỏ trốn. Bây giờ anh ta không có tiền trên dây chuyền, và không thể để người khác trừng phạt anh ta trên dây chuyền trong tương lai. Lúc này, anh ta đã bán khóa riêng của mình cho kẻ tấn công. Kẻ tấn công có thể lấy được khóa A, B, C và nhiều khóa riêng của nhiều người. Sau khi có được các khóa riêng đó, quyền kiểm soát của các khóa riêng này trong khối genesis có thể lên tới hơn 50% hoặc thậm chí hơn 80%. Sau đó, kẻ tấn công lấy các khóa riêng tư này rồi tạo một khối độc hại, thay thế A, B và C mỗi cái bằng một phiếu bầu để hỗ trợ khối độc hại.
Từ quan điểm của bên thứ ba, khối này và khối chuỗi chính thực sự có vẻ hợp pháp như nhau, bởi vì có nhiều người bỏ phiếu. Nếu chuỗi của kẻ xấu đủ dài, những người mới tham gia sau này sẽ thấy rằng có hai chuỗi, mỗi chuỗi được nhiều người bình chọn, tôi nên tin vào chuỗi nào? Tại thời điểm này, sự đồng thuận đã trở thành một vấn đề. Vậy làm thế nào để đối phó với cuộc tấn công này? Một phương pháp là đảm bảo hoạt động yếu, nghĩa là yêu cầu mọi người khai thác trung thực thỉnh thoảng lên và kiểm tra ít nhất một lần để đồng bộ hóa trạng thái mới nhất. Nếu ai đó nói với bạn rằng trạng thái của bạn là sai và bạn nên rẽ nhánh từ một trạng thái nhất định một năm trước, nói chung, bạn không nên chấp nhận đề xuất như vậy, vì thời gian hoàn nguyên quá dài.
Một cách khác là khóa khoản tiền gửi, sau đó thêm giới hạn độ dài của việc hoàn trả. Đây là cài đặt trong giao thức Casper PoS của Ethereum. Nếu bạn phải bán số tiền bỏ phiếu của mình, thì có, nhưng bạn phải đợi một thời gian. Thời gian này đủ dài để những người khác sẽ không thừa nhận điều đó khi họ thấy bạn bỏ phiếu với các quyền biểu quyết trước đây của mình. Bởi vì những người khác đã tuân theo chuỗi pháp lý từ rất lâu rồi. Đây là giải pháp của Ethereum.
Giải pháp của Algorand cho đến thời điểm này là, vì bạn trung thực, là một người trung thực, sau mỗi vòng bỏ phiếu, bạn nên xóa khóa riêng được sử dụng cho vòng bỏ phiếu hiện tại, sẽ không ai sử dụng khóa riêng này để làm việc xấu nữa. Cách giải quyết này đúng nhưng đặt ra yêu cầu tương đối cao về trình độ đạo đức của những người tham gia.
Có một số vấn đề khác với các hệ thống đồng thuận dựa trên PoS. Thông thường nếu chúng ta chọn một ủy ban nhỏ, nếu chúng ta không sử dụng DPoS, chúng ta cần chọn ngẫu nhiên trong hệ thống PoS. Tính ngẫu nhiên trong bỏ phiếu PoW chủ yếu là do may mắn của mọi người trong khai thác song song phân tán, bởi vì bản thân việc giải quyết vấn đề PoW đã có tính ngẫu nhiên cố hữu. Nhưng nếu chúng ta muốn sử dụng tính ngẫu nhiên để chọn một ủy ban bỏ phiếu, chúng ta phải giải quyết một vấn đề mới: làm thế nào để tạo ra một số ngẫu nhiên hợp lý?
Làm thế nào để tạo ra các số ngẫu nhiên hợp lý cũng là một vấn đề đã được thảo luận trong nhiều năm về mật mã và có những giải pháp tương đối tốt để giải quyết nó. Mặc dù sơ đồ này không thể tạo ra các số ngẫu nhiên hoàn toàn đồng nhất và hoàn hảo, nhưng độ lệch có thể được kiểm soát trong một phạm vi. Mặt khác, rất khó để tạo ra các số ngẫu nhiên hoàn toàn thống nhất. Bởi vì chúng tôi biết rằng nếu có hơn 2/3 đồng xu, kẻ tấn công hoàn toàn có thể kiểm soát toàn bộ chuỗi và các số ngẫu nhiên được tạo cũng có thể được chọn theo ý muốn. Vì vậy, nếu bạn có thể kiểm soát 100% số ngẫu nhiên với 67% số xu, thì việc 10% số xu kiểm soát 11% số ngẫu nhiên cũng không quá khó chấp nhận. Trên thực tế, Bitcoin dựa trên PoW có các thuộc tính tương tự: ví dụ: 51% sức mạnh tính toán có thể kiểm soát 100% thu nhập trên chuỗi; thu được thu nhập cao hơn phần trăm sức mạnh tính toán thực tế. Đây là một mối quan hệ phi tuyến tính, nhưng miễn là nó không sai lệch quá nhiều, thì nó thường được mọi người chấp nhận.
Ngoài ra, hệ thống dựa trên sự đồng thuận của PoS sẽ gặp một số vấn đề khi khởi động. Bởi vì khi một dự án được bắt đầu lần đầu tiên, việc phân phối tài sản của nó là ít phi tập trung nhất. Giống như khi Bitcoin mới ra đời, Satoshi Nakamoto sẽ có nhiều đồng tiền. Nếu đó là một hệ thống PoS, một mình anh ta có thể kiểm soát hoàn toàn toàn bộ hệ thống. Các nhóm phát triển của các dự án khác và một số tổ chức đầu tư lớn trong giai đoạn đầu có thể đã kiếm được hầu hết các đồng tiền và quyền phát biểu của họ trên PoS sẽ trở nên rất, rất lớn. Vì vậy, làm thế nào để bắt đầu một chuỗi công khai PoS cũng là một vấn đề lớn. Phải mất một thời gian dài trước khi EOS được tung ra để thực hiện công việc tốt hơn. Vì vậy, về điểm này, nhóm của chúng tôi tin rằng ít nhất khi dự án bắt đầu, việc sử dụng PoW sẽ thuận tiện hơn nhiều so với PoS. Chỉ phương pháp PoW mới có thể không có giấy phép và khi đó tiền tệ ban đầu sẽ tương đối công bằng khi được phát hành.
04 PoW VS. PoS
Cuối cùng, mặc dù PoS có thể kiểm tra một số vi phạm và sau đó trừng phạt những người này trên chuỗi, nhưng có thể lợi ích của kẻ tấn công không phải là tất cả trên chuỗi và anh ta có những lợi ích khác ngoài chuỗi. Ví dụ: tôi đã tiến hành một cuộc tấn công vào Ethereum và tôi đã bị trừng phạt khi mất rất nhiều ETH, nhưng đồng thời, giá của đồng tiền này có khả năng giảm xuống. Nếu tôi bán khống ETH ở một thị trường khác, tôi có thể nhận được lợi nhuận cao hơn bằng cách rút ngắn. Trong trường hợp này, động lực bên ngoài chuỗi sẽ khiến một số người có nhiều tiền trong chuỗi vẫn có động lực tấn công chuỗi. Đây cũng là một bài toán khó giải của PoS.
tiêu đề phụ
Cuối cùng, chúng ta có một cái nhìn ngắn gọn về so sánh sự đồng thuận dựa trên cơ chế PoW và PoS.
Một là cơ chế truy cập. Tức là nó được cấp phép hay không? Là bỏ phiếu nặc danh? Có giới hạn số lượng người tham gia không? Việc bỏ phiếu sẽ được thực hiện song song hay bằng cách phát sóng? Có một cách khác để xác nhận kết quả bỏ phiếu? Chi phí bỏ phiếu cận biên?
Một là an ninh. Tôi nghĩ hai điểm khác biệt lớn nhất là quyền biểu quyết trước hay khối ứng cử viên trước? Các hành vi biểu quyết và quyền biểu quyết có bị ràng buộc không? Từ những quan điểm này, PoW thực hiện công việc tốt hơn về mặt bảo mật.
Tuy nhiên, kết quả bỏ phiếu PoW cần đợi lợi thế tích lũy trên một nhánh đủ lớn để được xác nhận, vì vậy trên thực tế, thay vì đợi một khối, anh ta phải đợi sức mạnh tính toán trung thực tập trung vào khối này cho một khoảng thời gian trước khi xác nhận. Do đó, hệ thống PoW chỉ có thể nói là tốc độ xác nhận nhanh nhất có thể thông qua một số tối ưu hóa chứ khó đạt được xác nhận cấp hai như một số PoS.
Khi nói đến chi phí bỏ phiếu cận biên, không có cách nào để tránh PoW vì nhu cầu về máy móc và chi phí điện. Nhưng các khía cạnh khác đang làm tốt hơn. Ngược lại, PoS tốt hơn về hiệu suất, nhưng chủ yếu là về bảo mật. Chính vì nó xác định quyền biểu quyết trước nên mọi người có thể tùy ý bỏ phiếu với quyền biểu quyết này. Và sau khi bạn đã bỏ phiếu một lần, bạn có thể bỏ phiếu lại với quyền này. Đối với một số vấn đề khác của PoS, trên thực tế, chúng ta có thể giảm bớt hoặc giải quyết những vấn đề đó bằng cách sử dụng bằng chứng về quyền và lợi ích của ủy ban hoặc ủy quyền, nhưng vấn đề chỉ có quyền biểu quyết thì khó giải quyết. Vấn đề quyền biểu quyết và hành vi bỏ phiếu không bị ràng buộc là một vấn đề thiết yếu của PoS.
Nhược điểm của PoW là xác nhận chậm và thông lượng thường tương đối thấp. Nhược điểm chính của PoS là cách đối phó với các phương thức tấn công khác nhau như tấn công hối lộ, tấn công tầm xa và tấn công vô hại. Để đối phó với các cuộc tấn công này, giao thức PoS phải đối phó với nhiều tình huống nên sẽ phức tạp hơn. Như chúng ta đã biết, hệ thống càng phức tạp thì việc đảm bảo an ninh càng khó, một mặt khó phân tích và chứng minh hơn, mặt khác kẻ gian càng dễ tìm ra kẽ hở. trong các hệ thống phức tạp.
Một cách khác có thể không được sử dụng nhiều hiện nay là kết hợp PoW và PoS với nhau để tạo sự đồng thuận. Bởi vì ưu điểm chính của PoW là an toàn và độ tin cậy, còn ưu điểm của PoS là hiệu quả cao, đặc biệt là xác nhận nhanh và mức tiêu thụ năng lượng tương đối thấp. Nếu những ưu điểm của hai điều này có thể được kết hợp, thì có thể thiết kế một giao thức đồng thuận lý tưởng hơn. Đồng thời, bạn cũng có thể xem xét tổ chức các khối theo cách DAG thay vì theo chuỗi. Bởi vì phương pháp DAG không sợ phân nhánh, nên nó không cần giới hạn quá nhiều tốc độ tạo khối, vì vậy mọi người có thể tạo khối nhanh hơn, miễn là băng thông có thể được đồng bộ hóa.
Khi thông lượng đạt đến giới hạn trên của băng thông và dung lượng mạng, nếu bạn muốn mở rộng hơn nữa dung lượng, bạn cần sử dụng bộ não của mình từ các khía cạnh khác. Một ý tưởng tương đối đơn giản là áp dụng giải pháp mở rộng lớp thứ hai: mỗi giao dịch không nên được truyền đến toàn bộ mạng để xác minh. toàn bộ mạng và cải thiện thông lượng hệ thống tổng thể. Lightning Network cũng sử dụng logic tương tự. Một cách khác khó khăn hơn yêu cầu sử dụng một số "công nghệ đen", chẳng hạn như tính toán có thể kiểm chứng, bằng chứng không có kiến thức ngắn, bằng chứng xác suất có thể kiểm chứng, v.v., sẽ không được thảo luận ở đây.
