Những điều bạn cần biết về đơt Verge hack gần đây

verge bị hack

Những người đam mê tiền mã hóa luôn cho rằng giao thức blockchain rất an toàn. Đúng là những đồng tiền lớn như Bitcoin hay Ethereum có khả năng duy trì khả năng an toàn hơn bất kỳ hệ thống thanh toán tiền điện tử trong lịch sử, cho phép người dùng dễ dàng chuyển hàng triệu đô la mà không chịu sự kiểm soát của bên thứ ba. Nhiều người còn tin tưởng rằng tiền mã hóa hoàn toàn không thể hack. Tuy nhiên, tháng trước một nhóm hacker ẩn danh đã thực hiện tấn công verge, một đồng tiền ẩn danh khá phổ biến trong cộng đồng. Nhóm này cố gắng kiểm soát mạng verge 3 lần trong khoảng thời gian vài tiếng từ ngày 4-6/04/2018, ngăn cản người dùng thực hiện thanh toán. Đặc biệt, trong khoảng thời gian này, nhóm này thực hiện in giả hàng loạt đồng verge với tốc độ 1560 XVG (khoảng 80 USD)/ giây, và đã bỏ túi hàng triệu USD. Vậy ai là người chụi trách nhiệm trong trường hợp này? Đây là lỗi của nhóm phát triển hay lỗi xuất phát từ chính bản chất của tiền điện tử? Liệu điều này sẽ lặp lại với những đồng tiền lớn hơn?

Làm giả dấu thời gian (Timestamp Spoofing)

Nguồn gốc của việc này là khai thác lỗ hổng nhằm tạo ra dấu thời gian giả. Trong mỗi mạng blockchain, các giao dịch riêng lẽ sẽ được nhóm lại vào từng khối và được xác nhận cùng một lúc. Mỗi khối sẽ được xác định dấu thời gian tại thời điểm tạo. Khi mà mạng blockchain hoạt động bình thường, đôi khi dấu thời gian này không theo thứ tự, như khối 100 được tạo đáng dấu thời gian sau khối 101. Điều này là do việc đông bộ hóa thời gian trong mạng lưới phân tán hoàn toàn không đơn giản. Do dự biến động không đoán trước được trong thời gian từ lúc nhận dữ liệu, tại khối và truyền thông tin giữa các nốt trong mạng lưới, nhiều khả năng thời gian của khối có thể không theo thứ tự, ngay cả khi các nốt trong hệ thống hoàn toàn trung thực. Do đó một số mạng lưới blockchain cho phép xử lý linh hoạt thời gian của khối, đối với trường hợp của verge, các nốt có thể không đồng thuận về thời gian hiện tại trong hạn mức là 2 tiếng.

Đây là điểm mà một số hacker đã tận dụng để làm giả dấu thời gian, bằng việc đưa lên các khối đã xuất hiện trong quá khứ nhưng vẫn trong khoảng thời gian 2 giờ, và vẫn hợp lệ để được xác nhận bởi các nốt khác.

Độ khó đào tiền (mining difficulty)

Để giữ mang verge mang tính phân quyền tốt, nhà phát triển đã đảm bảo ngay cả những thiết bị nhỏ như mackbook cũng có thể tham gia đào verge. Tuy nhiên điều này dẫn đến việc hạn chế các hoạt động liên quan đến khối lượng thanh toán trong hệ thống như giới hạn số giao dịch trên phút. Đối với trường hợp của verge thời gian mục tiêu của mỗi khối là 30 giây. Khi mà mạng lưới hoàn toàn phân tán, làm thể nào đảm bảo mạng lưới đạt mục tiêu này, điều gì khiến ngăn các nốt đệ trình các khối mới? Đây không phải vấn đề dễ khi mà các nốt muốn xác nhận khối càng nhanh các tốt khi mà mỗi khối được xác nhận nó sẽ nhận được phần thưởng.

Câu trả lời cho vấn đề này chính là PoW (bằng chứng công việc). Đối mới khối được coi là hợp lệ trong những bài toán này có thể thay đổi tùy ý. Để đạt được thời gian mục tiêu mỗi khối 30 giây, độ khó sẽ được thường xuyên thay đổi dựa trên tốc độ xác nhận hiện thời của mạng lưới. Nếu càng nhiều thợ mỏ đào verge, tốc độ đào sẽ nhanh hơn, độ khó sẽ được tăng lên và ngược lại, từ đó đảm bảo được thời gian khối mục tiêu.

Thuật toán để Verge sử dụng để tính toán độ khó hiện thời có tên là Dark Gravity Wave, nó là trung bình gia quyền tốc độ xác nhận khối trong khoảng thời gian 2 giờ. Do đó có thể nói, độ khó là hàm số tần suất khối, được tính toán dựa trên dấu thời gian của những block trước đó.

