Jeder Teilnehmer einer Blockchain-Anwendung arbeitet an seiner eigenen Version der Blockchain. Per Broadcast werden ihm alle in der Blockchain aufzuzeichnenden Transaktionen, alle zu lösenden Hashpuzzles und alle Böcke mit gelöstem Hashpuzzle zugestellt.
Mit den Transaktionen, die ihn erreichen, baut er einen neuen Block auf, den er, wenn er ihn gefüllt hat, zum Versiegeln per Broadcast an alle anderen Teilnehmer übermittelt. Das bedeutet, dass diese beim Schürfen, also bei dem Versuch, das Hashpuzzle zu lösen, miteinander konkurrieren. Sie treten in einen Wettstreit miteinander, und der Gewinner erhält eine (finanzielle) Belohnung. In der Blockchain-Praxis wie beispielsweise bei der Bitcoin-Anwendung arbeitet nur ein Teil der Anwendungsteilnehmer als Schürfer, aber das ändert nichts an der prinzipiellen Vorgehensweise. Im Folgenden wird davon ausgegangen, dass alle Anwendungsteilnehmer auch als Schürfer tätig sind.
Erreicht einen Teilnehmer, der damit beschäftigt ist, einen neuen Block aufzubauen, ein Block mit gerade gelöstem Hashpuzzle, also ein neuer versiegelter Block, dann fügt er ihn an seine Version der Blockchain an. Erreicht ihn ein zu lösendes Hashpuzzle, dann hat der Lösungsversuch Priorität. Er unterbricht seinen Blockaufbau und beginnt mit dem Schürfen.
Das nebenläufige Schürfen hat Konsequenzen für die individuellen Versionen der Blockchain, denn es kann geschehen, dass mehrere Schürfer ziemlich zeitgleich eine jeweils andere Lösung des Hashpuzzles finden. Mehrere richtige Lösungen sind möglich, weil sie von der Lösungsbedingung zugelassen werden. Bei der Bitcoin-Anwendung beispielsweise lautet die Lösungsbedingung, dass der zu errechnende Hashwert mit einer bestimmten Anzahl von Nullen beginnen muss. Da über den Rest eines solchen Hashwerts aber keine Aussage gemacht wird, gibt es viele Nonces, die das Puzzle lösen und damit viele richtige, aber unterschiedliche Blockköpfe. Dazu kommt, dass Blöcke, die über ein Computernetzwerk transportiert werden, durch die durch das Routing verursachten Verzögerungen ganz unterschiedliche Laufzeiten haben.
Als Folge davon können einen Teilnehmer mehrere Blöcke erreichen, die alle als Nachfolgeblock eines Blocks der vorhandenen Blockchain gelten und aufgenommen werden müssen. Ein kleines Beispiel soll diesen Sachverhalt verdeutlichen. Zur Vereinfachung der Grafik werden Blöcke mit Buchstaben bezeichnet und die Hashreferenzen durch Pfeile dargestellt. Begonnen wird mit einer Situation, bei der ein Teilnehmer eine Blockchain aufgebaut hat, die mit einem Block namens a endet. Das Fragezeichen bezeichnet die Referenz auf den Rest der Blockkette.
In dieser Situation soll den Teilnehmer ein korrekter Block namens b erreichen, der auf den Block a verweist. Er wird an die Blockchain angefügt und bildet des neue vorläufige Ende der Kette:
Es ist möglich, dass jetzt den Teilnehmer zwei korrekte Blöcke, die c und d heißen sollen, erreichen, die beide auf den Block b verweisen. Sie müssen beide an die Blockchain angefügt werden, wodurch eine Kette mit zwei Endblöcken entsteht:
Und es kann noch schlimmer kommen, denn jetzt könnte zeitlich verzögert ein korrekter Block, der e heißen soll, eintreffen, der auf den Block a verweist. Dadurch entsteht eine Blockchain, die von der linearen Vorstellung einer Kette stark abweicht. Es ist ein Blockbaum entstanden.
Bei den Teilnehmern einer Blockchain-Anwendung entstehen unterschiedliche Blockbäume. Allerdings führen die Arbeitsnachweise (Proofs of Work), die beim Schürfen zu erbringen sind, zu einer Dominanz einer Mehrheit von Teilnehmern. Die von ihnen geschürften Blöcke bestimmen das Aussehen der Blockbäume einer Mehrheit der Teilnehmer. Die Vielzahl an Arbeitsnachweisen, die beim Aufbau eines Blockbaums anfallen, verhindern auch Betrugsversuche unehrlicher Teilnehmer, weil diese an der Vielzahl der zu erbringenden Arbeitsnachweise scheitern.
Alle Teilnehmer versuchen ständig, durch ein Abschneiden von Ästen ihren Blockbaum in eine Blockkette (eine Blockchain) zu überführen. Dafür benutzen sie alle das gleiche Auswahlkriterium. Bei der Bitcoin-Anwendung beispielsweise wird das Kriterium der längsten Kette verwendet. Das heißt, dass in jedem Ast des Blockbaums (in jedem Weg vom ersten Block des Baums bis zum letzten eines Asts) die Anzahl der Blöcke gezählt werden. Der Weg mit den meisten Blöcken wird dann ausgewählt. Es ist möglich, dass es in einem Blockbaum mehrere maximal lange Wege neben einigen kürzeren gibt. Dann werden die kürzeren abgeschnitten und die maximal langen bleiben vorläufig erhalten. Das Kriterium wird nach jeder Aufnahme eines Blocks in den Blockbaum angewandt.
Zu dem Kriterium der längsten Kette wird als Alternative oft das Kriterium der schwersten Kette vorgeschlagen. Es besagt, dass die Schwierigkeitsgrade der für jeden Block zu lösenden Hashpuzzles, die ja im jeweiligen Blockkopf verzeichnet sind, für jeden Ast, beginnend bei der Wurzel, zu addieren sind. Bei der Bitcoin-Anwendung zum Beispiel ist der Schwierigkeitsgrad eines Hashpuzzles die Anzahl der Nullen mit denen eine Lösung beginnen muss. Diese Anzahlen an Nullen werden in jedem Ast addiert. Auch dieses Kriterium wird nach jeder Aufnahme eines Blocks angewandt, wodurch jeweils die leichtern Äste abgeschnitten werden. Die mit der jeweils gleichen höchsten Summe an Schwierigkeitsgraden bleiben vorläufig erhalten.
Durch das Abschneiden von Blöcken wird der Blockbaum begradigt und es entsteht in seinem an der Wurzel beginnenden Bereich (seinem Stamm) tatsächlich eine lineare Abfolge von Blöcken, also eine Kette. Lediglich an ihrem Ende, dort wo neue Blöcke angefügt werden, ist eine Blockchain baumartig ausgeprägt.
Durch das Beschneiden der Blockbäume entstehen korrekt geschürfte Blöcke mit als korrekt bewerteten Transaktionen, die jedoch nicht mehr zum vorhandenen Blockbaum gehören. Solche Blöcke nennt man verwaist. Die in ihnen enthaltenen Transkationen müssen erhalten bleiben. Verwaiste Blöcke werden aufgelöst und die in ihnen enthaltenen Transaktionen wie neu aufzunehmende behandelt. Das heißt, sie werden erneut per Broadcast an alle Teilnehmer übermittelt und von denen in neue Blöcke aufgenommen.