03/04/2017

DAO LÀ GÌ? HACK DAO LÀ GÌ?




DAO (Decentralized Autonomous Organization): Tổ chức tự trị phi tập trung. Mục tiêu của DAO là xây dựng hệ thống các quy tắc và các bộ máy ra quyết định của một tổ chức, loại bỏ nhu cầu về tài liệu và người quản lý, tạo ra một cấu trúc với sự kiểm soát phi tập trung.

Cách thức hoạt động:

- Một nhóm người viết ra hợp đồng thông minh (smart contracts) để chạy tổ chức.

- Có một khoảng thời gian tài trợ ban đầu, trong đó mọi người thêm tiền vào DAO bằng cách mua các thẻ tượng trưng cho quyền sở hữu - được gọi là crowdsale, hoặc một đồng xu ban đầu (ICO) - để cung cấp cho nó các nguồn lực mà nó cần.

- Khi giai đoạn hoàn thành, DAO bắt đầu hoạt động.

- Sau đó, người dân có thể đưa ra đề xuất với DAO về cách tiêu tiền, và các thành viên đã mua hàng có thể bỏ phiếu để phê duyệt các đề xuất này.

Tổ chức DAO là gì?

"The Dao" là tên của một DAO cụ thể, được hình thành và được lập trình bởi nhóm phía sau Slock.it khởi động của Đức - một công ty xây dựng "ổ khóa thông minh" (smart locks) cho phép mọi người chia sẻ những thứ của họ (ô tô, thuyền, căn hộ) trong một phiên bản phân tán (centralized version) Airbnb.

- DAO ra mắt vào ngày 30/042016, với 28 ngày fund tài trợ.

- Vì lý do nào, DAO đã trở nên phổ biến, nâng cao hơn 100 triệu đô la vào ngày 15/5, và khi kết thúc giai đoạn tài trợ, The DAO là crowdfunding lớn nhất trong lịch sử, đã thu được hơn 150 triệu đô la từ hơn 11.000 thành viên nhiệt tình. DAO đã kiếm được nhiều tiền hơn những người sáng tạo mong đợi.

- Sau khi crowdsale kết thúc, có rất nhiều cuộc thảo luận về việc giải quyết các lỗ hổng trước khi giải quyết các đề xuất. Cụ thể, Stephan Tual, một trong những người sáng tạo của The DAO, đã công bố vào ngày 12 tháng 6 rằng "lỗi gọi đệ quy" đã được tìm thấy trong phần mềm nhưng "No DAO funds [were] at risk" (Không có quỹ DAO nào trong tình trạng nguy hiểm).

Lỗ hổng và tấn công

- Một lỗ hổng được phát hiện với tên là "lỗi gọi đệ quy" (recursive call bug) có tên gọi khác là "Race to empty". Lỗ hổng này cho phép kẻ tấn công lấy được ether từ tài khoản DAO.

- Khai thác lỗ hổng này, kẻ tấn công có thể gọi hàm "split", và sau đó gọi hàm phân chia đệ quy bên trong split, do đó thu thập ether nhiều lần trong một giao dịch đơn lẻ (single transaction).

Thật không may, trong khi các lập trình viên đang cố gắng giải quyết vấn đề này và các vấn đề khác, một kẻ tấn công không biết đã bắt đầu sử dụng cách tiếp cận này để bắt đầu tháo dở DAO của ether thu được từ việc bán các token của nó.

- Đến thứ 7, 18/6, kẻ tấn công nắm giữ hơn 3.6 triệu ether vào một "child DAO" có cùng cấu trúc giống The DAO.

- Giá của ether lúc này rớt từ $20 xuống còn $13.

- Một số người đã cố gắng chia DAO để ngăn không cho thêm ether, nhưng họ không thể có được vote cần thiết trong một thời gian ngắn như vậy.

- Các nhà lập trình viên dự thảo fork sang nhánh khác.

- Trên thực tế, cuộc tấn công đó, hay một cuộc tấn công tương tự, có thể tiếp tục bất cứ lúc nào.


Soft-fork

