khuongtienao

Cách tạo ra một đồng tiền ảo Bitcoin của mình bạn nên hiểu

1 bài viết trong chủ đề này

Tiền ảo là gì?

Ở 2 phần trước ta đã hiểu thế nào là sàn giao dịch bitcoin uy tín Blockchain, và thế nào là đào Hash để ngăn chặn giao dịch ảo. Tuy vậy Blockchain của chúng ta vì quá khó để tạo đàm phán. Nó trở nên hoàn toàn kém quyến rũ và chả người nào đi bỏ thời gian ra đào Hash rồi nhét data vào chuỗi của chúng ta làm gì. Chúng ta cần tạo ra cái gì đó để kích cầu.

lúc này thì khái niệm TIỀN ẢO mới ra đời. Tiền ảo là một PHẦN THƯỞNG dành cho ai bỏ công sức để đào hash, để chuẩn xác những giao dịch và thêm thành công các Block vào chuỗi của chúng ta. Việc ban đầu, lượng tiền ảo (hay tiền thưởng) đào được là rất ít, dẫn tới có sự khó khăn, sự trao đi đổi lại (trading) lấy tiền thật. Dần dần đồng bạc của ta tạo ra sẽ lên giá.

Với nghĩ suy thuần tuý tương tự, ta hãy bắt tay vào sửa file html và tạo nên đồng bạc ảo Việc ban đầu của mình.

2jS_6FcLinm1vPNI6K4A7xGIp2v7ef6oD3VYcGV7bbX0hnURuF51S-hYqZRTv-CuLnCMS9bTIAd-2NiKelUru4E0t2m_OwHqlvkm3JD-7kq3-RwwEwV3DK9jfg92j6IiOpSCRHUN

Xem thêm: cách đăng ký trên sàn binance

Thuật toán để tạo ra một đồng tiền ảo

để tạo ra một đồng bạc ảo hoàn chỉnh, ta cần cho phép đàm phán bằng đồng tiền ảo ấy. Ở thí dụ trước ta đã cho ra một dạng DuLieu có thể đựng giao dịch. Nhưng để chính thức tương trợ đàm phán, ta tạo một class mới dùng để đựng giao dịch như sau:

/*=== ĐÂY LÀ CLASS diễn đạt CẤU TRÚC CỦA MỘT thương lượng ===*/

class GiaoDich //Các thông báo của một thương lượng vẫn cơ bản như cũ

constructor(DiaChiGui, DiaChiNhan, GiaTri)

this.DiaChiGui = DiaChiGui;

this.DiaChiNhan = DiaChiNhan;

this.GiaTri = GiaTri;

 

 

 

khi này trong phần khái niệm của Blockchain, ta cần tạo thêm 2 biến mới.

/*Phần này mới được thêm vào*/

this.GiaoDichTamHoan = []; //Là mảng các thương lượng mới thêm vào mảng Blockchain và chưa được Hash xong.

this.TienThuong = 100; //Là phần thưởng dành cho những miner (người đào hash) cho việc thêm mới thành công mảng GiaoDichTamHoan vào Blockchain.

 

Thứ nhất là mảng GiaoDichTamHoan. Mảng này sẽ đựng rất nhiều những giao dịch mà chưa có mã Hash, đang đợi máy đào để được thêm vào Blockchain. Điều này sẽ cho phép đa dạng giao dịch được thêm cùng lúc vào Blockchain và cộng nằm trên một Block. Người giao dịch và người đào Block cũng độc lập với nhau.

Thứ 2 là biến TienThuong để lưu giá trị mặc định của khoản tiền thưởng cho Người đào coin. Lượng tiền thưởng này như đã nói ở phần trước, sẽ bị giới hạn, bởi vì tới một lúc nào đó không thể tạo thêm Hash => không người nào có thêm tiền thưởng nữa. Và như vậy tức là đồng MyCoin của chúng ta có tính chất khan hãn hữu, y như vàng bạc vậy.

Trong số các hàm của Blockchain, ta thay hàm DaoBlock() bằng hàm DaoTienAo(). Bởi vì một Block khi này chẳng thể thuận lợi thêm vào Blockchain được nữa, mà phải có người nào đó đào Hash cho Block ấy để nó đc thêm vào chuỗi.

