Giải quyết tính minh bạch & công bằng của Vietlott bằng Blockchain
Blockchain
34
vietlott
1
EOSIO
1
White

Đạt Fix viết ngày 04/06/2019

4 Vé Vietlott Vô Chủ

Mình có thói quen mỗi chủ nhật thì mần 1 vé vietlott cho vui cũng xem như là có cái gì đó để mà hi vọng. Cũng như bao nhiêu người khác, mình đắng đo mãi là với cơ chế bán - mua như hiện tại, toàn bộ dữ liệu đề do bên đó quản lý thì làm sao mà mình có thể tin tưởng được. Lấy ví dụ đơn giản là hiện tại có 4 vé vô chủ - hơn 136 tỷ đồng này sẽ về lại tay vietlott 1 cách ngon ăn, như vậy thì ai, cái gì có thể đảm bảo được 4 vé này là 4 vé sạch? 4 vé vô chủ

Biết đâu ngay khi vừa có kết quả quay số, 4 vé này mới được mua vì mục đích mờ ám, ai mà biết được chứ. Đây chỉ là một ví dụ đơn giản trong hàng ngàn trường hợp có thể xảy ra với cơ chế của vietlott hiện tại - dù biết rằng vietlott không có lý do để làm chuyện mờ ám vì danh thu và lợi nhuận của họ đã cực kỳ tốt rồi.

Áp Dụng Blockchain Thì Giải Quyết Được Cái Gì?

Blockchain thì hẳng ai cũng biết, nó ra đời nhằm giải quyết các bài toán về tính minh bạch - bất biến, dữ liệu một khi đã được đưa vào chain thì sẽ không thể sửa hay xóa đi được, hoàn toàn công khai và bất kỳ ai cũng có thể truy vấn được. Như vậy thì quá là hợp lý để áp dụng vào qui trình mua - bán vé vietlott rồi còn gì nữa.

Hãy thử suy nghĩ thế này: Tôi ra cửa hàng mua 1 vé vietlott ở cửa hàng A - Mã máy Ax, lúc 2019-06-03 13:12:01, tờ vé số mega 6/45 có mã: 02 21 38 23 12 43, chứng minh thư của tôi là: 293273819. Thời gian quay số là lúc 18h chiều ngày 2019-06-03, ngay lập tức 1 giao dịch được tạo và gởi lên 1 blockchain nào đó, cụ thể là blockchain của EOS mà tôi đang có cơ hội được làm việc cùng, nội dung transaction này bao gồm:

{
    "machine": "Ax",
    "numbers": "022138231243",
    "cmnd": "afd98ac4e943e669ff2472cf98f71d22"
}

Trong đó afd98ac4e943e669ff2472cf98f71d22 là mã băm md5 của 293273819 để bảo mật thông tin người dùng cuối. Như vậy giao dịch của tôi đã được công khai và lưu trữ lên blockchain, có thể truy cập để xem bất kỳ lúc nào mà hoàn toàn không sợ bị xóa hay sửa, ví dụ đây là 1 giao dịch trên blockchain EOS Link giao dịch

alt text

Rất là chi tiết đúng không, thời gian, nội dung cụ thể của transaction đều hoàn toàn công khai. Sẽ không có bất kỳ ai, tổ chức cá nhân nào có thể can thiệp vào được, qui trình mua - bán vé số vietlott sẽ đảm bảo an toàn - minh bạch - toàn vẹn dữ liệu, những tính chất tin cậy - không thể đảo ngược - bền vững - sẵn sàng của blockchain sẽ được mang vào lĩnh vực này.

Một khi đã có kết quả quay số, chỉ cần viết 1 tool nho nhỏ để quét dữ liệu trên blockchain là có thể biết được bao nhiêu vé đã trúng, vé được mua ở đâu và vào thời điểm nào, chủ nhân của vé có mã băm md5 của số CMND là bao nhiêu nữa. Chi phí để phát triển những gì đã nói phía trên là hoàn toàn thấp, nhưng trải nghiệm và giá trị nó mang lại là không gì có thể sánh được.

