Hỡi các anh chị em thiện lành, dạo qua một vòng về tình hình phát triển smart contract với các nền tảng blockchain trên thế giới cũng như ở VN, tớ thấy nó thật nở rộ, như đơm hoa kết trái vậy :D. Tớ ko cổ xúy cho việc dùng hay không dùng smart contract và các hướng đi trong việc phát triển chúng hiện nay, tớ chỉ có một vài băn khoăn 3 xu thế này muốn bộc bạch cùng anh chị em thiện lành quan tâm đến công nghệ blockchain. Hẳn một vài ace cũng đã từng mua một vài thứ gì đó trên ebay. Và với ebay, đơn giản là ta trả tiền trước và sau đó ta “thắp hương” cho hàng về ngon lành, ko trầy xước, không phải hàng giả. Nhưng, đó là câu chuyện của trước đây, trước khi PayPal ra đời. Với PayPal, ta có thể có một chỗ dựa tin cậy về việc rằng hàng sẽ về đúng thời gian, ko hỏng hóc, ko cần phải “thắp hương”. Và PayPal hoạt động như là một ESCROW. Quay lại với smart contract trong blockchain, rất dễ dàng đặt ra câu hỏi thế này? Khi bạn dùng smart contract trong blockchain để mua hàng, vậy ai sẽ là escrow, ai sẽ chứng thực cho hàng bạn mua không phải hàng rởm? Tôi ví dụ sau này ta mua bán các data thông qua sử dụng blockchain chẳng hạn, ai biết được rằng data bạn mua ko phải data rởm? Các nền tảng blockchain hỗ trợ smart contract thì bản thân nó ko phải là escrow, người phát triển ra nó cũng không phải là escrow, chả ai chịu trách nhiệm gì khi data của bạn hỏng hay rởm (ebay đâu chịu trách nhiệm :D). Và nếu ta mua bán giữa những người tin tưởng nhau thì cần gì blockchain cho mệt, tớ muốn nhấn mạnh về scope của khái niệm blockchain là ở trustless, ta ko nói đến trust ở đây. Vậy trong môi trường trustless thế này, ta làm sao kiểm chứng được cái ta mua là tốt hay đểu? Nokia có sản phẩm gọi là Sensing as a service, tức là nó cho phép bạn mua bán IoT data trên nền tảng blockchain. Bạn sẽ trả tiền để mua IoT data stream kiểu “pay as you go” nhưng ai biết cái đống data stream đó là thật hay giả. Tôi ví dụ, bạn trả tiền để mua IoT data stream từ vườn trồng cà chua cuả anh X ở đâu đó ko biết, a ấy nói là a ấy có dữ liệu về độ sinh trưởng cà chua của mấy hecta của anh ấy, thì quả thật là có zời biết cái đống dữ liệu đấy là thật hay giả, smart contract ở đây trở nên VÔ NGHĨA.
Câu hỏi đặt ra là: Trong thế giới trustless thì làm sao để chứng minh được sự chính xác (correctness) của cái mà ta mua?
Đơn giản thôi, ta phải bóc tách toàn bộ thông tin dữ liệu cân phải được kiểm tra cũng như phải kiểm tra luôn cả smart contract xem nó hoạt động tốt hay không. Và nếu mọi thứ OK, tức là dữ liệu được đưa vào smart contract và output đầu ra hoạt động và được ghi trên blockchain thì có nghĩa rằng blockchain của chúng ta hoạt động tốt. Nhưng ta lại quay trở lại vấn đề ban đầu tức là, nếu dữ liệu được lưu trên blockchain và ta cần phải biết một đống thứ bên trên để verify hoạt động của blockchain thì điều này quả thực sẽ gây ra khá nhiều rủi ro tiềm tàng về security, nếu chưa muốn nói là khá nguy hiểm. Do đó, một trong những hướng đi hiện nay chính là việc chuyển dời từ “Onchain” sang “Offchain”. Việc chuyển dời này cụ thể đang được tiên phong trong Bitcoin với sự đầu tư trong việc phát triển Lightning network. Diễn giải một cách dân dã thế này:
- Lightning network sẽ yêu cầu người mua commit một số tiền nào đó như là một sự đặt cọc. Kiểu như bạn mua nhà thì bạn hay đặt cọc trước cho nó chắc cú 😀 để yêu cầu chủ nhà cho nghía qua cái nhà.
- Sau đó người bán và người mua trên cùng một channel (cung cấp bởi Lightning network) sẽ cùng nhau đồng thuận trạng thái hiện tại của giao dịch. Kiểu như 2 ông đồng ý rằng, tôi nhận tiền đặt cọc của ông rồi, tôi cho ông chìa khóa để xem nhà của tôi. Cứ mỗi lần trạng thái hiện tại của giao dịch được update thì cả 2 bên sẽ đều kiểm tra công việc của người kia, ví dụ như ta ko thể để cho người mua tự lấy chìa khóa vào nhà một mình được, xem nhà cũng phải có giám sát của ta chứ 😀.
- Mỗi lần cả 2 bên tiến thêm một trạng thái mới thì 2 bên sẽ trao đổi cho nhau một proof (cái này là zero-knowledge proof, mời ace thiện lành search google) và đồng thuận rằng, trạng thái cũ đã ko còn có gia trị, ta sẽ cùng làm việc từ trạng thái mới trở đi.
- Nếu 1 trong 2 bên không đồng tình với việc tiến lên trạng thái mới (kiểu sau khi xem nhà thì một ông đòi trả góp, ông kia ko nghe) hoặc 1 trong 2 bên bị mất liên lạc (kiểu bị bắt cóc, tống tiền hoặc hết tiền nên nghỉ chơi) lâu hơn khoảng thời gian đối phương cảm thấy OK thì trạng thái hiện tại được coi như là trạng thái cuối cùng và 1 trong 2 người đã phá vỡ mối quan hệ. Vậy, tại sao cách thức offchain mà điển hình Lightning network lại đem lại sự hiệu quả:
- Nếu cả 2 phía đều hoạt động một cách trơn tru thì toàn bộ các trạng thái giao dịch chỉ có 2 bên biết, không có ai xem giữa.
- Nếu 1 trong 2 bên là cheating và đột ngột cho rằng trạng thái hiện tại là không OK vì sẽ dễ lộ bản thân (ID ảo có gì đó không OK, dữ liệu vớ vẩn, etc.) thì đơn giản họ không thể quay lại trạng thái cũ trước đó vì proof chứng minh trạng thái cũ không valid đã được lưu trên blockchain cũng như được giữ bởi đối phương và đối phương sẽ lấy proof đó để charge cái tiền đặt cọc cho khả năng bạn là người cheating trong giao dịch. Nói nôm na là ông không mua nhà thì ông mất tiền đặt cọc.
- Và khi mối quan hệ giao dịch kết thúc thì chỉ có trạng thái cuối cùng được publish, không ai biết những trạng thái trung gian diễn ra như thế nào. Ta có thể nhận thấy hành vi của các phương thức offchain phản ảnh rất rõ ràng đời sống hàng ngày, chỉ đơn thuần là ta thay nó bằng công nghệ mà thôi. Trong hướng đi này, blockchain cần phải được nhìn nhận như là lớp thấp nhất của cryptocurrency, mọi hoạt động chứng thực, etc. sẽ được offchain và chỉ lưu cái “cần lưu” trên blockchain, không phải tất cả. Trong thế giới ảo này, sự chứng thực việc chính xác (correctness) aka identity nó gán liền chặt chẽ với thế giới thực. Bản thân bạn tham gia thế giới ảo cũng có nhiều nick ảo, thậm chí bạn có thể dùng một đơn vị ủy quyền nào đó chứng thực bạn nhưng khả năng chính đơn vị đó bị xâm nhập và hack cũng rất cao. Cho nên trong việc chứng thực correctness thì tốt nhất là ta nên dùng một cách thức kiểu “đặt cọc”. Lightning network thông qua cơ chế này sẽ đảm bảo rằng một ID thực sẽ chỉ có một giới hạn nhất định ID ảo và mỗi ID ảo sẽ bị mất phí, cũng như một trạng thái của giao dịch ảo sẽ cần tiền đặt cọc. Và đánh vào kinh tế luôn là cách đánh hay nhất cũng là một tòa án ảo hay nhất để đưa mọi thứ trở về quy củ và trật tự.
Comments