khái niệm hàm đào tiền ảo như sau:

DaoTienAo(DiaChiViNhanTienThuong) //Hàm dùng để đào (thêm mới) một Block vào Blockchain.

//Lúc này ta sẽ tạo mới một Block, trong Block này sẽ cất tất cả các thương lượng đã bị trợ thì hoãn trước đó, do nó chưa được đào và chưa có Hash.

let block = new Block(new Date(), this.GiaoDichTamHoan, this.PhanTuCuoiCung().Hash);

 

block.DaoBlock(this.DoKho); //Vẫn phải đào Hash thường nhật cho lần này.

this.MangBlock.push(block); //Nối phần tử block vào làm phần tử cuối cùng của mảng Blockchain sau lúc đã "đào" được.

 

//Sau lúc đã bỏ công ra đào 1 Hash cho đàm phán hiện tại, ta sẽ có quyền được thưởng một phần tiền thưởng một mực sẵn. GiaoDichTamHoan đã được xử lý xong nên có thể xóa nó đi, sau ấy ta gán một GiaoDichTamHoan mới, trong đó chuyển lượng tiền ta nhận được vào ví của chính mình.

this.GiaoDichTamHoan = [

new GiaoDich(null, DiaChiViNhanTienThuong, this.TienThuong)

];

//Chú ý là chỗ này ta chẳng thể nhận được ngay lượng tiền này trong ví, vì đàm phán chưa được tạo và chưa có Hash. Nên trong Blockchain chưa có bản ghi mới ghi nhận số tiền đã chuyển vào ví nhận tiền thưởng.

//Để nhận được khoản tiền thưởng cho lần đào này. Thì ta phải đợi đến lần đào kế tiếp, đàm phán tạm hoãn này sẽ được khớp lệnh và khi đó tiền thưởng mới có trong ví.

 

 

Hàm đào tiền ảo như trong code đã comment, sẽ tạo điều kiện cho người đào nhét được những đàm phán đang hoãn vào chuỗi. Và để lần đào Tiếp theo sẽ lấy được trị giá tiền thưởng.

vì sao lại cần phải lần đào thứ hai mới lấy được tiền thưởng của lần đào thứ 1. Như thế này thì ăn chặn của người ta à?

Xem thêm: phí qua đêm binance

mục đích của việc này có hai tác dụng:

  1. Để giảm thiểu việc người đào "ăn non". Lấy tiền thưởng của Block này đập vào Block kia.

  2. đấy là để khuyến khích đào đào và đào. Người mới tham gia đào, sẽ luôn có một thương lượng chờ sẵn để người đấy đào lấy tiền xài.

Trong thực tại thì đối với BitCoin, một thương lượng trong Blockchain chỉ được công nhận trong khi phía sau Block chứa nó đã có thêm 6 Block khác được thêm vào. Lúc này thì ví tiền tài bạn mới được cộng hoặc trừ tiền. Và chỉ khi ấy thì bạn mới tiếp tục thương lượng tiếp được.

Khoảng thời kì bạn chờ cho có thêm 6 Block khác được insert vào thường được gọi là thời gian "tiền bị đóng băng" trong hệ thống. Tuy vậy việc này thường chỉ diễn ra trong vài phút.

6 Block đàm phán xong mới được chứng thực trong ví có tiền thường được gọi là cơ chế đồng thuận trong hệ thống. Trong khi có phổ quát người cùng đào chuỗi Blockchain chứa Block có tiền tài các bạn. Họ sẽ gián tiếp xác nhận là thương lượng của bạn đáng tin

Việc ngăn không cho người đào lấy ngay được tiền thưởng ấy là tùy vào từng đồng coin họ có ứng dụng hay ko. Đối với BitCoin thì là có. Ta hoàn toàn có thể tùy biến thuật toán chỗ này để ứng dụng cho đồng MyCoin của ta.

