BTC
$96,000
5.73%
ETH
$3,521.91
3.97%
HTX
$0.{5}2273
5.23%
SOL
$198.17
3.05%
BNB
$710
3.05%
lang
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
Trang chủ
AI AI
Tin nhanh
Bài viết
Sự kiện
BlockBeats Pro
Thêm
Thông tin tài chính
Chuyên đề
Hệ sinh thái chuỗi khối
Mục nhập
Podcast
Data
OPRR
Partnered With:

Thông tin khô khan | Tổng quan toàn diện về oracle phi tập trung (Phần 1)

Đọc bài viết này mất 59 phút
Thông tin khô khan | Tổng quan toàn diện về oracle phi tập trung (Phần 1)

Tiêu đề gốc: "Thông tin khô khan | Tổng quan toàn diện về các oracle phi tập trung (Phần 1)"

Tác giả gốc: Julien Thevenard, đối tác của tổ chức đầu tư blockchain Fabric Ventures (Bản dịch: An Clint, wuwei, Ajian)

Nguồn gốc:Trung bình


Sổ cái phân tán và hợp đồng thông minh có thể loại bỏ những xung đột gây ra bởi các vấn đề về niềm tin trong tương tác và cộng tác hiện tại của con người, đồng thời mang lại những đổi mới to lớn và chưa từng có cho xã hội. Nhưng trước đó, nếu không thể sử dụng các hợp đồng thông minh trên nếu không có thêmtrust span>có được đầu vào ngoài chuỗi, vì vậy cái gọi là đổi mới chỉ nằm trên giấy.

Các oracle phi tập trung là cổng để các hợp đồng thông minh tương tác với thế giới bên ngoài và được thiết kế để hoạt động bình thường trong khi không quá dựa vào một nguồn thông tin duy nhất. Cách triển khai các oracle phi tập trung cũng sẽ kích hoạt một làn sóng đổi mới khác.

Bài viết này nhằm giới thiệu các điểm sau:

1. Tại sao dịch vụ oracle là một công nghệ phi tập trung

2. Các thành phần quan trọng trong ngăn xếp Nhu cầu một phần dành cho các dịch vụ không cần sự tin cậy

3. Những thách thức phức tạp và giao diện tấn công mà oracle phải đối mặt

4. Tổng quan về 8 dự án chuyên giải quyết các vấn đề trên

I. Tại sao chúng ta cần oracles?

Hợp đồng thông minh trên các chuỗi không được phép (chẳng hạn như Ethereum, Dfinity) chạy trên môi trường đối thủ, tính bảo mật của nó được cung cấp bởi chỉ các giao dịch xác định lan truyền trên mạng (tức là các giao dịch được xác minh bởi tất cả các nút) được đảm bảo. Ý tưởng thiết kế của hợp đồng thông minh là: chấp nhận đầu vào → thực thi logic → cập nhật trạng thái blockchain tương ứng và quy trình này làKhông thể đảo ngược, không có sự thoái lui Ctlr+Z trong thế giới blockchain.

Cho phép hợp đồng thông minh lấy dữ liệu từ bên ngoài hệ thống blockchain là con dao hai lưỡi giúp mở rộng đáng kể các kịch bản ứng dụng blockchain và trao quyền cho các khu vực. với thế giới bên ngoài, nó cũng gây ra những vấn đề về niềm tin nhất định. Những người khai thác trong chuỗi không được phép không chắc chắn rằng họ có thể xác minh tất cả đầu vào bên ngoài, vì vậy họ chỉ có thể thực hiện một cách bừa bãi bất kỳ hoạt động nào đáp ứng các điều kiện đặt trước của hợp đồng thông minh.

