Binance Square
W Shakespeare
1.5k Publications

W Shakespeare

🇻🇳 Đời là một vở kịch mà ai cũng nghĩ mình là nhân vật chính?
170 Suivis
635 Abonnés
2.1K+ J’aime
Publications
·
--
Vérifié
The first time I deposited USDT into the GRVT exchange, I opened the list of supported chains. Solana was there. BNB Chain was there. Tron was there. But Plasma wasn't. I was genuinely surprised. Plasma was built with stablecoins in mind, especially USDT. Since GRVT already supports most major chains where liquidity is concentrated, seeing Plasma missing made me think they might be overlooking a meaningful source of capital. Looking beyond the deposit screen, I realized this wasn't simply about adding or removing another chain. Every new chain means another wallet, more infrastructure, more monitoring, more operations and a larger security surface to maintain. Supporting another chain doesn't just expand deposit options. It also expands the infrastructure GRVT has to operate over time. That was when I looked back at the chains already on the list. Solana, BNB Chain and Tron are all ecosystems where trading and DeFi liquidity are deeply established. After a deposit, capital from those chains is more likely to continue flowing into trading activity on GRVT. Plasma, on the other hand, was designed around stablecoin payments. That doesn't mean capital on Plasma cannot become trading capital, but it does mean GRVT has to consider whether the trading activity it generates is enough to justify the integration cost and long-term infrastructure required to support another chain. Viewed from that perspective, what GRVT may be optimizing is no longer the number of supported chains, but Capital Onboarding Discipline. Every new chain needs to bring more than additional capital. It also has to demonstrate that the capital it introduces can be converted into trading activity that justifies the operational cost GRVT is willing to take on. What I'll be watching is the next chain GRVT chooses to support. If Plasma eventually appears on that list, what will interest me won't be having one more deposit option. It will be understanding what changed for GRVT to conclude that capital from the Plasma chain had finally met its standard of Capital Onboarding Discipline. @grvt_io #grvt
The first time I deposited USDT into the GRVT exchange, I opened the list of supported chains.
Solana was there. BNB Chain was there. Tron was there.
But Plasma wasn't.
I was genuinely surprised. Plasma was built with stablecoins in mind, especially USDT. Since GRVT already supports most major chains where liquidity is concentrated, seeing Plasma missing made me think they might be overlooking a meaningful source of capital.
Looking beyond the deposit screen, I realized this wasn't simply about adding or removing another chain.
Every new chain means another wallet, more infrastructure, more monitoring, more operations and a larger security surface to maintain. Supporting another chain doesn't just expand deposit options. It also expands the infrastructure GRVT has to operate over time.
That was when I looked back at the chains already on the list.
Solana, BNB Chain and Tron are all ecosystems where trading and DeFi liquidity are deeply established. After a deposit, capital from those chains is more likely to continue flowing into trading activity on GRVT. Plasma, on the other hand, was designed around stablecoin payments. That doesn't mean capital on Plasma cannot become trading capital, but it does mean GRVT has to consider whether the trading activity it generates is enough to justify the integration cost and long-term infrastructure required to support another chain.
Viewed from that perspective, what GRVT may be optimizing is no longer the number of supported chains, but Capital Onboarding Discipline. Every new chain needs to bring more than additional capital. It also has to demonstrate that the capital it introduces can be converted into trading activity that justifies the operational cost GRVT is willing to take on.
What I'll be watching is the next chain GRVT chooses to support. If Plasma eventually appears on that list, what will interest me won't be having one more deposit option. It will be understanding what changed for GRVT to conclude that capital from the Plasma chain had finally met its standard of Capital Onboarding Discipline.
@grvt_io #grvt
Vérifié
Article
Newton Protocol đang tạo ra "shared reality" như thế nào?Tối hôm trước, mình ngồi ăn với một người bạn làm Data Engineer. Câu chuyện bắt đầu từ một vấn đề rất đời thường. Cậu ấy kể có lần dashboard doanh thu của công ty hiển thị ba con số khác nhau. Team Finance mở một dashboard. Team Sales mở dashboard khác. Ban điều hành lại xem một báo cáo tổng hợp. Điều buồn cười là cả ba đều lấy dữ liệu từ cùng một hệ thống. Mình hỏi: "Cuối cùng số nào đúng?" Cậu ấy cười. "Câu hỏi đó thường không quan trọng bằng một câu khác." "Là gì?" "Là cả công ty đang ra quyết định dựa trên cùng một con số hay không." Lúc đó mình thấy hơi lạ. Nếu đã có một con số đúng nhất thì chẳng phải chỉ cần tìm nó là đủ sao? Nhưng càng nghĩ mình càng thấy trong rất nhiều hệ thống, vấn đề không nằm ở việc thiếu dữ liệu. Vấn đề nằm ở việc mỗi người đang nhìn một phiên bản khác nhau của cùng một dữ liệu. Một API cập nhật sớm hơn vài giây. Một node lấy dữ liệu muộn hơn. Một price feed có độ trễ khác. Sai lệch đôi khi rất nhỏ. Nhưng nếu mỗi người đều bắt đầu từ một "reality" khác nhau, thì ngay cả khi tất cả đều làm đúng quy trình, kết quả cuối cùng vẫn có thể khác nhau. Đó cũng là lúc mình nhìn cơ chế Two-Phase Consensus của Newton Protocol theo một hướng khác. Thoạt nhìn, người ta rất dễ nghĩ đây chỉ là cách nhiều operators cùng lấy dữ liệu, Gateway tính median rồi mọi người cùng ký. Nhưng điều làm mình chú ý lại không phải median. Mà là thứ median đang tạo ra. Nó không tạo thêm dữ liệu mới. Nó cũng không cố chứng minh operator nào đúng hơn operator nào. Thay vào đó, nó tạo ra một phiên bản chung của dữ liệu để toàn bộ hệ thống cùng sử dụng trước khi policy được đánh giá. Đây là một khác biệt rất lớn. Thông thường, chúng ta hay nghĩ consensus là quá trình tìm ra sự thật. Nhưng Newton Protocol dường như không theo đuổi mục tiêu đó. Một operator trả về giá 100. Operator khác trả về 101. Người khác nữa trả về 102. Hệ thống không cố truy tìm ai mới là người đúng tuyệt đối. Điều nó cần là mọi operator đều bước vào giai đoạn đánh giá policy với cùng một bộ dữ liệu. Nói cách khác, Newton Protocol không cố tạo ra một "true reality". Họ tạo ra một "shared reality". Lúc đầu mình nghĩ đây chỉ là một chi tiết kỹ thuật. Nhưng càng đẩy tiếp chuỗi suy nghĩ, mình càng thấy nếu không có lớp shared reality này thì toàn bộ policy phía sau cũng mất ý nghĩa. Hãy tưởng tượng cùng một policy viết rằng chỉ cho phép giao dịch khi giá Lab ($LAB )khi giá dưới 0.5 USD. Nếu mỗi operator nhìn thấy một mức giá khác nhau, thì bản thân policy không còn là một quy tắc thống nhất nữa. Một policy. Ba reality. Ba kết quả. Lúc đó, vấn đề không còn nằm ở policy. Vấn đề nằm ở đầu vào của policy. Điều này làm mình nhận ra một thứ khá thú vị. Rất nhiều người xem policy là trung tâm của hệ thống. Nhưng Newton Protocol lại dành hẳn một phase chỉ để xử lý dữ liệu trước khi policy được phép hoạt động. Giống như dự án đang ngầm nói rằng một quyết định tốt không bắt đầu từ một rule tốt. Nó bắt đầu từ việc tất cả cùng nhìn về một reality trước đã. Nhìn từ góc này, Two-Phase Consensus không còn chỉ là một tối ưu về mặt kỹ thuật. Nó phản ánh một thứ tự rất rõ trong cách Newton Protocol xây dựng hạ tầng. Đầu tiên là thống nhất reality. Sau đó mới thống nhất decision. Không phải vì reality tuyệt đối đã được tìm thấy. Mà vì nếu mỗi thành phần vẫn đang sống trong một phiên bản dữ liệu khác nhau, thì mọi consensus phía sau chỉ là sự đồng thuận trên những thế giới khác nhau. Có lẽ đó mới là điều mình thấy đáng chú ý nhất. Newton Protocol không dùng consensus để tạo ra dữ liệu mới. @NewtonProtocol dùng consensus để tạo ra một reality đủ chung, đủ nhất quán và đủ đáng tin để mọi policy phía sau đều đang nói về cùng một thế giới. $NEWT #Newt

Newton Protocol đang tạo ra "shared reality" như thế nào?

