Last night, I was reading Grvt’s explanation of Validium when one uncomfortable detail made me stop. User funds may be difficult to steal, yet they can still become unavailable. At first, those two outcomes sounded contradictory. Grvt uses zero-knowledge proofs to prove that a state transition is valid without publishing the full transaction data to Ethereum. The network can verify that balances and positions were updated according to the rules, while traders avoid exposing their entire activity on a public ledger. For an exchange, that privacy has real value. Public positions can reveal strategy, make large traders easier to track, and create opportunities for front-running or copy trading. Grvt’s private Validium reduces that information leakage without asking Ethereum to process every piece of trading data. But the proof only answers one question: Was the state transition valid? It does not answer another: Will the data behind that transition remain available when users need it? Grvt’s operator keeps transaction data off-chain. Ethereum receives proof that the new state is correct, but it does not receive enough data to reconstruct the full trading history itself. That creates a very specific boundary. If the operator submits an invalid transition, the proof should fail. But if the operator stops serving data, the blockchain may still know that the latest state is valid while users lose the information needed to reconstruct their accounts or exit normally. So Grvt does not ask users to trust the operator with the correctness of every trade. It asks them to trust the operator with continued access to the history behind those trades. That is the price hidden inside private execution: less information exposed to the market, but greater dependence on whoever preserves the missing data. Can an exchange call itself self-custodial if users own the funds, but the operator still controls the data required to leave? @grvt_io #grvt
I used to think a missed validation check was the scary part. Newton’s docs made me think the scarier case is when the check exists, but sits in the wrong place. One line in the Smart Contract Integration guide made me stop: Validate before execution. At first, that sounds like basic Solidity hygiene. Check first. Then run the logic. Obvious enough. But inside @NewtonProtocol ’s design, the order changes everything. A contract can call _validateAttestation(). It can check the intent, policy, expiration, chainId, and caller. On paper, it may look like the application is using Newton correctly. But if the business logic has already run before that validation, the policy is no longer standing at the gate. It is standing after the consequence. Funds may have moved. A vault may have been withdrawn. A token may have been minted. An external contract may have already been called. At that point, the same Newton check no longer blocks execution. It only describes something that may have already happened. That is the part I keep coming back to. The question is not only whether a contract calls Newton. The question is where that call sits inside the execution path. I think of this as Execution Order Discipline. Authorization does not only need to exist in the flow. It needs to sit before any meaningful state change begins. If validation comes before business logic, policy acts like a gate. If validation comes after business logic, policy becomes a receipt. The hard part is that complex contracts can blur “before” and “after.” Internal calls, external calls, hooks, callbacks, and vault logic can all create consequences earlier than expected. So validation cannot just appear before one visible line of code. It has to protect the whole execution path. Maybe onchain authorization is not only about writing stronger rules. It is about making sure no action starts before those rules are checked. $NEWT $LAB #Newt
Cùng một token mà hai nơi báo hai giá. Newton xử lý chuyện đó thế nào?
Tối thứ Bảy tuần trước, tôi so giá một token trên Binance và CoinMarketCap, rồi thấy hai bên lệch nhau một chút. Không nhiều. Chỉ đủ để tôi tự hỏi: nếu một hệ thống dùng dữ liệu đó để quyết định một giao dịch lớn, thì lệch bao nhiêu mới được xem là bình thường? Vài hôm sau, đọc phần Consensus & Security trong docs của Newton Protocol, tôi dừng ở một error nhỏ. ToleranceExceeded Ban đầu, tôi nghĩ đây chỉ là một lỗi kỹ thuật. Một operator fetch dữ liệu quá lệch so với median. Hệ thống báo lỗi. Builder kiểm tra lại API, tăng tolerance, hoặc đổi data source. Nhìn qua thì giống chuyện vận hành oracle. Nhưng càng nghĩ, tôi càng thấy chi tiết này nói nhiều hơn về cách @NewtonProtocol nhìn consensus trên offchain data. Khi nhiều AVS Operators cùng fetch một dữ liệu ngoài đời, kết quả gần như không bao giờ giống tuyệt đối. Giá token có thể thay đổi từng giây. API này update nhanh hơn API kia. Một endpoint có thể cache chậm hơn vài block. Nếu bắt mọi operator trả về cùng một giá trị chính xác tuyệt đối, consensus rất dễ gãy. Nhưng nếu quá dễ dãi, một giá trị lệch mạnh vẫn có thể đi vào policy evaluation như thể nó bình thường. Newton chọn một đường ở giữa. Operators fetch dữ liệu độc lập. Gateway tính median cho numeric fields. Nếu các giá trị vẫn nằm trong tolerance, hệ thống có thể đưa chúng về một canonical value để operators cùng evaluate policy trên cùng một nền dữ liệu. Phần làm tôi chú ý nằm ở trường hợp ngược lại. Nếu một operator trả về value vượt quá ngưỡng sai khác cho phép, docs không mô tả nó như một thứ bị âm thầm loại bỏ để phần còn lại tiếp tục chạy. Hệ thống có thể fail với ToleranceExceeded. Outlier không bị lặng lẽ biến mất. Nó trở thành một trạng thái mà hệ thống buộc phải nhìn thấy. Điểm này quan trọng hơn tôi nghĩ lúc đầu. Trong nhiều hệ thống dữ liệu, outlier thường bị xem như noise. Bỏ nó ra, lấy giá trị trung tâm, rồi tiếp tục. Cách đó tiện, nhưng cũng có một rủi ro: nó có thể biến một bất thường thật thành một chi tiết bị che đi. Có thể API chậm. Có thể thị trường biến động mạnh. Có thể một data source đang sai. Cũng có thể operators không còn đang nhìn vào cùng một thực tại dữ liệu nữa. Nếu hệ thống vẫn cố ép các giá trị đó thành consensus, policy decision bên trên có thể trông hợp lệ, nhưng nền dữ liệu bên dưới đã không còn ổn. Đó là lúc tôi thấy ToleranceExceeded không chỉ là lỗi. Nó là một boundary. Newton không chỉ hỏi operators có thể đồng thuận hay không. Nó còn hỏi dữ liệu lệch đến mức nào thì hệ thống không nên ép chúng thành một sự đồng thuận giả. Nhìn theo góc đó, tolerance không chỉ là một con số cấu hình. Nó là mức sai khác mà Newton còn sẵn sàng xem là cùng một decision context. Thấp quá thì hệ thống dễ nghẽn vì dữ liệu ngoài đời luôn có noise. Cao quá thì những lệch lạc nguy hiểm có thể bị coi là chấp nhận được. Tradeoff nằm ở đó. Một policy có thể viết rất đúng. Một attestation có thể được ký rất đẹp. Nhưng nếu dữ liệu đi vào policy đã lệch quá xa, kết quả cuối cùng vẫn không đáng tin. Với tôi, giá trị của chi tiết này không nằm ở việc Newton luôn tạo được consensus. Mà nằm ở việc Newton biết khi nào không nên tạo consensus. Có lẽ ToleranceExceeded không chỉ nói rằng một operator fetch sai dữ liệu. Nó nói rằng Newton từ chối để policy ra quyết định trên một thực tại mà các operators không còn nhìn giống nhau. $NEWT $LAB #Newt
先週の木曜の夜、俺は融資系アプリのコンプライアンス担当をしている友人のヒュンに会った。俺が行くと、彼は「Enhanced Due Diligence - High Risk Users」という名前のExcelファイルを見ていた。見出しをちらっと見て、冗談で言った: 「これはお客さんを祝うために使うものじゃないよね?」 ヒュンは笑った。でも、ちょっと苦しい感じの笑い方だった。 画面には、見ただけで疲れそうな項目がずらり並んでいた:資金の出所、ウォレットの履歴、IPの国、職業、月収、制裁フラグ。