Post
Topic
Board Meta
Re: ETFbitcoin's merit source application
by
ETFbitcoin
on 08/10/2018, 17:28:48 UTC
#7
Our education system (or at least in the country where I'm from) is such that students learn very little about the principles and foundation of money. For example, nobody is teaching about the history of money, how it is created, how it works, why it works etc.

Maybe the principles of money are known to economics students, but it is easy to check that the general population knows very little about the concept of money. Given how important money is in everyone's life, this lack of knowledge is really symptomatic. So much so that one has to ask oneself if this is done deliberately to keep the masses ignorant of one of the most important aspects in their lives.

In the following, I want to share a couple of interesting points about how crypto compares to fiat money and where is the important difference. It is about 3 types of consensus inherent to Bitcoin that I learned from the book:

Bitcoin and Cryptocurrency Technologies, Chapter 7. Community, Politics, and Regulation

As the authors state, there are basically

3 types of consensus that any cryptocurrency functioning as money has to have:

consensus about rules
consensus about history
consensus about value

1. The consensus about rules is basically a set of rules the majority agrees to follow.

Fiat money doesn't have this kind of consensus, because the government declares the rules by fiat. It may even change the rules along the way as it sees fit. Great example is the current hyperinflation disaster in Venezuela.

Cryptocurrencies do have this kind of consensus. In Bitcoin, we have a consensus about what makes a transaction valid, what makes a block valid, how new bitcoins are minted, what the total supply is, etc.

2. The consensus about history is actually about record keeping.

Like in the previous point, fiat money doesn't need this kind of consensus. It is enough to physically own money, or the banks can take care of your money and keep a record for you, so there is no need for this consensus.

Cryptocurrencies do need this kind of consensus. In Bitcoin, there has to be a consensus about the history of all valid transactions as well as about the current state of the public record.

3. The consensus about value is a mutual agreement about the value of money.

This consensus is the only consensus both fiat and crypto require in order to function properly. It is about people agreeing that the value of the money they are using will be there in the future.

This consensus equally applies to dollars, euros, and bitcoin. You have to believe that the money you hold will retain its value tomorrow. If many people believe in the same outcome, there is a consensus about value.

Interdependence of the 3 Types of Consensus

Bitcoin (and other cryptocurrencies) have to have all three types of consensus to work as they are supposed to. Moreover, these 3 types support one another. If everyone agrees about valid blocks and transactions, everyone agrees about the state of the public record. As a result, everyone agrees that the currency is not double spent and everyone agrees that the currency will be valuable in the future.

And the other way around: If everyone agrees that the currency will have value in the future, everyone will make sure the consensus rules are followed and the miners have incentive to obey the rules. Then, automatically there is a consensus about the state of the public record.

The ingenuity of Satoshi Nakamoto can be seen, among other things, in connecting these 3 consensus mechanisms and making them work so well in practice to support each other.
Thread link : https://bitcointalk.org/index.php?topic=4975639.msg44869693#msg44869693 (thread is locked, so i can't quote the post)Thank you for k0er and Husna QA who give quoted code Smiley
Archive link : https://archive.fo/1wX3v
Short comment/info : Sharing about Bitcoin's consensus from book by Jameson Lopp and compare it with fiat money


#8
The impression I get is that people either decide to run a full node on purpose or just go straight for a SPV wallet. Running a "semi-full" node (eg. Bitcoin Core with pruning enabled) seems to be the exception. Accordingly I doubt that providing the ability to run a semi-full node increases the overall node count much. However I'm just extrapolating from anecdotal observations without having anything substantial to back this claim up, so don't take my word for it.

I think the problem at hand is, that the fewer full nodes there are, the more traffic they need to bear. This in turn will make running a full node even harder, causing more full nodes to drop off, further increasing the traffic on the remaining nodes until only a handful of very costly full nodes are left. And every new pruned node that comes online needs these full nodes to bootstrap, lest they won't even become a semi-full node.
Archive link : https://archive.fo/tn6hS
Short comment/info : Nice thoughts if majority nodes use pruned-mode


#9
Why do you trust banks with your money? Oh wait, I don't, and I don't trust online or other wallets either.

I don't see what's wrong with a password protected Bitcoin core wallet. I think that is the most trustworthy, but that's just an instinctive reaction on my part.

But the OP question still remains.

Why do you trust the Bitcoin Core wallet?
Why do you trust the operating system that you are running your Bitcoin Core wallet on?
Why do you trust the hardware that your operating system is running on?
Why do you trust the mathematical functions of ECDSA and SHA?

I think the important question that the OP was asking is...

"If I do not have the technical expertise to know exactly what the software and hardware are doing, then how can I be certain that those who do have the technical expertise aren't lying to me?"

The security of open source relies on the concept that hiding the true nature of the thing requires that ALL TECHNICALLY CAPABLE people in the ENTIRE WORLD will collude to hide the behavior of the thing from ALL TECHNICALLY INCAPABLE people.  If even 1 single technically capable person refuses to collude with all the other technically capable people, then that one person can reveal the true nature of the thing to all the technically incapable people.
Archive link : https://archive.fo/bBj9T
Short comment/info : Short, yet clear message about how to trust something from those with technical expertise if you don't have sufficient technical expertise

#10

Intro


Sebelum Bitcoin muncul dengan jaringan Blockchain-nya. Sudah banyak metode-metode pengembangan dari sistem mata uang digital yang tidak bisa sukses (gagal), karena terkendala untuk mencapai suatu konsensus atau membuahkan suatu hasil yang mustahil. Permasalahan ini dikenal dengan sebutan "Byzantine Generals Problem".

Pengertian Umum dari Byzantine Generals Problem

Sekelompok pasukan Bizantium terbagi menjadi beberapa kelompok dengan seorang Jenderal sebagai pemimpin kelompoknya. Masing-masing jenderal saling berkomunikasi lewat pesan yang dihantar melalui kurir sehingga bisa ditentukan kapan waktu untuk menyerang dan kapan waktu untuk mundur secara bersamaan (antar kelompok). Dengan dilakukan serangan secara bersama, maka peluang untuk memenangkan pertarungan ini sangat besar. Sistem ini mempunyai banyak kelemahan dan besar kemungkinan untuk dimanipulasi karena posisi dari masing-masing Jenderal terpaut jarak yang jauh dan diperlukan adanya kurir sebagai perantara intruksinya.

Beberapa masalah yang bisa muncul pada sistem ini antara lain seperti :

- Pesan (intruksi) tidak sampai karena kurir terbunuh ditengah jalan
- Jika pesan (intruksi) yang disampaikan tidak sama, maka keputusan diantara Jenderal juga akan berbeda.
- Jika ada beberapa Jenderal atau pasukan yang berkhianat, maka hasil serangan tidak akan efektif lagi

Algoritma konsensus pada teknologi Blockchain muncul sebagai solusi dari "Byzantine Generals Problem".




Konsensus


Pengertian umum Konsensus adalah kesepakatan kata atau permufakatan bersama (mengenai pendapat, pendirian, dan sebagainya) yang dicapai melalui kebulatan suara (https://kbbi.web.id/konsensus)

Sedangkan pengertian Konsensus didalam teknologi Blockchain ialah Persetujuan bersama (mufakat) untuk melakukan validasi pada suatu transaksi (Block) yang dihasilkan dari proses perhitungan yang kompleks dan rumit.  




Algoritma Konsensus Blockchain


Algoritma pada dasarnya menjabarkan segala prosedur yang harus dilakukan dalam menyelesaikan sebuah masalah. Karena sifat dari blockchain yang terdistribusi, maka dibutuhkan algoritma untuk mencapai konsensus dengan mengurutkan dan merumuskan suatu masalah (data) secara bersama-sama. Sehingga bisa ditetapkan/diterbitkan suatu hasil (hash) yang autentik dan valid ke dalam sebuah block didalam jaringan Blockchain.




1. Proof of Work

Sebuah protokol yang mempunyai fungsi untuk mencegah aktifitas serangan cyber (DDos), yang dapat melumpuhkan/melemahkan suatu sumber daya sistem komputer. Konsep POW pertama kali dikenalkan oleh Cynthia Dwork & Moni Naor pada tahun 1993 dan baru di implementasikan oleh Markus Jakobsson (mata uang Shell) pada tahun 2009.

Dalam teknologi Blockchain, POW digunakan oleh Satoshi Nakamoto sebagai algoritma konsensus dan Bitcoin sendiri sebagai Mata Uang dari konsensus Proof of Work ini. Persyaratan utama dalam konsensus POW adalah proses kegiatan mining (proses komputasi dari CPU, GPU, ASIC, FPGA) yang berfungsi sebagai penemu, pencari solusi dan memvalidasi setiap masalah (hash) kedalam sebuah block dan akan didistribusikan ke dalam sebuah buku besar (ledger) yang disebut dengan Blockchain.

Untuk mencapai sebuah konsensus, sebuah transaksi harus melewati beberapa proses yang juga melibatkan adanya proses komputasi yang dilakukan oleh beberapa miners, sehingga bisa tercipta sebuah Block yang valid.

Sistem Distribusi konsensus Proof of Work :

- Suatu (beberapa) transaksi yang muncul dari sebuah wallet yang bertindak sebagai Full Node (salinan Blockchain) akan di publish pada jaringan (P2P).
- Transaksi-transaksi ini akan tehubung ke sebuah jaringan yg juga terhubung dengan node Miners
- Miner-miner akan melakukan proses komputasi (hash function) untuk menyelesaikan persoalan matematika rumit ini ke dalam sebuah block.
- Jumlah maksimal transaksi dalam setiap block tergantung dari protokol yang berlaku.
- Setelah masalah (hash) terpecahkan, maka miner yang pertama kali memecahkan masalah ini akan mem-broadcast block baru ke jaringan (P2P).
- Node-node (miner-miner) lainnya yang menerima block ini akan melakukan proses verifikasi (validasi).
- Setelah block mendapat validasi, maka block ini akan di distribusikan ke dalam blockchain sebagai Block baru yang valid.
- Miners yang bertindak sebagai pembuat block valid akan menerima reward.






Cryptocurrencies yang menggunakan algoritma konsensus PoW

  • Bitcoin (BTC)
  • Ethereum (ETH)
  • Monero (XMR)
  • Litecoin (LTC)
  • Dan lain-lain



2. Proof of Stake

Algoritma konsensus Proof of Stake (PoS) pertama kali dikenalkan oleh Sunny King dan Scott Nadal pada tahun 2012. Penggunaan metode ini diharapkan dapat mengatasi besarnya daya yang dibutuhkan untuk melakukan proses komputasi pada konsensus PoW. Secara garis besar, proses Staking ialah mengunci beberapa jumlah coin (cryptocurrency) sebagai jaminan, didalam sebuah wallet yang menjalankan Full Node dari sebuah blockchain. Jaminan ini sebagai bukti kepemilikan seorang pemegang koin (tokens holder) sebagai fungsi node, dalam berkontribusi didalam jaringan  konsensus PoS dengan proses yang dinamakan Forging (menempa koin).

Berbeda dengan konsensus PoW yang membutuhkan proses komputasi menggunakan peralatan-peralatan dengan sumber daya listrik. Pada metode PoS, untuk mencapai sebuah konsensus hanya dibutuhkan sebuah Full Node (Wallet) dengan token/koin didalamnya. Dan setiap token/koin holder yang senantiasa terhubung dengan jaringan (node) blockchain, mempunyai peluang untuk menjadi seorang staker/forger dengan memenuhi syarat sesuai dengan protokol yang berlaku. Oleh karena itu didalam konsensus PoS ini, tidak dibutuhkan banyak sumber daya energi (listrik) dalam proses pencapaian suatu konsensus.

Sistem Distribusi konsensus Proof of Stake :

- Untuk bisa melakukan forging (minting), maka pemegang token/koin harus mengunci sejumlah koin didalam walletnya (Full Node) yg terhubung dengan jaringan blockchain.
- Pada saat sebuah/beberapa transaksi masuk ke dalam jaringan (P2P). Pembuatan sebuah block (validasi transaksi) dipilih secara Pseudorandom berdasarkan jumlah koin yang di stake dan berapa lama koin tersebut sudah di stake.
- Token/Coin Holder dengan jumlah Staking Coin yang besar dan waktu (umur) staking yang lama, mempunyai peluang (kesempatan) lebih tinggi untuk melakukan proses forging pada block berikutnya.
- Setelah proses pembuatan block dan proses validasi selesai, maka block ini akan didistribusikan ke dalam jaringan blockchain sebagai block baru yang valid.
- Forger (staker) akan menerima reward dari hasil kerjanya dan untuk umur staking coinnya akan direset ulang.






Cryptocurrencies yang menggunakan algoritma konsensus PoS

  • Peercoin (PPC)
  • NXT
  • Blackcoin
  • Dan lain-lain



3. Delegated Proof of Stake

DPoS diciptakan oleh Daniel Larimer pada saat membuat sebuah cryptocurrency yang disebut dengan BitShares pada tahun 2014. Algoritma konsensus ini adalah sebuah metode baru sebagai tindakan pengamanan terhadap sebuah jaringan cryptocurrency untuk mencapai sebuah konsensus tanpa memerlukan adanya otoritas terpusat. Prinsip kerjanya hampir mirip dengan konsensus Proof of Stake, dimana untuk mencapai konsensus yang valid maka dibutuhkan proses verifikasi dari pelaku-pelaku otoritas yang terdistribusi dan berjalan sesuai dengan protokol yang ada didalam metode konsensus tersebut.

Jika didalam PoS pemilihan pembuatan block bersifat Pseudorandom (berdasar jumlah dan umur Coin/Token), maka pada DPoS setiap delegasi/witness (pembuat block) akan ditentukan dengan voting. Setiap pemegang koin/token mempunyai suara (vote) yang bisa digunakan untuk memilih satu atau beberapa witness/validator dan dapat memindahkan vote-nya kepada witness lainnya setiap saat. Validator/witness terpilih (diurutkan berdasarkan jumlah vote) akan mempunyai otoritas untuk membuat sebuah block dan mempublikasikannya ke dalam jaringan Blockchain.

Sistem Distribusi konsensus Delegated Proof of Stake :

- Setiap transaksi yang terjadi akan masuk ke jaringan (P2P).
- Token/Coin holder yang menjalankan Full Node (wallet) akan melakukan Vote untuk menentukan beberapa witness/delegasi. Semakin besar jumlah token maka semakin besar juga nilai votenya.
- Token/Coin holder bisa melakukan vote terhadap dirinya sendiri setelah melakukan registrasi menjadi witness (validator) sesuai dgn protokol yang berlaku.
- Dalam setiap putaran, masing-masing validator/witness terpilih (jumlah max (N) witness berdasarkan protokol yang berlaku) akan memproses beberapa transaksi ke dalam sebuah block.
- Sebelum block valid dibroadcast ke dalam blockchain, urutan rank dari validator/witness akan berubah-ubah sesuai dengan jumlah vote yang didapat.
- Setelah block berhasil divalidasi oleh witness/validator, maka masing-masing block akan didistribusikan ke dalam jaringan blockchain berdasarkan urutan rank dari Validator.
- Masing-masing Validator (witness) akan menerima reward sesuai protokol yang berlaku.







Cryptocurrencies yang menggunakan algoritma konsensus DPoS

  • BitShares
  • EOS
  • Lisk
  • Steem
  • Dan lain-lain



4. Delegated Byzantine Fault Tolerance

Algoritma konsensus ini muncul untuk mengatasi masalah dari "Byzantine Generals Problem" (BGP). Dengan menggunakan protokol yang hampir mirip dengan konsensus DPOS, diharapkan dapat menutupi kekurangan suatu sistem buruk (BGP) didalam sebuah jaringan, sehingga bisa dicapai suatu konsensus yang valid.

Didalam konsensus DBFT ada beberapa entitas yang mempunyai peran dan fungsi masing-masing, dalam pelaksanaannya untuk mencapai sebuah konsensus kerja, sehingga setiap block-block yang dihasilkan dan divalidasi dapat didistribusikan ke jaringan blockchain.
1. Node (Token/Coin Holder) bertindak sebagai pemilih delegasi dengan menggunakan metode Vote berdasarkan dengan jumlah Token mereka.
2. Delegasi (Validator) dipilih berdasarkan vote dan juga mempunyai peran untuk melakukan proses verifikasi (validasi) terhadap sebuah block yang akan didistribusikan ke dalam jaringan Blockchain.
3. Pemimpin delegasi (Delegate Leader) dipilih secara acak dari calon-calon delegasi yang ada. Pemimpin Delegasi bertanggung jawab untuk membuat sebuah block baru yang berisikan data-data transaksi, yang nantinya akan didistribusikan ke dalam jaringan Blockchain setelah melalui proses validasi.

Sistem Distribusi konsensus Delegated Byzantine Fault Tolerance :

- Pada sebuah/beberapa transaksi yang terjadi didalam jaringan (P2P), maka akan ditindaklanjuti oleh seorang Block producer (Delegate leader)
- Block producer yang dipilih secara random dari beberapa calon delegasi, akan menciptakan suatu block baru yang nantinya akan diusulkan untuk mendapatkan proses validasi.
- Pada saat block terselesaikan, maka group delegasi akan melakukan proses validasi. Dan dibutuhkan N % verifikasi (tergantung ketentuan protokol) supaya block baru ini dianggap valid.
- Setelah block mendapatkan jumlah verifikasi sebesar N %, maka block akan didistribusikan ke jaringan blockchain sebagai block baru yang Valid.
- Delegate leader (Block Producer) akan menerima reward sebagai imbalan hasil kerja.






Cryptocurrency yang menggunakan algoritma konsensus DBFT

  • Neo


Beberapa Algoritma Konsensus lainnya

- Proof of Authority
  • POA Network (POA)
  • VeChain (VET)

- Proof of Space / Proof of Capacity
  • BurtsCoin

- Proof of Importance
  • NEM / XEM






References :
https://blockgeeks.com/guides/blockchain-consensus
https://en.wikipedia.org/wiki/Proof-of-work_system
https://en.wikipedia.org/wiki/Proof-of-stake
http://docs.bitshares.org/bitshares/
https://cryptowiki.com/Delegated_Byzantine_Fault_Tolerance
Archive link : https://archive.fo/ljLNA
Short comment/info : List of some consensus method with detailed explanation



This thread is archived at https://archive.fo/QGyZP

Reference :
1.
Code:
SELECT SUM(M.MERIT) AS "Total Merit Sent",COUNT(M.MERIT) AS "Total Merit TX", M.FromID, U.Username
FROM UserData as U, MeritData as M
WHERE M.FromID = U.UserID
GROUP BY M.FromID
ORDER BY "Total Merit TX" DESC;