Tối hôm trước, mình ngồi ăn với một người bạn làm Data Engineer. Câu chuyện bắt đầu từ một vấn đề rất đời thường.
Cậu ấy kể có lần dashboard doanh thu của công ty hiển thị ba con số khác nhau.
Team Finance mở một dashboard.
Team Sales mở dashboard khác.
Ban điều hành lại xem một báo cáo tổng hợp.
Điều buồn cười là cả ba đều lấy dữ liệu từ cùng một hệ thống.
Mình hỏi:
"Cuối cùng số nào đúng?"
Cậu ấy cười.
"Câu hỏi đó thường không quan trọng bằng một câu khác."
"Là gì?"
"Là cả công ty đang ra quyết định dựa trên cùng một con số hay không."
Lúc đó mình thấy hơi lạ.
Nếu đã có một con số đúng nhất thì chẳng phải chỉ cần tìm nó là đủ sao?
Nhưng càng nghĩ mình càng thấy trong rất nhiều hệ thống, vấn đề không nằm ở việc thiếu dữ liệu.
Vấn đề nằm ở việc mỗi người đang nhìn một phiên bản khác nhau của cùng một dữ liệu.
Một API cập nhật sớm hơn vài giây.
Một node lấy dữ liệu muộn hơn.
Một price feed có độ trễ khác.
Sai lệch đôi khi rất nhỏ.
Nhưng nếu mỗi người đều bắt đầu từ một "reality" khác nhau, thì ngay cả khi tất cả đều làm đúng quy trình, kết quả cuối cùng vẫn có thể khác nhau.
Đó cũng là lúc mình nhìn cơ chế Two-Phase Consensus của Newton Protocol theo một hướng khác.
Thoạt nhìn, người ta rất dễ nghĩ đây chỉ là cách nhiều operators cùng lấy dữ liệu, Gateway tính median rồi mọi người cùng ký.
Nhưng điều làm mình chú ý lại không phải median.
Mà là thứ median đang tạo ra.
Nó không tạo thêm dữ liệu mới.
Nó cũng không cố chứng minh operator nào đúng hơn operator nào.
Thay vào đó, nó tạo ra một phiên bản chung của dữ liệu để toàn bộ hệ thống cùng sử dụng trước khi policy được đánh giá.
Đây là một khác biệt rất lớn.
Thông thường, chúng ta hay nghĩ consensus là quá trình tìm ra sự thật.
Nhưng Newton Protocol dường như không theo đuổi mục tiêu đó.
Một operator trả về giá 100.
Operator khác trả về 101.
Người khác nữa trả về 102.
Hệ thống không cố truy tìm ai mới là người đúng tuyệt đối.
Điều nó cần là mọi operator đều bước vào giai đoạn đánh giá policy với cùng một bộ dữ liệu.
Nói cách khác, Newton Protocol không cố tạo ra một "true reality".
Họ tạo ra một "shared reality".
Lúc đầu mình nghĩ đây chỉ là một chi tiết kỹ thuật.
Nhưng càng đẩy tiếp chuỗi suy nghĩ, mình càng thấy nếu không có lớp shared reality này thì toàn bộ policy phía sau cũng mất ý nghĩa.
Hãy tưởng tượng cùng một policy viết rằng chỉ cho phép giao dịch khi giá Lab ($LAB )khi giá dưới 0.5 USD.
Nếu mỗi operator nhìn thấy một mức giá khác nhau, thì bản thân policy không còn là một quy tắc thống nhất nữa.
Một policy.
Ba reality.
Ba kết quả.
Lúc đó, vấn đề không còn nằm ở policy.
Vấn đề nằm ở đầu vào của policy.
Điều này làm mình nhận ra một thứ khá thú vị.
Rất nhiều người xem policy là trung tâm của hệ thống.
Nhưng Newton Protocol lại dành hẳn một phase chỉ để xử lý dữ liệu trước khi policy được phép hoạt động.
Giống như dự án đang ngầm nói rằng một quyết định tốt không bắt đầu từ một rule tốt.
Nó bắt đầu từ việc tất cả cùng nhìn về một reality trước đã.
Nhìn từ góc này, Two-Phase Consensus không còn chỉ là một tối ưu về mặt kỹ thuật.
Nó phản ánh một thứ tự rất rõ trong cách Newton Protocol xây dựng hạ tầng.
Đầu tiên là thống nhất reality.
Sau đó mới thống nhất decision.
Không phải vì reality tuyệt đối đã được tìm thấy.
Mà vì nếu mỗi thành phần vẫn đang sống trong một phiên bản dữ liệu khác nhau, thì mọi consensus phía sau chỉ là sự đồng thuận trên những thế giới khác nhau.
Có lẽ đó mới là điều mình thấy đáng chú ý nhất.
Newton Protocol không dùng consensus để tạo ra dữ liệu mới.
@NewtonProtocol dùng consensus để tạo ra một reality đủ chung, đủ nhất quán và đủ đáng tin để mọi policy phía sau đều đang nói về cùng một thế giới.
$NEWT #Newt
Partiellement vrai
Most authorization systems only know how to give one answer: yes or no. Newton Protocol made me think about something different. In one of its policy examples, exceeding a spending limit does not only produce allow = false. The policy can also return a cap, exposing the maximum value that would be accepted for the same transaction. At first, this looks like a small implementation detail. But the more I looked at it, the more it felt like a different philosophy of authorization. A binary rejection ends the interaction. The system refuses the request and leaves the caller to decide what happens next. Returning a constraint is different. Instead of only saying "you cannot do this", the policy also reveals the boundary that separates an acceptable action from an unacceptable one. That difference may not matter much for software that simply retries failed requests. It could matter a lot for autonomous AI agents. As agents become more capable, rejection is no longer just an error. It becomes feedback. A spending cap tells an agent exactly how far it exceeded the acceptable range. Instead of repeating the same mistake or waiting for human intervention, a sufficiently capable agent could generate a new transaction that already satisfies the policy. This is why I think Newton Protocol may be preparing for Self-correcting AI Agents. @NewtonProtocol is not trying to make AI agents smarter. Instead, it is shaping the environment those agents interact with. Policies stop being static permission gates and begin acting as structured feedback that increasingly autonomous agents can learn to respond to. That could become a much bigger architectural shift than it first appears. Today's AI agents often stop when a policy says "no". Tomorrow's agents may treat a returned cap as guidance for the next attempt instead of the end of the current one. If that happens, the challenge for Newton Protocol will no longer be rejecting bad transactions, but designing policy outputs like cap that increasingly capable agents can keep learning from. $NEWT #Newt
Most authorization systems only know how to give one answer: yes or no.
Newton Protocol made me think about something different. In one of its policy examples, exceeding a spending limit does not only produce allow = false. The policy can also return a cap, exposing the maximum value that would be accepted for the same transaction.
At first, this looks like a small implementation detail.
But the more I looked at it, the more it felt like a different philosophy of authorization.
A binary rejection ends the interaction. The system refuses the request and leaves the caller to decide what happens next. Returning a constraint is different. Instead of only saying "you cannot do this", the policy also reveals the boundary that separates an acceptable action from an unacceptable one.
That difference may not matter much for software that simply retries failed requests. It could matter a lot for autonomous AI agents.
As agents become more capable, rejection is no longer just an error. It becomes feedback. A spending cap tells an agent exactly how far it exceeded the acceptable range. Instead of repeating the same mistake or waiting for human intervention, a sufficiently capable agent could generate a new transaction that already satisfies the policy.
This is why I think Newton Protocol may be preparing for Self-correcting AI Agents. @NewtonProtocol is not trying to make AI agents smarter. Instead, it is shaping the environment those agents interact with. Policies stop being static permission gates and begin acting as structured feedback that increasingly autonomous agents can learn to respond to.
That could become a much bigger architectural shift than it first appears.
Today's AI agents often stop when a policy says "no". Tomorrow's agents may treat a returned cap as guidance for the next attempt instead of the end of the current one. If that happens, the challenge for Newton Protocol will no longer be rejecting bad transactions, but designing policy outputs like cap that increasingly capable agents can keep learning from. $NEWT #Newt
Partiellement vrai
One detail in GRVT's WebSocket design caught my attention. sequence_number only has meaning within a single WebSocket connection. If the number jumps, it only tells your connection that data has been missed. It says nothing about any other client connected to GRVT. That becomes more interesting when developers build execution engines or quantitative trading systems on top of GRVT's APIs. Every integration maintains its own market state. Detecting missing updates, requesting a fresh snapshot and deciding when that state is valid again are all responsibilities handled inside the integration. GRVT distributes market events, but it does not decide whether a trading system has reconstructed its market state correctly. That changes where market state is owned. Instead of maintaining one authoritative state for every connected system, GRVT leaves each integration responsible for maintaining its own. Different trading systems may consume the same market events while holding different local states because each follows a different recovery policy after detecting a gap. The architecture naturally moves toward State Ownership. Owning market state also means owning the engineering decisions behind it. Every team can optimize synchronization, recovery and validation around its own workflow instead of inheriting a single model from the exchange. GRVT only needs to deliver consistent market events. How those events become a trusted market state is intentionally left to each integration. By making sequence_number local to each WebSocket connection, GRVT leaves market state to every API integration instead of treating it as part of the exchange itself. As more trading systems connect through GRVT's APIs, State Ownership allows the exchange to stay focused on distributing market events instead of expanding into application-specific state management. The challenge is continuing to serve increasingly diverse trading workflows without gradually taking ownership of the application logic that belongs to each integration. $LAB @grvt_io #grvt
One detail in GRVT's WebSocket design caught my attention.
sequence_number only has meaning within a single WebSocket connection. If the number jumps, it only tells your connection that data has been missed. It says nothing about any other client connected to GRVT.
That becomes more interesting when developers build execution engines or quantitative trading systems on top of GRVT's APIs.
Every integration maintains its own market state. Detecting missing updates, requesting a fresh snapshot and deciding when that state is valid again are all responsibilities handled inside the integration. GRVT distributes market events, but it does not decide whether a trading system has reconstructed its market state correctly.
That changes where market state is owned.
Instead of maintaining one authoritative state for every connected system, GRVT leaves each integration responsible for maintaining its own. Different trading systems may consume the same market events while holding different local states because each follows a different recovery policy after detecting a gap.
The architecture naturally moves toward State Ownership.
Owning market state also means owning the engineering decisions behind it. Every team can optimize synchronization, recovery and validation around its own workflow instead of inheriting a single model from the exchange. GRVT only needs to deliver consistent market events. How those events become a trusted market state is intentionally left to each integration.
By making sequence_number local to each WebSocket connection, GRVT leaves market state to every API integration instead of treating it as part of the exchange itself.
As more trading systems connect through GRVT's APIs, State Ownership allows the exchange to stay focused on distributing market events instead of expanding into application-specific state management. The challenge is continuing to serve increasingly diverse trading workflows without gradually taking ownership of the application logic that belongs to each integration.
$LAB @grvt_io #grvt
Vérifié
Article
Newton Protocol đang trì hoãn permissionless để đổi lấy điều gì?Tối thứ sáu tuần trước, khoảng 7 giờ tối, mình đi ăn lẩu Triều Châu với vài người bạn ở nhà hàng Phan Xích Long trên đường Nguyễn Du. Quán khá đông nên món lên chậm hơn bình thường. Trong lúc đợi, mình hỏi quản lý: Sao anh không nhận thêm khách, nhà hàng mình vẫn còn vài bàn trống cơ mà ? Anh cười rồi trả lời: "Nhận thêm thì được thôi. Nhưng nếu bếp bắt đầu quá tải, món ra chậm, phục vụ rối và chất lượng không còn ổn định. Lúc đó tôi không chỉ mất một bàn khách, mà mất luôn khả năng kiểm soát cả ca phục vụ." Câu trả lời đó làm mình nhớ đến vấn đề Deploying with CLI của Newton Protocol. Trước khi một Policy có thể được sử dụng trên mainnet, developer cần được allowlist bởi đội ngũ @NewtonProtocol . Chỉ sau bước đó, Policy mới được đưa vào môi trường chính thức. Phản ứng đầu tiên của mình là khá bất ngờ. Một protocol đang xây dựng một ecosystem mở lại chủ động đặt thêm một lớp kiểm soát trước mainnet. Điều này nghe có vẻ đi ngược với cách nhiều protocol cố gắng mở cửa càng sớm càng tốt. Nhưng càng nghĩ, mình càng thấy Newton Protocol dường như đang cố tránh một loại chi phí khác. Mỗi Policy mới không chỉ bổ sung thêm một use case. Nó còn bổ sung thêm một hành vi mà protocol phải quan sát, một tập giả định cần được kiểm chứng và một cách sử dụng mới cần được hiểu. Nếu số lượng Policies tăng nhanh hơn khả năng theo dõi của hệ thống, phần chưa được hiểu rõ cũng sẽ tích lũy theo thời gian. Đó cũng là lúc Control Debt bắt đầu xuất hiện. Khác với Technical Debt, Control Debt không đến từ code. Nó xuất hiện khi tốc độ mở rộng vượt quá khả năng kiểm soát của đội ngũ vận hành. Ban đầu điều đó có thể chưa tạo ra vấn đề rõ ràng. Nhưng khi hệ thống ngày càng lớn, chất lượng của mỗi lần can thiệp cũng bắt đầu thay đổi. Một vấn đề phát sinh sẽ ngày càng khó lần ngược về đúng Policy, đúng tương tác hay đúng giả định đã gây ra nó. Mỗi lần điều chỉnh vì thế mang theo nhiều bất định hơn, còn chi phí để xác nhận mình đã sửa đúng vấn đề cũng tiếp tục tăng. Nhìn theo góc đó, allowlist không chỉ là một cơ chế giới hạn quyền tham gia. Nó còn là cách Newton giữ cho Control Debt không tăng nhanh hơn năng lực vận hành của chính mình. Dự án chấp nhận làm chậm tốc độ mở rộng trong giai đoạn đầu để mỗi Policy mới vẫn nằm trong phạm vi có thể quan sát, hiểu và can thiệp với mức độ chắc chắn đủ cao. Điều mình thấy đáng theo dõi là Control Debt không phải thứ có thể loại bỏ hoàn toàn. Nếu Newton Protocol tiếp tục mở rộng, builder, Policies và các integration sẽ ngày càng nhiều. Khi đó, câu hỏi sẽ không còn là bao giờ allowlist được gỡ bỏ, mà là Newton sẽ xây thêm những cơ chế nào để chất lượng của mỗi lần can thiệp không giảm đi ngay cả khi quy mô của toàn bộ ecosystem vẫn tiếp tục tăng. $LAB $NEWT #Newt

Newton Protocol đang trì hoãn permissionless để đổi lấy điều gì?

