Bạn có thể nghĩ rằng blockchain ít liên quan đến phần cứng. Rốt cuộc, từ Bitcoin đến Etherum, các blockchains đều do phần mềm xác định. Giải pháp dựa trên phần cứng thường tập trung hơn. Tuy nhiên, trong thế giới blockchain bảo vệ quyền riêng tư, bằng cách kết hợp cẩn thận phần mềm và phần cứng, chúng tôi có thể thiết kế một giải pháp có sự cân bằng tốt nhất giữa khả năng mở rộng và tính bảo mật, trong khi vẫn giữ cho nó đáng tin cậy.
Tính bảo mật dựa trên blockchain của TEE
Phala Network thực hiện một hợp đồng thông minh bí mật. Nó khác với các hợp đồng truyền thống vì các hợp đồng chạy bên trong một phần cứng đặc biệt trong CPU, tức là môi trường thực thi tin cậy. Chương trình chạy bên trong TEE rất biệt lập với phần còn lại của thế giới. Một cuộc tấn công độc hại không thể đọc dữ liệu trong bộ nhớ mà không có sự cho phép cũng như không thao túng chương trình để tạo ra bất kỳ hành vi không mong muốn nào.
Trong Phala Network, chúng tôi gọi chương trình hỗ trợ chạy bên trong TEE là “pRuntime”. pRuntime là môi trường thời gian chạy duy trì công cụ khai thác TEE cơ bản và giao thức Gatekeeper bên trong TEE. Nó xử lý chứng thực từ xa của TEE, đăng ký trên chuỗi, quản lý khóa và thực hiện hợp đồng bí mật.
Nhưng làm thế nào để thuyết phục người dùng rằng hợp đồng thông minh đang chạy bên trong pRuntime, không phải là một trình giả lập không cung cấp bất kỳ bảo mật dữ liệu nào? Đây là khái niệm cốt lõi: Chứng thực từ xa.
Chứng thực từ xa
“Một ứng dụng mà lưu trữ một niêm phong cũng có thể yêu cầu niêm phong để tạo một báo cáo và sau đó chuyển báo cáo này đến một dịch vụ nền tảng để tạo ra một loại thông tin xác thực phản ánh trạng thái của niêm phong và nền tảng. Thông tin xác thực này được gọi là một trích dẫn. Sau đó, báo cáo này có thể được chuyển cho các thực thể ngoài nền tảng và được xác minh… ”
Chứng nhận từ xa là chìa khóa để đảm bảo tính bảo mật của hệ thống TEE. Trích dẫn từ intel , nó chứng minh rằng một mã nhất định (được đo bằng hash của mã), theo tùy chọn với một số dữ liệu tùy chỉnh được tạo bởi mã, đang chạy bên trong bộ mã Intel SGX chính hãng cập nhật.
Cấp phép bí mật
Chứng thực từ xa là một khối xây dựng cơ bản cho các hợp đồng thông minh bí mật. Nhưng sẽ không hữu ích lắm nếu chúng ta không thể thiết lập một kênh liên lạc an toàn đầu cuối giữa một bên tham gia TEE. Intel SGX cũng cung cấp một giao thức Cấp phép Bí mật để giải quyết vấn đề một cách thanh lịch.
Bằng cách áp dụng giao thức Cấp phép Bí mật, một chuỗi tin cậy từ người dùng đối với pRuntime có thể được thiết lập:
- Blockchain có hash của mã pRuntime chuẩn
- pRuntime chạy giao thức chứng thực từ xa, nhận báo cáo với dữ liệu: hash của mã được chứng thực (chính pRuntime); và khóa công khai của một cặp khóa nhận dạng tạm thời
- Báo cáo RA được gửi đến chuỗi khối và được xác thực trên chuỗi
- Chuỗi khối so sánh băm từ báo cáo RA (ngụ ý: người tham gia là một pRuntime chuẩn trong TEE)
- Khóa công khai danh tính được đăng ký trên blockchain (ngụ ý: chỉ pRuntime hiện tại mới có quyền kiểm soát khóa nhận dạng này)
Do đó, miễn là thư được ký bằng khóa nhận dạng, thì thư đó phải được tạo bởi pRuntime đã đăng ký. Người dùng có thể thiết lập thêm một kết nối giống TLS với pRuntime bằng khóa công khai đã đăng ký của nó.
Để giao tiếp với TEE, người dùng có thể lấy khóa công khai của một pRuntime nhất định từ blockchain (từ đăng ký TEE). Sau đó, người dùng có thể sử dụng khóa công khai của tài khoản nền của mình để chạy giao thức Diffie-Hellman. Nó lấy ra một khóa bí mật để giao tiếp giữa người dùng và pRuntime.
Khi chuỗi tin cậy được thiết lập, nó cũng ngụ ý rằng khóa nhận dạng đủ để đại diện duy nhất cho danh tính của pRuntime. Vì vậy, một Chứng thực từ xa duy nhất có thể bảo vệ tất cả các giao tiếp trong tương lai với pRuntime, nếu theo giả định không có vi phạm phần cứng nào của TEE (sẽ được thảo luận sau).
Làm thế nào để nâng cấp?
Nâng cấp trên chuỗi là một yêu cầu quan trọng vì nó làm giảm đáng kể rủi ro bảo mật do nâng cấp hard-fork. Chất nền nguyên bản hỗ trợ nâng cấp thời gian chạy trên chuỗi. Nó được thực hiện bởi pallet quản trị trên dây chuyền. Về phía TEE, thời gian chạy cũng có thể nâng cấp được.
Khi nâng cấp pRuntime, chúng ta nên gửi hash của phiên bản pRuntime mới lên blockchain. Sau đó, cộng đồng có thể xem xét mã, thảo luận và bỏ phiếu cho việc nâng cấp bằng quy trình quản trị trên chuỗi tương tự như Substrate.
Cả người giữ cổng và người khai thác đều phải nâng cấp pRuntime khi một phiên bản mới được chấp nhận trên chuỗi. Người khai thác dễ dàng hơn vì họ có thể chỉ cần dừng khai thác, thực hiện nâng cấp và tiếp tục khai thác. Điều này có thể thực hiện được vì các thợ đào không bắt buộc phải luôn trực tuyến. Người gác cổng có yêu cầu về tính sẵn sàng cao. Vì vậy, họ có thể chạy một ứng dụng TEE khác với phiên bản mới hơn và chờ một lần chuyển đổi N
người giữ cổng tự nhiên trong kỳ bầu cử tiếp theo hoặc thực hiện kết xuất mã hóa khẩn cấp của các tiểu bang và khôi phục nó vào thời gian chạy pRuntime mới.
Mặc dù có những rủi ro để loại bỏ trạng thái, nó vẫn hữu ích trong trường hợp khẩn cấp. SGX cung cấp tính năng “niêm phong để mã hóa ” , có thể tạo ra một mật mã mà chỉ có thể được giải mã bởi cùng một mã hóa.
Để giảm thiểu rủi ro cho việc khai thác bảo mật phần cứng, các khóa trong người gác cổng được phân phối bởi một kế hoạch chia sẻ bí mật của Shamir, có nghĩa là ngay cả khi niêm phong bị phá vỡ, máy chủ vẫn không thể lấy được các khóa ban đầu nếu không có sự thông đồng lớn.
Tấn công và phòng thủ
Mô hình mối đe dọa của chúng tôi một phần giả định rằng nhà sản xuất TEE có thể được tin cậy. Điều này là hợp lý. Đầu tiên, họ không biết phần cứng của họ sẽ được sử dụng như thế nào và do đó chỉ có thể lên kế hoạch tấn công trước thời hạn, giảm thiểu rủi ro. Thứ hai, nếu bị ảnh hưởng bởi các cuộc tấn công zero-day, các ứng dụng khác chạy trên CPU này thường gặp rủi ro.
Mặc dù chúng ta có giả định ở trên, nhưng chúng ta thấy việc khai thác phần cứng thực tế đã xảy ra trong quá khứ. May mắn thay, những người dễ bị tổn thương thường có thể được giảm nhẹ bằng một số cách.
Người ta thường nghĩ rằng các lỗ hổng phần mềm là có thể sửa được trong khi các lỗ hổng phần cứng thì không. Đây không phải là luôn luôn như vậy. CPU có thể được vá bằng các bản cập nhật vi mã. Với thiết kế đặc biệt của kiến trúc Intel SGX, hầu hết các lỗ hổng có thể được sửa chữa. Gần đây có một cuộc tấn công được gọi là SGAxe , nó đã được khắc phục bằng một bản nâng cấp vi mã sau đó là khóa nhóm. Sau khi xoay và thu hồi chìa khóa, tất cả các thiết bị lỗi thời sẽ bị từ chối bởi chứng thực từ xa.
Nhưng bạn có thể hỏi, điều gì sẽ xảy ra nếu ai đó vẫn thấy phần cứng zero-day dễ bị tấn công? Giả sử lỗ hổng yêu cầu quyền truy cập vật lý để khai thác nó, các thợ đào sẽ có thể đánh cắp dữ liệu từ hợp đồng bí mật. Trong trường hợp này, có thể áp dụng tính ngẫu nhiên để giảm thiểu. Blockchain có thể chỉ định ngẫu nhiên một số thợ đào vào các hợp đồng bí mật trong một khoảng thời gian. Các thợ mỏ xáo trộn trong mỗi khoảng thời gian như vậy. Miễn là bên độc hại không có quyền kiểm soát một số lượng lớn thợ đào, chi phí để thực hiện một cuộc tấn công như vậy sẽ cao đáng kể vì nó đòi hỏi một sự kiểm soát lớn trong một thời gian tương đối dài.
Trong trường hợp xấu nhất khi niêm phong bị bẻ khóa hoàn toàn, làm lộ dữ liệu bí mật có sẵn cho kẻ tấn công và cho phép kẻ tấn công tùy ý thao túng việc thực thi, chúng tôi vẫn không muốn từ bỏ tính đúng đắn của hợp đồng bí mật. Do đó, chúng tôi có thiết kế rằng các hợp đồng bí mật có thể yêu cầu một hoặc nhiều bản sao.
Số bản sao không ảnh hưởng đến cách hợp đồng được thực thi vì tất cả các đầu vào đều từ blockchain và do đó có thể xác định. Tuy nhiên, nếu tồn tại nhiều hơn một bản sao, nhiều TEE sẽ cố gắng chuyển các trạng thái trở lại blockchain. Trong trường hợp này, sẽ có một quy trình bỏ phiếu trực tuyến đơn giản. Chúng tôi yêu cầu đa số đơn giản để “hoàn thiện” các trạng thái.
Khi có các bản sao, nó không quay trở lại mô hình bảo mật giống như trình xác thực của Polkadot. Kẻ tấn công phải kiểm soát một lượng đủ thợ đào để phá vỡ tính đúng đắn, ngay cả khi giả định bảo mật của SGX bị phá vỡ.
Tóm lược
Trong quá khứ, blockchains chỉ là phần mềm. Việc bỏ sót tính bảo mật từ lâu đã trở thành một hạn chế đối với việc áp dụng hàng loạt. Với sự trợ giúp của phần cứng và giao thức được thiết kế cẩn thận, chúng tôi đã cho thấy rằng có thể xây dựng một blockchain an toàn, có thể mở rộng và bảo mật.
Phala Calender
-
Soon
Chiến dịch Testnet (và một trò chơi nhỏ bí mật) -
6.28
AMA với một dự án nổi tiếng khác -
7.5-7.6
Có mặt tại Tuần lễ blockchain Hàng Châu do chính quyền Hàng Châu và 8bit đồng tổ chức.
Về Phala
Một Substrate dựa trên bảo mật blockchain hợp đồng thông minh mà bạn có thể phát triển ứng dụng bảo mật bảo quản và sự riêng tư đầu tiên blockchain. Thành viên của Chương trình Substrate Builders . Nhận tài trợ của Quỹ hỗ trợ Web3 .