Cơ chế xác nhận coin đã được chuyển đến cho một ví
Xin chào mọi người!
Mình đang nghiên cứu về giao dịch tiền ảo blockchain, có một câu hỏi to đùng tìm hiểu mãi mà không thông như thế này. Mình lấy ví dụ:
- Bạn A có một ví V1 ở trên sàn S1
- Bạn B có một ví V2 ở trên sàn S2
(Lưu ý hai sàn S1 và S2 là hoàn toàn độc lập chẳng liên quan gì nhau)
Khi A chuyển cho B 100 coin thì:
- Ví V1 bị trừ 100 coin, ví V2 được cộng 100 coin
Điều mình thắc mắc là làm sao để hệ thống sàn S1 tác động được đến ví V2 trong sàn S2.
Nghiên cứu mãi chưa thông mọi người ai biết giải đáp giùm mình với!
Cảm ơn nhiều!
1 CÂU TRẢ LỜI
Bạn có thể hiểu đơn giản về follow gửi và nhận tiền thông qua các ví điện tử ở các sàn giao dịch (tập trung) sẽ hoạt động như thế này:
- Với một Public Blockchain, ví dụ như Bitcoin, Ethereum ... thì bất kỳ ai cũng có thể tạo được vô số các địa chỉ ví trên đó. Và bất cừ ai cũng có thể check được mọi giao dịch đến và đi như thế nào trên đó.
- Bạn A1 có một ví V1 (của Blockchain B) trên sàn giao dịch S1, tức về cơ bản là S1 đã tạo ra cho bạn A một địa chỉ V1 trên Blockchain B. Địa chỉ ví này thì sàn giữ private key, chứ không phải bạn A1. Nên về cơ bản thì người kiểm soát ví này là sàn S1, chứ không phải bạn A1
- Tương tự như vậy với bạn A2 có ví V2 trên sàn giao dịch S2, nhưng cũng trên cùng một Blockchain B, giống như địa chỉ V1 của bạn A1. Và về cơ bản thì sàn S2 giữ private key của địa chỉ V2 này, nên người thực sự kiểm soát ví này là sàn S2, chứ không phải bạn A2
Hãy nói một chút về cách bạn nạp tiền vào tài khoản trên sàn giao dịch (tập trung) trước, thì bạn sẽ hiểu hơn về cách các sàn quản lý ví ra sao:
- Bạn A1 muốn nạp tiền trên Blockchain B, vào tài khoản V1 của bạn ý thì đầu tiên, bạn ý sẽ cần chuyển một số coin nhất định vào địa chỉ V1
- Sàn giao dịch sẽ luôn theo dõi tình hình biến động các ví người dùng mà mình quản lý. Khi thấy có số coin chuyển đến V1, sàn sẽ cộng cho tài khoản của người dùng một lượng tương ứng trong database mà mình quản lý. Chẳng hạn như con số hiển thị trên sàn giao dịch của bạn là bạn đang có 100 coin của Blockchain B1, thì con số này vốn là con số trong database của họ (chứ không phải là con số thực tế đang có trên địa chỉ V1 của Blockchain). Bạn chuyển thêm 200 coin vào địa chỉ V1, và sàn xác nhận được giao dịch này, thì họ sẽ cộng thêm vào trong database của họ để cho bạn có 300 coin .
- Một thời gian sau, sàn giao dịch sẽ chuyển hết số coin trong ví V1 của bạn, vào một ví chung mà họ quản lý, lúc này ví V1 của bạn sẽ còn 0 coin (tuy nhiên khi login vào tài khoản trên sàn, bạn vẫn sẽ thấy 300 coin, và đây là con số trong database của sàn giao dịch, là con số xác nhận bạn có 300 coin trong tài khoản)
Câu hỏi là tại sao sàn giao dịch họ lại cần xử lý cồng kềnh như vậy? sao lại cần lưu vào trong database, sao lại cần chuyển hết tiền của tất cả người dùng vào một ví khác làm gì?
Câu trả lời rất đơn giản là bởi bản chất bạn nạp tiền vào sàn thì thường sau đó bạn sẽ đem đi trade. Mà khi trade thì số dư trong tài khoản của bạn sẽ biến động không ngừng (thậm chí trong một thời gian rất ngắn). Mỗi lần đặt lệnh trade như thế mà xử lý trực tiếp trên Blockchain thì sẽ tốn rất nhiều phí, và thời gian giao dịch (xử lý trên Blockchain) sẽ rất lâu. Thế nên các con số về số dư tài khoản quản lý trong database của sàn giao dịch vẫn là tốt nhất => đây chính là một trong những lợi ích của sàn giao dịch tập trung (giao dịch nhanh và phí giao dịch khá rẻ khi so sánh với phần lớn Blockchain). Ngoài ra, khi bạn lãi, thì sẽ có một người khác lỗ, bạn lãi 1000 coin và rút ra, thì sàn sẽ lấy 1000 coin ở đâu để chuyển cho bạn? Thay vì tìm hết các người lỗ và đặt cả chục giao dịch cho đủ 1000 coin, thì với việc quản lý hết ở một ví rồi, sàn sẽ chỉ cần rút 1000 coin từ ví đó ra trả bạn là xong.
Giờ thì hãy quay trở lại câu chuyện chuyển 100 coin từ ví V1 của sàn S1 sang ví V2 của sàn S2 thì các bước sẽ sảy ra thế nào?
- Khi bạn A1 đặt một lệnh chuyển tiền từ tài khoản trên sàn S1 của mình, sang địa chỉ V2 trên sàn S2 của bạn A2, thì trong phần lớn trường hợp, số tiền này được chuyển đi không phải từ ví V1, mà thay vào đó nó được chuyển đi từ một ví chung của sàn S1 đã nhắc đến ở trên. (tức về cơ bản thì ví V1 của bạn chỉ dùng đển nhận coin thôi, còn khi bạn đặt lệnh chuyển/rút coin, thì coin sẽ đi ra từ một ví khác của sàn)
- Khi giao dịch từ ví chung của sàn S1, đến ví V2 của sàn S2 được tạo, thì tương ứng, trong database của sàn S1, tài khoản của A1 sẽ bị trừ đi 100 coin (và thêm một chút phí giao dịch trên Blockchain).
- Khi sàn giao dịch S2 xác nhận giao dịch đến V2, thì trong database của sàn S2, tài khoản của A2 sẽ được cộng 100 coin.
- Sau đó thì số coin vốn được chuyển đến ví V2, sẽ tiếp tục được chuyển sang ví tập trung của sàn S2
Điều mình thắc mắc là làm sao để hệ thống sàn S1 tác động được đến ví V2 trong sàn S2.
Đó là bởi vì giao dịch chuyển từ ví của sàn S1 đến ví của sàn S2 là một giao dịch bình thường trên một Blockchain. Điều mà sàn S1 làm chỉ đơn giản là tạo giao dịch mà thôi. Blockchain chính là cái cầu nối 2 sàn giao dịch này.
Rất cảm ơn bạn @thangtd90 đã rep mình, mặc dù mình chưa thỏa mãn về vấn đề của mình nhưng mình cũng hiểu thêm một số thứ rất bổ ích mà bạn đã giải thích