Tối thứ sáu tuần trước, khoảng 7 giờ tối, mình đi ăn lẩu Triều Châu với vài người bạn ở nhà hàng Phan Xích Long trên đường Nguyễn Du. Quán khá đông nên món lên chậm hơn bình thường.
Trong lúc đợi, mình hỏi quản lý: Sao anh không nhận thêm khách, nhà hàng mình vẫn còn vài bàn trống cơ mà ?
Anh cười rồi trả lời:
"Nhận thêm thì được thôi. Nhưng nếu bếp bắt đầu quá tải, món ra chậm, phục vụ rối và chất lượng không còn ổn định. Lúc đó tôi không chỉ mất một bàn khách, mà mất luôn khả năng kiểm soát cả ca phục vụ."
Câu trả lời đó làm mình nhớ đến vấn đề Deploying with CLI của Newton Protocol.
Trước khi một Policy có thể được sử dụng trên mainnet, developer cần được allowlist bởi đội ngũ @NewtonProtocol . Chỉ sau bước đó, Policy mới được đưa vào môi trường chính thức.
Phản ứng đầu tiên của mình là khá bất ngờ.
Một protocol đang xây dựng một ecosystem mở lại chủ động đặt thêm một lớp kiểm soát trước mainnet. Điều này nghe có vẻ đi ngược với cách nhiều protocol cố gắng mở cửa càng sớm càng tốt.
Nhưng càng nghĩ, mình càng thấy Newton Protocol dường như đang cố tránh một loại chi phí khác.
Mỗi Policy mới không chỉ bổ sung thêm một use case. Nó còn bổ sung thêm một hành vi mà protocol phải quan sát, một tập giả định cần được kiểm chứng và một cách sử dụng mới cần được hiểu. Nếu số lượng Policies tăng nhanh hơn khả năng theo dõi của hệ thống, phần chưa được hiểu rõ cũng sẽ tích lũy theo thời gian.
Đó cũng là lúc Control Debt bắt đầu xuất hiện.
Khác với Technical Debt, Control Debt không đến từ code. Nó xuất hiện khi tốc độ mở rộng vượt quá khả năng kiểm soát của đội ngũ vận hành. Ban đầu điều đó có thể chưa tạo ra vấn đề rõ ràng. Nhưng khi hệ thống ngày càng lớn, chất lượng của mỗi lần can thiệp cũng bắt đầu thay đổi. Một vấn đề phát sinh sẽ ngày càng khó lần ngược về đúng Policy, đúng tương tác hay đúng giả định đã gây ra nó. Mỗi lần điều chỉnh vì thế mang theo nhiều bất định hơn, còn chi phí để xác nhận mình đã sửa đúng vấn đề cũng tiếp tục tăng.
Nhìn theo góc đó, allowlist không chỉ là một cơ chế giới hạn quyền tham gia. Nó còn là cách Newton giữ cho Control Debt không tăng nhanh hơn năng lực vận hành của chính mình. Dự án chấp nhận làm chậm tốc độ mở rộng trong giai đoạn đầu để mỗi Policy mới vẫn nằm trong phạm vi có thể quan sát, hiểu và can thiệp với mức độ chắc chắn đủ cao.
Điều mình thấy đáng theo dõi là Control Debt không phải thứ có thể loại bỏ hoàn toàn. Nếu Newton Protocol tiếp tục mở rộng, builder, Policies và các integration sẽ ngày càng nhiều. Khi đó, câu hỏi sẽ không còn là bao giờ allowlist được gỡ bỏ, mà là Newton sẽ xây thêm những cơ chế nào để chất lượng của mỗi lần can thiệp không giảm đi ngay cả khi quy mô của toàn bộ ecosystem vẫn tiếp tục tăng.
$LAB $NEWT #Newt
Partiellement vrai
Khi deploy một Policy bằng CLI trên Newton Protocol, policy_params cuối cùng phải được chuyển thành Flat JSON đúng với params_schema.json. Nếu giữ nguyên Nested JSON, quá trình Schema Validation sẽ thất bại và Policy sẽ không thể pass evaluation. Điều làm mình chú ý là CLI vẫn làm việc với Nested JSON trong suốt workflow. Chỉ đến khi Policy được evaluate, toàn bộ data mới buộc phải xuất hiện dưới dạng Flat JSON. Theo mình, đây không phải là một quy định dành cho CLI. Nó là một quy định dành cho Policy layer. Trước khi đi vào Policy, mọi representation đều phải được chuyển về cùng một hình thức. Translation cost vẫn tồn tại, nhưng chỉ xuất hiện tại boundary của system. Sau điểm đó, Policy không còn cần biết data đến từ CLI hay bất kỳ integration nào khác. Điều duy nhất còn lại là data có khớp với schema đã công bố hay không. Đó cũng là lúc Serialization Neutrality bắt đầu hình thành. Điều được giữ trung lập không phải cách mỗi tool serialize data, mà là cách Policy tiếp nhận data. Mọi representation differences đều phải được loại bỏ trước khi evaluation bắt đầu. Vì vậy, mỗi integration mới chỉ cần tự xử lý serialization của mình, thay vì buộc Policy layer phải thích nghi với thêm một representation mới. Lúc này, thách thức của Newton Protocol không nằm ở việc hỗ trợ thêm nhiều tools. Thách thức nằm ở việc tiếp tục giữ được Serialization Neutrality khi ecosystem mở rộng. Chỉ cần một integration được phép vượt qua boundary với một representation riêng, Policy layer sẽ dần phải hiểu nhiều representations khác nhau và chính Serialization Neutrality cũng sẽ mất đi ý nghĩa ban đầu. $B $BEAT $NEWT #Newt @NewtonProtocol
Khi deploy một Policy bằng CLI trên Newton Protocol, policy_params cuối cùng phải được chuyển thành Flat JSON đúng với params_schema.json. Nếu giữ nguyên Nested JSON, quá trình Schema Validation sẽ thất bại và Policy sẽ không thể pass evaluation.
Điều làm mình chú ý là CLI vẫn làm việc với Nested JSON trong suốt workflow. Chỉ đến khi Policy được evaluate, toàn bộ data mới buộc phải xuất hiện dưới dạng Flat JSON.
Theo mình, đây không phải là một quy định dành cho CLI. Nó là một quy định dành cho Policy layer.
Trước khi đi vào Policy, mọi representation đều phải được chuyển về cùng một hình thức. Translation cost vẫn tồn tại, nhưng chỉ xuất hiện tại boundary của system. Sau điểm đó, Policy không còn cần biết data đến từ CLI hay bất kỳ integration nào khác. Điều duy nhất còn lại là data có khớp với schema đã công bố hay không.
Đó cũng là lúc Serialization Neutrality bắt đầu hình thành.
Điều được giữ trung lập không phải cách mỗi tool serialize data, mà là cách Policy tiếp nhận data. Mọi representation differences đều phải được loại bỏ trước khi evaluation bắt đầu. Vì vậy, mỗi integration mới chỉ cần tự xử lý serialization của mình, thay vì buộc Policy layer phải thích nghi với thêm một representation mới.
Lúc này, thách thức của Newton Protocol không nằm ở việc hỗ trợ thêm nhiều tools. Thách thức nằm ở việc tiếp tục giữ được Serialization Neutrality khi ecosystem mở rộng. Chỉ cần một integration được phép vượt qua boundary với một representation riêng, Policy layer sẽ dần phải hiểu nhiều representations khác nhau và chính Serialization Neutrality cũng sẽ mất đi ý nghĩa ban đầu.
$B $BEAT $NEWT #Newt @NewtonProtocol
A few days ago, I noticed an interesting detail while exploring GRVT. Different API keys can be assigned different permissions. Some are allowed to place orders. Others can transfer assets. Others are limited to read-only access. No single key is expected to do everything. Instead of treating permissions as a convenience feature, GRVT uses them to separate authority before any operation begins. Every new capability on GRVT does not automatically become available to every API key. Trading, funding, withdrawals and account management each remain behind separate permission scopes. As a result, every credential carries only the authority it was explicitly given, instead of inheriting every capability attached to the account. That changes what happens when a credential is compromised. The incident is confined to the permission scope of that specific key rather than expanding across the entire account. Adding new API capabilities therefore does not automatically increase the consequence of an existing compromise, because newly introduced authority remains isolated from credentials that never received it. This is where Blast Radius Reduction starts to emerge. Once authority is allowed to grow through independent permission scopes instead of accumulating behind the same credential, the platform can continue expanding without forcing risk to grow in the same way. New capabilities increase what GRVT can do, while each permission boundary continues to contain the consequences of its own compromise. Looking back, those API permissions no longer feel like a developer convenience. They reveal how GRVT expects the platform to evolve. As more APIs, products and workflows are introduced, authority does not have to converge into a single credential. If that principle continues to hold, Blast Radius Reduction will scale together with GRVT, allowing @grvt_io to expand without every new capability becoming another shared source of risk. $TAG $LAB #grvt
A few days ago, I noticed an interesting detail while exploring GRVT. Different API keys can be assigned different permissions. Some are allowed to place orders. Others can transfer assets. Others are limited to read-only access. No single key is expected to do everything.
Instead of treating permissions as a convenience feature, GRVT uses them to separate authority before any operation begins.
Every new capability on GRVT does not automatically become available to every API key. Trading, funding, withdrawals and account management each remain behind separate permission scopes. As a result, every credential carries only the authority it was explicitly given, instead of inheriting every capability attached to the account.
That changes what happens when a credential is compromised.
The incident is confined to the permission scope of that specific key rather than expanding across the entire account. Adding new API capabilities therefore does not automatically increase the consequence of an existing compromise, because newly introduced authority remains isolated from credentials that never received it.
This is where Blast Radius Reduction starts to emerge.
Once authority is allowed to grow through independent permission scopes instead of accumulating behind the same credential, the platform can continue expanding without forcing risk to grow in the same way. New capabilities increase what GRVT can do, while each permission boundary continues to contain the consequences of its own compromise.
Looking back, those API permissions no longer feel like a developer convenience. They reveal how GRVT expects the platform to evolve. As more APIs, products and workflows are introduced, authority does not have to converge into a single credential. If that principle continues to hold, Blast Radius Reduction will scale together with GRVT, allowing @grvt_io to expand without every new capability becoming another shared source of risk.
$TAG $LAB #grvt
Vérifié
Article
Có phải Newton Protocol đang làm thay đổi cost để tham gia hệ sinh thái?Tối thứ bảy tuần trước, khoảng 6 giờ tối, mình cùng vài người bạn đi ăn hải sản ở một quán trên đường Võ Văn Kiệt. Bàn gọi khá nhiều món, trong đó có một phần hàu nướng mỡ hành. Trong lúc đợi món, mình hỏi anh chủ quán: "Ngày nào cũng phải chuẩn bị nhiều hàu như vậy, lỡ hôm nay bán ít thì sao?" Anh cười rồi chỉ về khu sơ chế. "Khó nhất là nhập hàng và sơ chế. Làm xong phần đó rồi thì bán thêm một đĩa nữa gần như không tốn bao nhiêu công." Câu trả lời đó làm mình nhớ đến Policy Packs trong docs của Newton Protocol. Khi sử dụng một Policy Pack, developer không cần tự viết hay deploy Data Oracle. Oracle đã được triển khai sẵn với PolicyData Address, WASM CID và toàn bộ metadata trong deployments.json. Việc còn lại chỉ là cấu hình params, upload secrets nếu cần rồi bắt đầu viết Policy. Thoạt nhìn, đây chỉ giống một cách giúp developer bắt đầu nhanh hơn. Nhưng càng đọc, mình càng thấy Newton Protocol đang thay đổi mức chi phí tối thiểu để một Policy có thể tồn tại. Thông thường, nếu một use case chỉ phục vụ một nhóm người dùng nhỏ, developer rất khó biện minh cho việc xây dựng và duy trì cả một Data Oracle riêng. Không phải vì Decision đó không có giá trị, mà vì chi phí của lớp Infrastructure lớn hơn chính giá trị mà use case đó tạo ra. Policy Packs đảo ngược bài toán này. Chi phí xây dựng và duy trì Data Oracle được đầu tư một lần rồi nhiều Policies cùng sử dụng. Infrastructure không còn phải được tạo lại mỗi khi xuất hiện một use case mới. Builder chỉ cần tập trung vào cách diễn giải Data để tạo ra Decision của riêng mình. Đó cũng là lúc một Cost Floor mới bắt đầu hình thành. Khi Cost Floor của việc tạo ra một Policy thấp hơn, nhiều use case trước đây không đủ lớn để mang ý nghĩa kinh tế bắt đầu trở nên khả thi. Một Policy không còn phải phục vụ một thị trường đủ lớn để "nuôi" cả một Data Oracle riêng. Chỉ cần cách diễn giải Data đó giải quyết đúng một nhu cầu cụ thể, builder đã có lý do để xây dựng nó. Chính từ đó, Market Coverage bắt đầu mở rộng. Ecosystem không chỉ có thêm nhiều Policies hơn. Nó còn bắt đầu bao phủ những nhu cầu rất nhỏ mà trước đây luôn bị bỏ qua vì chi phí của lớp Infrastructure quá cao. Những khoảng trống không đủ lớn để tồn tại như một dự án riêng giờ vẫn có thể được phục vụ trên cùng một Data Oracle. Nhìn theo góc đó, giá trị của Policy Packs không chỉ nằm ở việc chia sẻ Infrastructure. Newton Protocol đang hạ thấp Cost Floor để mở rộng Market Coverage của toàn bộ ecosystem. Khi chi phí tối thiểu để phục vụ một nhu cầu tiếp tục giảm, ngày càng nhiều thị trường nhỏ sẽ trở nên có ý nghĩa kinh tế. Nếu quá trình này tiếp tục diễn ra, lợi thế dài hạn của @NewtonProtocol sẽ không chỉ nằm ở số lượng Policy Packs, mà ở khả năng biến những nhu cầu trước đây quá nhỏ để tồn tại thành một phần của cùng một ecosystem. $LAB $NEWT #Newt

Có phải Newton Protocol đang làm thay đổi cost để tham gia hệ sinh thái?