Một ví dụ đơn giản: Nhận xét của Alice và Bob về Bitcoin vào ngày 3 tháng 1 năm 2019, 2 giờ chiều Đặt cược giá theo giờ Luân Đôn . Họ đặt cược bằng cách sử dụng hợp đồng thông minh, mỗi người gửi 1 ether vào hợp đồng. Nếu giá Bitcoin cao hơn 4.200 USD thì Alice thắng 2 ether, nếu không thì Bob nhận được 2 ether. Hợp đồng thông minh không hiểu giá Bitcoin và một khi kết quả của canh bạc đã được xác định thì không thể đảo ngược được, vì vậy chúng tôi phải đảm bảo rằng chỉ báo cáo giá Bitcoin chính xác cho hợp đồng. Tại thời điểm này, chúng ta cần cái gọi là oracle (dùng để cung cấp thành phần dữ liệu).

Nhà tiên tri là một thực thể ký các tuyên bố về tình trạng của thế giới. Ví dụ: một nhà tiên tri có thể báo cáo giá BTC/USD trên Coinbase vào ngày 3 tháng 1 hoặc người chiến thắng Champions League. Thông tin cuối cùng có được thông qua việc tổng hợp và sắp xếp lại một hoặc nhiều thông điệp nguồn đáng tin cậy được một hoặc nhiều nhà tiên tri chấp nhận.

Trước khi thảo luận về nhiều chi tiết kỹ thuật của các oracle không cần sự tin cậy, trước tiên chúng ta hãy xem xét 5 oracle Các trường hợp sử dụng chính của hợp đồng thông minh được trao quyền .

Sản phẩm tài chính

Hợp đồng thông minh tương thích một cách tự nhiên với nhiều sản phẩm tài chính: hoán đổi lãi suất, quyền chọn thanh toán bằng tiền mặt, giao dịch đòn bẩy phi tập trung, v.v. Các sản phẩm tài chính nêu trên đều yêu cầu nguồn dữ liệu đáng tin cậy để đảm bảo thực hiện chính xác việc thanh toán trên chuỗi. Một số dự án thậm chí còn có khả năng áp dụng những lời tiên tri như vậy vào các sản phẩm tài chính, bao gồm: CDx, dYdX, MakerDAO, Vega Protocol và giao thức 0x.

Bảo hiểm hợp đồng thông minh

Với sự hỗ trợ của các nguồn đáng tin cậy và đáng tin cậy, một số sản phẩm bảo hiểm nhất định có thể được triển khai dưới dạng hợp đồng thông minh thông qua lập trình. Chi phí lớn nhất trong ngành bảo hiểm là gian lận, vì vậy tầm quan trọng của lời tiên tri là điều hiển nhiên. Một số trường hợp dự án bảo hiểm thông minh hiện nay bao gồm:

- Etherisc và Fizzy được triển khai Tự động bồi thường cho sự chậm trễ chuyến bay.

- Nexus Mutual cho phép các nhà tiên tri cục bộ, dựa trên khuyến khích xác minh các xác nhận cục bộ, chưa được phát hành và báo cáo chúng lên chuỗi khối.

- FlyingCarpet triển khai bảo hiểm có thể lập trình mới được hỗ trợ bởi trí tuệ nhân tạo và dữ liệu địa lý.

vận chuyển

GPS không phải là nguồn dữ liệu hợp lý để dApp tự động phát hành phần thưởng dựa trên vị trí địa lý, bởi vì đây là một hệ thống tập trung dễ bị lừa. Việc sử dụng oracle có thể giảm chi phí tin cậy này. Lấy FOAM làm ví dụ, nó có thể hạ thấp ngưỡng tin cậy của dApp đối với các nguồn dữ liệu gốc và dựa vào niềm tin vào mạng phi tập trung (trong kịch bản này, đó là oracle vị trí). của thông tin vị trí được khai báo bởi nguồn.

Cho vay có thế chấp và stablecoin