Bắt tay viết smartcontract

Smart contract này mình viết ở mức đơn giản nhất có thể, nhằm mục đích triển khai ý tưởng mà thôi, một số bước setup tool này kia mình bỏ qua nhé - các bạn có thể xem hướng dẫn chi tiết ở đây Smart Contract. Contract bên dưới chỉ có duy nhất 1 hàm, nhận vào 3 thông số sau đó print chúng ra console mà thôi:

#include <eosio/eosio.hpp>
#include <stdio.h>

using namespace eosio;

class [[eosio::contract]] hello : public contract {
  public:
      using contract::contract;

      [[eosio::action]]
      void ticket( std::string machine, std::string numbers, std::string id ) {
         print( "User " + id + " bought " + numbers + " at " + machine + "");
      }
};

Tiến hành build contract

datnv@lt29-datnv:~/Documents$ eosio-cpp -abigen -o hello/hello.wasm hello/hello.cpp
Warning, empty ricardian clause file
Warning, empty ricardian clause file
Warning, action <ticket> does not have a ricardian contract
datnv@lt29-datnv:~/Documents$ ls hello/
hello.abi  hello.cpp  hello.wasm
datnv@lt29-datnv:~/Documents$ 

Deploy contract lên EOS Testnet

datnv@lt29-datnv:~/Documents$ cleos -u http://jungle2.cryptolions.io set contract leonizeronex hello/
Reading WAST/WASM from hello/hello.wasm...
Using already assembled WASM...
Publishing contract...
executed transaction: 39222c48039f4989df7ba19887557f593ead39c621c999927a3f9866f430064f  2960 bytes  511 us
#         eosio <= eosio::setcode               {"account":"leonizeronex","vmtype":0,"vmversion":0,"code":"0061736d010000000177146000006000017f60027...
#         eosio <= eosio::setabi                {"account":"leonizeronex","abi":"0e656f73696f3a3a6162692f312e310001067469636b65740003076d616368696e6...
warning: transaction executed locally, but may not be confirmed by the network yet
datnv@lt29-datnv:~/Documents$ 

Trong đó 39222c48039f4989df7ba19887557f593ead39c621c999927a3f9866f430064f chính là id của transaction deploy smart contract này: Xem Transaction

Phần cuối cùng chính là tạo transaction để gọi hàm ticket trong contract:


datnv@lt29-datnv:~/Documents$ cleos -u http://jungle2.cryptolions.io push action leonizeronex ticket '["Ax029340","020304050607","208738723"]' -p leonizeronex@active
executed transaction: f48e8ae28f90da6a1d54d51e0b198623eb74d32fe81ac9294285a0b8b23b79ae  128 bytes  229 us
#  leonizeronex <= leonizeronex::ticket         {"machine":"Ax029340","numbers":"020304050607","id":"208738723"}
>> User id 208738723 bought 020304050607 at Ax029340
warning: transaction executed locally, but may not be confirmed by the network yet
datnv@lt29-datnv:~/Documents$ 

Transaction đã được thực thi và chèn vào block số 32,165,623 lúc Jun-04-2019, 05:18:58 PM Link Transaction

alt text

Như vậy giao dịch mua ticket đơn giản đã được triển khai và lưu trữ vĩnh viễn trong blockchain mà không ai có thể xóa hay thay đổi dữ liệu đó cả. Blockchain là công nghệ rất hay và giải quyết được rất nhiều vấn đề, một khi được áp dụng vào các lĩnh vực khác nhau sẽ mang lại nhiều lợi ích hơn là đu đỉnh và bán đáy.

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Đạt Fix

2 bài viết.
29 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
57 8
Bài viết này sẽ hướng dẫn các bạn sử dụng Discord để làm ứng dụng theo dõi bất kỳ thứ gì các bạn muốn hay cần. Bối cảnh: Hôm bữa thấy người ta đăn...
Đạt Fix viết 7 tháng trước
57 8
Bài viết liên quan
White
11 5
Tạm xóa
Giaosucan viết hơn 1 năm trước
11 5
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
2 bài viết.
29 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!