

Trong quá trình phát triển của chuỗi khối, tam giác bất khả thi về phân cấp, bảo mật và hiệu suất là chủ đề được thảo luận nhiều nhất.Làm cách nào để cải thiện hiệu suất của chuỗi khối và làm cho nó khả thi về mặt thương mại trong khi vẫn đảm bảo hai yếu tố đầu tiên? Vào ngày 5 tháng 9, tại hội nghị POD do Odaily tổ chức và được đồng tổ chức chiến lược bởi Tập đoàn 36Kr, Tiến sĩ Jia Yaoqi, người đồng sáng lập và giám đốc kỹ thuật của Zilliqa và Đại học Quốc gia Singapore, đã đưa ra câu trả lời của mình trong một bài phát biểu tại địa điểm .
Jia Yaoqi cho biết các giải pháp hiện tại để cải thiện thông lượng và khả năng mở rộng của chuỗi công khai, chẳng hạn như tăng kích thước khối, cơ chế đồng thuận proxy và các giải pháp ngoài chuỗi, không phải là giải pháp hoàn hảo. Trước hết, do hạn chế về dung lượng lưu trữ máy tính và sức mạnh tính toán, không thể tăng kích thước khối lên 100 lần; ngoài ra, mặc dù cơ chế đồng thuận của đại lý cải thiện tốc độ giao dịch, nhưng nhóm đồng thuận tương đối nhỏ cũng có nghĩa là nó dễ bị tấn công hơn và Màu sắc của sự tập trung hóa mạnh mẽ, trong khi các giải pháp ngoài chuỗi và chuỗi bên làm mất đi tính phi tập trung cũng như tính công khai và minh bạch của chính chuỗi khối ở một mức độ nhất định.
Về vấn đề này, công nghệ sharding cắt toàn bộ mạng thành các nhóm khác nhau và thực hiện các giao dịch khác nhau, giúp toàn bộ mạng có thể xử lý các giao dịch khác nhau trong các phân đoạn khác nhau và cuối cùng đạt được hiệu quả tính toán chung và giải quyết chung các giao dịch. đạt được thông lượng cao.
Là một công nghệ mới nổi, công nghệ sharding cũng có những điểm yếu và thách thức. Đối với các cuộc tấn công sybil (những kẻ tấn công độc hại tạo ra các nút độc hại khác nhau, có thể được gán cho các phân đoạn khác nhau để tạo điều kiện thuận lợi cho các giao dịch độc hại hơn). Jia Yaoqi đề xuất rằng bằng chứng công việc có thể được sử dụng để cho phép các nút xác định danh tính của chúng, đồng thời, mạng thỉnh thoảng xáo trộn để gán ngẫu nhiên các nút cho các phân đoạn khác nhau. không ít hơn 600, mỗi phân đoạn Xác suất để một phần ba số nút trên một lát là độc hại là ít hơn một phần triệu. Ngoài ra, trước nguy cơ bị tấn công chi tiêu gấp đôi do tính toán song song các phân đoạn khác nhau, Jia Yaoqi cho biết nhóm của cô đã phát triển một cơ chế phân tách hợp đồng thông minh mới, thông qua phân bổ xác định, để đảm bảo rằng các hợp đồng thông minh khác nhau có thể thực hiện các phép tính trong nhiều mảnh cùng một lúc.
tiêu đề phụ
Sau đây là bản ghi lại bài phát biểu của Jia Yaoqi:
Xin chân thành cảm ơn lời mời của Mandy và Odaily. Hôm nay tôi xin giới thiệu với các bạn rằng Zilliqa đã thực hiện nghiên cứu về một số phương pháp blockchain, đặc biệt là mở rộng chuỗi công khai, trong ba năm qua, đặc biệt với tư cách là người tiên phong trong công nghệ blockchain sharding Nhóm nghiên cứu, một số tiến bộ gần đây trong lĩnh vực này.
Sự hiểu biết của mọi người về chuỗi khối và chuỗi công khai có thể nhiều hơn thông qua một số đặc điểm hiện có của nó, chẳng hạn như tính phi tập trung, tính bất biến cũng như tính công khai và minh bạch của nó. Đồng thời, chuỗi khối, đặc biệt là chuỗi công khai, cũng có một số điểm nghẽn, chẳng hạn như thông lượng thấp mà mọi người đều biết hiện nay. Ở đây chúng tôi sử dụng các chuyến tàu đi lại làm ví dụ và phép loại suy. Ví dụ, giống như chuỗi công khai hiện có, nó có thể đạt được 10-20 giao dịch mỗi giây, tương tự như một chuyến tàu đi lại, mỗi chuyến tàu chỉ có thể chứa 10 người và những người khác phải xếp hàng.
So với các hệ thống thanh toán truyền thống, chẳng hạn như các loại thẻ tín dụng khác nhau, chúng có thể đạt tốc độ 8000tps, tức là mỗi chuyến tàu có thể chứa 8000 người, do đó sẽ có rất ít người xếp hàng. Một số vấn đề gây ra bởi thông lượng thấp của hệ thống chuỗi công cộng hiện tại là tắc nghẽn giao thông. Ví dụ chúng ta bây giờ có hàng trăm người, hàng triệu người muốn đi một chuyến tàu như vậy mà mỗi chuyến tàu chỉ chở được mười người thì làm sao được? Trước hết là tăng giá vé, chẳng hạn từ 10 tệ ban đầu, bây giờ chúng ta tăng lên 1000 tệ, 10 người trả giá cao nhất sẽ được đi chuyến tàu muộn nhất.
Đồng thời, đối với hệ thống tàu điện đi lại, điều này sẽ tạo ra tắc nghẽn đáng kể. Mặc dù mỗi chuyến tàu có thể chứa 10 người, nhưng có hàng nghìn người xếp hàng phía sau, thông lượng của nó cuối cùng sẽ gây ra vấn đề lớn như vậy. Chúng ta có thể thấy rằng có rất nhiều dự án và nhóm, và mọi người đang khám phá cách đạt được nền tảng chuỗi công khai với thông lượng và khả năng mở rộng cao.
Trong số các giải pháp hiện có, giải pháp đầu tiên là tăng kích thước khối. Có những chuỗi khối phổ biến này và một số trong số chúng có các khối có kích thước 2 MB. Nếu kích thước khối chỉ đơn giản là tăng gấp đôi hoặc thậm chí gấp mười lần, thì thông lượng tương ứng có thể tăng lên từ hai đến mười lần tương ứng. Tuy nhiên, hệ thống này giống như một chiếc xe buýt mà chúng ta đi, bạn có thể làm nó thành hai tầng, thậm chí có thể xếp mười tầng lên trên nó, nhưng do hạn chế về chiều cao khác nhau, bạn không thể xây dựng 100 tầng trên một chiếc xe buýt.
Điều này tương tự với chuỗi khối, vì mạng hiện tại có các giới hạn về băng thông, bao gồm dung lượng lưu trữ của mỗi máy tính và giới hạn về khả năng tính toán của nó, dẫn đến tăng kích thước khối, đây không phải là giải pháp gấp 100 lần.
Đồng thời, một số nhóm và học giả đã đề xuất một cơ chế đồng thuận ủy nhiệm. Hiện tại, chuỗi công khai hiện tại có 10.000 hoặc 20.000 nút để chạy giao thức đồng thuận của toàn bộ hệ thống, xử lý các giao dịch và tạo các khối mới. Vì vậy, chúng ta có thể giảm một nút gồm 20.000 người như vậy xuống còn 1.000 hoặc thậm chí 50 hoặc 21 người bỏ phiếu để tạo thành sự đồng thuận không? Câu trả lời là có, chúng tôi có thể giảm một giao thức đồng thuận như vậy xuống chỉ còn 50 người xử lý các giao dịch để đạt được sự đồng thuận và tạo ra các khối.
Từ quan điểm của công nghệ máy tính, số lượng nút chạy giao thức đồng thuận càng ít thì sự đồng thuận sẽ được hình thành càng nhanh. Khi bạn có một nhóm nút tương đối nhỏ, tốc độ tạo khối và tốc độ của giao thức đồng thuận có thể đạt tới hàng chục nghìn giao dịch mỗi giây. Tuy nhiên, hầu hết thời gian chúng tôi chọn một tổ chức đại lý dựa trên số vốn, điều này sẽ dẫn đến việc lựa chọn một nhóm nhỏ có thể không đại diện cho lợi ích của công chúng. Đồng thời, do tổ chức đại lý có mục tiêu tương đối nhỏ nên dễ bị tấn công hơn và một khi một số đại lý bị tấn công, toàn bộ hệ thống chuỗi khối sẽ bị ảnh hưởng.
Một giải pháp mở rộng phổ biến khác là giải pháp side chain và off-chain. Hiện tại, kịch bản giao dịch ngoài chuỗi được sử dụng nhiều nhất là các giao dịch nhỏ. Ví dụ, để mua cà phê, người dùng có thể đặt cọc vào chuỗi trực tiếp, sau đó mua cà phê hàng chục lần một tháng tại quán cà phê, nhu cầu giao dịch được đặt trên chuỗi, từ đó giảm sự phụ thuộc vào chính chuỗi . Tuy nhiên, giải pháp như vậy cũng làm mất đi tính phi tập trung và tính minh bạch của chính chuỗi công khai.
Trong khi đó, vào đầu năm nay, Vitalik đã đăng một bài đăng trên Twitter của mình rằng sharding đang đến. Là nhóm đầu tiên tiến hành nghiên cứu về công nghệ sharding, nhóm của chúng tôi đã bắt đầu nghiên cứu về sharding vào năm 2015 và đã xuất bản các bài báo liên quan tại hội nghị bảo mật máy tính hàng đầu CCS vào năm 2016. Đây cũng là bài báo học thuật đầu tiên áp dụng công nghệ sharding cho các bài báo học thuật về chuỗi công khai cải thiện thông lượng.
Như bạn có thể thấy, đây là một số thử nghiệm sơ bộ do nhóm của chúng tôi thực hiện. Tại 3600 nút, hệ thống của chúng tôi có thể đạt được hơn hai nghìn giao dịch mỗi giây. Nói một cách dễ hiểu, công nghệ sharding là chia toàn bộ mạng, ví dụ toàn mạng có 10.000 nút thì chúng ta có thể chia thành nhiều nhóm khác nhau, mỗi nhóm xử lý các giao dịch khác nhau. Toàn bộ mạng xử lý các giao dịch khác nhau trong các phân đoạn khác nhau và cuối cùng đạt được hiệu quả của các giao dịch xử lý song song, do đó đạt được thông lượng cao.
Công nghệ phân mảnh cũng phải đối mặt với nhiều thách thức và vấn đề, chẳng hạn như làm thế nào để đảm bảo an ninh tốt, phân quyền không khoan nhượng và thực hiện hiệu quả các hợp đồng thông minh.
Tiếp theo, tôi sẽ chia sẻ ngắn gọn với bạn cách chúng tôi giải quyết những thách thức và vấn đề này. Thách thức đầu tiên là làm thế nào để chia các nút khác nhau thành các phân đoạn khác nhau. Có rất nhiều kiến thức trong việc này.Kẻ tấn công độc hại có thể tạo các nút độc hại khác nhau và đặt chúng vào cùng một phân đoạn, từ đó tạo điều kiện thuận lợi cho nhiều giao dịch độc hại hơn.
Làm thế nào để chúng ta giải quyết một vấn đề như vậy? Trước hết, tôi vừa đề cập đến một cuộc tấn công như vậy, về mặt học thuật được gọi là tấn công sybil, tức là những kẻ tấn công có thể tạo ra một số lượng lớn các nút độc hại như vậy để chiếm lấy mạng của bạn. Để ngăn chặn các cuộc tấn công sybil như vậy, hệ thống của chúng tôi yêu cầu mỗi nút thực hiện bằng chứng công việc. Mỗi nút phải thực hiện bằng chứng công việc theo các khoảng thời gian đều đặn, chẳng hạn như hai giờ, để khai báo danh tính hợp lệ của nó. Sau đó, hệ thống phân phối ngẫu nhiên các nút thành các phân đoạn khác nhau, với mỗi phân đoạn có hơn 600 nút. Thông qua tính toán, chúng tôi có thể chứng minh rằng xác suất một phần ba số nút trong mỗi phân đoạn là độc hại là một phần triệu.
Sau khi hệ thống xử lý phân đoạn bảo mật, câu hỏi tiếp theo là làm thế nào để đặt các giao dịch khác nhau trong các phân đoạn khác nhau. Ví dụ: Alice là kẻ tấn công, anh ta có thể tạo hai giao dịch cho các phân đoạn khác nhau, một giao dịch là chuyển 5 nhân dân tệ cho Bob và giao dịch còn lại là chuyển 5 nhân dân tệ cho chính mình. Hai phân đoạn xử lý các giao dịch khác nhau, nhưng Alice tiêu 5 đô la của mình hai lần, đây là điều mà chúng tôi gọi là tấn công chi tiêu gấp đôi cổ điển.
Đối với cuộc tấn công chi tiêu gấp đôi vừa được đề cập, chúng tôi có thể ngăn chặn cuộc tấn công bằng cách phân tách các giao dịch chuyển tiền khác nhau theo địa chỉ của người gửi. Tuy nhiên, hiện tại có một số lượng lớn các giao dịch hợp đồng thông minh trên chuỗi công khai và các giao dịch này mang lại nhiều thách thức hơn cho quá trình bảo vệ. Vẫn là ví dụ vừa rồi, Alice và Bob, cả hai đều sử dụng hợp đồng thông minh để bán vé xem phim, Alice mua vé xem phim cuối cùng từ hợp đồng thông minh này trong một phân đoạn và Bob cũng mua vé xem phim cuối cùng trong một phân đoạn vé xem phim khác. Cuối cùng, tất cả họ đều mua vé xem phim bằng số dư của mình, nhưng vì không có liên lạc giữa các phân đoạn khác nhau, liệu vé xem phim cuối cùng thuộc về Alice hay Bob? Đây là một vấn đề rất nghiêm trọng do dữ liệu không nhất quán.
Đối với các giao dịch chuyển tiền thông thường, chỉ có người gửi sẽ làm thay đổi trạng thái của người gửi và người nhận. Tuy nhiên, trong một hợp đồng thông minh, những người gửi khác nhau có thể khiến trạng thái của hợp đồng thông minh thay đổi, đồng thời, hợp đồng thông minh cũng có thể khiến trạng thái của những người dùng khác nhau thay đổi.
Để giải quyết vấn đề không thống nhất về trạng thái của các phân đoạn hợp đồng thông minh, chúng ta có thể sử dụng giao thức cam kết hai giai đoạn để khóa trạng thái của các hợp đồng thông minh có liên quan trong các phân đoạn khác nhau. Alice và Bob mua vé xem phim cuối cùng trong các phân đoạn khác nhau. Chúng ta có thể để giao dịch của Alice chạy trước và khóa trạng thái của hợp đồng thông minh trong phân đoạn của Bob. Tuy nhiên, giao thức khóa sẽ ngăn các hợp đồng thông minh chạy đồng thời trong nhiều phân đoạn. Để giải quyết vấn đề tính toán song song như vậy, nhóm của chúng tôi đã phát triển một phương pháp khác, đó là giải quyết vấn đề xung đột hợp đồng thông minh vừa được đề cập thông qua phân bổ xác định.
Trước tiên, chúng tôi nghiên cứu một số lượng lớn các hợp đồng thông minh, sau đó phân loại các giao dịch của các hợp đồng thông minh này:
1. Giao dịch chuyển nhượng thông thường.
2. Chỉ cần gọi hợp đồng thông minh.
3. Phức tạp hơn, người dùng có thể gọi hợp đồng thông minh và hợp đồng thông minh lại gọi hợp đồng thông minh.
Sau đó, chúng tôi chỉ định ba loại giao dịch này cho các phân đoạn khác nhau. Đối với các giao dịch chuyển khoản thông thường, chúng tôi có thể trực tiếp xác định nó thuộc về phân đoạn nào để xử lý dựa trên địa chỉ của người gửi. Đối với loại thứ hai, có thể xác định nó thuộc về phân đoạn nào dựa trên địa chỉ của người gửi và hợp đồng thông minh. Chúng tôi sẽ bàn giao các giao dịch đặc biệt của loại thứ ba và loại thứ hai cho các phân đoạn đặc biệt để xử lý. Sau khi phân tích và xác minh lý thuyết, chúng tôi có thể đặt ba loại giao dịch này vào các phân đoạn khác nhau để xử lý song song thông qua thuật toán của chúng tôi, đồng thời ngăn chặn các cuộc tấn công chi tiêu gấp đôi và vấn đề không thống nhất dữ liệu vừa đề cập.
Trong khi giải quyết vấn đề bảo vệ hợp đồng thông minh, chúng tôi cũng nhận thấy rằng bản thân hợp đồng thông minh cũng có nhiều vấn đề. Ví dụ: các hợp đồng thông minh mà bạn thấy trong hai năm qua đã bị đóng băng do nhiều sơ hở. Lý do là bản thân hợp đồng thông minh phức tạp hơn và khó đoán hơn. Dựa trên nghiên cứu hiện có của chúng tôi, nhóm của chúng tôi đã phát triển ngôn ngữ hợp đồng thông minh Scilla của riêng mình, ngôn ngữ này có thể cung cấp bảo mật tốt hơn và tạo điều kiện xác minh chính thức. Hiện tại, một số công ty quảng cáo và công ty phần mềm tương đối lớn đã hợp tác với chúng tôi để sử dụng Scilla để phát triển hợp đồng thông minh.
Vào cuối năm nay hoặc đầu năm sau khi mạng chính Zilliqa hoạt động, bạn sẽ thấy rằng công nghệ sharding đã cải thiện đáng kể thông lượng của chuỗi công khai.
Đây là những chia sẻ của mình, xin cảm ơn tất cả các bạn!