Trong trường hợp cho vay thế chấp và tiền tệ ổn định, cần truy cập dữ liệu đáng tin cậy để xác định giá trị của tài sản thế chấp nhằm quyết định xem khoản nợ có cần phải trả hay không. Khi giá trị của stablecoin quá xa so với giá trị thiết kế, dữ liệu giá trị tiền tệ cũng cần được lấy thông qua máy oracle để xác định xem có cần thực hiện các biện pháp để ổn định giá trị của stablecoin hay không. Ví dụ: DAI của MakerDAO là một stablecoin được hỗ trợ bởi Ethereum (sẽ sớm được nâng cấp lên chứng thực đa tài sản). Nó sử dụng nhiều oracle trong thiết kế của mình để báo cáo giá của Ethereum, do đó khi stablecoin được phát hành sẽ không có đủ tài sản thế chấp được chứng thực , hoạt động thanh lý được kích hoạt kịp thời, nhờ đó bảo vệ toàn bộ hệ thống. Những oracle này được những người nắm giữ token Maker lựa chọn và tài trợ để chạy. Các thiết kế tương tự được tìm thấy trong các nền tảng cho vay ngang hàng không đáng tin cậy Ethlend và Dharma.

Thị trường dự đoán

Thị trường dự đoán phi tập trung (Augur, Gnosis) đã đưa sự cộng tác của con người lên một tầm cao mới chưa từng có, tận dụng tối đa trí tuệ của nhóm. Các thị trường này phải dựa vào một hoặc nhiều nhà tiên tri để xác định các sự kiện ngoài chuỗi.

II. Đảm bảo tính toàn vẹn của oracle

Blockchain được xây dựng có chủ ý để tách biệt chúng với thế giới bên ngoài và các bên thứ ba cần có thêm sự tin tưởng. Tuy nhiên, hầu hết các sự kiện vẫn diễn ra ngoài chuỗi, vì vậy chúng ta cần kết nối chuỗi khối với thế giới ngoài chuỗi mà không ảnh hưởng đến khả năng chống kiểm duyệt. Trên thực tế, tính không đáng tin cậy của dApp phụ thuộc vào liên kết yếu nhất giữa thế giới trên chuỗi và ngoài chuỗi, do đó, một nguồn thông tin duy nhất có thể bị hỏng là không đủ. Việc truy cập nhiều nguồn thông tin có thể đạt được độ bảo mật cao hơn về mặt xác suất, nhưng nó sẽ làm tăng chi phí tương ứng. Số lượng nguồn thông tin cần thiết cho các kịch bản ứng dụng cụ thể có thể nhiều hoặc ít. Trong các ứng dụng thực tế, chúng ta nên áp dụng phương pháp thiết kế dựa trên rủi ro để xác định số lượng nguồn thông tin cần thiết cho các ứng dụng khác nhau. Lấy dữ liệu nhiệt độ của London làm ví dụ, nếu nó chỉ được sử dụng để hiển thị dữ liệu trên ứng dụng di động, thì ngay cả khi dữ liệu có vấn đề cũng sẽ không gây ra hậu quả nghiêm trọng, thì sử dụng oracle (chẳng hạn như API) là đủ và nếu oracle báo cáo Nhiệt độ xác định kết quả bồi thường của hợp đồng bảo hiểm trị giá 10 triệu đô la Mỹ, chúng ta cần truy cập vào nhiều oracle, bao gồm dữ liệu vệ tinh, dữ liệu cảm biến cục bộ, v.v. Nói chung, cần phải cân bằng chi phí của hệ thống oracle đã thiết lập dựa trên số tiền liên quan và tìm giải pháp oracle phù hợp với kịch bản của riêng bạn trong các ứng dụng thực tế.

Mô hình phô mai Thụy Sĩ

Rất khó để đảm bảo rằng bên thứ ba sẽ không làm điều ác. Giải quyết vấn đề tin cậy này trong một thế giới tập trung đòi hỏi phải sử dụng nhiều lớp bảo vệ: hợp đồng, công ty đáng tin cậy, bảo hiểm, pháp lý, v.v. Miễn là ít nhất một lớp bảo vệ vẫn còn nguyên vẹn thì hệ thống có thể được coi là trung thực. Tuy nhiên, nếu tất cả các lớp bảo vệ bị hỏng, cuộc tấn công sẽ có hiệu lực (mô hình phô mai Thụy Sĩ).