Tối thứ bảy tuần trước, khoảng 6 giờ tối, mình cùng vài người bạn đi ăn hải sản ở một quán trên đường Võ Văn Kiệt. Bàn gọi khá nhiều món, trong đó có một phần hàu nướng mỡ hành.
Trong lúc đợi món, mình hỏi anh chủ quán:
"Ngày nào cũng phải chuẩn bị nhiều hàu như vậy, lỡ hôm nay bán ít thì sao?"
Anh cười rồi chỉ về khu sơ chế.
"Khó nhất là nhập hàng và sơ chế. Làm xong phần đó rồi thì bán thêm một đĩa nữa gần như không tốn bao nhiêu công."
Câu trả lời đó làm mình nhớ đến Policy Packs trong docs của Newton Protocol.
Khi sử dụng một Policy Pack, developer không cần tự viết hay deploy Data Oracle. Oracle đã được triển khai sẵn với PolicyData Address, WASM CID và toàn bộ metadata trong deployments.json. Việc còn lại chỉ là cấu hình params, upload secrets nếu cần rồi bắt đầu viết Policy.
Thoạt nhìn, đây chỉ giống một cách giúp developer bắt đầu nhanh hơn.
Nhưng càng đọc, mình càng thấy Newton Protocol đang thay đổi mức chi phí tối thiểu để một Policy có thể tồn tại.
Thông thường, nếu một use case chỉ phục vụ một nhóm người dùng nhỏ, developer rất khó biện minh cho việc xây dựng và duy trì cả một Data Oracle riêng. Không phải vì Decision đó không có giá trị, mà vì chi phí của lớp Infrastructure lớn hơn chính giá trị mà use case đó tạo ra.
Policy Packs đảo ngược bài toán này.
Chi phí xây dựng và duy trì Data Oracle được đầu tư một lần rồi nhiều Policies cùng sử dụng. Infrastructure không còn phải được tạo lại mỗi khi xuất hiện một use case mới. Builder chỉ cần tập trung vào cách diễn giải Data để tạo ra Decision của riêng mình.
Đó cũng là lúc một Cost Floor mới bắt đầu hình thành.
Khi Cost Floor của việc tạo ra một Policy thấp hơn, nhiều use case trước đây không đủ lớn để mang ý nghĩa kinh tế bắt đầu trở nên khả thi. Một Policy không còn phải phục vụ một thị trường đủ lớn để "nuôi" cả một Data Oracle riêng. Chỉ cần cách diễn giải Data đó giải quyết đúng một nhu cầu cụ thể, builder đã có lý do để xây dựng nó.
Chính từ đó, Market Coverage bắt đầu mở rộng.
Ecosystem không chỉ có thêm nhiều Policies hơn. Nó còn bắt đầu bao phủ những nhu cầu rất nhỏ mà trước đây luôn bị bỏ qua vì chi phí của lớp Infrastructure quá cao. Những khoảng trống không đủ lớn để tồn tại như một dự án riêng giờ vẫn có thể được phục vụ trên cùng một Data Oracle.
Nhìn theo góc đó, giá trị của Policy Packs không chỉ nằm ở việc chia sẻ Infrastructure. Newton Protocol đang hạ thấp Cost Floor để mở rộng Market Coverage của toàn bộ ecosystem. Khi chi phí tối thiểu để phục vụ một nhu cầu tiếp tục giảm, ngày càng nhiều thị trường nhỏ sẽ trở nên có ý nghĩa kinh tế. Nếu quá trình này tiếp tục diễn ra, lợi thế dài hạn của @NewtonProtocol sẽ không chỉ nằm ở số lượng Policy Packs, mà ở khả năng biến những nhu cầu trước đây quá nhỏ để tồn tại thành một phần của cùng một ecosystem.
$LAB $NEWT #Newt
Khi sử dụng một Policy Pack trong Newton Protocol, developer không cần tự build hay deploy Data Oracle. Data Oracle đã được triển khai sẵn. Việc còn lại chỉ là tham chiếu đến PolicyData Address, cấu hình các Parameters cần thiết rồi bắt đầu viết Policy. Với workflow này, mình nghĩ Newton Protocol đang thay đổi loại Cost mà developer phải trả. Nếu tự xây toàn bộ Data Oracle, mỗi lần update hay Maintenance đều lấy đi một phần thời gian vốn có thể dành cho việc cải thiện Decision. Mỗi giờ dành cho Maintenance đồng nghĩa với ít thời gian hơn để thử Ideas mới. Policy Packs đảo ngược điều đó. Khi Infrastructure đã được duy trì sẵn, Maintenance không còn là gánh nặng mà từng developer phải lặp lại. Thời gian được trả về để thiết kế Policy, điều chỉnh Business Logic và thử Decisions mới. Cost lớn nhất không còn nằm ở việc vận hành Infrastructure, mà chuyển sang việc tìm ra cách diễn giải Data tốt hơn. Đó cũng là lúc Opportunity Cost bắt đầu thay đổi. Mỗi giờ không phải dành cho Maintenance đồng nghĩa với thêm một giờ để thử một Policy, kiểm chứng Assumption hoặc tối ưu một Decision. Value của Policy Packs không chỉ nằm ở việc giảm khối lượng công việc, mà ở việc chuyển thời gian sang những hoạt động tạo ra nhiều khác biệt hơn. Nhìn theo góc đó, mình thấy Newton Protocol không chỉ cung cấp những Policy Packs có sẵn. Mà đang dịch chuyển Opportunity Cost của developer khỏi những công việc lặp lại để tập trung vào Innovation. Nếu ngày càng nhiều builders cùng bắt đầu từ một lớp Infrastructure chung, lợi thế của @NewtonProtocol sẽ dần tích lũy ở chất lượng của Decision, bởi ngày càng nhiều nguồn lực được chuyển từ Maintenance sang Innovation #Newt $SKL $LAB $NEWT
Khi sử dụng một Policy Pack trong Newton Protocol, developer không cần tự build hay deploy Data Oracle. Data Oracle đã được triển khai sẵn. Việc còn lại chỉ là tham chiếu đến PolicyData Address, cấu hình các Parameters cần thiết rồi bắt đầu viết Policy.
Với workflow này, mình nghĩ Newton Protocol đang thay đổi loại Cost mà developer phải trả.
Nếu tự xây toàn bộ Data Oracle, mỗi lần update hay Maintenance đều lấy đi một phần thời gian vốn có thể dành cho việc cải thiện Decision. Mỗi giờ dành cho Maintenance đồng nghĩa với ít thời gian hơn để thử Ideas mới.
Policy Packs đảo ngược điều đó.
Khi Infrastructure đã được duy trì sẵn, Maintenance không còn là gánh nặng mà từng developer phải lặp lại. Thời gian được trả về để thiết kế Policy, điều chỉnh Business Logic và thử Decisions mới. Cost lớn nhất không còn nằm ở việc vận hành Infrastructure, mà chuyển sang việc tìm ra cách diễn giải Data tốt hơn.
Đó cũng là lúc Opportunity Cost bắt đầu thay đổi.
Mỗi giờ không phải dành cho Maintenance đồng nghĩa với thêm một giờ để thử một Policy, kiểm chứng Assumption hoặc tối ưu một Decision. Value của Policy Packs không chỉ nằm ở việc giảm khối lượng công việc, mà ở việc chuyển thời gian sang những hoạt động tạo ra nhiều khác biệt hơn.
Nhìn theo góc đó, mình thấy Newton Protocol không chỉ cung cấp những Policy Packs có sẵn. Mà đang dịch chuyển Opportunity Cost của developer khỏi những công việc lặp lại để tập trung vào Innovation. Nếu ngày càng nhiều builders cùng bắt đầu từ một lớp Infrastructure chung, lợi thế của @NewtonProtocol sẽ dần tích lũy ở chất lượng của Decision, bởi ngày càng nhiều nguồn lực được chuyển từ Maintenance sang Innovation #Newt $SKL $LAB $NEWT
Article
Điều gì khiến giá trị của Data Oracles trong Newton Protocol tiếp tục tăng theo thời gian?Tối chủ nhật tuần trước, khoảng 7 giờ, mình ghé một quán cơm trên đường Nguyễn Duy. Gọi một phần heo quay giòn bì, mình để ý đầu bếp không chuẩn bị mọi thứ cùng một lúc. Miếng thịt đã được quay từ trước. Phần nước sốt được múc từ một nồi khác. Dưa chua, rau và nước chấm cũng được lấy từ những khay riêng. Chỉ đến khi khách gọi món, tất cả mới được đặt lên cùng một chiếc đĩa. Mình hỏi vui: "Sao không làm sẵn từng phần hoàn chỉnh cho nhanh?" Anh đầu bếp cười. "Nếu làm vậy thì mỗi lần đổi một món là phải sửa tất cả. Còn tách riêng từng phần thế này thì thịt vẫn là thịt, nước chấm vẫn là nước chấm. Muốn bán món mới thì chỉ cần ghép chúng theo cách khác." Câu trả lời đó làm mình nhớ đến phần nói về Chaining Multiple Data Oracles trong docs của Newton Protocol. Khi một Policy sử dụng nhiều Data Oracles, Newton Protocol không để các Oracle gọi lẫn nhau. Mỗi Data Oracle vẫn chạy độc lập, tạo ra phần dữ liệu của riêng mình rồi mạng lưới mới tổng hợp toàn bộ kết quả để Rego Policy đưa ra Decision cuối cùng. Thoạt nhìn, đây chỉ giống một lựa chọn về kiến trúc. Nhưng càng đọc, mình càng thấy Newton Protocol không cố làm cho từng Data Oracle biết nhiều hơn về hệ thống. Họ lại cố giữ cho mỗi Oracle chỉ tập trung vào đúng phần dữ liệu mà mình chịu trách nhiệm. Điều đó cũng đồng nghĩa khi một Data Oracle mới xuất hiện, những Oracle đã tồn tại không cần thay đổi. Chúng không cần biết Oracle mới là ai, cũng không cần học cách giao tiếp với thành phần mới. Toàn bộ việc kết hợp dữ liệu được chuyển lên Rego Policy, nơi các Decision mới được hình thành. Chính điều này làm mình nhìn giá trị của một Data Oracle theo cách khác. Nếu Oracle không bị gắn chặt với một Policy cụ thể, giá trị của nó không kết thúc ở lần tích hợp đầu tiên. Chỉ cần dữ liệu mà Oracle tạo ra vẫn hữu ích, nó có thể tiếp tục được sử dụng trong rất nhiều Policy khác nhau mà không cần thay đổi chính Oracle đó. Điều thú vị hơn xảy ra khi số lượng Data Oracles tiếp tục tăng. Mỗi Oracle mới không chỉ bổ sung thêm một nguồn dữ liệu. Nó còn tạo thêm những khả năng kết hợp mới với toàn bộ Oracle đã tồn tại trước đó. Một Oracle về Asset Price hôm nay có thể kết hợp với Oracle về KYC trong Policy này, với Oracle về Risk Score trong Policy khác, rồi tiếp tục tạo ra những Decision hoàn toàn mới khi hệ sinh thái xuất hiện thêm các Oracle khác. Giá trị của Oracle cũ vì thế không đứng yên. Nó tiếp tục tăng lên nhờ những cách kết hợp mà trước đây chưa từng tồn tại. Đến lúc đó, Newton Protocol không còn chỉ sở hữu nhiều Data Oracles hơn. @NewtonProtocol bắt đầu vận hành như một Recombination Economy. Trong một Recombination Economy, giá trị của từng module không chỉ đến từ chức năng mà nó tự tạo ra. Giá trị đó còn đến từ số lượng cách module có thể được tái kết hợp với những module khác. Mỗi Data Oracle mới không chỉ bổ sung thêm một tài nguyên mới cho mạng lưới, mà còn mở rộng giá trị của toàn bộ Oracle đã có trước đó. Có lẽ đây mới là điều mình thấy đáng chú ý ở Newton Protocol. Nhiều người nhìn khả năng Chaining Multiple Data Oracles như một cách để đưa nhiều nguồn dữ liệu vào cùng một Policy. Mình lại thấy giá trị lớn hơn nằm ở kiến trúc phía sau. Khi dependency được giữ bên ngoài Oracle và việc kết hợp chỉ diễn ra ở Rego Policy, mỗi Oracle đều có cơ hội tiếp tục tạo ra giá trị trong những ngữ cảnh hoàn toàn mới. Nếu hệ sinh thái đủ lớn, Recombination Economy có lẽ mới là lợi thế đáng theo dõi nhất của Newton Protocol, bởi giá trị của mạng lưới khi đó sẽ không chỉ tăng theo số lượng Data Oracles, mà còn theo số lượng cách chúng có thể được kết hợp với nhau. $EVAA $NEWT $BLUAI #Newt

Điều gì khiến giá trị của Data Oracles trong Newton Protocol tiếp tục tăng theo thời gian?

Tối chủ nhật tuần trước, khoảng 7 giờ, mình ghé một quán cơm trên đường Nguyễn Duy. Gọi một phần heo quay giòn bì, mình để ý đầu bếp không chuẩn bị mọi thứ cùng một lúc.
Miếng thịt đã được quay từ trước. Phần nước sốt được múc từ một nồi khác. Dưa chua, rau và nước chấm cũng được lấy từ những khay riêng. Chỉ đến khi khách gọi món, tất cả mới được đặt lên cùng một chiếc đĩa.
Mình hỏi vui:
"Sao không làm sẵn từng phần hoàn chỉnh cho nhanh?"
Anh đầu bếp cười.
"Nếu làm vậy thì mỗi lần đổi một món là phải sửa tất cả. Còn tách riêng từng phần thế này thì thịt vẫn là thịt, nước chấm vẫn là nước chấm. Muốn bán món mới thì chỉ cần ghép chúng theo cách khác."
Câu trả lời đó làm mình nhớ đến phần nói về Chaining Multiple Data Oracles trong docs của Newton Protocol.
Khi một Policy sử dụng nhiều Data Oracles, Newton Protocol không để các Oracle gọi lẫn nhau. Mỗi Data Oracle vẫn chạy độc lập, tạo ra phần dữ liệu của riêng mình rồi mạng lưới mới tổng hợp toàn bộ kết quả để Rego Policy đưa ra Decision cuối cùng.
Thoạt nhìn, đây chỉ giống một lựa chọn về kiến trúc.
Nhưng càng đọc, mình càng thấy Newton Protocol không cố làm cho từng Data Oracle biết nhiều hơn về hệ thống. Họ lại cố giữ cho mỗi Oracle chỉ tập trung vào đúng phần dữ liệu mà mình chịu trách nhiệm.
Điều đó cũng đồng nghĩa khi một Data Oracle mới xuất hiện, những Oracle đã tồn tại không cần thay đổi. Chúng không cần biết Oracle mới là ai, cũng không cần học cách giao tiếp với thành phần mới. Toàn bộ việc kết hợp dữ liệu được chuyển lên Rego Policy, nơi các Decision mới được hình thành.
Chính điều này làm mình nhìn giá trị của một Data Oracle theo cách khác.
Nếu Oracle không bị gắn chặt với một Policy cụ thể, giá trị của nó không kết thúc ở lần tích hợp đầu tiên. Chỉ cần dữ liệu mà Oracle tạo ra vẫn hữu ích, nó có thể tiếp tục được sử dụng trong rất nhiều Policy khác nhau mà không cần thay đổi chính Oracle đó.
Điều thú vị hơn xảy ra khi số lượng Data Oracles tiếp tục tăng.
Mỗi Oracle mới không chỉ bổ sung thêm một nguồn dữ liệu. Nó còn tạo thêm những khả năng kết hợp mới với toàn bộ Oracle đã tồn tại trước đó. Một Oracle về Asset Price hôm nay có thể kết hợp với Oracle về KYC trong Policy này, với Oracle về Risk Score trong Policy khác, rồi tiếp tục tạo ra những Decision hoàn toàn mới khi hệ sinh thái xuất hiện thêm các Oracle khác. Giá trị của Oracle cũ vì thế không đứng yên. Nó tiếp tục tăng lên nhờ những cách kết hợp mà trước đây chưa từng tồn tại.
Đến lúc đó, Newton Protocol không còn chỉ sở hữu nhiều Data Oracles hơn.
@NewtonProtocol bắt đầu vận hành như một Recombination Economy.
Trong một Recombination Economy, giá trị của từng module không chỉ đến từ chức năng mà nó tự tạo ra. Giá trị đó còn đến từ số lượng cách module có thể được tái kết hợp với những module khác. Mỗi Data Oracle mới không chỉ bổ sung thêm một tài nguyên mới cho mạng lưới, mà còn mở rộng giá trị của toàn bộ Oracle đã có trước đó.
Có lẽ đây mới là điều mình thấy đáng chú ý ở Newton Protocol.
Nhiều người nhìn khả năng Chaining Multiple Data Oracles như một cách để đưa nhiều nguồn dữ liệu vào cùng một Policy. Mình lại thấy giá trị lớn hơn nằm ở kiến trúc phía sau. Khi dependency được giữ bên ngoài Oracle và việc kết hợp chỉ diễn ra ở Rego Policy, mỗi Oracle đều có cơ hội tiếp tục tạo ra giá trị trong những ngữ cảnh hoàn toàn mới. Nếu hệ sinh thái đủ lớn, Recombination Economy có lẽ mới là lợi thế đáng theo dõi nhất của Newton Protocol, bởi giá trị của mạng lưới khi đó sẽ không chỉ tăng theo số lượng Data Oracles, mà còn theo số lượng cách chúng có thể được kết hợp với nhau.
$EVAA $NEWT $BLUAI #Newt
Vérifié
Tìm hiểu về Chaining Multiple Data Oracles trong docs của Newton Protocol, mình khá bất ngờ với những gì Data Oracle không bao giờ làm. Mỗi Data Oracle chỉ trả về những Facts như risk_score, is_collapsed hay tvl_drawdown. Chúng không kết luận một transaction nên Allow hay Deny. Phần đó được để lại cho Rego Policy. Đây không chỉ là cách phân chia trách nhiệm. Mà còn cho thấy Newton Protocol đang tách Fact khỏi Judgment. Khi một Fact không còn gắn với một Judgment cố định, cùng một risk_score có thể được nhiều Policies diễn giải theo những tiêu chuẩn hoàn toàn khác nhau. Một policy coi 60 là đủ an toàn để Allow, policy khác lại chỉ chấp nhận từ 80 trở lên. Fact vẫn giữ nguyên, chỉ có Judgment thay đổi. Một Fact vì thế không còn kết thúc vai trò sau lần đầu được sử dụng. Khi xuất hiện thêm một Policy, chính Fact đó lại được diễn giải theo một tiêu chuẩn mới để tạo ra một Decision khác mà không cần thu thập lại dữ liệu từ đầu. Giá trị của một Fact cũng không còn dừng ở lần sử dụng đầu tiên. Mỗi Policy mới lại mở thêm một ngữ cảnh để Fact cũ tiếp tục tạo ra giá trị. Chính sự tách biệt giữa Fact và Judgment này đã tạo ra một Fact Appreciation Mechanism Điều mình thấy thú vị nhất là Newton Protocol không cố làm cho Data Oracles tạo ra nhiều Facts hơn. @NewtonProtocol làm cho mỗi Fact tiếp tục tạo ra giá trị sau khi đã được sinh ra. Khi hệ sinh thái có thêm Policies, những Facts cũ liên tục được diễn giải theo những tiêu chuẩn mới. Nếu quá trình đó tiếp tục lặp lại, Fact Appreciation Mechanism sẽ khiến giá trị của dữ liệu tăng lên cùng với sự phát triển của toàn bộ hệ sinh thái, thay vì chỉ dừng lại ở lần sử dụng đầu tiên. #Newt $EVAA $NEWT
Tìm hiểu về Chaining Multiple Data Oracles trong docs của Newton Protocol, mình khá bất ngờ với những gì Data Oracle không bao giờ làm.
Mỗi Data Oracle chỉ trả về những Facts như risk_score, is_collapsed hay tvl_drawdown. Chúng không kết luận một transaction nên Allow hay Deny. Phần đó được để lại cho Rego Policy.
Đây không chỉ là cách phân chia trách nhiệm.
Mà còn cho thấy Newton Protocol đang tách Fact khỏi Judgment.
Khi một Fact không còn gắn với một Judgment cố định, cùng một risk_score có thể được nhiều Policies diễn giải theo những tiêu chuẩn hoàn toàn khác nhau. Một policy coi 60 là đủ an toàn để Allow, policy khác lại chỉ chấp nhận từ 80 trở lên. Fact vẫn giữ nguyên, chỉ có Judgment thay đổi.
Một Fact vì thế không còn kết thúc vai trò sau lần đầu được sử dụng. Khi xuất hiện thêm một Policy, chính Fact đó lại được diễn giải theo một tiêu chuẩn mới để tạo ra một Decision khác mà không cần thu thập lại dữ liệu từ đầu.
Giá trị của một Fact cũng không còn dừng ở lần sử dụng đầu tiên.
Mỗi Policy mới lại mở thêm một ngữ cảnh để Fact cũ tiếp tục tạo ra giá trị. Chính sự tách biệt giữa Fact và Judgment này đã tạo ra một Fact Appreciation Mechanism
Điều mình thấy thú vị nhất là Newton Protocol không cố làm cho Data Oracles tạo ra nhiều Facts hơn. @NewtonProtocol làm cho mỗi Fact tiếp tục tạo ra giá trị sau khi đã được sinh ra. Khi hệ sinh thái có thêm Policies, những Facts cũ liên tục được diễn giải theo những tiêu chuẩn mới. Nếu quá trình đó tiếp tục lặp lại, Fact Appreciation Mechanism sẽ khiến giá trị của dữ liệu tăng lên cùng với sự phát triển của toàn bộ hệ sinh thái, thay vì chỉ dừng lại ở lần sử dụng đầu tiên.
#Newt $EVAA $NEWT
Vérifié
Article
Newton Protocol đang tạo ra những trải nghiệm gì cho developer?Tối hôm qua, mình ngồi ăn với Oanh-một phú bà đang mở một nhà hàng hải sản. Oanh ấy kể rằng tuần nào cũng đổi một vài món trong menu. Mình khá ngạc nhiên. "Tần suất thay đổi thế này không sợ khách khó theo à?" Oanh lắc đầu. "Mình không đổi cả menu. Mình chỉ thử một món mới mỗi lần. Nếu khách không thích thì bỏ luôn. Chi phí của một lần thử đủ nhỏ nên mình chẳng có lý do gì để ngại thử tiếp." Câu nói đó làm mình nhớ đến phần Testing Policies & Oracles trong docs của Newton Protocol. Ban đầu, mình chỉ nghĩ đây là một quy trình testing được viết chi tiết hơn bình thường. Thay vì nói chung chung "test trước khi deploy", @NewtonProtocol tách thành nhiều bước rất rõ: Unit Test cho Rego Policy, test riêng từng WASM Oracle, rồi mới Simulation toàn bộ policy trước khi đưa lên mạng lưới. Nhưng càng đọc, mình càng thấy họ không chỉ đang sắp xếp lại quy trình testing. Mỗi lớp testing đều đưa feedback đến sớm hơn một chút. Sai ở Rego Policy được phát hiện khi policy còn đứng riêng. Sai ở WASM Oracle được phát hiện trước khi Oracle kết hợp với những thành phần khác. Chỉ khi từng mảnh đều hoạt động đúng, toàn bộ Decision mới được kiểm tra trong bước Simulation. Điều này khiến chi phí của mỗi lần thử thay đổi hoàn toàn. Nếu một Decision sai, developer không cần chờ đến lúc Deployment mới biết. Phần lớn sai sót đã được giữ lại ở lớp testing có chi phí thấp hơn nhiều. Một thay đổi nhỏ không còn kéo theo cả một vòng Deployment chỉ để nhận về kết luận rằng ý tưởng ban đầu chưa đúng. Khi chi phí của mỗi lần thử giảm xuống, hành vi của developer cũng bắt đầu thay đổi. Nếu mỗi ý tưởng mới đều đòi hỏi một vòng Deployment dài, mọi người sẽ có xu hướng chỉ chọn những phương án mà họ tin tưởng nhất. Nhưng khi feedback xuất hiện gần như ngay sau mỗi thay đổi, việc thử thêm một cách viết Rego Policy hay một Decision khác trở nên ít rủi ro hơn rất nhiều. Không phải vì xác suất thành công cao hơn, mà vì chi phí của thất bại đã thấp đi. Lúc đó mình mới nhận ra thứ Newton Protocol đang tạo ra không chỉ là một quy trình testing tốt hơn. Họ đang tạo ra nhiều Experimental Optionality hơn cho developer. Mỗi vòng feedback ngắn không chỉ giúp sửa bug nhanh hơn. Nó còn giữ lại nhiều lựa chọn hơn trong suốt quá trình phát triển. Một ý tưởng có thể bị loại bỏ rất sớm với chi phí rất nhỏ, trong khi một ý tưởng khác có thể được thử ngay sau đó mà gần như không làm chậm cả dự án. Có lẽ đây mới là điều mình thấy thú vị ở Newton Protocol. Phần lớn chúng ta thường đánh giá một quy trình testing bằng khả năng phát hiện lỗi. Mình lại thấy giá trị lớn hơn nằm ở số lượng lựa chọn mà quy trình đó giúp developer giữ lại. Khi mỗi lần thử đều trở nên rẻ hơn, hệ thống không chỉ phát triển nhanh hơn mà còn có nhiều cơ hội khám phá những Decision tốt hơn. Nếu nhìn theo góc đó, Experimental Optionality có lẽ mới là thứ Newton Protocol đang âm thầm tối ưu, chứ không đơn thuần là số lượng bài test hay tốc độ Deployment. $EVAA $NEWT #Newt