Ngày 17/6, Vitalik Buterin của Quỹ Ethereum đã đưa ra một bản cập nhật quan trọng, nói rằng DAO đã bị tấn công và rằng ông đã đưa ra một giải pháp:

- Một phần mềm đã được đề xuất, (KHÔNG ROLLBACK, không có transactions hoặc blocks nào sẽ bị "đảo ngược") sẽ làm cho bất kì transactions nào được tạo ra (calls/callcodes/delegatecalls) với account 0x7278d050619a624f84f51987149ddb439cdaadfba5966f7cfaea7ad44340a4ba sẽ không hợp lệ.

Phản ứng của kẻ tấn công

Trong lá thư mở gửi tới The DAO, Kẻ tấn công được cho là tuyên bố rằng "phần thưởng" của anh ta là hợp pháp và bị đe doạ có hành động pháp lý chống lại bất kỳ ai cố gắng làm mất hiệu lực công việc của mình.

- Một số người đã chỉ ra rằng chữ ký mật mã trong thông báo này là không hợp lệ - có thể là giả mạo.

- Nhưng nó được viết ra và từ một quan điểm nhất định, có lý lẽ tốt: tiền đề của các hợp đồng thông minh là họ là trọng tài của họ và rằng không có gì bên ngoài mã có thể "thay đổi các quy tắc" của giao dịch.

- Sau đó, thông qua người trung gian, kẻ tấn công tuyên bố rằng anh ta sẽ chấm dứt việc "trộm cắp" tài sản của mình bằng cách thưởng cho các miners (node) không chuyển sang soft-fork được đề nghị, nói rằng: "Chẳng bao lâu chúng ta sẽ có một hợp đồng thông minh để thưởng cho các thợ mỏ phản đối soft-fork và phá hủy giao dịch. 1m ETH + 100 BTC sẽ được chia sẻ với các thợ mỏ."
("[S]oon we will have a smart contract to reward miners who oppose the soft fork and mines the transaction. 1m ETH + 100 BTC will be shared with miners.")

Hark-fork

Một đề xuất khác là tích cực hơn - yêu cầu các thợ mỏ hoàn toàn giải quyết trộm cắp và trả lại tất cả các ether cho The DAO, nơi mà nó có thể được mua lại bởi chủ sở hữu thẻ, tự động, do đó kết thúc DAO.

As Stephan Tual puts it in his blog:

– "By 4pm local time, the consensus was that should a soft fork be deployed within 27 days, the attacker would not be able to retrieve the funds he had stashed into a child DAO.

– A subsequent hard fork could even return all ether, including the DAO’s ‘extraBalance’ and the stolen funds, back into a smart contract. That smart contract would contain a single function: withdraw().

– This would make it possible for everyone who participated in the DAO to withdraw their funds: thanks to the support of the miners, and because nothing had been spent so far, nothing would be lost."



Phản ứng của cộng đồng

- Cộng đồng không thích điều này.

- Sự đáng tin cậy của mạng lưới là thiêng liêng.

- Mọi người bắt đầu yêu cầu hard forks để khôi phục những tổn thất trước đây.

- Một ai đó đã viết: - "Tôi đã làm một hợp đồng xấu trong những ngày đầu tiên ETH đã trực tuyến và mất 2K ETH với nó, tôi cũng có thể lấy nó trở lại? Cảm ơn!" ("I made a bad contract in the first days ETH was online and lost 2K ETH with it, can I also get it back? Thanks!")

- Cộng đồng yêu cầu nghiêm ngặt về tính minh bạch và không có sự tham gia từ phía cơ sở để phục hồi tổn thất.

- Cộng đồng cũng tin rằng người sáng lập nên chịu trách nhiệm.

Hậu quả

- Hard fork đã được thực thi.

- Toàn bộ quỹ đã được rút khỏi tài khoản của DAO và trả lại cho chủ sở hữu thẻ bằng cách sử dụng hợp đồng WithdrawDAO.

- Ethereum đã được tách ra và cái cũ được gọi là Ethereum Classic.



Không có nhận xét nào:

Đăng nhận xét