488325e6913a812a8701e14d55c74353.jpgMô hình phô mai Thụy Sĩ được điều chỉnh (nguồn hình ảnh)

Vụ bê bối LIBOR là bài học về việc phụ thuộc quá nhiều vào các oracle tập trung. Lãi suất được cung cấp liên ngân hàng Luân Đôn, hay LIBOR, là một tham chiếu lãi suất thường được sử dụng cho các khoản cho vay thương mại và tư nhân, làm cơ sở cho các khoản vay trị giá khoảng 300 nghìn tỷ USD. Tuy nhiên, theo các nguồn tin, chỉ số này đã bị một số nhà giao dịch hoán đổi thao túng ngay từ năm 2005 hoặc 2003. LIBOR cũng là một chỉ số cho thấy các ngân hàng đang hoạt động tốt như thế nào, do đó việc thao túng tỷ lệ này cũng dẫn đến việc một số tổ chức có vẻ khỏe mạnh hơn thực tế trong cuộc khủng hoảng tài chính 2007-2008.

Vì vậy, ở đây chúng tôi nhấn mạnh một lần nữa rằng một nguồn thông tin duy nhất (chưa được kiểm tra) là cực kỳ mong manh, điều này ảnh hưởng đến tính bảo mật của hệ thống mà nó phục vụ. Trên thế giới không có hệ thống hoàn hảo, nhưng chúng ta có thể áp dụng khái niệm nhiều rào cản cho hệ thống oracle phi tập trung để giảm thiểu niềm tin nhiều nhất có thể.

A. Nhiều nguồn dữ liệu

Cách đơn giản nhất để giảm lỗi dữ liệu là sử dụng oracle để tổng hợp nhiều nguồn dữ liệu. Theo cách này, chỉ có hai khả năng để thu thập dữ liệu quá mức: thứ nhất, hầu hết các nguồn dữ liệu đều bị hỏng và thứ hai, bản thân oracle bị xâm phạm (trở thành một điểm lỗi duy nhất).

B. Nhiều oracles

Khi số lượng oracle tăng lên, xác suất là hầu hết các oracle sẽ không độc hại, miễn là phần lớn hệ thống vẫn còn Thành thật mà nói, hệ thống Nó an toàn. Tuy nhiên, cho dù đó là sự thao túng có chủ ý hay vô ý (bản thân nguồn thông tin bị lỗi) thì khả năng tất cả các oracle truyền tải thông tin sai lệch vẫn không bị loại trừ vào thời điểm này.

C. Chia sẻ lợi ích

Mạng phi tập trung có thể phát triển các cơ chế khuyến khích cụ thể để đảm bảo rằng hành vi của những người tham gia mạng nhất quán với lợi ích chung của mạng. Khi những người tham gia mạng hành động theo quy tắc, họ có thể nhận được phần thưởng. Ví dụ: người khai thác có thể nhận được phần thưởng khối khi khai thác. Hệ thống bằng chứng cổ phần yêu cầu các điều kiện phạt để chống lại các cuộc tấn công phù thủy và các cuộc tấn công không quan tâm.

Rất nguy hiểm khi để những người tham gia ẩn danh trong các mạng phi tập trung hoạt động như những nhà tiên tri. Trong các hệ thống phi tập trung, một khi họ làm điều ác để thu được lợi ích kinh tế, thì không có quy định của pháp luật để theo đuổi những lợi ích bất chính đó. Thiết kế của kỹ thuật mã thông báo có thể buộc các nút trong mạng phi tập trung cam kết một phần tiền gửi/tiền gửi, thường là tiền tệ gốc trong hệ thống. Khi một nút hoạt động tốt sẽ nhận được một lượng thưởng nhất định, nếu một nút làm điều xấu sẽ bị mất tài sản cầm cố theo một tỷ lệ nhất định. Cơ chế trên đảm bảo rằng hệ thống oracle có cơ chế khuyến khích tích cực để thúc đẩy người tham gia tạo ra dữ liệu chính xác.

