Tối ưu hóa DLC: Giải pháp đơn giản đạt được sự đơn giản tuyệt đối
Năm 2018, Tadge Dryja của Viện Công nghệ Massachusetts đã đề xuất Khung thực thi hợp đồng Discreet Log Contract (DLC) dựa trên oracle. DLC cho phép hai bên thực hiện thanh toán có điều kiện dựa trên các điều kiện đã định trước, hai bên xác định trước các kết quả có thể và ký trước, khi oracle ký kết quả, sử dụng các chữ ký trước đó để thực hiện thanh toán. Cơ chế này bảo đảm an toàn cho khoản tiền gửi Bitcoin trong khi thực hiện các ứng dụng tài chính phi tập trung mới.
Trước đó đã phân tích những ưu điểm của DLC trong việc bảo vệ quyền riêng tư, hợp đồng phức tạp, rủi ro tài sản, đồng thời cũng chỉ ra những vấn đề như rủi ro khóa, rủi ro tin cậy phi tập trung, rủi ro thông đồng. Mặc dù việc đưa vào các oracle phi tập trung, chữ ký ngưỡng, cơ chế thách thức lạc quan có thể giải quyết những vấn đề này, nhưng do DLC liên quan đến oracle, Alice và Bob, tình huống tấn công thông đồng giữa các bên tham gia khác nhau rất phức tạp, dẫn đến chiến lược phòng thủ cũng tương đối phức tạp. Chiến lược phòng thủ phức tạp này không hoàn hảo và thiếu tính đơn giản.
Trong Bitcoin, hành vi của bất kỳ bên tham gia nào cũng cần phải được thực hiện thông qua UTXO. Do đó, chỉ cần đảm bảo UTXO là đúng, có thể chống lại bất kỳ cuộc tấn công nào. Tương tự, trong DLC, bất kỳ hành vi nào cũng cần phải được thực hiện thông qua hợp đồng CET( để thực hiện giao dịch ). Chỉ cần sử dụng cơ chế thách thức lạc quan để đảm bảo CET là đúng, có thể chống lại bất kỳ cuộc tấn công nào. Cụ thể, oracle cần đặt cọc 2BTC trước khi ký CET. Thêm cơ chế thách thức lạc quan vào CET, nếu CET không bị thách thức hoặc đối phó thành công với thách thức, thì được xem là đúng và có thể hoàn thành thanh toán, oracle sẽ giải phóng tiền đặt cọc và nhận phí dịch vụ; nếu oracle cố gắng làm điều xấu, bất kỳ ai cũng có thể thành công trong việc thách thức, CET đó sẽ không thể thanh toán, oracle sẽ mất tiền đặt cọc và không thể ký vào CET đó nữa. Giải pháp này đơn giản và hiệu quả.
Nguyên lý DLC
Lấy ví dụ về việc Alice và Bob cược vào tính chẵn lẻ của giá trị băm của khối thứ ξ: nếu là số lẻ, Alice thắng; nếu là số chẵn, Bob thắng. DLC thông qua oracle truyền tải thông tin khối để xây dựng chữ ký điều kiện, giúp bên đúng nhận được toàn bộ tài sản.
Điểm sinh của đường cong ellip là G, bậc là q. Bộ khóa của oracle, Alice và Bob lần lượt là (z, Z), (x, X), (y, Y).
Giao dịch góp vốn: Alice và Bob mỗi người góp 10BTC, được khóa trong một đầu ra ký quỹ 2-of-2.
Xây dựng CET: Alice và Bob tạo CET1 và CET2 để sử dụng cho giao dịch rút vốn.
Máy tính tiên tri tính cam kết R = k · G, sau đó tính S và S:'
S := R - hash(SốLẻ, R) · Z
S' := R - hash(SốChẵn, R) · Z
Khóa công khai mới tương ứng của Alice và Bob:
PK^Alice := X + S
PK^Bob := Y + S'
Thanh toán: Sau khi khối thứ ξ được tạo ra, oracle sẽ ký CET1 hoặc CET2 tương ứng dựa trên giá trị băm.
Nếu băm là số lẻ, oracle ký s:
s := k - hash(SốLẻ, R) z
Phát sóng CET1.
Nếu hàm băm là số chẵn, oracle ký s':
s' := k - hash(SốChẵn, R) z
Phát sóng CET2.
Rút tiền: Nếu phát sóng CET1, Alice có thể tính toán khóa riêng mới và chi tiêu 20BTC:
sk^Alice = x + s
Nếu phát sóng CET2, Bob có thể tính toán khóa riêng mới và chi tiêu 20BTC:
sk^Bob = y + s'
Nghiên cứu phát hiện, bất kỳ hành vi nào trong quá trình trên đều cần được thực hiện thông qua CET. Do đó, chỉ cần sử dụng cơ chế thách thức lạc quan để đảm bảo CET đúng, có thể chống lại bất kỳ cuộc tấn công nào. CET sai sẽ bị thách thức và không được thực hiện, trong khi CET đúng sẽ được thực hiện. Ngoài ra, oracle cần phải chịu chi phí cho các hành vi độc hại.
Chương trình thách thức là f(t), cần xây dựng CET như sau:
s = k - hash(f(t), R) z
Giả sử giá trị băm của khối thứ ξ thực tế là số lẻ, tức là f(ξ) = OddNumber, oracle nên ký CET1:
s := k - hash(SốLẻ, R) z
Nhưng nếu oracle làm điều ác, sẽ sửa đổi giá trị hàm thành Even và ký CET2:
s' := k - hash(SốChẵn, R) z
Vậy bất kỳ người dùng nào cũng có thể dựa vào f(ξ) ≠ OddNumber để ngăn chặn hành vi ác ý này.
OP-DLC 2
OP-DLC bao gồm các quy định sau:
Oracle được tạo thành từ một liên minh, bất kỳ thành viên nào cũng có thể ký CET. Phải đặt cọc 2BTC thì mới có thể phát hành chữ ký để kiếm phí giao dịch. Thành viên gian lận sẽ mất khoản đặt cọc, các thành viên khác vẫn có thể ký CET để đảm bảo người dùng rút tiền. Alice và Bob cũng có thể trở thành oracle, thực hiện việc chỉ tin vào chính mình.
Nếu oracle làm xấu sửa đổi kết quả, chắc chắn sẽ dẫn đến f1(ξ) ≠ z1, f2(z1) ≠ z2. Bất kỳ bên tham gia nào cũng có thể khởi xướng thách thức giao dịch Disprove-CET1.
Khi oracle ký CET một cách trung thực, không bên tham gia nào có thể khởi xướng giao dịch Disprove hợp lệ. Sau một tuần, CET có thể được thanh toán chính xác, oracle nhận phần thưởng 0.05BTC, như là phần thưởng cho việc đặt cọc 2BTC trong một tuần và ký CET một cách trung thực.
Bất kỳ bên tham gia nào cũng có thể thách thức Oracle_sign:
Nếu Oracle_sign trung thực, không thể khởi xướng giao dịch Disprove-CET1, sau một tuần sẽ thực hiện thanh toán CET. Thời gian mở khóa đặt cược của oracle và nhận phí giao dịch.
Nếu Oracle_sign không trung thực, bất kỳ ai thành công trong việc khởi tạo giao dịch Disprove-CET1 và sử dụng đầu ra của connector A, thì chữ ký của oracle đó là không hợp lệ, mất 2BTC đã đặt cọc, và trong tương lai không thể ký chữ ký với kết quả tương tự cho hợp đồng DLC này.
Thách thức trong OP-DLC là không cần giấy phép, bất kỳ bên tham gia nào cũng có thể giám sát xem hợp đồng có được thực hiện đúng hay không, từ đó giảm thiểu sự tin cậy vào oracle. So với mạng lưới Lightning, Alice và Bob cũng có thể hoạt động ngoại tuyến, vì oracle chỉ thanh toán CET khi có chữ ký trung thực, oracle gian lận có thể bị bất kỳ ai thách thức và trừng phạt.
Ưu điểm:
Kiểm soát tài sản cao, chỉ tin tưởng vào bản thân: Alice và Bob có thể trở thành oracle ký CET, cơ chế thách thức lạc quan sẽ đánh bại CET sai, không thể làm điều xấu. OP-DLC thực hiện người dùng chỉ tin tưởng vào bản thân.
Tỷ lệ sử dụng vốn cao: Người dùng phụ thuộc vào việc rút tiền của chính mình, không cần phải dùng số tiền tương đương để ứng trước.
Oracle có thể ký cần xác định khi nạp tiền, nhưng người dùng có thể trở thành oracle, tự ký tên cho mình.
Nhược điểm:
Thời gian rút tiền cần một tuần: Về bản chất, chi phí thời gian tiền bạc của OP-DLC và BitVM là giống nhau. Rút tiền OP-DLC cần phải trải qua thời gian thách thức; nếu BitVM phụ thuộc vào người dùng tự ứng trước, số tiền ứng trước tương đương cũng cần phải trải qua thời gian thách thức để có thể hoàn trả thành công.
Số lượng chữ ký cần ký trước tăng nhanh, có mối quan hệ tuyến tính với số lượng CET. Cần càng nhiều CET càng tốt để liệt kê tất cả các kết quả rút tiền.
Kết luận
OP-DLC đưa cơ chế thách thức lạc quan vào CET, đảm bảo rằng CET sai không bị thanh toán và tổn thất từ oracle độc hại bị khóa; đảm bảo rằng CET đúng được thực hiện và tiền đặt cọc của oracle được mở khóa và nhận phí giao dịch. Cách này có thể chống lại bất kỳ cuộc tấn công nào, thể hiện vẻ đẹp của sự đơn giản.
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
14 thích
Phần thưởng
14
3
Chia sẻ
Bình luận
0/400
ChainSherlockGirl
· 07-20 18:09
Lại một màn kịch lớn về việc phân bổ vốn on-chain~ Máy Oracle đang đứng sau nhà đầu tư lớn nào vậy?
OP-DLC: Thực hiện nâng cấp chống tấn công cho hợp đồng DLC bằng giải pháp đơn giản
Tối ưu hóa DLC: Giải pháp đơn giản đạt được sự đơn giản tuyệt đối
Năm 2018, Tadge Dryja của Viện Công nghệ Massachusetts đã đề xuất Khung thực thi hợp đồng Discreet Log Contract (DLC) dựa trên oracle. DLC cho phép hai bên thực hiện thanh toán có điều kiện dựa trên các điều kiện đã định trước, hai bên xác định trước các kết quả có thể và ký trước, khi oracle ký kết quả, sử dụng các chữ ký trước đó để thực hiện thanh toán. Cơ chế này bảo đảm an toàn cho khoản tiền gửi Bitcoin trong khi thực hiện các ứng dụng tài chính phi tập trung mới.
Trước đó đã phân tích những ưu điểm của DLC trong việc bảo vệ quyền riêng tư, hợp đồng phức tạp, rủi ro tài sản, đồng thời cũng chỉ ra những vấn đề như rủi ro khóa, rủi ro tin cậy phi tập trung, rủi ro thông đồng. Mặc dù việc đưa vào các oracle phi tập trung, chữ ký ngưỡng, cơ chế thách thức lạc quan có thể giải quyết những vấn đề này, nhưng do DLC liên quan đến oracle, Alice và Bob, tình huống tấn công thông đồng giữa các bên tham gia khác nhau rất phức tạp, dẫn đến chiến lược phòng thủ cũng tương đối phức tạp. Chiến lược phòng thủ phức tạp này không hoàn hảo và thiếu tính đơn giản.
Trong Bitcoin, hành vi của bất kỳ bên tham gia nào cũng cần phải được thực hiện thông qua UTXO. Do đó, chỉ cần đảm bảo UTXO là đúng, có thể chống lại bất kỳ cuộc tấn công nào. Tương tự, trong DLC, bất kỳ hành vi nào cũng cần phải được thực hiện thông qua hợp đồng CET( để thực hiện giao dịch ). Chỉ cần sử dụng cơ chế thách thức lạc quan để đảm bảo CET là đúng, có thể chống lại bất kỳ cuộc tấn công nào. Cụ thể, oracle cần đặt cọc 2BTC trước khi ký CET. Thêm cơ chế thách thức lạc quan vào CET, nếu CET không bị thách thức hoặc đối phó thành công với thách thức, thì được xem là đúng và có thể hoàn thành thanh toán, oracle sẽ giải phóng tiền đặt cọc và nhận phí dịch vụ; nếu oracle cố gắng làm điều xấu, bất kỳ ai cũng có thể thành công trong việc thách thức, CET đó sẽ không thể thanh toán, oracle sẽ mất tiền đặt cọc và không thể ký vào CET đó nữa. Giải pháp này đơn giản và hiệu quả.
Nguyên lý DLC
Lấy ví dụ về việc Alice và Bob cược vào tính chẵn lẻ của giá trị băm của khối thứ ξ: nếu là số lẻ, Alice thắng; nếu là số chẵn, Bob thắng. DLC thông qua oracle truyền tải thông tin khối để xây dựng chữ ký điều kiện, giúp bên đúng nhận được toàn bộ tài sản.
Điểm sinh của đường cong ellip là G, bậc là q. Bộ khóa của oracle, Alice và Bob lần lượt là (z, Z), (x, X), (y, Y).
Giao dịch góp vốn: Alice và Bob mỗi người góp 10BTC, được khóa trong một đầu ra ký quỹ 2-of-2.
Xây dựng CET: Alice và Bob tạo CET1 và CET2 để sử dụng cho giao dịch rút vốn.
Máy tính tiên tri tính cam kết R = k · G, sau đó tính S và S:'
S := R - hash(SốLẻ, R) · Z S' := R - hash(SốChẵn, R) · Z
Khóa công khai mới tương ứng của Alice và Bob: PK^Alice := X + S PK^Bob := Y + S'
Thanh toán: Sau khi khối thứ ξ được tạo ra, oracle sẽ ký CET1 hoặc CET2 tương ứng dựa trên giá trị băm.
Nếu băm là số lẻ, oracle ký s: s := k - hash(SốLẻ, R) z Phát sóng CET1.
Nếu hàm băm là số chẵn, oracle ký s': s' := k - hash(SốChẵn, R) z Phát sóng CET2.
Rút tiền: Nếu phát sóng CET1, Alice có thể tính toán khóa riêng mới và chi tiêu 20BTC: sk^Alice = x + s
Nếu phát sóng CET2, Bob có thể tính toán khóa riêng mới và chi tiêu 20BTC: sk^Bob = y + s'
Nghiên cứu phát hiện, bất kỳ hành vi nào trong quá trình trên đều cần được thực hiện thông qua CET. Do đó, chỉ cần sử dụng cơ chế thách thức lạc quan để đảm bảo CET đúng, có thể chống lại bất kỳ cuộc tấn công nào. CET sai sẽ bị thách thức và không được thực hiện, trong khi CET đúng sẽ được thực hiện. Ngoài ra, oracle cần phải chịu chi phí cho các hành vi độc hại.
Chương trình thách thức là f(t), cần xây dựng CET như sau: s = k - hash(f(t), R) z
Giả sử giá trị băm của khối thứ ξ thực tế là số lẻ, tức là f(ξ) = OddNumber, oracle nên ký CET1: s := k - hash(SốLẻ, R) z
Nhưng nếu oracle làm điều ác, sẽ sửa đổi giá trị hàm thành Even và ký CET2: s' := k - hash(SốChẵn, R) z
Vậy bất kỳ người dùng nào cũng có thể dựa vào f(ξ) ≠ OddNumber để ngăn chặn hành vi ác ý này.
OP-DLC 2
OP-DLC bao gồm các quy định sau:
Oracle được tạo thành từ một liên minh, bất kỳ thành viên nào cũng có thể ký CET. Phải đặt cọc 2BTC thì mới có thể phát hành chữ ký để kiếm phí giao dịch. Thành viên gian lận sẽ mất khoản đặt cọc, các thành viên khác vẫn có thể ký CET để đảm bảo người dùng rút tiền. Alice và Bob cũng có thể trở thành oracle, thực hiện việc chỉ tin vào chính mình.
Nếu oracle làm xấu sửa đổi kết quả, chắc chắn sẽ dẫn đến f1(ξ) ≠ z1, f2(z1) ≠ z2. Bất kỳ bên tham gia nào cũng có thể khởi xướng thách thức giao dịch Disprove-CET1.
Khi oracle ký CET một cách trung thực, không bên tham gia nào có thể khởi xướng giao dịch Disprove hợp lệ. Sau một tuần, CET có thể được thanh toán chính xác, oracle nhận phần thưởng 0.05BTC, như là phần thưởng cho việc đặt cọc 2BTC trong một tuần và ký CET một cách trung thực.
Bất kỳ bên tham gia nào cũng có thể thách thức Oracle_sign:
Thách thức trong OP-DLC là không cần giấy phép, bất kỳ bên tham gia nào cũng có thể giám sát xem hợp đồng có được thực hiện đúng hay không, từ đó giảm thiểu sự tin cậy vào oracle. So với mạng lưới Lightning, Alice và Bob cũng có thể hoạt động ngoại tuyến, vì oracle chỉ thanh toán CET khi có chữ ký trung thực, oracle gian lận có thể bị bất kỳ ai thách thức và trừng phạt.
Ưu điểm:
Kiểm soát tài sản cao, chỉ tin tưởng vào bản thân: Alice và Bob có thể trở thành oracle ký CET, cơ chế thách thức lạc quan sẽ đánh bại CET sai, không thể làm điều xấu. OP-DLC thực hiện người dùng chỉ tin tưởng vào bản thân.
Tỷ lệ sử dụng vốn cao: Người dùng phụ thuộc vào việc rút tiền của chính mình, không cần phải dùng số tiền tương đương để ứng trước.
Oracle có thể ký cần xác định khi nạp tiền, nhưng người dùng có thể trở thành oracle, tự ký tên cho mình.
Nhược điểm:
Thời gian rút tiền cần một tuần: Về bản chất, chi phí thời gian tiền bạc của OP-DLC và BitVM là giống nhau. Rút tiền OP-DLC cần phải trải qua thời gian thách thức; nếu BitVM phụ thuộc vào người dùng tự ứng trước, số tiền ứng trước tương đương cũng cần phải trải qua thời gian thách thức để có thể hoàn trả thành công.
Số lượng chữ ký cần ký trước tăng nhanh, có mối quan hệ tuyến tính với số lượng CET. Cần càng nhiều CET càng tốt để liệt kê tất cả các kết quả rút tiền.
Kết luận
OP-DLC đưa cơ chế thách thức lạc quan vào CET, đảm bảo rằng CET sai không bị thanh toán và tổn thất từ oracle độc hại bị khóa; đảm bảo rằng CET đúng được thực hiện và tiền đặt cọc của oracle được mở khóa và nhận phí giao dịch. Cách này có thể chống lại bất kỳ cuộc tấn công nào, thể hiện vẻ đẹp của sự đơn giản.