chú ý nữa đó là mảng GiaoDichTamHoan sau mỗi một lần đào Hash xong, sẽ nhét phần đông mảng này vào chung một Block. Tương tự là có thể có Block chứa tới 100 đàm phán. Ở đây hoàn toàn là do code của ta cho phép việc này. Đối với BitCoin hoặc Etherium, họ chỉ cho phép hai giao dịch trong cộng một Block thôi. Vì thế đào xong Hash, ta phải nhặt hai GiaoDich trong mảng GiaoDichTamHoan để đưa vào Block mới tạo. Máy đào tiền ảo thực tại thì nó sẽ chọn random 2 GiaoDich bất kỳ (tất nhiên là dành đầu tiên cái giao dịch nhét tiền vào ví của chính mình trong mảng GiaoDichTamHoan rồi).

Rồi sau lúc có thuật toán DaoTienAo. Ta cần một hàm nữa là hàm khởi tạo GiaoDich và nhét vào GiaoDichTamHoan

/* - Đây là hàm sẽ tạo ra một giao dịch mới. Đưa giao dịch vào mảng GiaoDichTamHoan. Như vậy là một Block sẽ có thể đựng nhiều thương lượng mà đang đợi Hash để được công nhận chính thức và thêm được vào Blockchain - */

TaoGiaoDich(GiaoDichMoi)

this.GiaoDichTamHoan.push(GiaoDichMoi);

 

 

Chúng ta cần một hàm nữa ấy là hàm tính toán ra số tiền trong ví của mỗi người sau lúc bàn luận tìm bán bằng tiền ảo của chúng ta.

//Chúng ta cũng cần một hàm để rà soát được lượng tiền đang có trong một địa chỉ ví nào đấy.

//Mỗi một ví tiền chẳng phải có một Báo cáo tổng tiền được lưu trữ lại. Mà việc tính toán số tiền của một địa chỉ ví trong phần nhiều Blockchain ta phải lần sắm tuần tự hồ hết những giao dịch bên trong Blockchain để kiểm đếm số tiền tài một ví. Điều này sẽ rất an toàn và chân thực.

//Một điều quan yếu là tính sáng tỏ ở đây vì bất kỳ ai lúc có địa chỉ ví của các bạn cũng sẽ trông thấy hết hồ hết thương lượng các bạn đã từng tiến hành trong hệ thống.

KiemTraTienTrongVi(DiaChiVi)

let TienTrongVi = 0;

for (const block of this.MangBlock) //Đi ưng chuẩn qua đông đảo những Block trong Blockchain

for (const gd of block.DanhSachGiaoDich) //Đi ưng chuẩn qua gần như những thương lượng trong Block (Vì một Block là 1 mảng các giao dịch)

if (gd.DiaChiGui === DiaChiVi) //Nếu liên hệ gửi là ví tiền này, thì tức thị phải trừ ở Ví đi số tiền tương ứng trong đàm phán

TienTrongVi -= gd.GiaTri;

 

 

if (gd.DiaChiNhan === DiaChiVi) //Nếu địa chỉ nhận là ví tiền này, thì tức thị phải cùng vào Ví số tiền tương ứng trong thương lượng

TienTrongVi += gd.GiaTri;

 

 

 

return TienTrongVi; //Kiểm đếm xong ta sẽ được Con số tổng.

 

 

Như trong code cũng đã nhắc, mỗi một ví tiền chẳng hề có một Con số tổng tiền được lưu trữ lại ở đâu cả. Mà việc tính toán số tiền tài một liên hệ ví trong số đông Blockchain ta phải lần tậu tuần tự tất cả các đàm phán bên trong Blockchain để kiểm đếm số tiền tài một ví. Điều này sẽ rất an toàn và trung thực.

Điều quan yếu là tính minh bạch ở đây vì bất kỳ ai lúc có liên hệ ví của các bạn cũng sẽ nhìn thấy hết đông đảo đàm phán các bạn đã từng thực hiện trong hệ thống.

Hãy nhớ cập nhật đều đặn thông báo về những sàn tiền ảo uy tín trên thế giới tại website này của chúng tôi.

Share this post


Link to post
Share on other sites

Tạo một tài khoản hoặc đăng nhập để bình luận

Bạn phải là một thành viên để tham gia thảo luận.

Tạo một tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Dễ thôi!


Đăng ký tài khoản mới

Đăng nhập

Bạn đã có tài khoản? Đăng nhập tại đây.


Đăng nhập ngay