D. Môi trường thực thi tin cậy (TEE)

SGX (Software Guard eXtensions) gần đây của Intel và TrustZone của ARM đều là môi trường thực thi đáng tin cậy. Vì cả hai đều tương đối giống nhau nên chúng tôi sẽ sử dụng sản phẩm của Intel bên dưới được giới thiệu làm ví dụ.

Tóm lại, SGX cho phép các chương trình thực thi trong một vùng bao quanh CPU ở cấp độ người dùng. Mã cung cấp cấp độ phần cứng sự bảo vệ. Đầu tiên, việc bao bọc sẽ bảo vệ ứng dụng (dữ liệu, mã và luồng điều khiển) khỏi bị hỏng bởi các quy trình khác. Thứ hai, vỏ bảo vệ tính bảo mật của ứng dụng, nghĩa là về mặt lý thuyết, dữ liệu, mã và trạng thái thực thi của chương trình không rõ ràng đối với phần còn lại của hệ điều hành, nhưng chương trình vẫn có thể đọc và ghi bộ nhớ bên ngoài khu vực vỏ.

SGX nhằm mục đích bảo vệ các chương trình bị bao vây khỏi các hệ điều hành độc hại và do đó thậm chí bảo vệ các ứng dụng khỏi bị quản trị viên hệ thống trên các nút xâm phạm. . Chạy chương trình oracle và phân phối dữ liệu trong một khu vực là sự đảm bảo chắc chắn cho hoạt động an toàn của chương trình oracle, bởi vì từ xa có thể phát hiện ra rằng hệ thống đang chạy trên hệ thống SGX hợp pháp.

Tuy nhiên, điều đáng chú ý là đã có hai lỗ hổng sau khi SGX phát hành (tháng 3 năm 2018 & Tháng 7-2018) lần lượt được phát hiện và hiện đang có những nghiên cứu khám phá các lỗ hổng khác. Mặc dù lỗ hổng đầu tiên đã được khắc phục nhưng đó là cảnh báo rằng chỉ sử dụng TEE vẫn tạo ra một điểm lỗi duy nhất. Khi việc thực hiện hợp đồng thông minh phụ thuộc vào đầu vào được tạo tự động từ một hoặc nhiều oracle, nhiều lớp bảo vệ phải được thiết kế để tránh các điểm lỗi duy nhất.

Chỉ riêng các rào cản bảo vệ trên không thể được coi là hoàn hảo, nhưng khi chúng được kết hợp và hoạt động cùng nhau, chúng có thể có tác dụng bảo vệ mạnh mẽ hơn. Trong phần tiếp theo, chúng tôi sẽ giới thiệu các giao diện tấn công chính trong các hệ thống oracle phi tập trung và minh họa các biện pháp phòng thủ tương ứng bằng các ví dụ.

III. Tấn công Sybil và các điểm yếu khác của hệ thống phi tập trung

Việc xây dựng một hệ thống oracle không khó. Điều khó là việc thiết kế thành phần không cần tin cậy.

Rủi ro chính:Có xung đột lợi ích giữa các bên dựa vào hợp đồng thông minh để phân xử vấn đề, trong khi các nhà tiên tri ẩn danh không có rủi ro kiện tụng. Khi chạy một hệ thống nhiều oracle, các oracle riêng lẻ phải đạt được sự đồng thuận vì hợp đồng thông minh chỉ chấp nhận một đầu vào. Do đó, để chống lại các cuộc tấn công, cần thiết kế một cơ chế để đảm bảo máy oracle đáp ứng các yêu cầu sau:

- không thể nhận dạng được

- không thể giao tiếp với nhau: một oracle có quyền biểu quyết đáng kể (giả sử là 40%) có thể phát đi câu trả lời của riêng mình và không cần phải cố tình thuyết phục các nút khác rằng kết quả của họ là câu trả lời chính thống. Tuy nhiên, nếu các nút khác đã biết rằng nút này có quyền biểu quyết lớn như vậy thì yêu cầu này tương đối vô nghĩa.

