Các yếu tố khác biệt của SKALE, sự đồng thuận, đề xuất khối và khả năng tồn tại: Cuộc phỏng vấn Stan Kladko, CTO / Đồng sáng lập, SKALE Labs
Tôi đã có cơ hội ngồi nói chuyện với Stan Kladko, CTO / Đồng sáng lập, SKALE Labs vào ngày hôm trước và tìm hiểu suy nghĩ của anh ấy về thiết kế của Mạng SKALE và lý do tại sao nó khác với các giải pháp mở rộng Ethereum và Lớp 2 khác. Chúng tôi đã nói về hệ thống sản xuất so với các dự án nghiên cứu, thuật toán toán học, đồng thuận nhị phân, đề xuất khối, mô-đun, mạng tự phục hồi và hơn thế nữa.
Trong quá trình nói chuyện của chúng tôi, anh ấy đã giải nén một số chi tiết về hoạt động bên trong của các blockchain và giải thích cách các thuật toán đồng thuận có thể được tạo ra nhanh hơn, tiết kiệm năng lượng hơn và tài nguyên mà không phải hy sinh tính bảo mật.
Bạn có thể giải thích một số quyết định thiết kế xung quanh SKALE Chains không?
Stan : Chúng tôi đã thiết kế Mạng SKALE để tương thích với Ethereum. Mọi thứ bạn có thể chạy trên Ethereum, bạn có thể chạy trên SKALE và nhanh hơn rất nhiều. Ngoài ra, chúng tôi đã thiết kế và xây dựng Chuỗi SKALE có thể chứng minh được về mặt toán học để mọi điểm bên trong Chuỗi SKALE đều có một thuật toán được mô tả tốt và có thể chứng minh về mặt toán học theo một số giả định nhất định. Các giả định này là đồng nhất trên tất cả các tính năng.
Theo hiểu biết của chúng tôi, các chuỗi này là blockchain Proof of Stake duy nhất có thể chứng minh về mặt toán học hiện có trên thị trường. Có rất nhiều tài liệu học thuật từ các trường đại học nhưng về hệ thống chất lượng sản xuất, chúng tôi nghĩ rằng hệ thống của chúng tôi là hệ thống đầu tiên. Sự chặt chẽ này thực sự quan trọng bởi vì bạn muốn lưu trữ tiền của mình trên một thứ có nền tảng toán học.
SKALE Chains khác với các blockchain khác như thế nào?
Stan : SKALE là một blockchain thế hệ tiếp theo. Các thế hệ blockchain trước đây - Bitcoin, Ethereum và khá nhiều blockchain khác - có thời gian khối cố định. Điều này có nghĩa là các khối được phát hành theo một trình tự thời gian nhất định, thường là 10 hoặc 15 giây một lần. Với SKALE, các khối có thể được phát hành khi cần thiết. Điều này giúp tiết kiệm thời gian của CPU vì nếu không có giao dịch thì sẽ không có khối. Nếu ai đó đi cùng và thực hiện một giao dịch thì một khối mới sẽ xuất hiện vài giây sau đó.
Lưu ý rằng trong bản phát hành mới nhất này, chúng tôi vẫn đang tạo các khối trống cứ sau 10 giây vì mọi người muốn thấy một số loại báo hiệu hoặc một số loại bằng chứng rằng chuỗi đang hoạt động. Về mặt lý thuyết, bạn có thể chạy một chuỗi SKALE và không sản xuất bất kỳ khối nào hoặc chỉ sản xuất một lần mỗi tháng. Cách tiếp cận khi cần thiết này cho phép chúng tôi có khả năng có nhiều chuỗi trên cùng một nút và tiết kiệm tiền và tài nguyên cho người dùng.
Thông thường mọi người chạy một blockchain duy nhất và sử dụng các nút đầy đủ. Có nhiều chuỗi trên mỗi nút là duy nhất. Những tiến bộ trong thuật toán đồng thuận của chúng tôi cho phép chúng tôi phân chia các nút trên nhiều blockchain, điều này thực sự thuận tiện cho các trình xác thực của chúng tôi. Ngoài ra, các nút của chúng tôi không chạy trên phần cứng siêu đắt. Chúng tôi có thể hỗ trợ các máy AWS và Digital Ocean không tốn kém. Một nút SKALE điển hình sẽ chạy trên một máy ảo cỡ trung bình, có thể tốn vài trăm đô la mỗi tháng.
Bạn có thể mô tả phiên bản đồng thuận của SKALE khác biệt như thế nào và tại sao điều này lại quan trọng?
Stan : Trong thế giới blockchain, luôn có sự phân chia giữa các hệ thống định hướng sản xuất và các hệ thống nghiên cứu hàn lâm. Ở cấp độ thực tế, bạn có Bitcoin, Ethereum và các hệ thống Proof of Stake như Cosmos và Tendermint. Trong thế giới học thuật, bạn có ABBA và một số thuật toán có thể chứng minh về mặt toán học khác.
Các hệ thống thực tế như Tenderment, không sử dụng đồng thuận ABBA hoặc các thuật toán đồng thuận nhị phân khác. Thay vào đó, họ sử dụng các bằng chứng xác đáng do các kỹ sư xây dựng. Tendermint là tốt nhất cho đến nay, trong đó Polkadot là tốt thứ hai, nhưng nó kém an toàn và kém chính xác hơn. Và sau đó, bạn chuyển sang các thuật toán ít nâng cao hơn được sử dụng bởi EOS, vốn có nền tảng toán học thậm chí còn ít hơn. Nếu bạn đọc các bài báo của họ, họ không ở cấp độ nghiên cứu theo nghĩa là không có chứng minh toán học nào trong đó.
Các kỹ sư nói, "Thứ này đang chạy theo một cách nhất định nhưng chúng ta hãy xem xét mọi thứ có thể sai ở đâu." Sau đó, họ cung cấp một số cơ sở lý luận về cách họ có thể bảo vệ trước những điều tồi tệ có thể xảy ra. Họ sẽ sửa một thứ và sau đó một vấn đề khác xuất hiện và họ sẽ khắc phục điều đó. Nhưng cho đến nay, vẫn chưa có sự đồng thuận nhị phân hoặc một số thuật toán nghiên cứu khác vào hệ thống sản xuất.
Nếu bạn muốn nhiều hơn chỉ là một bộ sưu tập đặc biệt các bản sửa lỗi kỹ thuật, thì bạn cần một bằng chứng chính xác rằng sẽ không có lỗ hổng bảo mật. Những gì SKALE đang làm ở đây là thu hẹp khoảng cách giữa nghiên cứu toán học và thế giới thực. Chúng tôi thực sự tin rằng chúng tôi có thể lập luận rằng toàn bộ sự việc là có thể chứng minh được từ đầu đến cuối. Đó là yêu cầu của chúng tôi. Chúng tôi không nói rằng các thuật toán sản xuất khác là xấu, vì chúng có thể hoạt động trong nhiều trường hợp. Chỉ là chúng tôi quan tâm đến việc tạo ra thứ gì đó có thể chứng minh được về mặt toán học.
Làm thế nào để SKALE đạt đến hai lần khối thứ hai hoặc ít hơn?
Stan : Hầu hết các thuật toán Proof of Stake hoạt động theo cách đơn giản. Bạn có một blockchain, blockchain cần thêm các khối, các khối xuất hiện và sau đó chúng được dán vào các khối trước đó. Nếu bạn nhìn vào hầu hết các thuật toán Proof of Stake như ETH2, Tendermint, EOS và Polkadot, chúng hầu như đều hoạt động theo cùng một cách là chúng sử dụng các đơn vị đề xuất khối duy nhất.
Tại bất kỳ thời điểm nào, có một nút được chỉ định là nút duy nhất có thể đề xuất một khối. Nếu khối của họ được những người khác cho là OK, khối đó sẽ được thêm vào chuỗi và sau đó một người đề xuất khối khác được chọn. Lựa chọn này có thể là vòng tròn, theo lựa chọn ngẫu nhiên hoặc theo một số cơ chế khác.
Trình tự này được phân chia theo thời gian trong đó có một khoảng thời gian cố định trong đó người đề xuất có thể đề xuất một khối. Cũng có một khoảng thời gian chờ, theo đó nếu người đề xuất được chỉ định không đề xuất khối, tùy chọn sẽ chuyển sang người đề xuất tiếp theo. Ví dụ: Eth2 có khoảng thời gian chờ 10 đến 15 giây có nghĩa là mỗi người đề xuất được chỉ định có nhiều thời gian để đề xuất một khối. Điều đó cũng có nghĩa là những người khác không thể đề xuất khối cho đến khi hết khoảng thời gian đó. Điều đó cũng có nghĩa là người đề xuất có thể phải đề xuất một khối trống - trong trường hợp không có giao dịch - để không bị coi là không phản hồi hoặc tệ hơn là độc hại.
Thuật toán đồng thuận của SKALE khác ở chỗ nó cho phép mọi nút xây dựng chuỗi đề xuất một ứng cử viên khối. Có nghĩa là tất cả 16 nút trong một chuỗi có thể đề xuất một ứng cử viên cùng một lúc. Trong số 16 ứng cử viên này, một người được chọn. Dựa trên toán học đằng sau thuật toán, một tỷ lệ phần trăm cao các ứng cử viên được cho là ứng viên hợp lệ, có nghĩa là không bao giờ có thời gian chờ. Có nghĩa là không cần khoảng thời gian cố định. Nó cũng giúp cho việc tạo chuỗi nhanh chóng trong đó sau khi một khối được thêm vào, các nút ngay lập tức gửi các ứng cử viên mới.
Nếu mọi nút gửi đề xuất cùng một lúc, điều đó có tạo ra lưu lượng mạng không cần thiết không?
Stan : Không phải trong trường hợp này. Thông thường, có 16 đề xuất khối sẽ là mạng đắt tiền vì mọi nút cần gửi đề xuất của họ đến mọi nút khác. Hóa ra sự kém hiệu quả này thực sự có thể được giải quyết tương đối dễ dàng. Nó đã được giải quyết trong Honeybadger bằng cách sử dụng một thuật toán toán học rất tiên tiến. Chúng tôi giải quyết nó một cách thiết thực hơn và đơn giản hơn.
Khi bạn có 16 nút và họ đang thực hiện các đề xuất khối, mỗi nút đều có một hàng đợi giao dịch đang chờ xử lý và các giao dịch gossips lẫn nhau. Những hàng đợi này và những câu chuyện phiếm này xảy ra trong Ethereum, nó xảy ra trong Bitcoin, và về cơ bản đã tồn tại kể từ thời kỳ đầu của blockchain.
Mỗi nút đều có một hàng đợi đang chờ xử lý nhưng các hàng đợi không hoàn toàn giống nhau. Có sự chậm trễ mạng, sự chậm trễ lan truyền, lưu lượng mạng chậm, v.v. Nhưng ngay cả với điều này, các hàng đợi đang chờ xử lý cũng xấp xỉ bằng nhau. Nếu một nút có giao dịch trong hàng đợi của họ, nút khác có thể nhận được giao dịch đó có thể là hàng trăm mili giây sau đó nhưng đối với hầu hết các phần, 99% hàng đợi đều giống nhau và sự khác biệt 1% đến từ sự chậm trễ của mạng.
Nếu tôi đưa ra đề xuất, tôi không cần gửi cho bạn các giao dịch thực tế vì bạn cũng có các giao dịch này. Điều duy nhất tôi cần gửi là mã băm hoặc dấu vân tay của các giao dịch, vì vậy khi tôi gửi một đề xuất, đó là một đề xuất rất nhẹ. Thay vì các giao dịch thực tế, về cơ bản chúng chỉ là những con số đơn lẻ.
Khi bạn nhận được dấu vân tay của các hàm băm, bạn sẽ nhìn vào hàng đợi đang chờ xử lý của mình, tìm các giao dịch và sau đó xây dựng lại các đề xuất. Đây là một sự nén rất lớn vì bạn không gửi các giao dịch mà bạn đang gửi dấu vân tay. Có thể có một số giao dịch chưa được đưa vào hàng chờ xử lý của bạn nhưng sau đó bạn sẽ chỉ nói với tôi, "Tôi đã nhận 99% trong số các giao dịch này nhưng tôi không biết ba giao dịch này." Trong trường hợp đó, tôi sẽ chỉ gửi cho bạn ba giao dịch đó. Do cách tiếp cận này, đề xuất khối rất nhẹ. Việc mỗi nút gửi đề xuất của họ đến mọi nút khác không phải là vấn đề lớn.
Đã có đề xuất sử dụng các cơ chế tương tự trong Bitcoin, Eth1 và Eth2 nhưng cho đến nay chúng vẫn chưa thành hiện thực. Các hệ thống Proof of Stake khác đang suy nghĩ về điều này, nhưng theo hiểu biết của tôi, chúng tôi là những người đầu tiên thực sự hiện thực hóa ý tưởng này. Bởi vì điều này, các đề xuất của chúng tôi rất nhỏ, theo nghĩa đen, nhỏ hơn hàng trăm lần so với các đề xuất nói là Bitcoin hoặc Eth2.
Sự khác biệt giữa thời gian chặn nhanh trong SKALE so với các chuỗi khác cũng đưa ra tuyên bố tương tự là gì?
Stan : Đó là một câu hỏi quan trọng. Blockchain Proof of Stake bao gồm một tập hợp từ 10 đến 20 nút tạo ra một chuỗi - khối tiếp theo sau khối tiếp theo. Thuật ngữ “tính cuối cùng” đề cập đến khi bạn có thể nói rằng khối sẽ chính xác là khối này. Trong một số blockchain, quá trình hoàn thiện mất nhiều thời gian.
Trong tài liệu toán học đã biết rõ rằng sự đồng thuận nhị phân không thể được thực hiện về mặt toán học nhanh hơn thông điệp M. Nếu bạn muốn có sự đồng thuận nhị phân của 100 nút, thì thuật toán tốt nhất có thể chứng minh được về mặt toán học sẽ nhận 100 thông báo trên mỗi nút. Về cơ bản, mỗi nút sẽ gửi ít nhất một thông điệp đến mọi nút khác. Nếu bạn muốn có sự đồng thuận nhị phân của 1000 nút, thì bạn cần gửi 1000 thông điệp.
Vấn đề tồn tại trong thế giới Proof of Stake là không thể thực hiện được sự đồng thuận nhị phân này với số lượng tin nhắn ít hơn. Kết quả là, họ tuyên bố tạo ra các hệ thống vượt xa tốc độ ánh sáng theo đúng nghĩa đen.
Mọi thứ tuyên bố là nhanh hơn Tendermint có nghĩa là họ đang giới thiệu một số kiểu lập luận vượt quá tốc độ ánh sáng. Khi bạn đọc sách trắng về cách tiếp cận siêu tuyệt vời này, bạn luôn thấy rằng nó có một số ngôn ngữ giả toán cố gắng che giấu mọi thứ.
Các thuật toán này có hoạt động không? Câu trả lời là có. Nhưng câu hỏi đặt ra là tại sao các thuật toán này lại hoạt động? Nhiều thuật toán trong số này giả sử nội bộ rằng tất cả các trình xác nhận, tất cả các nút, đều tốt. Nếu bạn có thể đưa ra giả định rằng tất cả các nút đều có giá trị thì bạn có thể sử dụng các thuật toán nhanh hơn nhiều. Tuy nhiên, nếu giả định bảo mật bị phá vỡ trong một blockchain, mọi người có thể mất tiền.
Tại SKALE, chúng tôi tuyên bố rõ ràng rằng chúng tôi chạy nhanh nhất có thể với giả định rằng tại một thời điểm nào đó, một phần ba trình xác thực có thể trở nên xấu và nó sẽ vẫn hoạt động một cách an toàn. Đây là sự đánh đổi giữa hiệu suất và bảo mật. Có thể có những trường hợp mà các mạng khác nói rằng, tất cả các trình xác nhận của họ đều tốt và sau đó họ có thể chạy một hệ thống nhanh hơn, nhưng đó không phải là cách chúng tôi áp dụng.
Hãy nói về mô-đun của Mạng SKALE và những gì đã được thực hiện trong SKALE để cho phép các dịch vụ chuỗi có thể mở rộng hơn.
Stan : Tại SKALE, chúng tôi tin rằng chúng tôi chỉ cần làm những điều cốt lõi tối thiểu nhất có thể. Nếu chúng tôi có thể loại trừ thứ gì đó do đó tiết kiệm thời gian, chúng tôi sẽ làm như vậy. Nhưng chuỗi của chúng tôi không đến nỗi nếu bạn bỏ đi một tính năng, thì người dùng sẽ không thể chạy hệ thống của họ. Tuy nhiên, chúng tôi tin rằng không phải mọi thứ đều do chúng tôi làm. Nếu ai đó muốn phát triển thứ gì đó trên SKALE và mở rộng SKALE, chúng tôi không muốn cản đường họ.
Kịch bản hoàn hảo cho SKALE là giữ cho hệ thống của chúng tôi cực kỳ mô-đun, gần như tương tự như cách Linux được thực hiện. Nếu bạn nhìn vào Linux, nó là một mô-đun hoàn hảo ở chỗ điều duy nhất mà nhóm Linux quan tâm là nhân Linux. Kernel đang phát triển siêu chậm - nó đã được phát triển trong 30 năm. Tất cả những thứ khác được thực hiện bởi các công ty khác và các đội khác. SKALE có thể giống như nhân Linux, nơi chúng tôi chỉ hoàn thiện phần lõi và cung cấp các cách để mọi người thể hiện những điều mới thông qua những thứ như gói.
Các gói và tùy chỉnh sẽ hoạt động như thế nào - nó sẽ trên cơ sở từng chuỗi?
Stan : Có hai kịch bản khác nhau. Một trường hợp là trường hợp một tính năng hoàn toàn có thể triển khai được trong Solidity. Với trình quản lý gói Eth - mà chúng tôi nghĩ rằng sẽ sớm được cung cấp cho cộng đồng Ethereum - họ sẽ cài đặt nó vào một chuỗi SKALE tương tự như cách hoạt động của trình cài đặt Linux. Đây sẽ là một con đường dễ dàng cho chúng tôi.
Nếu bạn muốn sửa đổi chuỗi của mình sâu hơn, thì bạn có thể sử dụng các hợp đồng được biên dịch trước. Giả sử bạn muốn chạy thứ gì đó thực sự nhanh trên chuỗi của mình, sau đó bạn muốn viết nó bằng Python hoặc C ++ vì Solidity có thể khá chậm. Đối với điều này, chúng tôi sẽ sử dụng trình quản lý gói thông thường cho phép nó được cài đặt dưới dạng biên dịch trước thành hợp đồng.
Một trong những điểm khó khăn với Ethereum Mainnet là nó là một quyết định chủ quan về việc bao gồm các thuật toán nào. Tôi tin rằng họ có tám hoặc mười gói được biên dịch sẵn cho các cách tiếp cận mật mã khác nhau, nhưng trong mật mã có sự bùng nổ của các thuật toán. Mọi người đang làm đủ mọi thứ. Vấn đề với mạng chính Ethereum là bằng cách nào đó bạn phải lọc những cái nào để đưa vào. Trong trường hợp của chúng tôi, đó là chuỗi của bạn. Nếu bạn muốn một thuật toán cụ thể, bạn muốn chạy giải pháp tốt nhất cho mình, bạn sẽ có thể đưa nó vào một gói và chạy nó.
Bạn có thể giải thích cách thức hoạt động của mạng tự phục hồi và khả năng sống sót không?
Stan : SKALE cần phải đối phó với tình huống nếu một chuỗi gặp sự cố. Nếu bạn nhìn vào các blockchain cũ hơn như Bitcoin, nó có mã rất đơn giản và chạy tương đối chậm, vì vậy nó không bị lỗi. Đó là bởi vì một hệ thống đơn giản có thể được đảm bảo an toàn và không có lỗi. Với Ethereum, có thể đã có một hoặc hai lần xảy ra một cuộc tấn công từ chối dịch vụ và nó đã làm hỏng chuỗi.
Với hệ thống Proof of Stake, chúng cần chạy nhanh và do đó, các thuật toán phức tạp hơn cần được sử dụng. Với các hệ thống phức tạp, bạn không thể tránh khỏi việc phải lên kế hoạch cho các sự cố và thảm họa. Bạn cần giải quyết các tình huống khi chuỗi chết. Nếu bạn không, thì bạn đang phủ nhận.
Đó có thể là lỗi trong phần mềm, có thể là lỗi AWS hoặc các sự kiện trong mạng. Bạn phải có một giải pháp để giải quyết vấn đề này. Trong SKALE, nếu ít hơn năm nút chết trong số 16 nút, thuật toán Proof of Stake thậm chí không nhận thấy và do đó chuỗi sẽ tiếp tục hoạt động như bình thường.
Nếu một nút bị chết, có hai cơ chế để đồng bộ hóa nó trở lại chuỗi - một cơ chế ngắn hạn và một cơ chế dài hạn. Nếu nút đã ngừng hoạt động trong một vài giờ, có một bộ nhớ cache các khối được lưu giữ trên các nút khác. Nút được khởi động lại chỉ có thể tải xuống các khối đó và bắt kịp. Nếu một nút đã ngừng hoạt động trong một khoảng thời gian dài hơn, nó có thể nhận được ảnh chụp nhanh từ một trong các nút khác, bắt kịp từ đó và sau đó tham gia lại với chuỗi.
Nếu có sự cố khủng khiếp và mọi thứ đều chết, thì hệ thống sẽ tạm dừng. Bạn sẽ lại đưa các nút trực tuyến trở lại và bạn sẽ bắt đầu chuỗi hoặc trong trường hợp xấu nhất, bạn sẽ khởi động lại từ một ảnh chụp nhanh. Mỗi nút tạo một ảnh chụp nhanh của chính nó sau mỗi 24 giờ. (Chúng tôi sẽ làm cho nó nhanh hơn trong tương lai, nhưng trong bản phát hành đầu tiên là 24 giờ). Mỗi nút lưu trữ bản sao của riêng họ nhưng bất kỳ ai cũng có thể tải xuống các bản sao. Vì vậy, nếu một nút hoặc các nút biến mất, bạn sẽ lưu trữ nó ở nơi khác và vì vậy nhà phát triển hoặc cộng đồng có thể xử lý việc đó.
Bạn tự hào nhất về điều gì trong quá trình làm việc trên SKALE?
Stan : Song song với việc phát hành phần mềm, nhóm của chúng tôi đã thực sự phát triển về mặt hiểu biết mọi thứ hoạt động như thế nào. Blockchain là một chủ đề rất mới. Khi chúng tôi bắt đầu, không có nút thần kỳ nào. Lúc đó mọi người không biết nhiều như chúng ta biết bây giờ. Chúng tôi đã nghiên cứu các bài báo và trải qua một chặng đường dài học tập. Nếu chúng tôi bắt đầu lại từ đầu, chúng tôi sẽ phát triển nó nhanh hơn nhiều. Nhưng hồi đó, không có cách nào để thuê một người có kinh nghiệm từ tương lai.
Blockchains đang ở độ tuổi giữa những gì bạn có thể làm và những gì bạn không thể làm - có nghĩa là có nhiều phức tạp hơn liên quan đến việc phát triển các hệ thống trước đó. Blockchains tồn tại trên nhiều máy tính với một số trong số chúng được cho là độc hại với khả năng làm điều gì đó xấu. Vì vậy, đó là một cấp độ tiếp theo của vấn đề. Các hệ thống chuỗi khối đang trên đà phát triển, nơi mà khi bạn bắt đầu, bạn không biết liệu điều gì có thể xảy ra hay không. Thật tuyệt là ngay cả tại thời điểm này, chúng tôi đã có nó hoạt động tốt như hiện tại.
Thật tuyệt khi thấy mọi người trở thành chuyên gia trong một lĩnh vực phức tạp. Những điều trước đây khó đối với họ bỗng trở nên dễ dàng hơn. Mọi người đều đã trở thành một chuyên gia trong loại hệ thống phụ cụ thể của họ. Những người trong đội rất thân thiện và đã trở thành bạn bè sau nhiều năm. Tôi nghĩ đó là một dấu hiệu rất sáng sủa đối với SKALE vì chúng tôi nghĩ rằng chúng tôi sẽ có thể phát triển mọi thứ một cách nhanh chóng trong tương lai. Mọi người đều đặt nhiều kỳ vọng vào tương lai. Đó là một thành tựu quan trọng.
Tham gia cộng đồng Skale telegram Việt Nam :
https://t.me/SKALE_VN
Cộng đồng Skale telegram quốc tế :
https://t.me/skaleofficial