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?