Thuật ngữ tiền điện tử gần như đồng nghĩa với hack. Có vẻ như hàng tuần đều có những vụ hack lớn gây chú ý trên nền tảng giao dịch, ví của người dùng cá nhân, hợp đồng thông minh và các blockchain công khai mà họ ngồi trên đó. Trong nhiều tình huống, các vectơ tấn công rất rõ ràng khi nhìn lại: mã chưa được test, các quy trình nội bộ để ngăn chặn lừa đảo không tồn tại, các tiêu chuẩn mã cơ bản không được tuân thủ, v.v. Việc tự nghiên cứu các vụ hack thường sẽ không thu thập được nhiều thông tin thú vị đối với những người đã quen thuộc thực hành bảo mật cơ bản.
Nhưng mọi vụ hack tiền điện tử đều có hai thành phần chính - đó là bản thân vụ hack, và sau đó là các phương pháp mà hacker và nhóm của họ cố gắng kiếm tiền mà họ đã đánh cắp được. Đối với những người ủng hộ quyền riêng tư, những nỗ lực được thực hiện để ẩn danh các quỹ này là những nghiên cứu tình huống thú vị về mức độ ẩn danh có thể đạt được trong các mạng blockchain công cộng.
Bởi vì các khoản tiền được theo dõi chặt chẽ bởi các cơ quan chính phủ có tổ chức cao và được tài trợ tốt và các tổ chức doanh nghiệp, chúng tạo cơ hội cho cộng đồng quan sát hiệu quả của các ví quyền riêng tư khác nhau có liên quan. Nếu những tin tặc này không thể duy trì quyền riêng tư, thì cơ hội mà những người dùng bình thường đang tìm kiếm sự riêng tư trong các mạng công cộng sẽ có thể đạt được là gì?
Vụ hack DAO 2016, một tình huống mẫu mực
Khi nghiên cứu các vụ hack này và các vụ bắt giữ sau đó, rõ ràng là trong tình huống cụ thể, các tin tặc đã thực hiện các bước đột phá quan trọng khi cố gắng ẩn danh tiền điện tử của họ. Trong một số tình huống, lỗi là do lỗi của người dùng đơn giản. Trong các tình huống khác, chúng gây ra bởi lỗi trong phần mềm ví mà họ đã sử dụng hoặc những sai lầm ít rõ ràng khác trong con đường chuyển đổi tiền điện tử thành tài sản trong thế giới thực.
Gần đây, một tình huống đặc biệt thú vị, vụ hack DAO năm 2016, đã có một bước phát triển đáng kể - một bài báo điều tra của Forbes đã được xuất bản xác định kẻ bị cáo buộc là hacker. Quá trình mà người này được xác định cung cấp một số thông tin chi tiết về ví quyền riêng tư được sử dụng rộng rãi, Wasabi Wallet và cách sử dụng phần mềm không đúng cách có thể dẫn đến việc rút tiền của kẻ tấn công bị cáo buộc.
Các cuộc thi quan trọng đã được thực hiện
Về thứ tự hoạt động, động thái đầu tiên của hacker là chuyển một số tiền bị đánh cắp của họ từ Ethereum Classic thành Bitcoin. Tin tặc đã sử dụng Shapeshift để sàn giao dịch thực hiện hoán đổi, lúc đó đã cung cấp hồ sơ công khai đầy đủ về tất cả các giao dịch trên nền tảng. Từ Shapeshift, một số tiền đã chuyển vào Wasabi Wallet. Từ đây, mọi thứ xuống dốc.
Đối với những người không quen thuộc, CoinJoin là biệt danh cho một giao thức xây dựng giao dịch đặc biệt cho phép nhiều bên tổng hợp tiền của họ thành một giao dịch lớn với mục tiêu phá vỡ mối liên kết giữa các khoản tiền chảy vào CoinJoin và các khoản tiền chảy ra khỏi CoinJoin.
Thay vì một giao dịch có một người thanh toán và người nhận thanh toán duy nhất, một giao dịch CoinJoin có nhiều người thanh toán và người nhận thanh toán. Ví dụ: bạn có một CoinJoin với 10 người tham gia - nếu CoinJoin được xây dựng đúng cách và tất cả các quy tắc tương tác được tuân thủ chính xác, các khoản tiền chảy ra khỏi CoinJoin sẽ có bộ ẩn danh là 10, tức là bất kỳ một trong số 10 đầu ra hỗn hợp từ giao dịch có thể thuộc về bất kỳ một trong 10 (hoặc nhiều hơn) đầu vào không trộn lẫn cho giao dịch.
bất chấp việc CoinJoins có thể là một công cụ rất mạnh mẽ, nhưng có rất nhiều cơ hội cho những người tham gia thực hiện các lệnh miStakes quan trọng làm suy giảm đáng kể hoặc phá hoại hoàn toàn bất kỳ quyền riêng tư nào mà họ có thể có được từ CoinJoin. Trong tình huống bị cáo buộc là hacker DAO, một miStake như vậy đã được thực hiện. Như bạn sẽ đọc tiếp theo, có khả năng lỗi này là do lỗi của người dùng, tuy nhiên, cũng có thể có một lỗi (đã được sửa) trong Wasabi Wallet dẫn đến lỗi bảo mật này.
Ví Wasabi sử dụng giao thức ZeroLink, giao thức này tạo ra các CoinJoins với các kết quả đầu ra hỗn hợp có giá trị như nhau. Điều này có nghĩa là tất cả người dùng chỉ được yêu cầu trộn một lượng Bitcoin được chỉ định, xác định trước. Bất kỳ giá trị nào trên số tiền đó được chuyển vào CoinJoin phải được trả lại dưới dạng Bitcoin không trộn lẫn cho người dùng tương ứng.
Ví dụ: nếu Alice có một đầu ra .15 Bitcoin duy nhất và CoinJoin chỉ chấp nhận đầu ra có giá trị .1 Bitcoin, thì khi hoàn thành CoinJoin, Alice sẽ có đầu ra .1 Bitcoin hỗn hợp và đầu ra Bitcoin không trộn lẫn .05. Bitcoin .05 được coi là không thể trộn lẫn vì nó có thể được liên kết với sản lượng ban đầu của Alice là .15. Đầu ra hỗn hợp không thể được liên kết trực tiếp với đầu vào nữa và sẽ có một bộ ẩn danh bao gồm tất cả những người tham gia khác trong CoinJoin.
Để bảo vệ tính riêng tư của CoinJoin, điều bắt buộc là các đầu ra hỗn hợp và không trộn lẫn không bao giờ được liên kết với nhau. Trong trường hợp chúng vô tình được tổng hợp trên blockchain bitcoin trong một hoặc một tập hợp các giao dịch, người quan sát có thể sử dụng thông tin đó để theo dõi các kết quả đầu ra hỗn hợp trở lại nguồn của chúng.
Trong tình huống của hacker DAO, có vẻ như trong quá trình sử dụng Ví Wasabi, họ đã sử dụng một địa chỉ duy nhất trong nhiều CoinJoins; trong một tình huống, địa chỉ được sử dụng làm đầu ra thay đổi không trộn lẫn, trong tình huống thứ hai, địa chỉ được sử dụng làm đầu ra hỗn hợp.
Đây là một miStake tương đối bất thường trong bối cảnh của CoinJoin vì kỹ thuật kết hợp tội lỗi này yêu cầu một giao dịch phía dưới của CoinJoins để giữ các đầu ra không trộn lẫn và hỗn hợp, liên kết chúng với nhau. Nhưng trong tình huống này, không có giao dịch nào ngoài hai CoinJoins được yêu cầu phân tích vì cùng một địa chỉ được sử dụng theo những cách mâu thuẫn trên hai CoinJoins riêng biệt.
Về cơ bản, khả năng này tồn tại do một quyết định thiết kế trong phần mềm Wasabi Wallet: Wasabi Wallet sử dụng một đường dẫn xuất duy nhất cho cả đầu ra hỗn hợp và không trộn lẫn. Đây được coi là thực hành xấu. Một nhân viên Wasabi đã tuyên bố rằng điều này là để khôi phục ví tương thích với các ví khác, tuy nhiên, BIP84 (là sơ đồ dẫn xuất mà Wasabi Wallet sử dụng) có một cách tiêu chuẩn để nhận ra một đường dẫn xuất được chỉ định để thay đổi kết quả đầu ra.
Các lỗi do lựa chọn thiết kế này thường thấy rõ nhất khi người dùng có hai phiên bản Ví Wasabi chạy cùng lúc trong khi sử dụng cùng một loại giống. Trong trường hợp này, hai trường hợp có thể chọn cùng một địa chỉ theo cách mâu thuẫn này khi đồng thời cố gắng chạy một kết hợp từ mỗi trường hợp. Điều này đã được cảnh báo chống lại trong tài liệu chính thức. Cũng có thể các lỗi đã biết trong Ví Wasabi là thủ phạm.
Bài học rút ra và kết luận
Vậy chúng ta học được gì từ điều này? bất chấp việc lỗi này với Wasabi không phải là phần cuối của câu chuyện, nhưng nó đóng vai trò như một thành phần quan trọng trong việc theo dõi kẻ bị cáo buộc là hacker. Một lần nữa, niềm tin của chúng tôi rằng sự riêng tư là khó được khẳng định lại. Nhưng trên thực tế, chúng ta có một ví dụ khác về tầm quan trọng của việc ngăn ngừa ô nhiễm đầu ra khi sử dụng các công cụ bảo mật và cách người dùng cũng như phần mềm yêu cầu kiểm soát tiền xu cẩn thận. Câu hỏi trở thành, loại giao thức bảo mật nào được thiết kế để giảm thiểu loại tấn công này?
Một giải pháp thú vị là CoinSwap, trong đó thay vì giữ các kết quả đầu ra thành một giao dịch lớn, bạn hoán đổi kết quả đầu ra với một người dùng khác. Bằng cách này, bạn đang hoán đổi lịch sử tiền xu, không tham gia lịch sử tiền xu. Mạnh mẽ hơn, nếu CoinSwap được thực hiện trong bối cảnh ngoài chuỗi (như được thực hiện bởi Mercury Wallet), thì sẽ không có đầu ra thay đổi nào được trộn lẫn để xử lý cả.
bất chấp việc có những lỗi người dùng có thể xảy ra có thể khiến CoinSwap bị hủy hoán đổi, nhưng những lỗi này được cho là rõ ràng hơn nhiều đối với người dùng cuối bởi vì bất kỳ sự giữ đầu ra nào theo cách vi phạm quyền riêng tư chỉ có thể được thực hiện bằng cách trộn một cách rõ ràng đầu ra với một đầu ra chưa được hoán đổi, trái ngược với việc giữ hai đầu ra đã chuyển qua CoinJoin, chỉ một trong số đó thực sự được trộn lẫn.
Mercury Wallet hiện là cơ sở CoinSwap ngoài chuỗi duy nhất có sẵn cho người dùng cuối. Nó cho phép người dùng khóa tiền của họ vào một giao thức lớp hai (được gọi là statechain) và sau đó hoán đổi đầu ra của họ một cách mù quáng với những người dùng statechain khác. Đó là một kỹ thuật rất thú vị và đáng để thử nghiệm đối với những người quan tâm đến việc khám phá các công cụ bảo mật mới với chức năng thú vị và sự đánh đổi có thể chấp nhận được.
Bài đăng xuất hiện đầu tiên trên WebGiaCoin.
Theo Cryptoslate
|
Tags: Phân tích, DAO, Quyền riêng tư,