Do đó  khi mà dấu thời gian tạo khối bị sai quá nhiều sẽ ảnh hưởng đến độ khó của mạng lưới. Đây là điều mà hacker sẽ tìm hiểu, nếu bạn kiểm tra dữ liệu blockchain của verge quanh thời gian hack diễn ra, tất các các khối được đệ trình có dấu thời gian khoảng 1 tiếng so với hiện tại, điều này làm cho thuật toán của hệ thống bị rối loạn. Khi đó thuật toán sẽ cho rằng “không có nhiều block được đệ trình gần đây (phần lớn đều là khối cách đây hơn 1 tiếng), độ khó quá lớn – hãy điều chỉnh nó dễ hơn” Khi mà dấu thời gian làm giả liên tục, thuật toán hệ thống sẽ liên tục giảm độ khó đào mỏ đến khi việc đào verge cực kì dễ dàng. Đợt hack tháng 04, độ khó trung bình trước khi hack là 1393093.39131, tuy nhiên độ khó trong quá trình hack giảm xuống chỉ còn 0.00024414, giảm 99.999999%. Việc giảm độ khó dẫn đến số lượng khối đệ trình tăng lên tăng, làm cho thời gian tạo khối còn 1 giây.

Sự thông minh của đợt tấn công này nằm ở chỗ, hacker tận dụng chính điểm yếu của thuật toán tính toán độ khó chứ không phải phá hỏng nó.  An ninh hệ thống được đảm bảo bằng tổng công suất đào (mining power), tuy nhiên nó quá khó để phá bỏ, các hacker trong trường hợp này tìm mọi cách để giảm tổng công suất.

Tuy nhiên, viêc giảm độ khó chỉ là một phần của câu truyện, nó thực sự không mang lại cho hacker quá nhiều lợi thế. Khi mà độ khó giảm, việc đào một khối mơí sẽ rất dễ cho cả hacker và tất cả mọi người, các thợ mỏ vẫn phải cạnh nhau như trước.  Điều này có nghĩa hacker vẫn cần chiếm 51% tổng công xuất đào để kiểm suất hệ thống. Tuy nhiên trong trường hợp của verge, kẻ tấn công đã có thể kiểm soát mạng verge với ít hơn 51% hash rate, điểm mấu chốt là họ đã khai thác lỗ hổng trong thuật toán đào của Verge.

Thuật toán đào Verge

Thông thường các khối được tạo theo giao thức PoW sử dụng thuật toán đào duy nhất có tên SHA-256. Tuy nhiên Verge cho phép các thợ mỏ được sử dụng 5 thuật toán khác nhau (Scrypt, X17, Lyra2rev2, myr-groestl, blake2s). Lý do được đưa ra cho việc sử dụng 5 thuật toán này là do Bitcoin sử dụng một thuật toán duy nhất ngày càng trở lên tập trung, phần lớn BTC được đào bởi các thiết bị chuyên dụng  Bitcoin ASIC được kiểm soát bởi một số mining pool, điều này khiến mạng  lưới ngày càng kém phân tán. Với việc sử dụng 5 thuật toán khác nhau, verge sẽ dễ đào hơn, khó bị kiểm soát bởi các công ty đào lớn. Khi mà hệ thống hoạt động bình thường, thời gian tạo khối mục tiêu là 30 giây, hệ thống phải đảm bảo cả 5 thuật toán này đều duy trì được khoản thưởng công bằng, không có thuật toán nào kiểm soát hệ thống (làm cho các thuật toán khác đào được ít hơn). Để đảm bảo điều này, mỗi thuật toán có thông số điều chỉnh độ khó độc lập với 4 thuật toán còn lại.

Trong trường hợp đợt tấn công tháng 4 của verge, hacker không làm giảm độ khó của cả hệ thống, mà chỉ giảm độ khó cho những thợ mỏ dùng thuật toán Scrypt. Khi mà các thợ mỏ dùng Scrypt đào verge quá dễ dàng, các thợ mỏ khác vẫn phải làm việc với độ khó như đã định làm cho công suất đào của họ vô dụng. Điều này có nghĩa là hacker chỉ phải cạnh tranh với những người sử dụng thuật toán Scrypt và chiếm nhiều hơn 50% hash rate trong tổng số những người này. Tại thời điểm tháng4, hacker chỉ cần khoảng dưới 10% hash rate để chiếm đa số trong số người sử dụng Scrypt.

Nói tóm lại, việc làm giả dấu thời gian được sử dụng làm giảm độ khó của hệ thống, trong khi verge sử dụng 5 thuât toán để đào, hacker chỉ cần chiếm đa số 1 trong 5 thuật toán này để kiểm soát hệ thống.

Theo crypto farm

Leave a Reply

Your email address will not be published. Required fields are marked *