- Không thể chứng minh cho các nút khác rằng họ là chủ sở hữu câu trả lời của chính mình: Tương tự như điểm trước, cần thiết kế một cơ chế để ẩn các câu trả lời do mỗi nút gửi và chỉ hiển thị nút nguồn sau khi mọi người gửi câu trả lời trả lời.

Các chiến lược tấn công hoặc lỗ hổng bảo mật sau đây có hiệu quả chống lại các mạng oracle phi tập trung.

Tấn công đa số:Có nguy cơ phần lớn các nút trong mạng được kiểm soát bởi một thực thể hoặc liên minh. Tại thời điểm này, mạng vẫn được kiểm soát bởi đa số, nhưng nó đã bị thao túng một cách ác ý. Cần đặc biệt chú ý đến những rủi ro như vậy trong các dự án mạng oracle phi tập trung và sức mạnh của các nút cần được xác định dựa trên danh tiếng của các nút và tổng số nút.

Mirror:Đây là một kiểu tấn công Sybil đặc biệt trong mạng oracle phi tập trung. Để giảm chi phí vận hành nút, bộ điều khiển của nút chỉ có thể thu thập dữ liệu một lần thông qua một nút, sau đó chuyển dữ liệu ngoài chuỗi sang các nút khác do anh ta kiểm soát. Khi dữ liệu anh ta truyền vẫn đúng thì cuộc tấn công này không có hại lắm, nhưng nếu có vấn đề với dữ liệu được truyền sẽ làm giảm đáng kể tính bảo mật của toàn hệ thống, bởi cơ chế tinh chỉnh độ chính xác của dữ liệu thông qua nhiều bên truy vấn bị xâm phạm, bị hỏng.

Freeloading:Khi một oracle sao chép một cách ác ý câu trả lời của những oracle khác, chúng tôi gọi đó là kẻ ăn bám. Vấn đề này có thể được giải quyết thông qua cơ chế "commit-tiết lộ", tức là các câu trả lời do máy oracle gửi đều được mã hóa và chỉ khi có đủ số máy oracle gửi câu trả lời thì tất cả các câu trả lời mới được giải mã.

Dữ liệu bị hỏngrất khó phát hiện, đặc biệt khi chỉ có một nguồn thông tin (một điểm lỗi). Giải pháp cho vấn đề này thường là thiết lập nhiều nguồn thông tin và nhiều oracle để giảm nguy cơ hỏng dữ liệu.

Bảo mật dữ liệu trên chuỗi: Nếu yêu cầu dữ liệu vừa nhạy cảm vừa riêng tư, ngay cả khi yêu cầu dữ liệu được mã hóa, thông tin yêu cầu sẽ vô tình bị tiết lộ khi dữ liệu cuối cùng được báo cáo. Giải pháp cho vấn đề này là buộc các nút thực hiện giải mã trong môi trường bao vây TEE và báo cáo câu trả lời chung cho chuỗi khối mà tất cả người dùng và nút đều có thể nhìn thấy. Ví dụ: đối với hợp đồng bảo hiểm chuyến bay, người dùng có thể không muốn người khác biết rằng mình đang bay từ London đến New York. Do đó, sau khi oracle biết chuyến bay cụ thể, nó chỉ trả lời "Đó /span>Chuyến bay có bị trì hoãn không?" hoặc các câu hỏi khác yêu cầu câu trả lời có/không mà không tiết lộ thêm về thông tin.


Chào mừng bạn tham gia cộng đồng chính thức của BlockBeats:

Nhóm Telegram đăng ký: https://t.me/theblockbeats

Nhóm Telegram thảo luận: https://t.me/BlockBeats_App

Tài khoản Twitter chính thức: https://twitter.com/BlockBeatsAsia

举报 Báo lỗi/Báo cáo
Chọn thư viện
Thêm mới thư viện
Hủy
Hoàn thành
Thêm mới thư viện
Chỉ mình tôi có thể nhìn thấy
Công khai
Lưu
Báo lỗi/Báo cáo
Gửi