Bitcoin ağı, internet ağını kullanır. Bu ağa bağlı her bilgisayar bir ucu temsil eder. Tüm uçlar birbiriyle eşittir ve tamamen kendi istekleri dahilinde ağa bağlanırlar. Bir uç istediği zaman ağdan ayrılabilir. Bitcoin haricinde en iyi bilinen uçtan uca ağ yapısı, dosya paylaşımı için kullanılan Napster ve Bittorrent ağıdır.
Bitcoin sisteminin bütün kurallarını uygulayan uçlara tam uç, diğerlerine ise hafif uç denir. Ağın çoğunluğu hafif uçlardan oluşur. Bitcoin ağında ki tam uçlar P2P(uçtan uca) protokolünü, hafif uçlar (madenciler, cüzdan programları vs.) ise Stratum gibi ek protokoller kullanırlar.
Tam uç (Full Node)
Tam uçlar, Blok zincirini eksiksiz şekilde tutarlar. Genesis adı verilen ilk bloktan, günümüze kadar gelen tüm blokları birbirinden bağımsız şekilde kontrol edip tutarlar.
Tam uçlar, tüm blokları aşağıdaki faktörlere göre kontrol ederler:
- Blokta belirli bir değerde Bitcoin arz edilmelidir.
- İşlemlerde harcanan paraların doğru bir şekilde imzalanması gerekir.
- İşlemler ve blokların formatı doğru olmalıdır.
- Hiç bir blokta, aynı Bitcoin birden fazla harcanmamalıdır.
Tam uç olmak isteyen bir uç, tüm blokları kendine indirmesi gerekmektedir. Tüm tam uçlar aynı kontrolleri yapmalı ve birbirleriyle iletişim halinde olmalılar. Tam uçlar, tüm blockchain’e sahiptirler. 1 Aralık 2016 tarihinde tüm ağ 92 gigabyte boyutundadır. Ayrıca bir tam ucun madencilik yapması da şart değildir.
Anlık olarak dünyadaki tüm tam uçları öğrenmek, hangi ülkeden kaç kişinin olduğunu bilmek için bitnodes.21.co adresine göz atabilirsiniz. Günümüzde 9628 adet tam uç bulunmaktadır. Ayrıca bu adresten harita üzerinden de tam uçları görebilirsiniz.
Hafif uç (Lightweight Node)
Hafif uçlar tam uçların aksine ağın tamamını indirmek zorunda değillerdir. Hafif uçlar, bitcoin cüzdanları olarak da bilinmektedirler. Bitcoin cüzdanları tam uçlara istemci olarak bağlanıp, kendi verilerine erişirler. Hafif uçlar, tüm ağı indirmek zorunda olmadıklarından daha az diske ve ağa ihtiyaç duyarlar. Blockchain’in sadece bir kısmını indirerek kullanılabilen Sadeleştirilmiş Ödeme Doğrulama (Simplified Payment Verification) sistemini kullanırlar. Bu sistem bloğun tamamına ihtiyaç duymaz, sadece ilgili işlemlerin indirilmesinde ve doğrulanmasında kullanılan bir yoldur.