Smart Contract And Outside World

Những điều cần lưu ý:

  • Không thể từ Smart Contract tương tác ra bên ngoài (ra khỏi Ethereum)

  • Chỉ có thể thao tác với dữ liệu bên ngoài bằng cách truyền dữ liệu bên ngoài vào Contract

  • Oraclize không phải một API cung cấp cho Contract tính năng tương tác với thế giới bên ngoài từ bản than Contract ở trong Blockchain, bản chất của nó cũng chỉ là truyền dữ liệu từ bên ngoài vào trong Contract

  • Cần lưu ý về độ tin cậy của dữ liệu được truyền vào Contract

Smart Contract và giao tiếp với bên ngoài

SmartContract không thể truy cập bất cứ tài nguyên nằm bên ngoài Ethereum, bản thân Solidity hay EVM không cung cấp bất kỳ tính năng nào liên quan đến việc truy cập ra ngoài khỏi Ethereum

Làm thế nào để Smart Contract có thể thao tác với dữ liệu bên ngoài?

Tuy Smart Contract không thể truy cập ra khỏi Ethereum để lấy dữ liệu bên ngoài, nhưng ta vẫn có thể truyền dữ liệu bên ngoài vào Contract bằng function

Tại sao Smart Contract không hỗ trợ truy cập ra ngoài?

Smart Contract là decentralized logic, không phải decentralized backend nên không được thiết kế để giải quyết các vấn đề ở bên ngoài. SC đơn giản chỉ được thiết kế để lưu trữ logic thực thi và được thực thi khi có yêu cầu

Độ tin cậy của dữ liệu bên ngoài đưa vào Smart Contract

Smart Contract là Decentralize Logic đóng vai trò là một trung gian với độ tin cậy tuyệt đối cho các giao dịch giữa các cá nhân/ tổ chức nhưng không thể đảm bảo độ xác thực của dữ liệu đầu vào.

Do đó các dữ liệu cho vào Smart Contract tốt hơn nên được ghi lại để các người dùng tham gia có thể kiểm chứng hoặc dùng dữ liệu của một bên đáng tin cậy đưa vào (như Oraclize)

Ví dụ như: Các người dùng cùng tham gia một Contract đoán kết quả xổ số, khi có kết quả xổ số sẽ truyền vào contract, tất cả người dùng đều có thể kiểm tra xem kết quả được đưa vào Contract có đúng hay không

Tại sao có những thư viện giúp Contract thực thi với điều kiện nhất định và lấy data từ bên ngoài?

Những thư viện đó đơn giản về mặt bản chất cũng như Oraclize, đều là một Contract được duy trì với một Node và Backend phía sau giúp cho ta có thể trigger Contract theo những điều kiện nhất định. Trên thực tế ta cũng có thể thiết lập Node và Backend để tự quản lý Contract

Last updated

Was this helpful?