Thiên nhai cộng thử thời: Trên BSC, đón Trung thu cùng thế giới Năm nay là Trung thu thứ 4 tôi cùng trải qua với crypto. Lần đầu mua BNB, tôi cứ nghĩ crypto chỉ là những biến động lên xuống trên màn hình; sau đó tôi bước vào Binance, vượt qua BSC, mới nhận ra nó giống như một tấm lưới không có múi giờ. Trung thu nói về sum vầy, và trên chuỗi cũng đang sum vầy—kết nối những người ở những châu lục khác nhau, ngôn ngữ khác nhau, múi giờ khác nhau vào cùng một thị trường. Trước đây, giao dịch có “chênh lệch thời gian”: New York đóng cửa, Tokyo chưa thức giấc, nhà đầu tư châu Á thường phải thức đêm. Nay, Binance và BNB Chain khiến 7×24 giờ không còn là khẩu hiệu nữa. Lúc 3 giờ sáng, tôi hoàn tất một giao dịch chuyển khoản trên BSC: dùng BNB trả Gas, xác nhận chỉ trong vài giây; cùng thời điểm đó, một người bạn ở tận nửa vòng trái đất đang theo dõi bảng giá trên Binance, tham gia Launchpool và thảo luận về hệ sinh thái. Trăng chiếu vào tôi, cũng chiếu vào anh ấy; các block như trạm dịch dưới ánh trăng, đón những người tham gia từ nhiều vùng miền vào cùng một dòng chảy. Tôi mường tượng tương lai: thị trường toàn cầu sẽ không còn là những hòn đảo bị chia cắt—cổ phiếu, vàng, trái phiếu, RWA đều có thể giao dịch trên chuỗi 24/7; Binance là bến cảng tài chính toàn cầu không bao giờ đóng cửa, còn BSC là chiếc cầu nối tài sản và người dùng. Giao dịch không có độ trễ về thời gian—không chỉ là nến (K-line) ngừng nghỉ mãi mãi, mà còn là cơ hội để người bình thường cùng tham gia vào tài chính toàn cầu. Dù đang ở bất cứ múi giờ nào, chỉ cần mở Binance và kết nối BSC, bạn có thể đồng bộ với thế giới. Thiên nhai cộng thử thời. Trung thu lần thứ 4 của năm nay, trên chuỗi tôi ngẩng đầu lên—không chỉ thấy vầng trăng, mà còn thấy vô số node cùng lóe sáng. Mong rằng Trung thu tiếp theo, chúng ta vẫn nâng ly trên BNB Chain, và cùng chứng kiến thị trường toàn cầu đang bật nhảy trên Binance. #币安中秋故事
币安Binance华语
·
--
🌕 Năm nay là lần thứ mấy bạn cùng trải qua Tết Trung Thu với crypto?
Chọn chủ đề để viết bài hoặc tạo video sáng tạo, truyện tranh, tham gia “Cuộc thi kể chuyện Trung Thu Binance” ⬇️
🌃 Trên biển, trăng sáng lên: Chia sẻ câu chuyện của bạn với thế giới crypto và Binance. 🌌 Cùng chung khoảnh khắc nơi chân trời: Những liên kết hoặc tưởng tượng về “Giao dịch không có độ trễ” hoặc kết nối của thị trường tài chính toàn cầu.
Kèm tác phẩm và chuyển tiếp tới #币安中秋故事 rồi 👉点击填写表单
Một con cá voi khổng lồ rút 1,1 triệu USDT từ Binance, quay đầu liền mua ở giá bình quân 0,1155 USD để gom 9,53 triệu mã $BTC — đây là định trực tiếp “đỡ” giá bò lên sao? $USDC
Mỗi vòng đồng thuận cần thêm một khối mới, nhưng bản whitepaper nói rằng lần này không phải là “đi một lần xong ngay”, mà là thực hiện qua nhiều lần lặp (iteration). Mỗi lần lặp lại được chia thành ba bước. Trong mục 3.2 của whitepaper, ba bước đó được gọi là Proposal, Validation và Ratification。
Bước đầu tiên là Proposal. Thuật toán DS chọn ngẫu nhiên một provisioner làm người tạo khối (block producer). Người này chịu trách nhiệm tạo ra một khối ứng viên (candidate block), rồi phát tán ra toàn mạng. Nếu khối ứng viên không được tạo ra hoặc không nhận được trong thời gian quá hạn quy định, bước này sẽ xuất ra NIL và chuyển thẳng sang bước tiếp theo. Nhưng nếu không có khối ứng viên nào trong tay thì các bước sau sẽ bỏ phiếu gì? Câu trả lời là không bỏ phiếu trắng (không bỏ phiếu trống), mà bỏ phiếu NoCandidate, nghĩa là “không có khối ứng viên nào để xác minh”. $DUSK
Bước thứ hai là Validation. Thuật toán DS chọn ngẫu nhiên một tập ủy ban bỏ phiếu (voting committee) để xác minh khối ứng viên từ bước trước. Nếu khối ứng viên hợp lệ, bỏ phiếu Valid; nếu không hợp lệ thì bỏ phiếu Invalid; nếu không có khối ứng viên thì bỏ phiếu NoCandidate. Ủy ban bỏ phiếu cần đạt đa số tuyệt đối 2/3 để hình thành quorum. Nếu đến thời hạn mà vẫn chưa đạt quorum, sẽ xuất NoQuorum. Đầu ra của bước này là một ValidationResult, bao gồm loại phiếu đã đạt quorum và chữ ký tổng hợp (aggregate) của tất cả người bỏ phiếu. @Dusk
Bước thứ ba là Ratification. Lại chọn một tập ủy ban bỏ phiếu mới để xác nhận kết quả Validation. Nếu bước trước đạt quorum ở mức Valid, họ sẽ xác nhận kết quả đó; nếu bước trước là NoQuorum hoặc thất bại, họ sẽ bỏ phiếu NoQuorum. Bước này đảm bảo rằng kết quả xác minh không chỉ do một nhóm nhỏ quyết định, mà phải được nhiều provisioner công nhận.
Nếu đầu ra của Ratification là Success, khối ứng viên sẽ được chấp nhận chính thức là khối mới, và kết thúc vòng này. Nếu đầu ra là Fail hoặc unknown, thì tiến hành lần lặp tiếp theo: chọn lại người tạo khối, và bỏ phiếu lại. Whitepaper nêu rằng số lần lặp tối đa do tham số toàn cục quyết định; cấu hình hiện tại là 50. Nếu liên tiếp 16 lần lặp đều thất bại, giao thức sẽ chuyển sang chế độ khẩn cấp (góc độ 10).
Logic cốt lõi của thiết kế ba bước là cơ chế kiểm soát và cân bằng (giới hạn quyền lực) — người tạo khối chỉ có thể tạo khối ứng viên, không được bỏ phiếu; ủy ban xác minh chỉ có thể xác minh, không được xác nhận; ủy ban xác nhận chỉ có thể xác nhận kết quả xác minh, không được kiểm tra lại. Không một vai trò nào có thể tự mình quyết định số phận của một khối. #dusk
Khi mạng Dusk khởi động, không chỉ có mỗi máy ảo Piecrust là xong—nó còn cần triển khai một bộ các hợp đồng genesis để thực hiện những thao tác nền tảng nhất. Mục 6.2 của bản whitepaper gọi chúng là "genesis contracts": các hợp đồng thông minh đặc biệt được triển khai khi khởi tạo mạng, chịu trách nhiệm cho những chức năng cốt lõi như xác thực giao dịch, cơ chế đặt cọc và phân bổ ban đầu token. Bản whitepaper tập trung giới thiệu hai trong số đó.
Thứ nhất là transfer contract (hợp đồng chuyển khoản). Nó quản lý mọi giao dịch chuyển DUSK, $DUSK đồng thời xử lý việc trừ phí gas. Nếu một giao dịch bao gồm việc triển khai hoặc gọi một hợp đồng thông minh, transfer contract cũng chịu trách nhiệm xử lý—nó sẽ kiểm tra giao dịch có tuân theo các quy tắc của Moonlight hoặc Phoenix hay không, rồi trừ phí gas tương ứng từ số dư của người gửi. Bản whitepaper nói rằng đây là "điểm vào để bước vào blockchain Dusk", và mọi giao dịch cuối cùng đều phải đi qua nó.
Thứ hai là stake contract (hợp đồng đặt cọc). Nó quản lý trọn vòng đời của việc đặt cọc: xác thực số tiền người dùng gửi vào có đạt ngưỡng đặt cọc tối thiểu hay không, khóa token và đăng ký người dùng làm provisioner. DUSK được đặt càng nhiều thì xác suất thuật toán DS chọn để tham gia đồng thuận càng cao. Hợp đồng cũng xử lý yêu cầu rút/gỡ đặt cọc—khi hết thời gian khóa, người dùng có thể lấy lại token, đồng thời đảm bảo việc phát thưởng và trừ phạt được thực hiện đúng. Góc 1 đề cập ngưỡng 1000 DUSK, góc 9 đề cập phần thưởng và hình phạt; việc triển khai cụ thể dựa chính vào hợp đồng này. @Dusk
Mục 6.3 lại bổ sung thêm hai phần là "các hợp đồng khác". Một là license contract (hợp đồng cấp phép), dựa trên giao thức Citadel để quản lý việc phát hành và xác thực giấy phép trong mạng. Nó theo dõi quyền sở hữu, tính hiệu lực và thời gian hết hạn của từng giấy phép, đồng thời xử lý việc thu hồi hoặc gia hạn. Phần còn lại là Zedger contracts: nó tạo phiên bản hợp đồng thông minh độc lập cho từng loại tài sản chứng khoán, cung cấp các chức năng như đúc (mint), hủy (burn), chia cổ tức, chuyển nhượng bắt buộc… đây là hiện thực cụ thể của giao thức Zedger được nhắc tới ở góc 7.
Việc phân công nhiệm vụ của bốn hợp đồng rất rõ ràng: transfer contract quản lý luồng tiền, stake contract quản lý sự tham gia đồng thuận, license contract quản lý quyền hạn, còn Zedger contracts quản lý tài sản. Nhưng điều đó cũng đồng nghĩa với việc các chức năng cốt lõi của Dusk phụ thuộc rất nhiều vào tính đúng đắn của bốn hợp đồng này—nếu bất kỳ hợp đồng nào có bug, thì không chỉ ảnh hưởng đến một ứng dụng đơn lẻ, mà là các thao tác nền tảng của toàn bộ mạng. #dusk
Sách trắng, mục 1.1 “Các công việc liên quan” thực ra chỉ làm được một việc: nói với độc giả rằng Dusk không phải là ai đó.
Sách trắng chia các blockchain hiện có thành ba nhóm. Nhóm thứ nhất là các nền tảng smart contract đa dụng như Ethereum và Cardano. Vấn đề của chúng là tính minh bạch khiến dữ liệu tài chính nhạy cảm không thể nào “ẩn” được; dù có các giải pháp L2 như zk-rollup thì cũng chỉ là miếng vá, không phải thiết kế nguyên bản. Nhóm thứ hai là các blockchain ẩn danh, Zcash và Monero. Chúng đã tối ưu đến mức cực hạn về quyền riêng tư cá nhân, nhưng lại thiếu khung tuân thủ, khả năng kiểm toán và năng lực smart contract hướng tới các giao dịch bí mật. Nhóm thứ ba là “thứ” mà Dusk muốn làm: trên cả hai nhóm nói trên, thì Dusk đều không phải.
Ethereum có thể làm được, nhưng Dusk@Dusk không làm—nó không theo đuổi việc bao phủ toàn diện DeFi đa dụng, mà tập trung vào các bối cảnh tài chính được quản lý. Zcash và Monero có thể làm được, thì Dusk cũng làm—nó đạt được quyền riêng tư bằng các bằng chứng ZK, nhưng trên nền tảng đó còn bổ sung các giao diện tuân thủ và năng lực kiểm toán. Sách trắng nêu rất rõ: “Zcash và Monero ‘thiếu các chức năng cần thiết để tích hợp với ngành tài chính được quản lý’”, bao gồm khung quản lý, khả năng kiểm toán và khả năng smart contract hỗ trợ giao dịch bí mật.$DUSK
Đây không phải là một câu kiểu “Dusk tốt hơn tất cả chúng”, mà là câu “sân chơi Dusk chọn là không giống nhau”. Nó chọn một con đường hẹp hơn—làm blockchain riêng tư tuân thủ cho các tổ chức tài chính truyền thống, thay vì làm blockchain riêng tư cho tất cả mọi người. Đường hẹp hơn đồng nghĩa với việc nhóm người dùng được xác định rõ ràng, nhưng đồng thời cũng có nghĩa là nếu các tổ chức tài chính truyền thống không chấp nhận, thì định vị này sẽ không còn ý nghĩa.#dusk
Đọc đến Chương 6, tôi nhận ra một lựa chọn then chốt: môi trường thực thi hợp đồng thông minh của Dusk là Piecrust, dựa trên WebAssembly, chứ không tương thích EVM. Việc đến năm 2024 vẫn chọn không tương thích EVM là một quyết định cần được giải thích.$DUSK
Bạch giấy cho biết Piecrust là một hiện thực máy ảo WASM được viết bằng Rust; cốt lõi gồm hai thành phần: crate piecrust, chịu trách nhiệm cho bản thân máy ảo; piecrust-uplink, là một bộ công cụ dành cho nhà phát triển, cung cấp toolchain để biên dịch, triển khai và kiểm thử hợp đồng. Bạch giấy nhấn mạnh mục tiêu thiết kế của nó là gọn nhẹ, an toàn, có tính mô-đun và nhẹ ký.
Nhưng điều thực sự khiến tôi quan tâm là thiết kế của host functions. Dusk@Dusk chuyển các tác vụ nặng như xác thực bằng chứng ZK, xác thực chữ ký và tính toán băm ra khỏi môi trường máy ảo, đưa sang môi trường máy chủ. Bạch giấy liệt kê các host functions cụ thể: hàm hash hỗ trợ hai thuật toán là Blake2b và Poseidon; verify_plonk và verify_groth16_bn254 lần lượt xác thực hai loại chứng minh ZK là PlonK và Groth16; verify_schnorr và verify_bls xác thực chữ ký, hỗ trợ cả ký đơn lẫn ký đa chữ ký. Tất cả đều chạy trong môi trường gốc, chứ không phải trong sandbox WASM.#dusk
Tại sao lại làm vậy? Bạch giấy trích dẫn dữ liệu nghiên cứu rằng chạy các ứng dụng phức tạp trong WASM chậm hơn từ 45% đến 255% so với code gốc. Với một blockchain sử dụng nhiều chứng minh ZK, khoảng chênh lệch hiệu năng này là chí mạng. Nếu mỗi giao dịch đều phải xác thực một chứng minh PlonK trong WASM thì riêng phần chi phí này sẽ khiến độ trễ giao dịch trở nên không thể chấp nhận. Việc chuyển tác vụ xác thực sang môi trường máy chủ tương đương với việc vượt qua rào cản.
Tuy nhiên, Dusk cũng phải trả giá cho cách làm này. Không tương thích EVM đồng nghĩa với việc các hợp đồng thông minh hiện có trên Ethereum không thể chuyển sang Dusk một cách trực tiếp; nhà phát triển cần học lại toolchain phát triển trên WASM. Tính tương thích EVM là một “lá bài an toàn” trong ngành vì đã có rất nhiều nhà phát triển, công cụ và kho mã. Việc Dusk từ bỏ lá bài đó cho thấy họ có định vị rõ ràng cho nhóm người dùng mục tiêu của mình—những nhà phát triển tổ chức trong lĩnh vực chứng khoán và tài sản ngoài đời thực.
Piecrust-uplink cung cấp toolchain, bao gồm việc biên dịch hợp đồng thành module WASM, thực thi trong môi trường được kiểm soát, và xác minh tính đúng đắn cũng như an toàn—trông giống như đang bù đắp cho điểm yếu về trải nghiệm phát triển. Nhưng toolchain dùng có tốt không, bạch giấy không thể trả lời; điều đó phải do chính nhà phát triển sử dụng thực tế rồi mới đánh giá được.
Khi tôi đọc đến phần 5, tôi thấy Dusk đã làm rất nhiều nghiên cứu về hiệu quả sử dụng năng lượng, và họ đưa ra các số liệu cụ thể—điều này khiến tôi tin rằng họ đã thực sự cân nhắc kỹ vấn đề này.
Trước hết, xét ở lớp đồng thuận. Bạch giấy trích dẫn dữ liệu sau khi Ethereum chuyển từ PoW sang PoS, cho thấy mức tiêu thụ năng lượng giảm hơn 99,95%. Nhưng đồng thuận SA không chỉ là PoS; nó còn là mô hình PoS theo cơ chế hội đồng. Bạch giấy nói rằng với việc phân bổ xác định, việc sinh khối và xác minh không cần tính toán dày đặc, vì ai sẽ làm việc đã được chọn trước chứ không phải dựa vào cạnh tranh sức mạnh tính toán. Hội đồng chỉ gồm các provisioner thuộc nhóm đã được chọn, chứ không phải toàn mạng cùng tham gia xác minh, nên tổng khối lượng tính toán nhỏ hơn.$DUSK
Ở lớp mạng, dữ liệu của Kadcast còn thú vị hơn. Bạch giấy cho biết, so với giao thức Gossip, Kadcast có thể giảm 25% đến 50% mức tiêu thụ băng thông. Đây không phải suy đoán mà là trích dẫn dữ liệu nghiên cứu. Hơn nữa, Kadcast còn có thể giảm tỷ lệ khối “orphan” (khối bị phát tán nhưng cuối cùng không được chấp nhận) từ 10% đến 30%. Trong mạng PoS, ít đi một khối orphan nghĩa là giảm một vòng bầu chọn và xác minh bị lãng phí.
Ở lớp thao tác mật mã, Dusk chuyển các tác vụ nặng như xác minh bằng ZK proof, xác minh chữ ký và tính toán băm từ môi trường WASM sang môi trường host, dùng host functions để chạy. Bạch giấy trích dẫn dữ liệu nghiên cứu rằng khi chạy ứng dụng phức tạp trong WASM sẽ chậm hơn 45% đến 255% so với code gốc. Việc loại bỏ phần chi phí bổ sung này, với một chuỗi sử dụng ZK proof với tần suất cao, sẽ giúp tiết kiệm khối lượng tính toán đáng kể.#dusk
Tuy nhiên, bạch giấy cũng thẳng thắn nói rằng các con số cụ thể về tiết kiệm năng lượng đó vẫn chưa được lượng hóa. Dữ liệu tiết kiệm băng thông của Kadcast đến từ các mạng khác, không phải từ đo đạc thực tế trên mainnet của Dusk. Điều này khiến tôi cảm thấy khi viết bạch giấy, họ có thái độ nghiêm túc, không bịa số liệu chỉ để cho đẹp.
Nhưng nếu nhìn ngược lại, nếu cơ chế đồng thuận SA của Dusk@Dusk thật sự giảm số lượng validator xuống quy mô rất nhỏ, thì mức tiêu thụ năng lượng chắc chắn có thể còn thấp hơn cả PoS của Ethereum. PoS của Ethereum không còn đào, nhưng toàn mạng vẫn có hàng trăm nghìn validator; mỗi người đều phải chạy việc xác minh toàn bộ node. Nếu Dusk thực hiện việc xác minh thông qua một hội đồng quy mô nhỏ, thì mức tiêu thụ năng lượng cho mỗi lần xác minh sẽ giảm rất nhiều. Lập luận này về mặt lý thuyết là hợp lý, nhưng hiệu quả thực tế còn phải chờ sau khi mainnet đi vào hoạt động và có số liệu chứng minh.
Khi tôi đọc đến phần giao thức Zedger trong bản whitepaper, tôi có cảm giác như kiểu “cuối cùng thì nó cũng đã đến”. Trước đó đã đặt nền rất nhiều từ quyền riêng tư, tuân thủ cho tới mô hình giao dịch kép; Zedger chính là điểm tổng hợp của tất cả những ý tưởng kỹ thuật ấy.$DUSK
Whitepaper nói rằng Zedger là một giao thức dùng để quản lý chứng khoán và tài sản của thế giới thực, hỗ trợ đúc (mint), hủy (burn), các hành động của công ty như chi trả cổ tức, thậm chí còn hỗ trợ chuyển nhượng bắt buộc. Chỉ riêng vài chức năng này thôi cũng cho thấy nhóm người dùng mục tiêu không phải nhà đầu tư lẻ, mà là các tổ chức phát hành chứng khoán.
Tôi đặc biệt chú ý đến chức năng “chuyển nhượng bắt buộc”. Trên Ethereum, tài sản của bạn là của bạn, không ai có thể đụng vào. Nhưng trong thị trường tài chính ngoài đời thực, tòa án có thể đóng băng tài sản, bên thanh lý có thể chuyển nhượng bắt buộc, cơ quan quản lý có thể yêu cầu thu hồi. Zedger đưa chức năng này vào trong thiết kế, cho thấy cách hiểu của họ về tuân thủ và quy định không chỉ dừng ở khẩu hiệu, mà là có tính đến nhu cầu thực sự của các tổ chức.@Dusk
Tuy nhiên, ở đây có một sự cân bằng rất tinh tế. Nếu chức năng chuyển nhượng bắt buộc bị lạm dụng, thì đó không còn là tuân thủ nữa, mà là tập trung hóa. Whitepaper nói rằng Zedger sử dụng bằng chứng ZK và năng lực kiểm toán để đảm bảo tính hợp pháp, đồng thời bảo vệ quyền riêng tư của người dùng. Tôi hiểu ý của họ là mỗi lần chuyển nhượng bắt buộc đều phải kèm theo bằng chứng mã hóa tuân thủ, chứng minh thao tác đó là hợp pháp, nhưng không cần phải lộ chi tiết giao dịch.
Dù vậy, whitepaper mô tả Zedger vẫn khá khái quát; họ chưa nói chi tiết ai nắm quyền chuyển nhượng bắt buộc, quyền được phân phối như thế nào, và làm sao để ngăn ngừa lạm dụng. Nếu quyền nằm hoàn toàn trong tay bên phát hành, thì về bản chất hệ thống này vẫn là tập trung hóa. Nếu quyền phải được kích hoạt thông qua quản trị on-chain hoặc đa chữ ký (multisig), thì mức độ an toàn và phi tập trung sẽ cao hơn nhiều.
Tôi nghiêng về quan điểm rằng triết lý thiết kế của Zedger là đúng: nó mang lại một khung kỹ thuật rõ ràng cho RWA và chứng khoán. Nhưng mức độ phi tập trung thực tế của nó phụ thuộc vào cách triển khai kiểm soát quyền. Whitepaper ở đây để lại một khoảng không gian đáng để tiếp tục truy hỏi.#dusk
Khi tôi đọc đoạn nói về sự đồng thuận SA, phản ứng đầu tiên của tôi là đi tìm các tham số về thời điểm cuối cùng (finality). Sách trắng viết "đạt finality trong vài giây", nhưng không ghi chính xác là mấy giây. Sự mơ hồ này khiến tôi hơi không yên tâm, nhưng đồng thời cũng làm tôi muốn hiểu rõ hơn logic đằng sau nó.
Trước hết, hãy so sánh. Finality của Bitcoin ở $DUSK dựa trên xác suất: với khoảng 6 lần xác nhận (block), thời gian chờ vào cỡ 1 giờ; bạn càng đợi lâu thì càng chắc chắn rằng giao dịch sẽ không bị đảo ngược. Với Ethereum, PoS finality dựa trên giao thức Casper, cần hai epoch, tương đương khoảng 12,8 phút. Dusk nói rằng nó chỉ cần vài giây, vậy thì vì sao.
Điểm then chốt nằm ở cơ chế phân bổ tính quyết định (deterministic). Sách trắng cho biết, trước khi mỗi vòng bắt đầu, thuật toán DS đã lựa chọn trước ai sẽ là người tạo block và ai sẽ là ủy ban bỏ phiếu. Cái "đã biết trước" này có nghĩa là những người bỏ phiếu đã sẵn sàng trước khi block được tạo, không cần kéo ai đó vào lúc lâm thời, cũng không cần broadcast toàn mạng để tìm kiếm đồng thuận. Chi phí truyền thông vì thế được nén đáng kể.
Tôi đã tách quy trình ra để xem. Mỗi vòng gồm nhiều lần lặp (iteration), và mỗi lần lặp có ba giai đoạn: đề xuất (propose), bỏ phiếu (vote) và xác nhận (confirm). Ủy ban bỏ phiếu chỉ bao gồm nhóm validator đã được chọn đó, chứ không phải cả mạng cùng tham gia. Số lượng node tham gia bỏ phiếu được giới hạn trong một khoảng nhỏ, nên lượng thông tin trao đổi trong quá trình bỏ phiếu rất nhỏ; chỉ cần vài lần trao đổi là có thể hoàn thành @Dusk
Nhưng ở đây có một điểm tôi chưa thông. Sách trắng có nhắc đến thuật ngữ "finality cuốn chiếu" (rolling finality), nhưng không khai triển cơ chế cụ thể. Theo cách hiểu của tôi, có lẽ nó ám chỉ rằng finality không được chốt một lần duy nhất, mà là khi các block mới liên tục được tạo, xác suất finality của block trước đó sẽ dần dần tăng lên. Nếu đúng như vậy, thì "vài giây" có thể chỉ thời gian xác nhận ở lớp đầu tiên, chứ không phải là finality không thể đảo ngược. #dusk
Ngoài ra, tôi cũng nhận thấy sách trắng không đưa ra con số giây chính xác. 3 giây và 9 giây đều được gọi là "vài giây", nhưng trong bối cảnh tài chính thì ý nghĩa hoàn toàn khác nhau. Vấn đề này tạm thời tôi chưa thể tìm được câu trả lời từ chính sách trắng; có thể phải chờ dữ liệu kiểm thử thực tế sau khi mainnet ra mắt.
Khi tôi đọc sách trắng, câu hỏi này cứ xoay quanh trong đầu mình. Hệ Dusk lớn nhất ở chỗ là vừa quyền riêng tư vừa tuân thủ—nhưng kinh nghiệm lịch sử cho thấy, kiểu tuyên bố như vậy thường không khiến ai cũng hài lòng.#dusk
Hãy xem những ví dụ phản diện. Zcash và Monero đã làm quyền riêng tư đến mức tuyệt đối, nhưng các cơ quan quản lý không chấp nhận; sàn gỡ bỏ, thanh khoản suy giảm. Ethereum và Bitcoin thì ổn về tuân thủ, nhưng mọi giao dịch đều minh bạch hoàn toàn; khi các tổ chức thực hiện một giao dịch giá trị lớn, đối tác có thể nhìn thấy rõ ràng từng chi tiết. Dusk nói rằng họ đã tìm ra con đường thứ ba, ban đầu tôi không tin.@Dusk
Giải pháp trong sách trắng là mô hình giao dịch kép kết hợp giao thức Zedger. Moonlight dùng cho các tình huống tuân thủ, Phoenix dùng cho các tình huống quyền riêng tư, còn Zedger chịu trách nhiệm để hợp đồng thông minh thực thi trong trạng thái bí mật đồng thời vẫn giữ được tính có thể kiểm toán. Về mặt lý thuyết, kiến trúc này thực sự có thể hoạt động.
Nhưng sau khi đọc xong, tôi phát hiện ra một lỗ hổng then chốt. Sách trắng nói rằng cơ quan quản lý có thể truy cập dữ liệu cần thiết, nhưng cách họ truy cập bằng cơ chế nào, việc ủy quyền thông qua gì, khóa bí mật do ai lưu trữ, và quyền truy cập được thu hồi ra sao—những chi tiết này không được triển khai. Trong một hệ thống quyền riêng tư có thể kiểm toán, cái khó nhất không phải là khiến cơ quan quản lý nhìn thấy dữ liệu, mà là đảm bảo dữ liệu chỉ được xem bởi đúng những người cần xem và chỉ trong đúng khoảng thời gian được ủy quyền.
Tôi đã thử suy luận theo hướng đó. Nếu Dusk dùng một hệ thống chứng minh tương tự zk-SNARK, và cơ quan quản lý nắm giữ một khóa kiểm toán cụ thể,$DUSK có thể xác minh việc tuân thủ giao dịch mà không làm lộ quyền riêng tư người dùng, thì phương án này có thể đúng. Nhưng nếu quyền hạn quản lý bị lạm dụng hoặc khóa bị rò rỉ, thì “tòa nhà” bảo vệ quyền riêng tư sẽ sụp đổ.
Vì vậy, kết luận của tôi là: chuyện quyền riêng tư và tuân thủ có thể cùng tồn tại—về nguyên lý thì có thể hiểu là hợp lý, và về mặt kỹ thuật cũng có thể thực hiện. Tuy nhiên hiệu quả thực tế hoàn toàn phụ thuộc vào chi tiết thiết kế cơ chế kiểm soát quyền hạn. Mà hiện tại sách trắng vẫn chưa đưa ra các chi tiết đó, nên tôi chỉ có thể chờ thêm tài liệu kỹ thuật để đánh giá. Câu trả lời cho vấn đề này không nằm trong sách trắng—mà nằm trong mã nguồn của mainnet.
Khi tôi đọc phần Kadcast này, trong đầu tôi cứ so sánh với giao thức gossip của Ethereum. Logic của gossip rất đơn giản: bạn nhận một tin nhắn, chuyển tiếp cho tất cả các hàng xóm mà bạn biết, rồi các hàng xóm lại chuyển tiếp cho các hàng xóm của họ, cho đến khi toàn mạng đều nhận được. Nhưng ở đây có một vấn đề: khi số lượng node tăng lên, lượng chuyển tiếp trùng lặp sẽ tăng theo cấp số nhân.
Cách Kadcast làm thì khác. Nó dựa trên Kademlia DHT, phân tầng các node theo khoảng cách XOR. Mỗi node không chuyển tiếp tới tất cả các hàng xóm, mà chỉ chuyển tiếp tới các node được chọn ở khoảng cách XOR tăng dần. Tôi phải đọc tới hai lần mới hiểu được chỗ khéo léo của cơ chế này—nó tạo ra hiệu ứng dây chuyền (cascade), chứ không phải kiểu lan truyền tràn ngập (flooding).
Ví dụ, node A gửi một tin nhắn: nó chỉ chuyển tiếp tới một số node ở gần nhất. Những node này lại chuyển tiếp tới các node ở xa hơn. Số lượng node đích ở mỗi tầng được kiểm soát, không phải khuếch tán vô hạn. Bản whitepaper nói rằng cách này giảm đáng kể tổng số lần truyền dữ liệu cần thiết cho việc lan truyền mạng.
Vậy thiết kế này liên quan gì đến tình huống tài chính $DUSK ? Theo hiểu của tôi, tình huống tài chính đặc biệt nhạy với hai thứ: độ trễ và băng thông. Nếu một giao dịch broadcast mà phải mất hàng chục giây hoặc thậm chí cả phút mới lan tới toàn mạng thì tính “finality” theo từng giây sẽ không còn ý nghĩa. Kadcast nén thời gian lan truyền tới mức tối đa bằng cách đưa tin nhắn đến mọi node với số lần chuyển tiếp (relay) ít nhất, nhờ cấu trúc dạng cây.
Còn một điểm mà lúc đầu tôi chưa để ý: whitepaper đề cập rằng Kadcast tự nhiên làm “mờ” điểm xuất phát của tin nhắn. Vì node chỉ giao tiếp với các peer được chọn, không broadcast ra toàn mạng, nên kẻ tấn công rất khó truy ra một giao dịch được phát từ node nào. Điều này là một điểm cộng thêm cho câu chuyện về quyền riêng tư của Dusk@Dusk .
Tuy nhiên tôi vẫn có một câu hỏi. Whitepaper có so sánh gossip và Kadcast, nhưng chỉ đưa mô tả định tính, không có số liệu cụ thể về tiết kiệm băng thông. Tiết kiệm được bao nhiêu—tiết kiệm 30% hay 90%? Thiếu dữ liệu này, tôi thực sự khó đánh giá lợi thế hiệu quả của nó lớn đến đâu. Có lẽ quy mô này cần được trả lời bằng dữ liệu mạng thực tế sau khi triển khai trên mainnet. #dusk
Phản ứng đầu tiên của tôi khi đọc đồng thuận SA là: con số 1000 DUSK này được tạo ra bằng cách nào. Sách trắng chỉ đưa ra kết quả, không có phần suy luận hay quy trình chứng minh. Vì vậy tôi lần ngược theo các tham số của nó.
Nó đặt một epoch, gồm 2160 block. Theo tốc độ tạo block hiện tại của Dusk, thì khoảng 6 giờ là một epoch. Sau đó nó đưa ra một công thức thời gian trưởng thành: M = 2 × epoch - (height mod epoch). Tức là, nếu bạn stake một lệnh DUSK, bạn phải chờ gần nửa epoch đến hết một epoch thì mới bắt đầu “làm việc” thực sự.
Điểm thú vị ở thiết kế này là nó đồng bộ thời điểm hiệu lực của toàn bộ các khoản stake mới theo ranh giới của epoch. Không phải “đến lúc nào stake thì có hiệu lực ngay”, mà là cả nhóm cùng được kích hoạt tại một mốc khởi đầu. Mục đích tôi đoán là để thuật toán DS có thể dùng một snapshot ổn định của “bể stake” phục vụ việc rút thăm/định tuyến mang tính xác định (deterministic) cho việc chọn nhà cung cấp (provisioner). Nếu stake vào lúc bất kỳ, bất kỳ block nào thì tập ứng viên provisioner cũng sẽ thay đổi, khiến việc phân bổ mang tính xác định trở nên khó làm tốt, vì mỗi block lại có một bộ ứng viên khác nhau $DUSK
Còn bản thân con số 1000 DUSK thì sao? Tôi tính thử: nếu ngưỡng đặt là 100 thì số lượng provisioner sẽ tăng vọt. Mỗi epoch có 64 slot sẽ cạnh tranh gay gắt hơn, nhưng lượng stake trên từng node lại quá thấp, nên an ninh mạng có thể bị “pha loãng”. Nếu đặt là 10000 thì gần như người dùng phổ thông không thể tham gia; provisioner trở thành “cuộc chơi” của một nhóm node lớn, và mức độ phi tập trung sẽ bị giảm. @Dusk
Con số 1000 nằm ở mức trung gian. Tôi lật thêm các tham số của vài chuỗi PoS khác: ngưỡng của Dusk không quá cao, nhưng cũng không quá thấp. Nó giống như đang nói rằng: tôi không muốn bạn chỉ cần lấy ít tiền tiêu vặt là đã có thể chạy node, nhưng tôi cũng không muốn bạn bắt buộc phải là “đại gia” mới được tham gia.
Tuy nhiên, tôi vẫn còn một vấn đề chưa nghĩ thông. Sách trắng không nêu mục tiêu về tổng số provisioner nằm trong khoảng nào, và cũng không nói mức độ cạnh tranh của 64 slot ở tỷ lệ nào là tối ưu. Thiếu các dữ liệu này, tôi thật sự không thể đánh giá 1000 có đúng hay không. Có lẽ sự hợp lý của con số này chỉ có thể được kiểm chứng bằng dữ liệu thực tế sau khi lên mainnet. #dusk