Newton Protocol đang tạo ra những trải nghiệm gì cho developer?

Tối hôm qua, mình ngồi ăn với Oanh-một phú bà đang mở một nhà hàng hải sản. Oanh ấy kể rằng tuần nào cũng đổi một vài món trong menu.
Mình khá ngạc nhiên.
"Tần suất thay đổi thế này không sợ khách khó theo à?"
Oanh lắc đầu.
"Mình không đổi cả menu. Mình chỉ thử một món mới mỗi lần. Nếu khách không thích thì bỏ luôn. Chi phí của một lần thử đủ nhỏ nên mình chẳng có lý do gì để ngại thử tiếp."
Câu nói đó làm mình nhớ đến phần Testing Policies & Oracles trong docs của Newton Protocol.
Ban đầu, mình chỉ nghĩ đây là một quy trình testing được viết chi tiết hơn bình thường. Thay vì nói chung chung "test trước khi deploy", @NewtonProtocol tách thành nhiều bước rất rõ: Unit Test cho Rego Policy, test riêng từng WASM Oracle, rồi mới Simulation toàn bộ policy trước khi đưa lên mạng lưới.
Nhưng càng đọc, mình càng thấy họ không chỉ đang sắp xếp lại quy trình testing.
Mỗi lớp testing đều đưa feedback đến sớm hơn một chút. Sai ở Rego Policy được phát hiện khi policy còn đứng riêng. Sai ở WASM Oracle được phát hiện trước khi Oracle kết hợp với những thành phần khác. Chỉ khi từng mảnh đều hoạt động đúng, toàn bộ Decision mới được kiểm tra trong bước Simulation.
Điều này khiến chi phí của mỗi lần thử thay đổi hoàn toàn.
Nếu một Decision sai, developer không cần chờ đến lúc Deployment mới biết. Phần lớn sai sót đã được giữ lại ở lớp testing có chi phí thấp hơn nhiều. Một thay đổi nhỏ không còn kéo theo cả một vòng Deployment chỉ để nhận về kết luận rằng ý tưởng ban đầu chưa đúng.
Khi chi phí của mỗi lần thử giảm xuống, hành vi của developer cũng bắt đầu thay đổi.
Nếu mỗi ý tưởng mới đều đòi hỏi một vòng Deployment dài, mọi người sẽ có xu hướng chỉ chọn những phương án mà họ tin tưởng nhất. Nhưng khi feedback xuất hiện gần như ngay sau mỗi thay đổi, việc thử thêm một cách viết Rego Policy hay một Decision khác trở nên ít rủi ro hơn rất nhiều. Không phải vì xác suất thành công cao hơn, mà vì chi phí của thất bại đã thấp đi.
Lúc đó mình mới nhận ra thứ Newton Protocol đang tạo ra không chỉ là một quy trình testing tốt hơn.
Họ đang tạo ra nhiều Experimental Optionality hơn cho developer.
Mỗi vòng feedback ngắn không chỉ giúp sửa bug nhanh hơn. Nó còn giữ lại nhiều lựa chọn hơn trong suốt quá trình phát triển. Một ý tưởng có thể bị loại bỏ rất sớm với chi phí rất nhỏ, trong khi một ý tưởng khác có thể được thử ngay sau đó mà gần như không làm chậm cả dự án.
Có lẽ đây mới là điều mình thấy thú vị ở Newton Protocol.
Phần lớn chúng ta thường đánh giá một quy trình testing bằng khả năng phát hiện lỗi. Mình lại thấy giá trị lớn hơn nằm ở số lượng lựa chọn mà quy trình đó giúp developer giữ lại. Khi mỗi lần thử đều trở nên rẻ hơn, hệ thống không chỉ phát triển nhanh hơn mà còn có nhiều cơ hội khám phá những Decision tốt hơn. Nếu nhìn theo góc đó, Experimental Optionality có lẽ mới là thứ Newton Protocol đang âm thầm tối ưu, chứ không đơn thuần là số lượng bài test hay tốc độ Deployment.
$EVAA $NEWT #Newt
Vérifié
Trước khi deploy một policy, Newton Protocol yêu cầu đi qua ba bước: Unit Test cho Rego Policy, test riêng từng WASM Oracle, rồi mới simulate toàn bộ policy với real-world data. Ba bước này không đơn thuần kiểm tra từng thành phần riêng lẻ. Mà được sắp xếp để liên tục thu hẹp những điều còn chưa biết về một decision. Sau round validation, scope của những gì phải chờ đến deployment mới xác nhận lại ngày càng nhỏ đi. Thông thường, deployment là thời điểm quan trọng nhất để biết một decision có hoạt động như kỳ vọng hay không. Dù đã trải qua nhiều round testing, môi trường production vẫn là nơi nhiều đội ngũ chấp nhận học những điều họ chưa thể biết trước. Còn với Newton Protocol, phần lớn process đó diễn ra ngay trong development. Rego Policy, WASM Oracle và data được ghép lại để simulate toàn bộ decision trước khi deployment diễn ra. Điều đó khiến mình nghĩ Newton Protocol đang hướng tới kiến trúc Pre-validated Deployment. Lúc này, deployment chủ yếu trở thành bước release một decision đã được validated, thay vì là nơi hệ thống tiếp tục học xem decision đó đúng hay sai. Điều mình thấy đáng chú ý là Newton Protocol dường như đang thay đổi vai trò của Deployment. Khi Deployment không còn là nơi tạo ra Validation, nó cũng không còn là nơi hệ thống học xem một Decision đúng hay sai. Có lẽ đó mới là ý nghĩa của kiến trúc Pre-validated Deployment. Không phải một quy trình Testing đầy đủ hơn, mà là một architectural principle dịch chuyển hoạt động Validation khỏi Production. Mình khá tò mò liệu đây sẽ chỉ là một lựa chọn của Newton Protocol, hay sẽ dần trở thành cách nhiều hệ thống software được xây dựng trong tương lai? $EVAA $NEWT #Newt @NewtonProtocol
Trước khi deploy một policy, Newton Protocol yêu cầu đi qua ba bước: Unit Test cho Rego Policy, test riêng từng WASM Oracle, rồi mới simulate toàn bộ policy với real-world data.
Ba bước này không đơn thuần kiểm tra từng thành phần riêng lẻ. Mà được sắp xếp để liên tục thu hẹp những điều còn chưa biết về một decision. Sau round validation, scope của những gì phải chờ đến deployment mới xác nhận lại ngày càng nhỏ đi.
Thông thường, deployment là thời điểm quan trọng nhất để biết một decision có hoạt động như kỳ vọng hay không. Dù đã trải qua nhiều round testing, môi trường production vẫn là nơi nhiều đội ngũ chấp nhận học những điều họ chưa thể biết trước.
Còn với Newton Protocol, phần lớn process đó diễn ra ngay trong development. Rego Policy, WASM Oracle và data được ghép lại để simulate toàn bộ decision trước khi deployment diễn ra. Điều đó khiến mình nghĩ Newton Protocol đang hướng tới kiến trúc Pre-validated Deployment.
Lúc này, deployment chủ yếu trở thành bước release một decision đã được validated, thay vì là nơi hệ thống tiếp tục học xem decision đó đúng hay sai.
Điều mình thấy đáng chú ý là Newton Protocol dường như đang thay đổi vai trò của Deployment. Khi Deployment không còn là nơi tạo ra Validation, nó cũng không còn là nơi hệ thống học xem một Decision đúng hay sai.
Có lẽ đó mới là ý nghĩa của kiến trúc Pre-validated Deployment. Không phải một quy trình Testing đầy đủ hơn, mà là một architectural principle dịch chuyển hoạt động Validation khỏi Production. Mình khá tò mò liệu đây sẽ chỉ là một lựa chọn của Newton Protocol, hay sẽ dần trở thành cách nhiều hệ thống software được xây dựng trong tương lai? $EVAA $NEWT #Newt @NewtonProtocol
Article
Vì sao Newton Protocol lại chấp nhận làm mỗi lần deploy phức tạp hơn?2 giờ đêm hôm qua, mình ngồi nhậu khuya với một người bạn đang làm DevOps ở một công ty phần mềm. Câu chuyện vô tình chuyển sang quy trình deploy. Mình hỏi: "Sao công ty cậu mỗi lần deploy lại bắt cấu hình lại một đống credential với secret? Không giữ nguyên từ bản cũ cho nhanh à?" Cậu ấy cười. "Nhanh thì đúng là nhanh. Nhưng cái gì được giữ lại quá lâu thì sớm muộn cũng chẳng ai nhớ vì sao nó còn tồn tại." Mình hỏi tiếp: "Nhưng deploy nào cũng làm lại thì mất thời gian hơn nhiều." "Đúng. Mỗi lần deploy sẽ tốn thêm vài phút. Nhưng nếu không làm vậy, vài năm sau chẳng ai dám xóa bất kỳ permission nào vì không ai chắc nó còn được dùng hay không. Lúc đó mới là thứ thật sự đắt." Câu nói đó làm mình nhớ đến một chi tiết mình vừa đọc trong docs Uploading & Accessing Secrets in Oracles của Newton Protocol. Secrets không được gắn với Data Oracle. Chúng được scope theo PolicyData Address. Điều đó cũng đồng nghĩa nếu PolicyData được deploy lại và Address thay đổi, toàn bộ Secrets phải được upload lại từ đầu. Ban đầu mình nghĩ đây chỉ là hệ quả của việc Address thay đổi. Nhưng càng nhìn kỹ, mình càng thấy Newton Protocol đang chấp nhận tăng Deployment Cost để đổi lấy một thứ có giá trị hơn nhiều trong suốt vòng đời của hệ thống. Lúc này, Capability không đi theo source code của Data Oracle. Hai Oracle có thể chạy cùng một logic, nhưng nếu chúng thuộc hai PolicyData Address khác nhau thì chúng không tự động có cùng quyền truy cập vào Secrets. Muốn deployment mới sử dụng được những Secrets đó, Capability phải được thiết lập lại từ đầu. Điều này khiến mỗi lần deploy không còn đơn thuần là thay thế một phiên bản cũ bằng một phiên bản mới. Nó trở thành thời điểm toàn bộ Capability được xem xét lại. Không có Secrets nào tự động đi theo deployment mới. Không có permission nào tiếp tục tồn tại chỉ vì nó từng tồn tại ở phiên bản trước. Mỗi Capability đều phải được gắn lại với PolicyData Address mới trước khi hệ thống tiếp tục hoạt động. Chi phí của mỗi lần deployment rõ ràng tăng lên. Developer phải upload lại Secrets. Operator phải cấu hình lại Capability. Quy trình release cũng nhiều bước hơn trước. Nhưng đổi lại, hệ thống gần như không có cơ hội mang theo những permission đã hết giá trị chỉ vì chúng được cấp từ nhiều phiên bản trước. Những Capability không còn cần thiết sẽ tự biến mất nếu không được cấp lại. Mỗi deployment đều buộc đội ngũ phải trả lời lại một câu hỏi rất cơ bản: deployment này thực sự cần những quyền nào để vận hành? Điều đó làm Lifetime Maintenance thay đổi theo một hướng khá thú vị. Ở nhiều hệ thống, permission thường chỉ tăng lên theo thời gian. Mỗi lần nâng cấp lại thêm một vài quyền mới, nhưng rất hiếm khi có ai quay lại kiểm tra những quyền cũ còn cần thiết hay không. Sau nhiều phiên bản, chi phí lớn nhất không còn nằm ở việc deploy, mà nằm ở việc phải duy trì một tập permission ngày càng phức tạp và khó hiểu. Newton Protocol lại đưa quá trình rà soát đó vào ngay mỗi lần deployment. Thứ tăng lên là Deployment Cost. Thứ giảm xuống là Lifetime Maintenance Cost của toàn bộ hệ thống. Có lẽ đây mới là điều mình thấy đáng chú ý ở Newton Protocol. Thoạt nhìn, việc buộc upload lại Secrets mỗi khi PolicyData Address thay đổi giống như một quyết định làm giảm trải nghiệm của developer. Nhưng nhìn theo vòng đời của hệ thống, Newton Protocol dường như đang chấp nhận tăng chi phí ở một thời điểm ngắn để tránh việc chi phí bảo trì tiếp tục tích lũy qua nhiều năm vận hành. Trade off lúc này khá rõ: Newton Protocol không cố tối ưu Deployment Cost. @NewtonProtocol tối ưu Lifetime Maintenance Cost, và chấp nhận trả giá ngay từ mỗi lần deploy để đổi lấy một hệ thống dễ kiểm soát hơn trong suốt vòng đời của nó. $LAB $TRIA $NEWT #Newt

