Tôi đã từng chứng kiến một vị thế cho vay bị thanh lý một lần theo một mức giá mà, một giờ sau đó, không ai có thể đồng ý rằng thực sự đó là mức giá thị trường tại thời điểm đó. Mọi bước diễn ra ngay sau con số đó đều được thực thi đúng y như cách nó được viết. Về mặt kỹ thuật, việc thanh lý là chính xác.
Con số thì không đúng. Tôi đã phải sống với sự khó chịu của sự phân biệt đó lâu hơn mức thấy hữu ích, chủ yếu vì không có gì trong quy trình thực sự bị lỗi.
Đó chính là “đường may” mà tôi liên tục quay lại khi nói về Newton Protocol và Mainnet Beta: nơi tôi bắt đầu quan sát nó trong thực tế thay vì chỉ trên giấy tờ.
Trên Newton, chính sách của một Vault được đánh giá dựa trên dữ liệu được nạp vào thông qua các provider như RedStone và Credora, và các operator xác nhận độc lập rằng họ đã lấy đúng những gì họ nói là đã lấy. Sự xác nhận đó là có thật—có thể kiểm tra bằng mật mã—và nếu một operator bị bắt đang bịa đặt một đầu vào, họ có thể bị đưa ra thách thức và bị phạt cắt thưởng.
Nhưng sự xác nhận chỉ bao phủ việc họ giữ/tiếp nhận con số đó, chứ không bảo chứng cho tính đúng của nó. Nếu một feed báo giá đã cũ hoặc một điểm rủi ro đơn giản là sai, thì các operator của Newton sẽ vẫn trung thực xác nhận rằng họ nhận đúng đầu vào đó, đánh giá chính sách một cách chính xác dựa trên chính đầu vào sai ấy và tạo ra một biên nhận có thể kiểm chứng rằng một quyết định tệ đã được thực hiện một cách hoàn hảo.
Newton phải tiếp tục chứng minh rằng cam kết đó vẫn được giới hạn một cách trung thực—rằng “chính sách được thực thi đúng” không bao giờ bị hiểu lặng lẽ thành “kết quả là đúng”. Biên nhận từ Explorer phải làm ranh giới đó hiện rõ, thay vì che phủ nó.
Săn đuổi những điểm mấu chốt mà không hiểu chính xác điều gì đang được ủy quyền là một cách nhanh để hiểu sai Newton đang xây dựng gì.
Trên Newton, chuyện gì xảy ra lần đầu một Vault thực thi một chính sách một cách hoàn hảo đối với một con số thực ra chỉ đơn giản là sai? Thực thi đã được xác minh không giống với chân lý đã được xác minh.
Tôi từng ngồi theo dõi một cuộc kiểm toán an ninh, nơi mọi hạng mục được kiểm tra đều kết thúc gọn gàng, mọi chữ ký đều được thu thập trên một đoạn mã đã được phát hành nhưng lại chứa một lỗi mà không ai trong cuộc kiểm toán đó thực sự được yêu cầu tìm kiếm. Không ai đã nói dối. Quy trình chỉ được xây dựng để trả lời một câu hỏi cụ thể, và mọi người trong phòng đều coi nó như đã trả lời một câu hỏi lớn hơn nhiều. Khoảng trống giữa những gì một hệ thống kiểm tra và những gì mọi người cho rằng nó kiểm tra là cùng một đường may chạy xuyên suốt mô hình niềm tin của Newton Protocol, và nó xuất hiện ở vài nơi khác nhau khi bạn bắt đầu đi tìm: trong cơ chế vận hành trực tiếp của Mainnet Beta, và trong kiến trúc nằm bên dưới nó.
Tại sao Newton tách biệt đăng ký chính sách khỏi gán chính sách
Trước đây tôi từng cho rằng, một khi một hợp đồng biết chính sách nằm ở đâu, phần khó đã kết thúc. Một địa chỉ trông như mối liên kết cuối cùng giữa một ứng dụng và lớp ủy quyền của nó. Càng dành nhiều thời gian đọc tài liệu phát triển của Newton, tôi càng nhận ra rằng hai ý tưởng đó được chủ ý giữ tách rời.
Newton phân biệt giữa việc gán địa chỉ hợp đồng Policy và đăng ký cấu hình chính sách. Hai khái niệm này nghe giống nhau cho đến khi bạn nhận ra mỗi khái niệm thực sự thực hiện điều gì. Việc trỏ tới một hợp đồng Policy chỉ cho ứng dụng khách biết nơi tồn tại việc quản lý chính sách. Còn đăng ký đi xa hơn bằng cách tạo ra một cấu hình chính sách cụ thể và trả về mã ID của chính sách, là thứ mà các chứng thực (attestation) trong tương lai sẽ được đối chiếu để xác thực.
Sự tách biệt này đã thay đổi cách tôi nghĩ về ủy quyền. Một ứng dụng có thể trông có vẻ đã được kết nối, trong khi vẫn thiếu thông tin cần thiết để xác minh một attestation. Kiến trúc tránh việc coi địa chỉ hợp đồng là bằng chứng rằng việc ủy quyền đã sẵn sàng. Thay vào đó, kích hoạt (activation) trở thành một bước rõ ràng với danh tính mật mã riêng.
Đọc tài liệu Mainnet Beta khiến thiết kế này trông ít giống như một sự phức tạp bổ sung và giống như việc quản lý trạng thái một cách chủ ý hơn. Ủy quyền không được xem là đang hoạt động chỉ vì hạ tầng đã được triển khai. Nó chỉ trở nên hoạt động sau khi chính bản thân chính sách đã được đăng ký và được xác định.
Bề mặt chiến dịch không phải là sản phẩm. Việc hiểu sự khác biệt quan trọng hơn những điểm cụ thể.
Nếu ủy quyền phụ thuộc vào một chính sách đã được đăng ký thay vì một địa chỉ đã được gán, liệu việc kích hoạt có nên trở nên hiển thị rõ ràng ngang với việc triển khai không?
Đôi khi, trạng thái quan trọng nhất là trạng thái chưa hề được tạo.
Tại sao các lược đồ Oracle của Newton lại quan trọng trước khi đánh giá một chính sách đơn lẻ
Tôi cứ suy nghĩ mãi về nơi mà việc ủy quyền thực sự bắt đầu. Câu trả lời hiển nhiên dường như chính là chính sách đó. Toán tử nhận một yêu cầu, đánh giá một chính sách Rego, tạo ra một giấy chứng nhận và cho phép tiếp tục thực thi nếu các điều kiện cần thiết được thỏa mãn. Chuỗi thao tác này xuất hiện xuyên suốt kiến trúc của Newton, vì vậy rất dễ để giả định rằng chính sách đại diện cho bước có ý nghĩa đầu tiên. Sau khi dành thêm thời gian với tài liệu dành cho nhà phát triển, tôi nhận ra có một điều gì đó lặng lẽ xảy ra thậm chí còn sớm hơn. Trước khi một chính sách quyết định bất cứ điều gì, Newton cung cấp cho các nhà phát triển một cách để định nghĩa ngay từ đầu đầu vào hợp lệ trông như thế nào.
Ai Cũng Đang Nói Về Sự Tuân Thủ. Giao Thức Newton Đang Thay Đổi Ai Là Người Được Hưởng Lợi Từ Nó.
Khi đọc về @NewtonProtocol một ý nghĩ cứ lặp đi lặp lại trong tôi. Hầu hết các dự án blockchain đều xây dựng tuân thủ vì họ buộc phải làm vậy. Newton mang đến cho các nhà phát triển một lý do để xây dựng nó vì có thể sẽ có người khác muốn sử dụng. Nghe có vẻ như đó là một sự thay đổi lớn hơn nhiều so với những gì mọi người đang nói đến. Câu hỏi thực sự không phải là liệu khả năng tuân thủ có thể lập trình có quan trọng hay không. Nó chắc chắn có. Câu hỏi khó hơn là liệu logic tuân thủ có thể trở thành thứ mà các nhà phát triển công bố và tiếp tục kiếm tiền từ đó lâu sau khi họ hoàn thành việc viết nó hay không.
Tại sao Newton tách logic chính sách khỏi logic ứng dụng
Thông thường phần mềm trộn lẫn các quyết định với việc thực thi Hầu hết các ứng dụng đều ẩn việc ra quyết định bên trong mã ứng dụng. Một ví quyết định liệu một lệnh chuyển tiền có nên được thực hiện hay không. Một giao thức cho vay quyết định liệu tài sản thế chấp có đủ hay không. Một nền tảng giao dịch quyết định liệu một lệnh có đáp ứng các quy tắc của nó hay không. Từ góc nhìn của người dùng, những quyết định đó chỉ đơn giản là xảy ra. Đọc bản whitepaper của Newton khiến tôi nhận ra rằng cách tiếp cận truyền thống này tạo ra một giới hạn thú vị. Ứng dụng thực hiện đồng thời cả việc ra quyết định và việc thực thi, khiến cho việc ai đó bên ngoài ứng dụng đó có thể độc lập kiểm chứng cách thức quyết định đã được đưa ra trở nên khó khăn. Newton tiếp cận vấn đề theo một cách khác.
Các Policy Hash của Newton giúp việc ủy quyền có thể tái tạo, không chỉ có thể kiểm chứng
Trước đây, tôi từng nghĩ khả năng tái tạo chủ yếu là mối quan tâm trong nghiên cứu khoa học. Nếu ai đó đi đến cùng một kết luận hai lần, điều đó dường như là đã đủ. Blockchain dần dần thay đổi cách nhìn đó, vì mọi quyết định quan trọng cuối cùng đều trở thành thứ mà người khác có thể muốn kiểm chứng độc lập.
Một chi tiết trong Newton whitepaper khiến tôi nhớ mãi là vai trò của policy hash. Thay vì chỉ đơn thuần chứng minh rằng một hành động ủy quyền đã xảy ra, bằng chứng xác thực được gắn với đúng chính sách đã tạo ra nó.
Sự khác biệt này quan trọng hơn tôi tưởng ban đầu. Nếu chính sách nền tảng thay đổi dù chỉ một chút, thì kết quả ủy quyền sẽ thuộc về một policy hash hoàn toàn khác.
Điều đó có nghĩa là ủy quyền không chỉ có thể kiểm chứng sau khi thực hiện mà còn có thể tái tạo, vì mọi nhà vận hành đều đánh giá cùng một phiên bản chính sách. Những người đánh giá trong tương lai không cần phải tự hỏi bộ luật nào đã tạo ra quyết định đó. Dấu vân tay mật mã đã trả lời câu hỏi ấy.
Việc đọc tài liệu Mainnet Beta khiến ý tưởng này trở nên thực tế hơn nữa. Biên nhận ủy quyền trở nên có ý nghĩa hơn khi chúng được gắn với các phiên bản chính sách không thể thay đổi, thay vì dựa vào logic backend vô hình có thể âm thầm tiến hóa theo thời gian.
Tối ưu cho phần thưởng mà không hiểu lớp chính sách ở bên dưới chẳng khác nào gieo trồng kiểu “farming” với thêm các bước.
Nếu mọi ủy quyền đều mang dấu vân tay của chính sách đã tạo ra nó, liệu cuối cùng quản trị (governance) có trở nên dễ kiểm toán hơn cả việc thực thi không?
Đôi khi, hash nhỏ nhất lại mang trách nhiệm giải trình lớn nhất.
NEWTON: Tách Ủy quyền khỏi các thay đổi đối chiếu làm thay đổi vòng đời giao dịch
Tách Ủy quyền khỏi các thay đổi đối chiếu làm thay đổi vòng đời giao dịch Việc theo dõi các giao dịch blockchain trong nhiều năm đã tạo cho tôi một mô hình tinh thần đơn giản. Người dùng ký một giao dịch, phát tán nó, chờ xác nhận và coi quá trình đã hoàn tất. Hầu như mọi cuộc thảo luận đều tập trung vào tốc độ thực thi, phí hoặc mức độ cuối cùng. Đọc whitepaper của Newton khiến tôi nhận ra rằng một giai đoạn khác cũng xứng đáng được quan tâm tương tự: điều gì xảy ra trước khi việc thực thi được phép bắt đầu. Ủy quyền trở thành một lớp riêng
Newton: Các chính sách tất định có nghĩa là mọi toán tử đều nên đạt được cùng một kết quả
Đã có một thời gian tôi cho rằng phi tập trung nghĩa là thu thập các ý kiến khác nhau và nào đó tính trung bình chúng để đưa ra một quyết định.
Càng nghiên cứu các hệ thống phân tán, tôi càng nhận ra rằng tính nhất quán thường quan trọng hơn sự đa dạng. Quan điểm đó quay trở lại khi đọc tài liệu whitepaper của Newton. Mỗi toán tử đánh giá cùng một chính sách tất định với cùng các đầu vào, vì vậy mục tiêu không phải là tạo ra nhiều câu trả lời mà là độc lập đưa ra một câu trả lời giống hệt nhau.
Tôi thấy thiết kế này thật thú vị vì nó chuyển trọng tâm thử thách từ việc tin tưởng phán đoán cá nhân sang việc chứng minh rằng chính các quy tắc luôn dẫn đến cùng một kết quả. Mainnet Beta mang ý tưởng đó đến ý nghĩa thực tiễn bằng cách biến việc đánh giá chính sách thành một thứ người dùng có thể kiểm tra, thay vì chỉ đơn thuần chấp nhận.
Hoạt động không gắn với một luận đề thực sự chỉ là nhiễu khoác lên mình một huy hiệu phần thưởng. Nếu mọi toán tử trung thực đều đi đến cùng một kết luận, thì niềm tin bắt đầu từ mạng lưới hay từ chính sách đang được đánh giá?
Tính nhất quán thường trầm lặng hơn tốc độ, nhưng đôi khi lại có giá trị hơn rất nhiều.
Lừa đảo không phải lúc nào cũng trông nguy hiểm khi đến được ví.
Đôi khi nó trông giống như một giao dịch chuyển khoản bình thường. Đôi khi đó chỉ là một yêu cầu phê duyệt (approval) hợp đồng. Đôi khi địa chỉ được rút ngắn, bị ẩn sau một giao diện thân thiện hoặc được ai đó giả vờ giúp đỡ rồi dán vào. Đến lúc người dùng nhận ra mối nguy, giao dịch đã là quá khứ. Đó là điểm yếu: nhiều hệ thống nhận thấy rủi ro, nhưng không phải lúc nào cũng ngăn chặn nó trước khi thực hiện. Các địa chỉ bị gắn cờ có vẻ nhàm chán ở lần đầu tiên. Một danh sách các ví lừa đảo, kẻ chiếm đoạt độc hại, hợp đồng lừa đảo (phishing), địa chỉ trung chuyển (mule), hoặc các điểm đến gian lận đã biết không hẳn nghe hấp dẫn. Nhưng sức mạnh nằm ở chỗ danh sách đó trở thành một quy tắc.
Tôi cứ mãi nghĩ về việc dữ liệu bên ngoài có thể trông có vẻ vô hại cho đến khi nó bắt đầu quyết định quá nhiều.
Một luồng dữ liệu đi vào. Một con số, một điểm số, một cờ, một tín hiệu. Nó trông có vẻ nhỏ. Nhưng nếu đầu vào đó thay đổi việc một giao dịch được phép hay bị chặn, thì nó không còn “nhỏ” nữa. Nó có quyền lực, dù chẳng ai nói về nó theo cách đó.
Đó là lý do các nhà cung cấp dữ liệu Newton WASM khiến tôi thấy thú vị. Không phải vì các luồng dữ liệu bên ngoài bỗng nhiên hoàn hảo. Chúng không hoàn hảo. Một luồng có thể đến muộn, lộn xộn, mang thiên kiến, bị hỏng, hoặc được định hình sai. Nhưng ý tưởng tốt hơn là đừng giả vờ rằng dữ liệu bên ngoài là “sự thật thuần khiết”. Ý tưởng tốt hơn là giữ nó trong một căn phòng được kiểm soát trước khi nó chạm vào quyền cho phép.
Tôi rất thích cách diễn đạt đó.
Với tôi, @NewtonProtocol sẽ hợp lý hơn khi tôi xem dữ liệu bên ngoài là một đầu vào, chứ không phải là thẩm quyền. Luồng dữ liệu có thể “nói”, nhưng nó không nên “phán xử”. Nó có thể mang ngữ cảnh, nhưng nó không nên đi khắp hệ thống với chìa khóa trên tay.
Nghe có vẻ đơn giản, có thể còn đơn giản quá, nhưng nó quan trọng. Bởi vì ngay khoảnh khắc một hệ thống tin một luồng dữ liệu một cách mù quáng, nó âm thầm chuyển niềm tin từ ví sang nguồn dữ liệu. Và thế là chúng ta lại quay về một điểm yếu dễ tổn thương khác—chỉ được khoác bằng những từ ngữ kỹ thuật.
Một nhà cung cấp WASM được “sandbox” giống như một ranh giới. Nó nói: hãy mang dữ liệu vào đây, định hình nó ở đây, giới hạn nó ở đây, rồi để chính sách quyết định điều đó có nghĩa gì. Tôi không nghĩ điều đó loại bỏ rủi ro hoàn toàn. Không có gì làm được thế. Nhưng nó khiến rủi ro dễ nhìn thấy hơn, và có lẽ cũng dễ đổ lỗi hơn khi có chuyện gì đó đi sai.
Đó là phần tôi tôn trọng ở Newton. Nó không đối xử thông tin bên ngoài như phép màu.
Nó cho phép thế giới đi vào, nhưng không cho phép thế giới đó chiếm quyền điều khiển. #Newt
Các luồng dữ liệu bên ngoài có nên có giới hạn sandbox nghiêm ngặt không?