Vụ trộm DAO trên Ethereum đã xảy ra như thế nào?
The DAO hack có lẽ sẽ luôn là vụ trộm nổi tiếng nhất trong không gian blockchain từ trước tới nay. Đây cũng chính là điểm khởi đầu của sự bất đồng ý kiến mà sau này đã phân tách mạng lưới của Ethereum làm đôi - gián tiếp tạo ra Ethereum Classic.
The DAO hack hay vụ trộm DAO xảy ra vào năm 2016 có lẽ sẽ luôn là vụ trộm nổi tiếng nhất trong không gian blockchain từ trước tới nay. Đây cũng chính là điểm khởi đầu của sự bất đồng ý kiến mà sau này đã phân tách mạng lưới của Ethereum làm đôi - gián tiếp tạo ra Ethereum Classic.
Vụ hack này đã xảy ra như thế nào và hệ quả của nó là gì? DAO, soft fork, hard fork, hay Etherum Classic là gì?
Các từ khóa trên đều có thể được tra cứu dễ dàng, nhưng để được đề cập trong một study case thực tế, thú vị và đầy drama như The DAO hack thì không phải lúc nào cũng có : ))). Mình nghĩ rằng bài viết có trình tự và hệ thống sau đây sẽ giúp bạn đọc có được góc nhìn toàn diện hơn về những điều đã và có thể đang xảy ra trong ngành công nghiệp blockchain. Hãy cùng Blockchain VN đi qua diễn biến của The DAO hack và hãy chắc chắn rằng bạn không bỏ lỡ chi tiết nào nhé bởi vì, ở phần kết thúc của bài viết sẽ có một thông tin rất thú vị : ))).
1. DAO là gì?
Hợp đồng thông minh(HDTM) mở ra khả năng để các lập trình viên có thể tạo nên DAO - Distributed Autonomous Organization hay những tổ chức kinh tế với khả năng tự vận hành dựa trên các điều khoản được đề ra trong HDTM.
2. Sự ra đời của DAO đầu tiên.
Dự án DAO tai tiếng của Slock chính thức đi vào hoạt động ngày 30/4/2016. Đây là một quỹ đầu tư được triển khai trên mạng lưới máy tính của Ethereum. Ether từ các nhà đầu tư sau khi gửi sẽ được tập trung vào quỹ của DAO. Nhà đầu tư sau đó trở thành nhà thầu và đồng thời có quyền đề xuất dự án lên mạng lưới. Nếu đề xuất thành công, họ sẽ có vốn phát triển được hỗ trợ từ quỹ của DAO. Ether kiếm được từ các dự án sẽ tự động chuyển về ví của nhà đầu tư.
Quá trình gọi vốn bắt đầu vào tháng 5 năm 2016 và để trở thành nhà đầu tư, người ta chỉ cần gửi Ether vào DAO mà thôi. Đổi lại, nhà đầu tư nhận được DAO token (một mã thông báo tượng trưng được tạo ra trên Ethereum). Với mỗi Ether nhà đầu tư góp vào, họ nhận được 100 DAO. Số lượng DAO mỗi thành viên có được đại diện cho quyền lực bầu cử mà họ có. Dự án DAO này sau đó gọi vốn thành công 12.7 triệu Ether (khoảng 150 triệu USD) và trở thành chiến dịch gây quỹ lớn nhất lúc bấy giờ. Tuy nhiên, vào ngày 16/6/2016, DAO đã bị hack.
3. DAO, DAO con (child DAO) và lỗ hổng dẫn tới the DAO hack.
Cơ chế quản trị của DAO giống với cơ chế của các công ty chứng khoán và do đó, quyền lực bầu cử của các nhóm nhỏ có thể bị đè bẹp bởi đám đông còn lại. Nhà sáng lập của DAO không muốn điều này xảy ra nên họ tạo ra cơ chế để bảo vệ cộng đồng thiểu số. Ý tưởng về cơ chế bảo vệ này rất đơn giản. Khi một dự án được số đông chọn để phát triển, nhóm thiểu số bất đồng ý kiến sẽ có quyền rút vốn khỏi DAO.
Để hiện thực hóa được điều này, nhà sáng tập tạo ra khái niệm child DAO. Bằng cách gửi đi một đề xuất đặc biệt, nhóm thiểu số có thể rút Ether trong phần vốn họ đã góp và bỏ vào một DAO khác được gọi là DAO con (child DAO).
Việc phân tách DAO này có thể được khởi tạo bởi bất cứ nhà đầu tư nào và vào bất kì thời điểm nào họ muốn. Tuy nhiên, luật lệ được đề ra trong HDTM của DAO yêu cầu một khoảng thời gian nhất định để hoàn thành:
• Ít nhất là 7 ngày cho việc thảo luận đến khi việc phân tách được kích hoạt thực sự.
• Sau khi quá trình phân tách được kích hoạt, cần thêm 27 ngày để quá trình phân tách thành công. Trong thời điểm này không đề xuất nào có thể được xử lý.
• Sau đó, để rút được vốn từ child DAO, nhà đầu tư phải làm thêm 1 đề xuất và chờ thêm 14 ngày.
Tổng cộng, một khi nhà đầu tư quyết định rút vốn, anh ta phải chờ ít nhất 48 ngày cho tới khi tiền được chuyển về ví của mình.
Logic của HDTM trong quy trình rút vốn khỏi DAO như sau:
1) Rút Ether.
2) Cập nhật số dư của nhà đầu tư.
Tuy nhiên, HDTM lại không có cơ chế bảo vệ khỏi tấn công bởi các lời gọi hàm đệ quy (recursive call exploit). Một lập trình viên đã phát hiện ra lỗ hổng này và lợi dụng nó để rút tiền nhiều lần trước khi số dư được cập nhật (logic của nhà phát triển là với mỗi lần cập nhật số dư, chỉ duy nhất một lệnh rút Ether được phép thực hiện trước đó. Tuy nhiên hacker có thể khiến 1) chạy nhiều lần trước khi 2) được thực thi). Tới ngày 16/6/2016, hacker đã rút tổng cộng 3.6 triệu Ether theo cách thức này.
4. The hard fork & Ethereum classic.
Cộng đồng Ethereum đã nhận ra sự bất thường trong quỹ vốn của DAO. Nhưng trước cả khi sự việc bị phát giác, hacker đã chủ ý gửi thư cho họ và tự nhận mình là kẻ tấn công. Trong bức thư hacker nói rằng mã nguồn của HDTM điều khiển mọi thứ trong DAO và những gì hắn ta làm đã được nó chấp thuận. Do đó, hành động của hắn ta là hoàn toàn hợp lệ. Hacker còn tiếp tục chỉ ra rằng soft fork hay hard fork có thể giúp họ lấy lại Ether đã bị trộm và đồng thời nhấn mạnh rằng cách thức đó đi ngược lại các điều khoản đã đề ra trong HDTM của DAO. Hơn hết, điều này sẽ hủy diệt danh tiếng của Ethereum và ngành công nghiệp blockchain nói chung khi tính bất biến của blockchain không còn tuyệt đối như người ta vẫn nghĩ nữa.
Nhờ khoảng thời gian bắt buộc trong quy trình rút vốn của DAO, cộng đồng Ethereum có 27 ngày để quyết định nên làm gì trước khi hacker thực sự rút tiền ra khỏi child DAO. Ba lựa chọn lúc đó bao gồm:
1) Không làm gì cả và để yên cho tên hacker ra đi cùng với số Ether hắn đã đánh cắp.
2) Thực hiện soft fork trên Ethereum, kêu gọi toàn bộ thợ đào Ethereum áp dụng điều khoản để vô hiệu hóa các lệnh rút tiền từ child DAO mà hacker đã tạo ra. Điều này không gây nên bất kì sự xáo trộn nào trong dữ liệu của blockchain nhưng sẽ khóa hoàn toàn số Ether đã bị trộm, vĩnh viễn không một ai có thể lấy ra được.
3) Thực hiện hard fork trên mạng Ethereum để xóa đi lịch sử giao dịch của hacker trên blockchain đồng thời khôi phục số Ether đã bị mất (lúc này đang được giam trong child DAO).
Ba lựa chọn lúc này đây chia rẽ cộng đồng Ethereum ra làm ba. Mỗi nhóm đều có lý do riêng của mình.
Nhóm theo cách đầu tiên không ủng hộ fork. Triết lý của Ethereum ngay từ đầu đã phát biểu rằng dữ liệu trên blockchain là bất biến và họ tuyệt đối tin rằng đó là điều tốt nhất cho sự phát triển của Ethereum. Thay đổi blockchain bằng bất kỳ cách thức nào đều đồng nghĩa với việc phá bỏ đi hệ thống niềm tin mà họ đã xây dựng bao năm qua. Trớ trêu thay, đây cũng chính là điều mà hacker đã viết trong bức thư của hắn.
Thế nhưng phần đông trong cộng đồng lại không ủng hộ nhóm đầu tiên - cho rằng họ phải làm điều gì đó với vụ hack này. Nhóm phát triển mã nguồn của Ethereum ủng hộ cách thứ 2 - thực hiện soft fork và khóa hết số Ether có trong child DAO.
Nhóm người ủng hộ cách thứ 3 - hard fork - gây tranh cãi nhiều nhất bởi lựa chọn của họ đi ngược lại toàn bộ triết lý mà Ethereum hay blockchain đã gây dựng - sự bất biến trong dữ liệu của blockchain.
Trong lúc cuộc thảo luận đang được diễn ra, một nhóm hacker "mũ trắng" với biệt danh "Robin Hood" đã cố gắng để bảo vệ số Ether còn lại trong DAO và lấy lại số Ether chính bằng lỗ hổng mà hacker lợi dụng. Tuy không thể lấy lại số Ether đã bị trộm nhưng nỗ lực của Robin Hood đã giúp cộng đồng Ethereum có thêm thời gian để thực hiện các giải pháp của họ.
Ngày 22/6/2016, một cuộc bầu chọn bởi các Ether mining pool lớn nhất được tổ chức và phần lớn họ đều đi đến quyết định thực hiện soft fork (cách 2) vào ngày 30/6/2016. Tuy nhiên, các vấn đề bảo mật không thể sửa đã khiến họ loại bỏ lựa chọn này.
Tiếp sau đó, một cuộc thảo luận mới nổ ra và hard fork (cách 3) dần chiếm được sự tán thành của cộng đồng Ethereum. Đa phần đều thống nhất cho rằng vụ trộm này là quá lớn để có thể bỏ qua và chính họ sẽ phải đứng ra quyết định số phận của lượng Ether bị đánh cắp. Với hard fork, quỹ DAO bị hack sẽ được trả lại và dữ liệu trên blockchain sẽ được phục hồi tới trước thời điểm vụ hack xảy ra. Một cuộc bầu chọn mới được tổ chức và lần này, hard fork được nêu tên.
Quá trình hard fork này không thể chiếm được sự tán thành của toàn bộ cộng đồng Ethereum. Có người đi, và có kẻ ở lại. Nhánh mới tạo ra với hard fork tiếp tục phát triển và trở thành Ethereum như ngày hôm nay trong khi các thành viên ở lại trở thành Ethereum Classic. :)))
5. Kết luận
The DAO có thể được xem như là HDTM lớn đầu tiên được xây trên trên nền tảng Ethereum. Vụ đánh cắp trên không những thử thách sự hoài nghi của chúng ta về công nghệ blockchain mà nó còn làm nóng lên sự tranh cãi xung quanh việc áp chế thay đổi lên một hệ thống máy tính phi tập trung. Nó cũng là một ví dụ về việc mọi thứ có thể trở nên tồi tệ tới mức nào trong một thế giới mà chỉ được vận hành bởi các chương trình máy tính.
Vụ trộm này còn cho thấy sự can thiệp của con người - yếu tố mà HDTM đang cố gắng loại bỏ không phải luôn luôn xấu. Thế giới thật vẫn có vẻ quá phức tạp để các hệ thống máy tính phi tập trung này mô phỏng theo.
Note:
• Bài viết được Blockchain VN dịch, biên tập và xác nhận lại từ một bài đăng trên medium.
• BlockchainVN luôn khuyến khích bạn đọc tự tìm hiểu và xác nhận bất kì thông tin nào được đọc.
• Mọi phản hồi hãy để lại ở dưới comment.
• Charles Hoskinson - nhà sáng lập của Cardano - được cho là đang làm việc với Ethereum Classic (hình minh họa : )))) ). Có vẻ như Ethereum Classic đã tìm được lãnh đạo mới cho mình.
Tác giả: Blockchain VN
Khoa học - Công nghệ
/khoa-hoc-cong-nghe
Bài viết nổi bật khác
- Hot nhất
- Mới nhất