Vì sao Newton Protocol lại chấp nhận làm mỗi lần deploy phức tạp hơn?

2 giờ đêm hôm qua, mình ngồi nhậu khuya với một người bạn đang làm DevOps ở một công ty phần mềm. Câu chuyện vô tình chuyển sang quy trình deploy.
Mình hỏi:
"Sao công ty cậu mỗi lần deploy lại bắt cấu hình lại một đống credential với secret? Không giữ nguyên từ bản cũ cho nhanh à?"
Cậu ấy cười.
"Nhanh thì đúng là nhanh. Nhưng cái gì được giữ lại quá lâu thì sớm muộn cũng chẳng ai nhớ vì sao nó còn tồn tại."
Mình hỏi tiếp:
"Nhưng deploy nào cũng làm lại thì mất thời gian hơn nhiều."
"Đúng. Mỗi lần deploy sẽ tốn thêm vài phút. Nhưng nếu không làm vậy, vài năm sau chẳng ai dám xóa bất kỳ permission nào vì không ai chắc nó còn được dùng hay không. Lúc đó mới là thứ thật sự đắt."
Câu nói đó làm mình nhớ đến một chi tiết mình vừa đọc trong docs Uploading & Accessing Secrets in Oracles của Newton Protocol.
Secrets không được gắn với Data Oracle. Chúng được scope theo PolicyData Address. Điều đó cũng đồng nghĩa nếu PolicyData được deploy lại và Address thay đổi, toàn bộ Secrets phải được upload lại từ đầu.
Ban đầu mình nghĩ đây chỉ là hệ quả của việc Address thay đổi.
Nhưng càng nhìn kỹ, mình càng thấy Newton Protocol đang chấp nhận tăng Deployment Cost để đổi lấy một thứ có giá trị hơn nhiều trong suốt vòng đời của hệ thống.
Lúc này, Capability không đi theo source code của Data Oracle. Hai Oracle có thể chạy cùng một logic, nhưng nếu chúng thuộc hai PolicyData Address khác nhau thì chúng không tự động có cùng quyền truy cập vào Secrets. Muốn deployment mới sử dụng được những Secrets đó, Capability phải được thiết lập lại từ đầu.
Điều này khiến mỗi lần deploy không còn đơn thuần là thay thế một phiên bản cũ bằng một phiên bản mới.
Nó trở thành thời điểm toàn bộ Capability được xem xét lại.
Không có Secrets nào tự động đi theo deployment mới. Không có permission nào tiếp tục tồn tại chỉ vì nó từng tồn tại ở phiên bản trước. Mỗi Capability đều phải được gắn lại với PolicyData Address mới trước khi hệ thống tiếp tục hoạt động.
Chi phí của mỗi lần deployment rõ ràng tăng lên. Developer phải upload lại Secrets. Operator phải cấu hình lại Capability. Quy trình release cũng nhiều bước hơn trước.
Nhưng đổi lại, hệ thống gần như không có cơ hội mang theo những permission đã hết giá trị chỉ vì chúng được cấp từ nhiều phiên bản trước. Những Capability không còn cần thiết sẽ tự biến mất nếu không được cấp lại. Mỗi deployment đều buộc đội ngũ phải trả lời lại một câu hỏi rất cơ bản: deployment này thực sự cần những quyền nào để vận hành?
Điều đó làm Lifetime Maintenance thay đổi theo một hướng khá thú vị.
Ở nhiều hệ thống, permission thường chỉ tăng lên theo thời gian. Mỗi lần nâng cấp lại thêm một vài quyền mới, nhưng rất hiếm khi có ai quay lại kiểm tra những quyền cũ còn cần thiết hay không. Sau nhiều phiên bản, chi phí lớn nhất không còn nằm ở việc deploy, mà nằm ở việc phải duy trì một tập permission ngày càng phức tạp và khó hiểu.
Newton Protocol lại đưa quá trình rà soát đó vào ngay mỗi lần deployment. Thứ tăng lên là Deployment Cost. Thứ giảm xuống là Lifetime Maintenance Cost của toàn bộ hệ thống.
Có lẽ đây mới là điều mình thấy đáng chú ý ở Newton Protocol.
Thoạt nhìn, việc buộc upload lại Secrets mỗi khi PolicyData Address thay đổi giống như một quyết định làm giảm trải nghiệm của developer. Nhưng nhìn theo vòng đời của hệ thống, Newton Protocol dường như đang chấp nhận tăng chi phí ở một thời điểm ngắn để tránh việc chi phí bảo trì tiếp tục tích lũy qua nhiều năm vận hành.
Trade off lúc này khá rõ: Newton Protocol không cố tối ưu Deployment Cost. @NewtonProtocol tối ưu Lifetime Maintenance Cost, và chấp nhận trả giá ngay từ mỗi lần deploy để đổi lấy một hệ thống dễ kiểm soát hơn trong suốt vòng đời của nó.
$LAB $TRIA $NEWT #Newt
Hôm trước, mình đang coi phần Writing Data Oracles của Newton Protocol thì gặp một điều khá hay: nếu một HTTP Fetch thất bại, Data Oracle không được bỏ qua lỗi hay trả về dữ liệu mặc định. Thay vào đó, Oracle trả về một namespaced error để Rego Policy có thể deny ngay Decision. Có vẻ Newton Protocol đang thay đổi vị trí của failure trong quá trình tạo Decision. Một lỗi không còn chỉ là thông tin để Developer đọc sau khi hệ thống chạy xong. Ngay khi Data Oracle trả về namespaced error, trạng thái thất bại đó đã trở thành một phần của dữ liệu mà Rego Policy phải đánh giá. Decision không bị dừng vì hệ thống xảy ra lỗi. Nó bị dừng vì hệ thống vừa nhận thêm một tín hiệu mới. Mình bỗng nhận ra Newton Protocol đang lựa chọn một Fail-Closed Architecture. Architecture này không cố che đi những gì chưa biết để tiếp tục thực thi. Mà nó mở rộng khái niệm Evidence. Không chỉ dữ liệu được thu thập thành công mới có giá trị. Việc Data Oracle không thể xác nhận một thông tin cũng trở thành một loại Evidence mà Rego Policy phải đánh giá. Khi failure đã được xem là Evidence, Decision cũng không còn quyền bỏ qua nó. Một Decision không thể tiếp tục chỉ vì phần dữ liệu còn lại trông có vẻ hợp lý. Nó phải phản ánh toàn bộ Evidence mà hệ thống đang có, kể cả những gì không thể được xác nhận. Nếu Evidence chưa đủ để chống đỡ một kết luận, Decision không được phép tự hoàn thiện phần còn thiếu bằng giả định. Nhìn theo góc đó, Fail-Closed Architecture của Newton Protocol không còn chỉ là một cơ chế xử lý failure. Nó buộc mọi Decision phải trung thực với Evidence mà mình thực sự có, thay vì với Evidence mà hệ thống mong muốn có. #Newt $LAB $TRIA $NEWT @NewtonProtocol
Hôm trước, mình đang coi phần Writing Data Oracles của Newton Protocol thì gặp một điều khá hay: nếu một HTTP Fetch thất bại, Data Oracle không được bỏ qua lỗi hay trả về dữ liệu mặc định. Thay vào đó, Oracle trả về một namespaced error để Rego Policy có thể deny ngay Decision.
Có vẻ Newton Protocol đang thay đổi vị trí của failure trong quá trình tạo Decision. Một lỗi không còn chỉ là thông tin để Developer đọc sau khi hệ thống chạy xong. Ngay khi Data Oracle trả về namespaced error, trạng thái thất bại đó đã trở thành một phần của dữ liệu mà Rego Policy phải đánh giá. Decision không bị dừng vì hệ thống xảy ra lỗi. Nó bị dừng vì hệ thống vừa nhận thêm một tín hiệu mới.
Mình bỗng nhận ra Newton Protocol đang lựa chọn một Fail-Closed Architecture. Architecture này không cố che đi những gì chưa biết để tiếp tục thực thi. Mà nó mở rộng khái niệm Evidence. Không chỉ dữ liệu được thu thập thành công mới có giá trị. Việc Data Oracle không thể xác nhận một thông tin cũng trở thành một loại Evidence mà Rego Policy phải đánh giá.
Khi failure đã được xem là Evidence, Decision cũng không còn quyền bỏ qua nó. Một Decision không thể tiếp tục chỉ vì phần dữ liệu còn lại trông có vẻ hợp lý. Nó phải phản ánh toàn bộ Evidence mà hệ thống đang có, kể cả những gì không thể được xác nhận. Nếu Evidence chưa đủ để chống đỡ một kết luận, Decision không được phép tự hoàn thiện phần còn thiếu bằng giả định.
Nhìn theo góc đó, Fail-Closed Architecture của Newton Protocol không còn chỉ là một cơ chế xử lý failure. Nó buộc mọi Decision phải trung thực với Evidence mà mình thực sự có, thay vì với Evidence mà hệ thống mong muốn có. #Newt $LAB $TRIA $NEWT @NewtonProtocol
Vérifié
Article
Thứ Newton Protocol kế thừa, nhưng không phải ai cũng thấy8 giờ tối hôm qua, ở một quán cà phê nhỏ trên phố Thiền Quang, mình có ngồi nói chuyện với Trinh-một HR kì cựu. Bọn mình nói về chuyện tuyển người. Mình hỏi: "Nếu có hai ứng viên, một người có rất nhiều Certificates, một người từng làm nhiều năm ở một công ty nổi tiếng nhưng gần như không khoe chứng chỉ nào, Bạn chọn ai?" Trinh trả lời ngay. "Tôi sẽ chọn người thứ hai." Mình khá bất ngờ nên hỏi tiếp. "Vì sao? Chẳng phải Certificates đã chứng minh năng lực ứng viên rồi, sao lại loại họ?" Trinh cười nhẹ. "Certificates chỉ chứng minh họ từng vượt qua một tiêu chuẩn. Cái tôi muốn biết hơn là họ đã được rèn trong môi trường nào. Một người làm nhiều năm ở một tổ chức có kỷ luật thường mang theo cả cách suy nghĩ, cách review code, cách quản lý rủi ro và cách ra quyết định. Mấy thứ đó mới là quan trọng." Câu nói đó làm mình nhớ đến việc Newton Protocol được phát triển bởi Magic Labs. Ban đầu mình nghĩ giá trị lớn nhất của mối liên hệ này nằm ở thương hiệu. Nhưng càng tìm hiểu, mình càng thấy có lẽ nó nằm ở một thứ khác. Magic Labs sở hữu những Certificates như SOC 2 Type II, ISO 27001, GDPR và CCPA. Về mặt pháp lý và kỹ thuật, những Certificates này gần như không thể được chuyển giao sang một Decentralized Protocol như Newton. Điều thực sự có thể được mang sang không phải các Certificates. Mà là tư duy đã tạo ra chúng. SOC 2 Type II phản ánh khả năng duy trì Internal Controls một cách nhất quán. ISO 27001 biến Risk Management thành một phần của Software Development Lifecycle. Còn GDPR và CCPA buộc một tổ chức phải mặc định rằng User Data thuộc về người dùng và mọi Access đều cần có giới hạn rõ ràng. Theo mình, những tiêu chuẩn đó không chỉ tạo ra một sản phẩm. Chúng tạo ra Engineering Discipline. Và khi một đội ngũ đã vận hành nhiều năm dưới Engineering Discipline đó tiếp tục phát triển Newton Protocol, mình nghĩ rằng điều được mang sang không phải là các Certificates, mà là chính cách đội ngũ nhìn nhận về chất lượng, rủi ro và trách nhiệm. Theo thời gian, Engineering Discipline dần trở thành Organizational Memory. Rồi từ Organizational Memory, nó tiếp tục tiến hóa thành Institutional DNA. Điều mình thấy thú vị là Institutional DNA hiếm khi chỉ ảnh hưởng đến chất lượng của một dòng code. Nó bắt đầu ảnh hưởng đến chất lượng của mọi quyết định. Một tổ chức có thể chọn đi nhanh hay đi chậm. Có thể chọn tối ưu tốc độ hay ưu tiên độ an toàn. Có thể chọn sửa sau khi xảy ra sự cố, hoặc đầu tư nhiều hơn để ngăn sự cố ngay từ đầu. Những lựa chọn đó hiếm khi được quyết định bởi một framework hay một ngôn ngữ lập trình. Chúng được quyết định bởi Institutional DNA. Lúc này, lợi thế dài hạn của Newton Protocol có lẽ không nằm ở việc sở hữu một công nghệ mà đối thủ không thể sao chép. Mà nằm ở việc mỗi quyết định kiến trúc trong nhiều năm tới đều có thể được định hình bởi cùng một Institutional DNA đã được hình thành từ trước. Đó cũng là thứ mình muốn quan sát nhất. Không phải Newton Protocol có xây nhanh hơn hay nhiều tính năng hơn. Mà là khi phải đánh đổi giữa tăng trưởng và kỷ luật kỹ thuật, Institutional DNA đó sẽ khiến @NewtonProtocol đưa ra những lựa chọn khác gì so với phần còn lại của thị trường. $VANRY $LAB $NEWT #Newt

Thứ Newton Protocol kế thừa, nhưng không phải ai cũng thấy

8 giờ tối hôm qua, ở một quán cà phê nhỏ trên phố Thiền Quang, mình có ngồi nói chuyện với Trinh-một HR kì cựu. Bọn mình nói về chuyện tuyển người.
Mình hỏi: "Nếu có hai ứng viên, một người có rất nhiều Certificates, một người từng làm nhiều năm ở một công ty nổi tiếng nhưng gần như không khoe chứng chỉ nào, Bạn chọn ai?"
Trinh trả lời ngay.
"Tôi sẽ chọn người thứ hai."
Mình khá bất ngờ nên hỏi tiếp.
"Vì sao? Chẳng phải Certificates đã chứng minh năng lực ứng viên rồi, sao lại loại họ?"
Trinh cười nhẹ.
"Certificates chỉ chứng minh họ từng vượt qua một tiêu chuẩn. Cái tôi muốn biết hơn là họ đã được rèn trong môi trường nào. Một người làm nhiều năm ở một tổ chức có kỷ luật thường mang theo cả cách suy nghĩ, cách review code, cách quản lý rủi ro và cách ra quyết định. Mấy thứ đó mới là quan trọng."
Câu nói đó làm mình nhớ đến việc Newton Protocol được phát triển bởi Magic Labs.
Ban đầu mình nghĩ giá trị lớn nhất của mối liên hệ này nằm ở thương hiệu.
Nhưng càng tìm hiểu, mình càng thấy có lẽ nó nằm ở một thứ khác.
Magic Labs sở hữu những Certificates như SOC 2 Type II, ISO 27001, GDPR và CCPA.
Về mặt pháp lý và kỹ thuật, những Certificates này gần như không thể được chuyển giao sang một Decentralized Protocol như Newton.
Điều thực sự có thể được mang sang không phải các Certificates.
Mà là tư duy đã tạo ra chúng.
SOC 2 Type II phản ánh khả năng duy trì Internal Controls một cách nhất quán.
ISO 27001 biến Risk Management thành một phần của Software Development Lifecycle.
Còn GDPR và CCPA buộc một tổ chức phải mặc định rằng User Data thuộc về người dùng và mọi Access đều cần có giới hạn rõ ràng.
Theo mình, những tiêu chuẩn đó không chỉ tạo ra một sản phẩm.
Chúng tạo ra Engineering Discipline.
Và khi một đội ngũ đã vận hành nhiều năm dưới Engineering Discipline đó tiếp tục phát triển Newton Protocol, mình nghĩ rằng điều được mang sang không phải là các Certificates, mà là chính cách đội ngũ nhìn nhận về chất lượng, rủi ro và trách nhiệm.
Theo thời gian, Engineering Discipline dần trở thành Organizational Memory.
Rồi từ Organizational Memory, nó tiếp tục tiến hóa thành Institutional DNA.
Điều mình thấy thú vị là Institutional DNA hiếm khi chỉ ảnh hưởng đến chất lượng của một dòng code.
Nó bắt đầu ảnh hưởng đến chất lượng của mọi quyết định.
Một tổ chức có thể chọn đi nhanh hay đi chậm.
Có thể chọn tối ưu tốc độ hay ưu tiên độ an toàn.
Có thể chọn sửa sau khi xảy ra sự cố, hoặc đầu tư nhiều hơn để ngăn sự cố ngay từ đầu.
Những lựa chọn đó hiếm khi được quyết định bởi một framework hay một ngôn ngữ lập trình.
Chúng được quyết định bởi Institutional DNA.
Lúc này, lợi thế dài hạn của Newton Protocol có lẽ không nằm ở việc sở hữu một công nghệ mà đối thủ không thể sao chép.
Mà nằm ở việc mỗi quyết định kiến trúc trong nhiều năm tới đều có thể được định hình bởi cùng một Institutional DNA đã được hình thành từ trước.
Đó cũng là thứ mình muốn quan sát nhất.
Không phải Newton Protocol có xây nhanh hơn hay nhiều tính năng hơn.
Mà là khi phải đánh đổi giữa tăng trưởng và kỷ luật kỹ thuật, Institutional DNA đó sẽ khiến @NewtonProtocol đưa ra những lựa chọn khác gì so với phần còn lại của thị trường.
$VANRY $LAB $NEWT #Newt
Vérifié
Newton Protocol được phát triển bởi Magic Labs, đội ngũ đứng sau nhiều sản phẩm đáp ứng các Enterprise Standards như SOC 2 Type II và ISO 27001. Các Enterprise Standards này yêu cầu một tổ chức phải có Development Process đủ chặt chẽ để quản lý Change, đánh giá Risk và bảo đảm mọi Decision đều có thể được Trace trong suốt Development Lifecycle. Quan trọng hơn, Development Process đó không chỉ phục vụ một Release. Nó phải đủ nhất quán để tiếp tục được sử dụng qua nhiều Release, bất kể Product liên tục thay đổi. Theo mình, khi đội ngũ Magic Labs làm việc nhiều năm dưới cùng một Development Process, Process đó sẽ không còn chỉ là một Workflow nội bộ. Mà trở thành cách mặc định để đội ngũ tiếp cận vấn đề và đưa ra Decision. Đó cũng là lý do mình cho rằng khi phát triển Newton Protocol, điều Magic Labs mang theo không phải các Enterprise Standards, mà là một Process-First Mindset. Với mindset đó, mỗi Release của Newton Protocol vẫn có thể rất khác nhau vì phải giải quyết những bài toán mới. Nhưng mọi thay đổi đều xuất phát từ cùng một Decision Framework, cùng một cách đánh giá Risk và cùng một Engineering Process. Sự nhất quán đó không nằm ở từng Release, mà ở cách Newton Protocol được Engineered. Khi @NewtonProtocol tiếp tục mở rộng, các Features mới sẽ không trở thành những mảnh ghép được tạo ra từ nhiều Engineering Philosophy khác nhau. Chúng vẫn được xây dựng từ cùng một nền tảng tư duy đã định hình nên Protocol ngay từ đầu. Có lẽ, thứ quý giá nhất được đội ngũ Magic Labs mang theo khi phát triển Newton Protocol là Process-First Mindset. Nó giúp Newton Protocol tiếp tục phát triển, mở rộng mà vẫn giữ được sự nhất quán trong cách được Engineered.#Newt $LAB $NEWT
Newton Protocol được phát triển bởi Magic Labs, đội ngũ đứng sau nhiều sản phẩm đáp ứng các Enterprise Standards như SOC 2 Type II và ISO 27001.
Các Enterprise Standards này yêu cầu một tổ chức phải có Development Process đủ chặt chẽ để quản lý Change, đánh giá Risk và bảo đảm mọi Decision đều có thể được Trace trong suốt Development Lifecycle.
Quan trọng hơn, Development Process đó không chỉ phục vụ một Release. Nó phải đủ nhất quán để tiếp tục được sử dụng qua nhiều Release, bất kể Product liên tục thay đổi.
Theo mình, khi đội ngũ Magic Labs làm việc nhiều năm dưới cùng một Development Process, Process đó sẽ không còn chỉ là một Workflow nội bộ. Mà trở thành cách mặc định để đội ngũ tiếp cận vấn đề và đưa ra Decision. Đó cũng là lý do mình cho rằng khi phát triển Newton Protocol, điều Magic Labs mang theo không phải các Enterprise Standards, mà là một Process-First Mindset.
Với mindset đó, mỗi Release của Newton Protocol vẫn có thể rất khác nhau vì phải giải quyết những bài toán mới. Nhưng mọi thay đổi đều xuất phát từ cùng một Decision Framework, cùng một cách đánh giá Risk và cùng một Engineering Process.
Sự nhất quán đó không nằm ở từng Release, mà ở cách Newton Protocol được Engineered. Khi @NewtonProtocol tiếp tục mở rộng, các Features mới sẽ không trở thành những mảnh ghép được tạo ra từ nhiều Engineering Philosophy khác nhau. Chúng vẫn được xây dựng từ cùng một nền tảng tư duy đã định hình nên Protocol ngay từ đầu.
Có lẽ, thứ quý giá nhất được đội ngũ Magic Labs mang theo khi phát triển Newton Protocol là Process-First Mindset. Nó giúp Newton Protocol tiếp tục phát triển, mở rộng mà vẫn giữ được sự nhất quán trong cách được Engineered.#Newt $LAB $NEWT
Vérifié
Đọc Integration Guide của Newton Protocol, có một chi tiết mình thấy khá lạ: Data Oracle có thể được viết bằng JavaScript, Rust hoặc Python. Lúc đầu, mình nghĩ @NewtonProtocol chỉ đang cố gắng mở rộng lựa chọn cho builders. Nhưng điều đáng chú ý không nằm ở programming language. Mà là dù được viết bằng language nào, cuối cùng tất cả đều compile thành cùng một WIT interface. Lúc đó mình mới nhận ra JavaScript, Rust hay Python chỉ là biểu hiện bên ngoài. Thứ thay đổi nhanh nhất trong mỗi ecosystem chưa bao giờ là programming language, mà là innovation. Python liên tục xuất hiện AI packages mới. Rust có những optimization về performance và security. JavaScript lại phát triển rất nhanh ở application layer và tooling. Mỗi ecosystem đều có nhịp tiến hóa riêng, và không ai biết breakthrough tiếp theo sẽ đến từ đâu. Nếu một protocol gắn chặt với một programming language ecosystem, nó cũng vô tình đặt cược rằng những innovation quan trọng nhất sẽ tiếp tục xuất hiện ở đó. Những gì sinh ra bên ngoài hoặc phải được port lại, hoặc không bao giờ đi vào hệ thống. Newton Protocol dường như chọn cách đứng ngoài cuộc đua và chọn vị thế Innovation Neutrality. Newton Protocol không chuẩn hóa nơi innovation được tạo ra. Điều duy nhất được chuẩn hóa là cách innovation xuất hiện trước protocol thông qua một interface chung. Khi đó, sự tiến hóa của Data Oracle không phụ thuộc vào một programming language hay một developer community duy nhất. Một breakthrough xuất hiện ở Python, Rust hay JavaScript đều có thể trở thành một phần của Newton Protocol. Đó cũng là lợi thế của vị thế Innovation Neutrality. Newton Protocol không cần đặt cược tương lai vào bất kỳ programming language ecosystem nào. #Newt $LAB $HMSTR $NEWT
Đọc Integration Guide của Newton Protocol, có một chi tiết mình thấy khá lạ: Data Oracle có thể được viết bằng JavaScript, Rust hoặc Python. Lúc đầu, mình nghĩ @NewtonProtocol chỉ đang cố gắng mở rộng lựa chọn cho builders.
Nhưng điều đáng chú ý không nằm ở programming language. Mà là dù được viết bằng language nào, cuối cùng tất cả đều compile thành cùng một WIT interface.
Lúc đó mình mới nhận ra JavaScript, Rust hay Python chỉ là biểu hiện bên ngoài. Thứ thay đổi nhanh nhất trong mỗi ecosystem chưa bao giờ là programming language, mà là innovation. Python liên tục xuất hiện AI packages mới. Rust có những optimization về performance và security. JavaScript lại phát triển rất nhanh ở application layer và tooling. Mỗi ecosystem đều có nhịp tiến hóa riêng, và không ai biết breakthrough tiếp theo sẽ đến từ đâu.
Nếu một protocol gắn chặt với một programming language ecosystem, nó cũng vô tình đặt cược rằng những innovation quan trọng nhất sẽ tiếp tục xuất hiện ở đó. Những gì sinh ra bên ngoài hoặc phải được port lại, hoặc không bao giờ đi vào hệ thống.
Newton Protocol dường như chọn cách đứng ngoài cuộc đua và chọn vị thế Innovation Neutrality. Newton Protocol không chuẩn hóa nơi innovation được tạo ra. Điều duy nhất được chuẩn hóa là cách innovation xuất hiện trước protocol thông qua một interface chung.
Khi đó, sự tiến hóa của Data Oracle không phụ thuộc vào một programming language hay một developer community duy nhất. Một breakthrough xuất hiện ở Python, Rust hay JavaScript đều có thể trở thành một phần của Newton Protocol. Đó cũng là lợi thế của vị thế Innovation Neutrality. Newton Protocol không cần đặt cược tương lai vào bất kỳ programming language ecosystem nào. #Newt $LAB $HMSTR $NEWT
Vérifié
Article
Liệu Newton Protocol có xác định rõ decision nào nên thuộc về protocol?Hôm trước mình xem một pull request của một dự án mã nguồn mở. Phần code không có gì đặc biệt, nhưng dưới phần review lại nổ ra một cuộc tranh luận khá dài. Một người đề nghị viết lại bằng Rust. Người khác muốn giữ Python vì tận dụng được toàn bộ libraries hiện có. Điều thú vị là cuối cùng không ai tranh luận về programming language nữa. Họ chỉ thống nhất một điều: miễn input và output không thay đổi thì phần còn lại có thể để mỗi người tự quyết. Đọc Integration Guide của Newton Protocol, mình lại nhớ tới đoạn thảo luận đó. Data Oracle có thể được viết bằng JavaScript, Rust hoặc Python. Ban đầu mình nghĩ đây chỉ là cách Newton Protocol mở rộng tệp developers. Nhưng rồi mình tự hỏi, nếu mục tiêu chỉ là onboarding thì JavaScript có lẽ đã đủ. Điều khiến mình chú ý hơn lại nằm ở câu phía sau. Dù được viết bằng programming language nào, cuối cùng tất cả đều compile thành cùng một WIT interface. Lúc đó mình nhận ra Newton Protocol chỉ chuẩn hóa đúng nơi Data Oracle bắt đầu tương tác với protocol. Trước WIT interface, builders vẫn có thể lựa chọn programming language, toolchain hay workflow theo cách của riêng mình. Sau WIT interface, mọi Data Oracle đều phải giao tiếp với mạng lưới theo cùng một cách. Thoạt nhìn, đây chỉ là một lựa chọn về kiến trúc. Nhưng càng nghĩ mình càng thấy WIT interface đang làm nhiều hơn việc kết nối các thành phần. Nó cũng xác định rất rõ decision nào Newton Protocol sẽ đứng ra chịu trách nhiệm, và decision nào vẫn thuộc về builder. Những decision ảnh hưởng trực tiếp đến khả năng coordination của toàn bộ mạng lưới, như cách Data Oracle giao tiếp với protocol, cần được Newton Protocol chuẩn hóa. Nhưng programming language, toolchain hay workflow lại chỉ quyết định cách builder tạo ra Data Oracle. Chúng không làm thay đổi cách Data Oracle phối hợp với phần còn lại của hệ thống. Điều này nghe có vẻ nhỏ, nhưng mình thấy đây mới là điểm thú vị. Không phải cứ liên quan đến Data Oracle thì Newton Protocol đều phải là bên quyết định. @NewtonProtocol dường như luôn dừng lại ở đúng nơi trách nhiệm của protocol bắt đầu, thay vì mở rộng sang cả quá trình phát triển phần mềm của builder. Có lẽ vì vậy mình đọc lựa chọn này như một nguyên tắc Decision Discipline. Thay vì cố đưa mọi decision về phía protocol, Newton Protocol chỉ nhận những decision trực tiếp quyết định khả năng vận hành của mạng lưới, còn những decision còn lại vẫn để builders tự lựa chọn. Điều mình thấy đáng chú ý là nguyên tắc này không làm Newton Protocol mất đi quyền quyết định. Ngược lại, nó khiến ranh giới trách nhiệm của dự án trở nên rõ ràng hơn. Builder biết đâu là phần mình có thể tự tối ưu. Newton Protocol cũng chỉ cần tập trung chuẩn hóa những gì thực sự cần để toàn bộ hệ thống có thể phối hợp ổn định. Decision Discipline không nằm ở việc Newton Protocol chuẩn hóa nhiều hay ít. Nó nằm ở việc dự án xác định rất rõ decision nào nên thuộc về protocol, và decision nào nên tiếp tục được để lại cho builder. Khi ranh giới đó đủ rõ, protocol chỉ cần chịu trách nhiệm cho khả năng coordination của mạng lưới, còn builders vẫn giữ quyền quyết định cách họ tạo ra Data Oracle. $LAB $NEWT #Newt

Liệu Newton Protocol có xác định rõ decision nào nên thuộc về protocol?

Hôm trước mình xem một pull request của một dự án mã nguồn mở. Phần code không có gì đặc biệt, nhưng dưới phần review lại nổ ra một cuộc tranh luận khá dài. Một người đề nghị viết lại bằng Rust. Người khác muốn giữ Python vì tận dụng được toàn bộ libraries hiện có.
Điều thú vị là cuối cùng không ai tranh luận về programming language nữa. Họ chỉ thống nhất một điều: miễn input và output không thay đổi thì phần còn lại có thể để mỗi người tự quyết.
Đọc Integration Guide của Newton Protocol, mình lại nhớ tới đoạn thảo luận đó.
Data Oracle có thể được viết bằng JavaScript, Rust hoặc Python. Ban đầu mình nghĩ đây chỉ là cách Newton Protocol mở rộng tệp developers. Nhưng rồi mình tự hỏi, nếu mục tiêu chỉ là onboarding thì JavaScript có lẽ đã đủ. Điều khiến mình chú ý hơn lại nằm ở câu phía sau. Dù được viết bằng programming language nào, cuối cùng tất cả đều compile thành cùng một WIT interface.
Lúc đó mình nhận ra Newton Protocol chỉ chuẩn hóa đúng nơi Data Oracle bắt đầu tương tác với protocol. Trước WIT interface, builders vẫn có thể lựa chọn programming language, toolchain hay workflow theo cách của riêng mình. Sau WIT interface, mọi Data Oracle đều phải giao tiếp với mạng lưới theo cùng một cách.
Thoạt nhìn, đây chỉ là một lựa chọn về kiến trúc.
Nhưng càng nghĩ mình càng thấy WIT interface đang làm nhiều hơn việc kết nối các thành phần. Nó cũng xác định rất rõ decision nào Newton Protocol sẽ đứng ra chịu trách nhiệm, và decision nào vẫn thuộc về builder.
Những decision ảnh hưởng trực tiếp đến khả năng coordination của toàn bộ mạng lưới, như cách Data Oracle giao tiếp với protocol, cần được Newton Protocol chuẩn hóa. Nhưng programming language, toolchain hay workflow lại chỉ quyết định cách builder tạo ra Data Oracle. Chúng không làm thay đổi cách Data Oracle phối hợp với phần còn lại của hệ thống.
Điều này nghe có vẻ nhỏ, nhưng mình thấy đây mới là điểm thú vị. Không phải cứ liên quan đến Data Oracle thì Newton Protocol đều phải là bên quyết định. @NewtonProtocol dường như luôn dừng lại ở đúng nơi trách nhiệm của protocol bắt đầu, thay vì mở rộng sang cả quá trình phát triển phần mềm của builder.
Có lẽ vì vậy mình đọc lựa chọn này như một nguyên tắc Decision Discipline. Thay vì cố đưa mọi decision về phía protocol, Newton Protocol chỉ nhận những decision trực tiếp quyết định khả năng vận hành của mạng lưới, còn những decision còn lại vẫn để builders tự lựa chọn.
Điều mình thấy đáng chú ý là nguyên tắc này không làm Newton Protocol mất đi quyền quyết định. Ngược lại, nó khiến ranh giới trách nhiệm của dự án trở nên rõ ràng hơn. Builder biết đâu là phần mình có thể tự tối ưu. Newton Protocol cũng chỉ cần tập trung chuẩn hóa những gì thực sự cần để toàn bộ hệ thống có thể phối hợp ổn định.
Decision Discipline không nằm ở việc Newton Protocol chuẩn hóa nhiều hay ít. Nó nằm ở việc dự án xác định rất rõ decision nào nên thuộc về protocol, và decision nào nên tiếp tục được để lại cho builder. Khi ranh giới đó đủ rõ, protocol chỉ cần chịu trách nhiệm cho khả năng coordination của mạng lưới, còn builders vẫn giữ quyền quyết định cách họ tạo ra Data Oracle.
$LAB $NEWT #Newt
Partiellement vrai
Đọc phần Verifiable Credentials trong docs của Newton Protocol, mình lại dừng ở một chi tiết rất nhỏ. Giữa hàng loạt SDK methods phục vụ Identity, Verification và Credential Management, @NewtonProtocol vẫn dành hẳn một method cho unlinkApp(). Thoạt nhìn, đây chỉ là một API để revoke liên kết giữa người dùng và một Application. Nhưng càng nghĩ, mình càng thấy sự tồn tại của nó có lẽ đáng chú ý hơn chính chức năng của nó. Một hệ thống chỉ thực sự cần unlinkApp() khi ngay từ đầu, đội ngũ đã chấp nhận rằng người dùng luôn có Exit Rights. Nếu giả định đó đúng, Newton Protocol có thể đang theo đuổi một chiến lược dạng Voluntary Lock-in. Thoạt nghe có vẻ mâu thuẫn. Thông thường, Lock-in được tạo ra bằng cách tăng dần Switching Costs, khiến người dùng ngày càng khó rời khỏi hệ thống. Nhưng với Voluntary Lock-in, khả năng rời đi luôn tồn tại. Điều duy nhất giữ người dùng ở lại là quyết định của chính họ. Điều đó cũng đồng nghĩa Newton Protocol gần như tự từ bỏ một trong những Competitive Moats phổ biến nhất của các Web3 Platforms. Khi Exit luôn được bảo toàn, Newton Protocol không thể dựa vào Switching Costs để giữ Users. Theo mình, đây mới là điểm đáng suy nghĩ. Nếu Voluntary Lock-in thực sự là một lựa chọn trong Product Design, thì mỗi Active User không còn đơn thuần là một chỉ số tăng trưởng. Họ trở thành bằng chứng rằng ngay cả khi luôn có quyền Exit, họ vẫn tiếp tục chọn Stay. Nói cách khác, unlinkApp() có thể không chỉ là một SDK method. Nó có thể là một tín hiệu nhỏ cho thấy Newton Protocol không xem Lock-in là kết quả của rào cản, mà là kết quả của những quyết định tự nguyện được lặp lại theo thời gian. #Newt $MAGMA $LAB $NEWT
Đọc phần Verifiable Credentials trong docs của Newton Protocol, mình lại dừng ở một chi tiết rất nhỏ.
Giữa hàng loạt SDK methods phục vụ Identity, Verification và Credential Management, @NewtonProtocol vẫn dành hẳn một method cho unlinkApp().
Thoạt nhìn, đây chỉ là một API để revoke liên kết giữa người dùng và một Application.
Nhưng càng nghĩ, mình càng thấy sự tồn tại của nó có lẽ đáng chú ý hơn chính chức năng của nó.
Một hệ thống chỉ thực sự cần unlinkApp() khi ngay từ đầu, đội ngũ đã chấp nhận rằng người dùng luôn có Exit Rights.
Nếu giả định đó đúng, Newton Protocol có thể đang theo đuổi một chiến lược dạng Voluntary Lock-in.
Thoạt nghe có vẻ mâu thuẫn.
Thông thường, Lock-in được tạo ra bằng cách tăng dần Switching Costs, khiến người dùng ngày càng khó rời khỏi hệ thống. Nhưng với Voluntary Lock-in, khả năng rời đi luôn tồn tại. Điều duy nhất giữ người dùng ở lại là quyết định của chính họ.
Điều đó cũng đồng nghĩa Newton Protocol gần như tự từ bỏ một trong những Competitive Moats phổ biến nhất của các Web3 Platforms.
Khi Exit luôn được bảo toàn, Newton Protocol không thể dựa vào Switching Costs để giữ Users.
Theo mình, đây mới là điểm đáng suy nghĩ.
Nếu Voluntary Lock-in thực sự là một lựa chọn trong Product Design, thì mỗi Active User không còn đơn thuần là một chỉ số tăng trưởng.
Họ trở thành bằng chứng rằng ngay cả khi luôn có quyền Exit, họ vẫn tiếp tục chọn Stay.
Nói cách khác, unlinkApp() có thể không chỉ là một SDK method.
Nó có thể là một tín hiệu nhỏ cho thấy Newton Protocol không xem Lock-in là kết quả của rào cản, mà là kết quả của những quyết định tự nguyện được lặp lại theo thời gian.
#Newt $MAGMA $LAB $NEWT
Connectez-vous pour découvrir plus de contenu
Rejoignez la communauté mondiale des adeptes de cryptomonnaies sur Binance Square
⚡️ Suviez les dernières informations importantes sur les cryptomonnaies.
💬 Jugé digne de confiance par la plus grande plateforme d’échange de cryptomonnaies au monde.
👍 Découvrez les connaissances que partagent les créateurs vérifiés.
Adresse e-mail/Nº de téléphone
Plan du site
Préférences de cookies
CGU de la plateforme